Tuotuo Eine in Python geschriebene Thema Modeling -Bibliothek. Tuotuo ist auch ein süßer Junge, mein Sohn, der jetzt 6 Monate alt ist.
Verwenden Sie den Paket -Manager -PIP, um Tuotuo zu installieren. Sie können die PYPI -Verteilung hier finden.
pip install TuoTuo --upgradeDerzeit unterstützt die Bibliothek nur die Themenmodellierung über die Latent Dirichlet Allocation (LDA). Art
import torch as tr
from tuotuo . generator import doc_generator
gen = doc_generator (
M = 100 ,
# we sample 100 documents
L = 20 ,
# each document would contain 20 pre-defined words
topic_prior = tr . tensor ([ 1 , 1 , 1 , 1 , 1 ], dtype = tr . double )
# we use a exchangable Dirichlet Distribution as our topic prior,
# that is a uniform distribution on 5 topics
)
train_docs = gen . generate_doc () from tuotuo . lda_model import LDASmoothed
import matplotlib . pyplot as plt
lda = LDASmoothed (
num_topics = 5 ,
)
perplexes = lda . fit (
train_docs ,
sampling = False ,
verbose = True ,
return_perplexities = True ,
)
plt . plot ( perplexes )
= >= >= >= >= >= >= >= >
Topic Dirichlet Prior , Alpha
1
Exchangeable Word Dirichlet Prior , Eta
1
Var Inf - Word Dirichlet prior , Lambda
( 5 , 40 )
Var Inf - Topic Dirichlet prior , Gamma
( 100 , 5 )
Init perplexity = 84.99592157507153
End perplexity = 45.96696541539976 
for topic_index in range ( lda . _lambda_ . shape [ 0 ]):
top5 = np . argsort ( lda . _lambda_ [ topic_index ,:],)[ - 5 :]
print ( f"Topic { topic_index } " )
for i , idx in enumerate ( top5 ):
print ( f"Top { i + 1 } -> { lda . train_doc . idx_to_vocab [ idx ] } " )
print ()
= >= >= >= >= >= >= >= >
Topic 0
Top 1 -> physical
Top 2 -> quantum
Top 3 -> research
Top 4 -> scientst
Top 5 -> astrophysics
Topic 1
Top 1 -> divorce
Top 2 -> attorney
Top 3 -> court
Top 4 -> bankrupt
Top 5 -> contract
Topic 2
Top 1 -> content
Top 2 -> Craftsmanship
Top 3 -> concert
Top 4 -> asymmetrical
Top 5 -> Symmetrical
Topic 3
Top 1 -> recreation
Top 2 -> FIFA
Top 3 -> football
Top 4 -> Olympic
Top 5 -> athletics
Topic 4
Top 1 -> fever
Top 2 -> appetite
Top 3 -> contagious
Top 4 -> decongestant
Top 5 -> injectionWie wir aus den Top 5 Wörtern sehen können, können wir leicht die folgende Zuordnung erkennen:
Thema 0 -> Wissenschaftsthema 1 -> Rechts Thema 2 -> Kunstthema 3 -> Sportthema 4 -> Gesundheit
Pull -Anfragen sind willkommen. Für wichtige Änderungen öffnen Sie zuerst ein Problem, um zu besprechen, was Sie ändern möchten.
Da es keine reife Themenmodellierungsbibliothek gibt, suchen wir auch nach Mitarbeitern, die in die folgenden Anweisungen beitragen möchten:
Der größte Teil der Arbeiten ist für diesen Teil abgeschlossen. Wir müssen noch daran arbeiten:
Erweitern Sie die Bibliothek, um die neuronale Variationsinferenz nach diesem ICML -Papier zu unterstützen: neuronale Variationsinferenz für die Textverarbeitung
Erweitern Sie das Training, um das Verstärkungslernen nach diesem ACL -Papier zu unterstützen: Neuronales Themenmodell mit Verstärkungslernen
MIT