Gensim LDA 相关性得分为Nan。

8

我按照以下教程创建了一个Gensim LDA模型:https://www.machinelearningplus.com/nlp/topic-modeling-gensim-python/

lda_model = gensim.models.LdaMulticore(data_df['bow_corpus'], num_topics=10, id2word=dictionary, random_state=100, chunksize=100, passes=10, per_word_topics=True)

它生成了10个主题,log_perplexity为:

lda_model.log_perplexity(data_df['bow_corpus']) = -5.325966117835991

但是当我运行一致性模型来计算相干性得分时:

coherence_model_lda = CoherenceModel(model=lda_model, texts=data_df['bow_corpus'].tolist(), dictionary=dictionary, coherence='c_v')
with np.errstate(invalid='ignore'):
    lda_score = coherence_model_lda.get_coherence()

我的LDA分数为nan。这是什么问题?

2个回答

12

已解决! 一致性模型需要原始文本,而不是用于LDA_Model的训练语料库 - 因此,当我运行以下命令时:

coherence_model_lda = CoherenceModel(model=lda_model, texts=data_df['corpus'].tolist(), dictionary=dictionary, coherence='c_v')
with np.errstate(invalid='ignore'):
    lda_score = coherence_model_lda.get_coherence()

我的一致性得分为:0.462

希望这能帮助其他犯同样错误的人。谢谢!


遇到了同样的问题!感谢分享! - dshgna
谢谢!我正在测试它。你等待一致性得分计算了多长时间?我等了不到2个小时,现在还在运行。 - HOA

1

点赞因为这可能是一个问题,但OP在同一解决方案中犯了另一个错误。 - David

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接