这是我第一次使用木槌LDA。基本上,我下载了 mallet-2.0.8 zip 文件和 JDK。我安装了JDK,将mallet-2.0.8解压缩到目标文件夹。我设置了MALLET_HOME。 这是我的代码
mallet_path='C:/Users/abc/mallet-2.0.8/bin/mallet'
ldamallet=gensim.models.wrappers.LdaMallet(mallet_path,corpus=corpus,num_topics=20,id2word=id2word)
但是,它给出了错误:
文件未找到错误[错误 2]
我试过了
mallet_path='C:\Users\abc\mallet-2.0.8\bin\mallet'
和
mallet_path=r'C:Usersabcmallet-2.0.8binmallet'
我得到了同样的错误消息。
我遇到了同样的问题。我得到的错误如下:
IOError: [Errno 2] No such file or directory c:\users\...\appdata\local\temp \d36348_state.mallet.gz.
每次我尝试运行代码时,下划线之前的前缀都会更改,但错误名称始终以"~一些字母数字字符串~_state.mallet.gz"的形式结尾。
我试图了解控制台中的堆栈跟踪输出。此错误行之前的行如下所示:
fileobj = self.myfileobj = __builtin__.open(filename, mode or 'rb')
我用谷歌搜索了一下,找到了这个特定的链接。这是一个 github 链接,一个人提出了不同的错误,但他的错误日志的结尾部分与我的相同。他的错误的解决方案是升级他的smart_open
模块,gensim
依赖它,因为升级已经解决了这个问题。所以我检查了我的smart_open
模块版本,它是1.4.x
的,最后一次更新是在大约一年半前,所以我将其升级到1.5.7
版本,LdaMallet 代码可以正常工作。
请检查您的问题是否是由于相同的原因引起的。
希望对您有所帮助!
附言我还将我的gensim
模块与smart_open
一起更新到3.4版。
我遇到了同样的问题,这是因为我忘记设置环境变量%MALLET_HOME%
import os
from gensim.models.wrappers import LdaMallet
os.environ['MALLET_HOME'] = 'C:/.../mallet-2.0.8/'
这就是答案
import os
from gensim.models.wrappers import LdaMallet
os.environ['MALLET_HOME'] = 'C:\Users\DELL\Desktop\Research_lak\mallet-2.0.8'
mallet_path = 'C:\Users\DELL\Desktop\Research_lak\mallet-2.0.8\bin\mallet'
ldamallet = gensim.models.wrappers.LdaMallet(mallet_path, corpus=corpus, num_topics=10, id2word=id2word)