Python 如何在gensim的LDA模型中获取主题编号

Python 如何在gensim的LDA模型中获取主题编号,python,nlp,lda,gensim,Python,Nlp,Lda,Gensim,我在一个文本语料库上使用gensim训练了LDA模型 >lda_model = gensim.models.ldamodel.LdaModel(text_corpus, 10) 现在,如果要推断一个新的文本文档text\u sparse\u向量,我必须这样做 >lda_model[text_sparse_vector] [(0, 0.036479568280206563), (3, 0.053828073308160099), (7, 0.021936618544365804),

我在一个文本语料库上使用gensim训练了LDA模型

>lda_model = gensim.models.ldamodel.LdaModel(text_corpus, 10)
现在,如果要推断一个新的文本文档text\u sparse\u向量,我必须这样做

>lda_model[text_sparse_vector]
[(0, 0.036479568280206563), (3, 0.053828073308160099), (7, 0.021936618544365804), (11, 0.017499953446152686), (15, 0.010153090454090822), (16, 0.35967516223499041), (19, 0.098570351997275749), (26, 0.068550060242800928), (27, 0.08371562828754453), (28, 0.14110945630261607), (29, 0.089938130046832571)]
但是我如何获得每个相应主题的单词分布呢。例如,我如何知道主题16的前20个单词

类gensim.models.ldamodel.ldamodel有一个名为show_topics(topics=10,topn=10,log=False,formatted=True)的方法,但正如文档所述,它显示了随机选择的主题列表

是否有一种方法可以链接或打印我可以将推断出的主题编号映射到单词分布

lda.print_topic(x, topn=20) 
将为您提供主题x的前20个功能


将为您提供主题x的前20项功能,或者如果您有主题K,则:

打印(范围(k)]内k的str([“Topic#”+str(k)+:\n“+str(lda.show_Topic(k,topn=20)))


将使您的输出难看,但排序一致。

或者如果您有
K
主题,则:

打印(范围(k)]内k的str([“Topic#”+str(k)+:\n“+str(lda.show_Topic(k,topn=20)))


将使您的输出难看,但排序一致。

这里的最后一行将更改每个主题的字数。希望这有帮助:)

#训练并保存LDA模型
lda_model=gensim.models.LdaMulticore(bow_语料库,num_主题=20,id2word=dictionary,passs=2,workers=2,chunksize=400000)
#查看主题
对于idx,lda_模型中的主题。打印_主题(-1):
打印('主题:{}\n单词:{}'。格式(idx,主题))
#将“30”换成任意数字,这一行将为每个主题提供这么多单词:)

lda_model.print_topics(idx,30)
此处的最后一行将更改每个主题的字数。希望这有帮助:)

#训练并保存LDA模型
lda_model=gensim.models.LdaMulticore(bow_语料库,num_主题=20,id2word=dictionary,passs=2,workers=2,chunksize=400000)
#查看主题
对于idx,lda_模型中的主题。打印_主题(-1):
打印('主题:{}\n单词:{}'。格式(idx,主题))
#将“30”换成任意数字,这一行将为每个主题提供这么多单词:)
lda\u model.print\u topics(idx,30)
您可以使用
show\u topic()
。看这里:我认为排序只是随意的,但我可能是错的。您到底想做什么?可以使用
show\u topic()
。看这里:我认为排序只是随意的,但我可能是错的。你到底想做什么?