实现gensim.LdaMallet时出错

4 投票
5 回答
5129 浏览
提问于 2025-04-18 09:10

我在这个链接上跟着说明做("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. 导入临时文件模块
  2. 把临时文件的存储位置改成一个其他的非系统临时目录
-1

我在Windows上使用gensimMALLET时遇到过类似的问题:

  1. 确保设置了MALLET_HOME这个环境变量。
  2. 在Python中设置mallet_path时,要记得对斜杠进行转义。

    mallet_path = 'c:\\mallet-2.0.7\\bin\\mallet'
    LDA_model = gensim.models.LdaMallet(mallet_path, ...
    
  3. 另外,可能需要修改Python\Lib\site-packages\gensim\models\ldamallet.py文件中的第142行:把--token-regex '\S+'改成--token-regex \"\S+\"

希望这些能帮到你。

0
  1. 确保 mallet 在命令行中正常工作。
  2. 查看你的文件夹 '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 这个环境变量。

撰写回答