python LDA骨锤Gensim调用过程错误

apeeds0o  于 2023-04-10  发布在  Python
关注(0)|答案(2)|浏览(155)

似乎很多人都有与马利特的问题。

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

有人有什么想法吗?

z9smfwbn

z9smfwbn1#

虽然这听起来很傻,但我通过将路径更改为以下路径来解决此问题:

os.environ.update({'MALLET_HOME':r'mallet-2.0.8'})

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

因此,如果您的代码所在的目录与mallet目录相同,那么这将起作用!

xyhw6mcr

xyhw6mcr2#

如果系统中没有安装jdk,则会出现此错误,lda mallet使用jdk运行。如果您使用的是colab,请按照以下步骤操作
1.!pip install --upgrade gensim==3.8( Package 类仅在以前的版本中支持)
2.在colab中安装jdk
导入操作系统
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”#设置环境变量!java -version #check java version install_java()
3.安装木槌!wget http://mallet.cs.umass.edu/dist/mallet-2.0.8.zip!unzipmallet-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' #您不需要更改此
希望这能帮上忙。

相关问题