LDA Mallet Gensim CalledProcessError

问题描述 投票:0回答:2

似乎很多人都对 Mallet 有疑问。

import os
from gensim.models.wrappers import LdaMallet

os.environ.update({'MALLET_HOME':r'C:/Users/myusername/Desktop/Topic_Modelling/mallet-2.0.8'})

mallet_path = r'C:/Users/myusername/Desktop/Topic_Modelling/mallet-2.0.8/bin/mallet' 

model = gensim.models.wrappers.LdaMallet(mallet_path, corpus=corpus,num_topics=num_topics, id2word=id2word)

出现以下错误:

/bin/sh: C:/Users/myusername/Desktop/Topic_Modelling/mallet-2.0.8/bin/mallet.bat: No such file or directory

CalledProcessError: Command 'C:/Users/myusername/Desktop/Topic_Modelling/mallet-2.0.8/bin/mallet.bat import-file --preserve-case --keep-sequence --remove-stopwords --token-regex "\S+" --input /var/folders/ml/lxzrtxwn02vbvq65c80g1b640000gn/T/c52cdc_corpus.txt --output /var/folders/ml/lxzrtxwn02vbvq65c80g1b640000gn/T/c52cdc_corpus.mallet' returned non-zero exit status 127.

我从http://mallet.cs.umass.edu/dist/mallet-2.0.8.zip下载了mallet,并解压到我的目录中。我试过在终端的错误中运行命令,我得到了同样的“找不到这样的文件”错误,但它在我的目录中?

我也关注了这个:https://ps.au.dk/fileadmin/ingen_mappe_valgt/installing_mallet.pdf

当我通过命令行进入目录并键入

./bin/mallet
时,我得到了一大堆命令,根据说明,这是我要知道它已经安装好的命令。

我在 MacOS 上运行以下程序

  • Python==3.9.6
  • gensim==3.8.3

有人有什么想法吗?

python gensim
2个回答
0
投票

这听起来很愚蠢,我通过将路径更改为:

解决了这个问题
os.environ.update({'MALLET_HOME':r'mallet-2.0.8'})

mallet_path = r'mallet-2.0.8/bin/mallet' 

所以如果你的 mallet 目录与你的代码所在的目录在同一个目录中,这将起作用!


0
投票

这个,如果系统没有安装jdk会报错,lda mallet使用jdk运行。如果您使用的是 colab,请按照以下步骤操作;

  1. 安装 Gensim

!pip install --upgrade gensim==3.8 #(wrapper classes only supported in the previous versions)

2.在colab中安装jdk

import os      
def install_java():
  !apt-get install -y openjdk-8-jdk-headless -qq > /dev/null      #install openjdk
  os.environ["JAVA_HOME"] = "/usr/lib/jvm/java-8-openjdk-amd64"     #set environment variable
  !java -version       #check java version
install_java()

3.安装木槌

!wget http://mallet.cs.umass.edu/dist/mallet-2.0.8.zip
!unzip mallet-2.0.8.zip

4.设置路径并运行lda mallet

os.environ['MALLET_HOME'] = '/content/mallet-2.0.8'
mallet_path = '/content/mallet-2.0.8/bin/mallet' # you should NOT need to change this 

希望这有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.