python mallet LDA FileNotFoundError:[Errno 2]没有这样的文件或目录:'C:\\ Users \\ abc \\ AppData \\ Local \\ Temp \\ d33563_state.mallet.gz'

时间:2018-06-03 22:31:23

标签: python mallet

这是我第一次使用槌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)

然而,它给出了错误:

  

FILENOTFOUNDERROR [ERROR2]

我试过

mallet_path='C:\\Users\\abc\\mallet-2.0.8\\bin\\mallet'

mallet_path=r'C:\Users\abc\mallet-2.0.8\bin\mallet'

我收到了同样的错误消息。

3 个答案:

答案 0 :(得分:1)

我遇到了同样的问题,这是因为我忘记设置环境变量%MALLET_HOME%

import os
from gensim.models.wrappers import LdaMallet

os.environ['MALLET_HOME'] = 'C:/.../mallet-2.0.8/'

答案 1 :(得分:0)

我面临着同样的问题。我得到的错误如下:

Cursor

每次尝试运行代码时,下划线之前的前缀都会更改,但错误名称始终以“〜Some Alphanumeric String〜_state.mallet.gz”的形式结尾。

我试图了解控制台中的堆栈跟踪输出。该错误行之前的行如下:

IOError: [Errno 2] No such file or directory c:\\users\\...\\appdata\\local\\temp \\d36348_state.mallet.gz.

我用Google搜索它,发现了这个特殊的link。这是一个github链接,一个人提出了一个不同的错误,但是他的错误日志的结尾部分与我的相同。解决他错误的方法是升级fileobj = self.myfileobj = __builtin__.open(filename, mode or 'rb')所依赖的smart_open模块,因为该升级已解决了该问题。因此,我检查了gensim模块的版本,它是smart_open,最近一次更新是在一年半之前,因此我将其升级到版本1.4.x,LdaMallet代码可以正常工作。

请检查您的问题是否是由相同原因引起的。

希望有帮助!

P.S。我还将1.5.7模块和gensim一起更新到了版本3.4。

答案 2 :(得分:0)

这就是答案

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)