首页 > 解决方案 > 尝试使用 Gensim 运行 Mallet 时出现 subprocess.CalledProcessError

问题描述

我正在尝试使用 Gensim 和 Mallet(链接)进行主题建模。当我找到 mallet_path 然后尝试将其分配给 gensim 时,我收到错误 subprocess.CalledProcessError : returned non-zero exit status 1

并且系统提示我更新 Java(我已经完成了)。

关于如何解决它的任何提示?

mallet_path = '/Users/username/mallet-2.0.8/bin/mallet'

ldamallet = gensim.models.wrappers.LdaMallet(mallet_path, corpus=corpus, num_topics=20, id2word=id2word)
Traceback (most recent call last):
  File "<pyshell#85>", line 1, in <module>
    ldamallet = gensim.models.wrappers.LdaMallet(mallet_path, corpus=corpus, num_topics=20, id2word=id2word)
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/gensim/models/wrappers/ldamallet.py", line 132, in __init__
    self.train(corpus)
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/gensim/models/wrappers/ldamallet.py", line 273, in train
    self.convert_input(corpus, infer=False)
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/gensim/models/wrappers/ldamallet.py", line 262, in convert_input
    check_output(args=cmd, shell=True)
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/gensim/utils.py", line 1918, in check_output
    raise error
subprocess.CalledProcessError: Command '/Users/username/mallet-2.0.8/bin/mallet import-file --preserve-case --keep-sequence --remove-stopwords --token-regex "\S+" --input /var/folders/76/hdlh6w8d3nbb4m424wx3010w0000gn/T/adc98e_corpus.txt --output /var/folders/76/hdlh6w8d3nbb4m424wx3010w0000gn/T/adc98e_corpus.mallet' returned non-zero exit status 1.

标签: python-3.xsubprocessldatopic-modelingmallet

解决方案


在 bin 目录中,使用文本编辑器打开 mallet 文件,然后增加 MEMORY 限制。它对我有用。


推荐阅读