Tuotuo perpustakaan pemodelan topik yang ditulis dalam Python. Tuotuo juga anak laki -laki yang lucu, anak saya, yang sekarang berusia 6 bulan.
Gunakan PIP Paket untuk menginstal Tuotuo. Anda dapat menemukan distribusi PYPI di sini.
pip install TuoTuo --upgradeSaat ini, perpustakaan hanya mendukung pemodelan topik melalui alokasi Dirichlet laten (LDA). Seperti yang kita ketahui, LDA dapat diimplementasikan menggunakan pengambilan sampel Gibbs dan inferensi variasional, kami memilih yang terakhir karena ini secara matematis lebih canggih
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 -> injectionSeperti yang dapat kita lihat dari 5 kata teratas, kita dapat dengan mudah menyadari pemetaan berikut:
Topik 0 -> Topik Sains 1 -> Hukum Topik 2 -> Topik Seni 3 -> Sport Topic 4 -> Kesehatan
Permintaan tarik dipersilakan. Untuk perubahan besar, buka masalah terlebih dahulu untuk membahas apa yang ingin Anda ubah.
Karena tidak ada perpustakaan pemodelan topik dewasa yang tersedia, kami juga mencari kolaborator yang ingin berkontribusi ke arah berikut:
Sebagian besar pekerjaan diselesaikan untuk bagian ini, kita masih perlu mengerjakan:
Memperluas perpustakaan untuk mendukung inferensi variasional saraf mengikuti kertas ICML ini: inferensi variasional saraf untuk pemrosesan teks
Perpanjang pelatihan untuk mendukung pembelajaran penguatan mengikuti makalah ACL ini: Model topik saraf dengan pembelajaran penguatan
Mit