我创建了一个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。我在这里做错了什么?

最佳答案

解决了!
一致性模型需要原始文本,而不是输入到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


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

关于python - Gensim LDA一致性得分Nan,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/60246570/

10-12 18:24