实现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'

请分享你的想法。

谢谢。

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

在我的例子中,我忘记导入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

  1. 确保mallet 正确地在命令行中工作。查看你的文件夹"c:usersbrluappdatalocaltemp…"'如果有一些文件,您可以推断出锤子包装器在哪一步失败。请在命令行中尝试此步骤。

我在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. 此外,修改PythonLibsite-packagesgensimmodelsldamallet.py:中的第142行将--token-regex 'S+'更改为--token-regex "S+"也可能有用

希望有所帮助

试试下面的

    进口tempfile
  1. <我>
  2. <我> tempfile.tempdir ="some_other_non_system_temp_directory"

最新更新