我正在使用Gensim在python中构建LDA,我正在努力增加每个主题打印的单词数量,默认值为10.我想要20个主题,每个主题30个单词。任何建议将不胜感激 :)
# train the LDA model
lda_model = gensim.models.LdaMulticore(bow_corpus, num_topics=20, id2word=dictionary, passes=2, workers=2)
# check out the topics
for idx, topic in lda_model.print_topics(-1):
print('Topic: {} \nWords: {}'.format(idx, topic))
你有两个选择:show_topics
和print_topics
。
来自gensim ldamulticore documentation:
show_topics
(print_topics
的一个更可定制的别名,在你的情况下给出更漂亮的输出)有参数num_words
- 你想要显示的单词数,按重要性排序。
for idx, topic in lda_model.show_topics(idx, num_words=30):
print('Topic: {} \nWords: {}'.format(idx, topic))
你也可以省略idx
- 输出不受它的影响。 print_topics
的工作方式与此类似,但默认显示10个主题:
for idx, topic in lda_model2.show_topics(num_topics=20, num_words=30):
print('Topic: {} \nWords: {}'.format(idx, topic))