似乎很多人都对 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 上运行以下程序
有人有什么想法吗?
这听起来很愚蠢,我通过将路径更改为:
解决了这个问题os.environ.update({'MALLET_HOME':r'mallet-2.0.8'})
mallet_path = r'mallet-2.0.8/bin/mallet'
所以如果你的 mallet 目录与你的代码所在的目录在同一个目录中,这将起作用!
这个,如果系统没有安装jdk会报错,lda mallet使用jdk运行。如果您使用的是 colab,请按照以下步骤操作;
!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
希望这有帮助。