如何在Gensim LDA中获取每个文档的最高主题概率?
如何让Gensim的get_document_topics仅返回每个文档的最高概率主题
你只需要对每个文档返回的主题列表,提取出概率最高的那一组即可。可以直接用Python的max()函数,通过指定key参数按概率值排序取最大值,修改后的代码如下:
tops = ldamodel.get_document_topics(bow_corpus, minimum_probability=0.3, minimum_phi_value=None, per_word_topics=False) for doc_topics in tops: # 按概率值取最大的主题-概率对 highest_topic = max(doc_topics, key=lambda item: item[1]) print(highest_topic)
效果说明
- 对于原本只有单个主题的文档(比如
[(2, 0.99672836)]),输出保持不变 - 对于有多个主题的文档(比如
[(0, 0.32443014), (2, 0.67167395)]),会输出概率最高的(2, 0.67167395)
内容的提问来源于stack exchange,提问作者Rei
相关产品推荐
相关产品推荐

