2015-12-23 3 views
8

Ich gehe jetzt durch LDA (Latent Dirichlet Allocation) Thema Modellierung Methode zur Hilfe bei der Extraktion von Themen aus einer Reihe von Dokumenten. Wie ich anhand des unten stehenden Links verstanden habe, handelt es sich hierbei um einen unüberwachten Lernansatz zur Kategorisierung/Kennzeichnung jedes der Dokumente mit den extrahierten Themen.Thema Modellierung - Zuweisen eines Dokuments mit Top 2 Themen als Kategoriebezeichnung - sklearn Latente Dirichlet-Zuweisung

Topic extraction with Non-negative Matrix Factorization and Latent Dirichlet Allocation

In dem Codebeispiel in diesem Link angegeben, gibt es eine Funktion, um die Top-Worte definiert mit jedem der identifizierten Thema verbunden zu bekommen.

sklearn.__version__ 

Out [41]: '0.17'

from sklearn.decomposition import LatentDirichletAllocation 


def print_top_words(model, feature_names, n_top_words): 
    for topic_idx, topic in enumerate(model.components_): 
     print("TopiC#%d:" % topic_idx) 
     print(" ".join([feature_names[i] 
         for i in topic.argsort()[:-n_top_words - 1:-1]])) 
    print() 

print("\nTopics in LDA model:") 
tf_feature_names = tf_vectorizer.get_feature_names() 
print_top_words(lda, tf_feature_names, n_top_words) 

Meine Frage ist. Gibt es irgendeine Komponente oder Matrix des gebauten Modells LDA, woher können wir die Dokument-Thema-Assoziation bekommen?

Zum Beispiel muss ich Top 2 Themen mit jedem Dokument als Dokument Label/Kategorie für dieses Dokument. Gibt es eine Komponente, um die Verteilung von Themen in einem Dokument zu finden, ähnlich der model.components_ für das Finden von Wörterverteilung innerhalb eines Themas.

Antwort

9

Sie können die Dokument-Themen-Zuordnung mithilfe der Funktion transform (X) der LDA-Klasse berechnen.

Auf dem Beispielcode, wäre dies sein:

doc_topic_distrib = lda.transform(tf) 

mit LDA der Einbau LDA und tf die Eingangsdaten Sie

+0

Dank verwandeln wollen! Arbeitete wie ein Charme – prashanth

+0

Ich bin ein bisschen verwirrt auf diese Lösung. Ich hatte gehofft, eine Ausgabe zu bekommen, die die mit jedem Dokument verbundenen Themen zeigt. So etwas wie dieses Dokument # 1: Thema: [1, 2, 3] – moku

+0

Was Sie bekommen, ist die Verteilung der Themen für jedes Dokument. Jede Zeile entspricht also einem Dokument und jede Spalte einem Thema. Um das gewünschte Ergebnis zu erhalten, können Sie jede Zeile betrachten und die Spaltenindizes der drei größten Werte abrufen. Das würde Ihnen die drei wichtigsten Themen pro Dokument geben. – clemgaut

Verwandte Themen