2017-07-08 3 views
0

J'ai appliqué LDA du paquet de gensim sur le corpus et j'obtiens la probabilité avec chaque terme. Mon problème est comment je reçois seulement les termes sans leur probabilité. Voici mon code:Obtenir les termes de sujets seulement avec LDA

K = ldamodel.num_topics 
t = 0 
topicWordProbMat = ldamodel.print_topics(K) 
for topic_dist in topicWordProbMat: 
    print('TopiC#',t,topic_dist) 
    t = t + 1 

La sortie comme exemple est comme ceci:

TopiC# 0 '0.181*things + 0.181*amazon + 0.181*good 
TopiC# 1 '0.031*nokia + 0.031*microsoft + 0.031*apple 

et je veux comme ceci:

TopiC# 0 things amazon good 
TopiC# 1 nokia microsoft apple 

une idée? Merci d'avance

Répondre

0

Gensim a une méthode show_topic qui affichera n mots les plus probables pour chaque sujet. Les éléments suivants renvoient les 10 premiers mots de chaque sujet sous forme de dict avec des paires de valeurs clés.

topn_words = {'Topic_' + str(i): [word for word, prob in lda.show_topic(i, topn=10)] for i in range(0, lda.num_topics)} 

question similaire ici: How to generate word clouds from LDA models in Python?