1
Ich arbeite derzeit an LDA Logarithmus in Python. Ich möchte die Themen in eine Liste der besten 20 Wörter in jedem Thema umwandeln. Ich habe unter dem Code versucht, aber unterschiedliche Ausgaben bekommen. Ich möchte meine Ausgabe im folgenden Format: topic=2,words=20
.Wie konvertiert man die Themen in nur eine Liste der Top 20 Wörter in jedem Thema in LDA in Python
['men', 'kill', 'soldier', 'order', 'patient', 'night', 'priest', 'becom', 'new', 'speech', 'friend', 'decid', 'young', 'ward', 'state', 'front', 'would', 'home', 'two', 'father']
["n't", 'go', 'fight', 'doe', 'home', 'famili', 'car', 'night', 'say', 'next', 'ask', 'day', 'want', 'show', 'goe', 'friend', 'two', 'polic', 'name', 'meet']
ich unten Ausgang bekam:
["(u'ngma', 0.034841332255132154)", "(u'video', 0.0073756817356584745)", "(u'youtube', 0.006524039676605746)", "(u'liked', 0.0065240394176856644)",]
["(u'ngma', 0.024537057880333127)", "(u'photography', 0.0068263432438681482)", "(u'tvallwhite', 0.0029535361359022566)", "(u'3', 0.0029252727655122079)"]
Mein Code:
`ldamodel = Lda(doc_term_matrix, num_topics=2, id2word = dictionary,passes=50)
lda=ldamodel.print_topics(num_topics=2, num_words=3)
f=open('LDA.txt','w')
f.write(str(lda))
f.close()
topics_matrix = ldamodel.show_topics(formatted=False,num_words=10)
topics_matrix = np.array((topics_matrix),dtype=list)
topic_words = topics_matrix[:, 1]
for i in topic_words:
print([str(word) for word in i])
print()`
edit-1:
topic_words = []
for i in range(3):
tt = ldamodel.get_topic_terms(i,10)
topic_words.append([pair[0] for pair in tt])
print topic_words
in nicht Folge Ausgang erwartet:
[[1897, 135, 130, 127, 70, 162, 445, 656, 608, 1019], [1897, 364, 56, 1236, 181, 172, 449, 48, 15, 18], [1897, 163, 11, 70, 166, 345, 480, 9, 60, 351]]
Code Versuchen versucht Ausgang erwartet nur knapp sein Ziel zu bekommen. check edit-1 – aneeket
Aktualisiert den Beitrag. –