【问题标题】:Python Mallet LDA Errno 2 No such file or directoryPython Mallet LDA Errno 2 没有这样的文件或目录
【发布时间】:2020-06-21 06:35:27
【问题描述】:

我保存了一个 LDAWallet 模型:

首先我做了火车:

 mallet_path = 'mallet-2.0.8/bin/mallet'
 ldamallet = gensim.models.wrappers.LdaMallet(mallet_path, corpus=corpus, id2word=id2word, 
 num_topics=14)

然后我使用 save 方法保存了模型:

ldamallet.save('lda_v0.model')

我在训练模式时忘记为某个文件设置前缀,因此我丢失了训练时由 gensim 创建的所有临时文件(doctopics 等...)。 我认为正因为如此,当我加载模型并想要预测主题时:

model_lda = gensim.models.ldamodel.LdaModel.load('lda_v0.model')
###stuff
###stuff
###stuff
model_lda[input]

我收到一个错误:

[Errno 2] 没有这样的文件或目录:'/var/folders/_f/ttl3hvqn75g4rb5cdg02qg1c0000gn/T/2e13a7_doctopics.txt.infer'

我尝试用数据复制相同的模型(并设置前缀以免丢失临时文件),但没有成功。 我想知道是否可以使用 print_topics 方法(我忘了说加载模型正在工作,我可以获得所有主题及其单词)并且对于每个主题,检索与主题相关的单词的权重并计算概率,但我不知道 lda 模型如何预测每个文档的主题,所以我不确定我的想法是否可行。

您知道如何解决此问题吗? 我只想为文档预测每个主题的概率。

谢谢

【问题讨论】:

  • 显示的是完整的错误输出吗?哪一行代码会触发错误?
  • 你好@gojomo,触发错误的确切代码行是model_lda[input],这是我尝试做出预测的时候。
  • 显示的是完整的错误输出吗?

标签: nlp gensim lda mallet


【解决方案1】:

问题已解决。 我将malletmodel转换为ldamodel;通过这样做,我能够做出预测。

model_lda = gensim.models.ldamodel.LdaModel.load(path_of the model)
ldamodel = gensim.models.wrappers.ldamallet.malletmodel2ldamodel(model_lda)

谢谢。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-13
    相关资源
    最近更新 更多