我正在做一些報紙文章的主題建模,並在Python3中使用gensim實現了LDA。現在我想爲每個主題創建一個詞雲,每個主題使用前20個詞。我知道我可以打印這些文字,並保存LDA模型,但是有什麼辦法可以保存每個主題的頂部單詞,我可以進一步使用它來生成單詞雲?如何從Python中的LDA模型生成詞雲?
我試圖谷歌,但找不到任何相關信息。任何幫助表示讚賞。
我正在做一些報紙文章的主題建模,並在Python3中使用gensim實現了LDA。現在我想爲每個主題創建一個詞雲,每個主題使用前20個詞。我知道我可以打印這些文字,並保存LDA模型,但是有什麼辦法可以保存每個主題的頂部單詞,我可以進一步使用它來生成單詞雲?如何從Python中的LDA模型生成詞雲?
我試圖谷歌,但找不到任何相關信息。任何幫助表示讚賞。
你可以使用Gensim內置的方法show_topic的LDA模型TOPN話。
lda = models.LdaModel.load('lda.model')
for i in range(0, lda.num_topics):
with open('output_file.txt', 'w') as outfile:
outfile.write('{}\n'.format('TopiC#' + str(i + 1) + ': '))
for word, prob in lda.show_topic(i, topn=20):
outfile.write('{}\n'.format(word.encode('utf-8')))
outfile.write('\n')
這將寫有類似格式此文件:
TopiC#69:
pet
dental
tooth
adopt
animal
puppy
rescue
dentist
adoption
animal
shelter
pet
dentistry
vet
paw
pup
patient
mix
foster
owner
TopiC#70:
periscope
disneyland
disney
snapchat
brandon
britney
periscope
periscope
replay
britneyspear
buffaloexchange
britneyspear
https
meerkat
blab
periscope
kxci
toni
disneyland
location
您可能會或可能不會需要調整這個你的需求,即產量排名前20位的單詞的列表,而不是輸出它到一個文本文件。
在這個崗位的答案給出瞭如何使用原始文本創建字雲一個很好的解釋。 How do I print lda topic model and the word cloud of each of the topics
有什麼辦法可以保存每個主題的熱門詞彙嗎?
是的,有。 jLDADMM輸出每個主題的熱門話題。在version 1.0中,只有頂級主題詞被寫入頂級詞輸出文件,而沒有給出主題的概率。
@JulienBernu是的,我有。模型對象具有主題的屬性,而不是每個主題的單詞。沒有概念上的困難,我只是不知道如何將這些單詞提取到另一個變量中。 –