实现gensim.LdaMallet时出错
我在这个链接上跟着说明做("http://radimrehurek.com/2014/03/tutorial-on-mallet-in-python/"),但是当我尝试训练模型时遇到了一个错误:
model = models.LdaMallet(mallet_path, corpus, num_topics =10, id2word = corpus.dictionary)
IOError: [Errno 2] No such file or directory: 'c:\\users\\brlu\\appdata\\local\\temp\\c6a13a_state.mallet.gz'
如果你有任何想法,请分享一下。
谢谢。
5 个回答
-2
试试下面的方法:
- 导入临时文件模块
- 把临时文件的存储位置改成一个其他的非系统临时目录
-1
我在Windows上使用gensim
和MALLET
时遇到过类似的问题:
- 确保设置了
MALLET_HOME
这个环境变量。 在Python中设置
mallet_path
时,要记得对斜杠进行转义。mallet_path = 'c:\\mallet-2.0.7\\bin\\mallet' LDA_model = gensim.models.LdaMallet(mallet_path, ...
另外,可能需要修改
Python\Lib\site-packages\gensim\models\ldamallet.py
文件中的第142行:把--token-regex '\S+'
改成--token-regex \"\S+\"
。
希望这些能帮到你。
0
- 确保 mallet 在命令行中正常工作。
- 查看你的文件夹 'c:\users\brlu\appdata\local\temp\...',看看里面有没有文件,这样你可以推测出 mallet-wrapper 在哪个步骤出错了。试着在命令行中执行这个步骤。
1
在我的情况下,我忘记导入gensim的mallet包装器。下面的代码解决了这个错误。
import os
from gensim.models.wrappers import LdaMallet
os.environ['MALLET_HOME'] = 'C:/.../mallet-2.0.8/'
更详细的解释可以在这里找到: https://github.com/RaRe-Technologies/gensim/issues/2137
3
这可能有两个原因:
1. 你的 mallet 路径中有空格。
2. 没有设置 MALLET_HOME 这个环境变量。