如何在Python中从LDA模型生成单词云?

时间:2016-11-04 22:25:52

标签: python lda word-cloud

我正在报纸上做一些主题建模,并在Python3中使用gensim实现了LDA。现在我想为每个主题创建一个词云,每个主题使用前20个单词。我知道我可以打印单词,并保存LDA模型,但有没有办法只保存每个主题的顶部单词,我可以进一步用它来生成单词云?

我试图谷歌,但找不到任何相关的东西。任何帮助表示赞赏。

3 个答案:

答案 0 :(得分:3)

您可以使用Gensim的内置方法show_topic从LDA模型中获取topn单词。

TextViews

这将写出一个格式与此类似的文件:

listOfSpannables.get(indexLocation).setSpan(new ForegroundColorSpan(Color.HSVToColor(listOfHSVs.get(indexLocation)[i])), i, i+1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

您可能需要也可能不需要根据需要进行调整,即产生前20个单词的列表,而不是将其输出到文本文件中。

这篇文章中的答案很好地解释了如何使用原始文本来创建单词云。 How do I print lda topic model and the word cloud of each of the topics

答案 1 :(得分:0)

有没有办法只保存每个主题的顶级单词?

是的。 jLDADMM输出每个主题的热门主题词。在version 1.0中,只有顶级单词会写在顶级单词输出文件中,而不会给出主题的概率。

答案 2 :(得分:0)

您还可以考虑使用pyldavis包,该包可用于可视化通过gensim生成的LDA模型。示例显示为here