实现gensim.LdaMallet时出错

时间:2014-06-09 18:08:46

标签: python lda gensim

我按照此链接上的说明(“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 个答案:

答案 0 :(得分:3)

这可能有两个原因: 1.你的槌路径中有空间。 2.没有MALLET_HOME环境变量。

答案 1 :(得分:0)

  1. 确保槌正确从命令行运行。
  2. 查看您的文件夹&c; \ users \ brlu \ appdata \ local \ temp \ ...'如果有一些文件,你可以推断出mallet-wrapper失败的步骤。在命令行中尝试此步骤。

答案 2 :(得分:0)

就我而言,我忘记了导入gensim的槌状包装纸。以下代码解决了该错误。

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)

我在Windows上遇到与gensim + MALLET类似的问题:

  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:更改--token-regex '\S+'--token-regex \"\S+\"

  4. 中的第142行可能会有用

    希望有所帮助

答案 4 :(得分:-2)

尝试以下

  1. 导入临时文件
  2. tempfile.tempdir =' some_other_non_system_temp_directory'