Quand je former mon modèle LDA en tant que telComment obtenir une distribution de sujet complète pour un document utilisant Gensim LDA?
dictionary = corpora.Dictionary(data)
corpus = [dictionary.doc2bow(doc) for doc in data]
num_cores = multiprocessing.cpu_count()
num_topics = 50
lda = LdaMulticore(corpus, num_topics=num_topics, id2word=dictionary,
workers=num_cores, alpha=1e-5, eta=5e-1)
Je veux obtenir une distribution de sujet complet pour tous num_topics
pour chaque document. C'est, dans ce cas particulier, je veux que chaque document ait 50 sujets contribuant à la distribution et Je veux être en mesure d'accéder à la contribution de tous les 50 sujets. Ce résultat est ce que LDA devrait faire si adhérant strictement aux mathématiques de LDA. Cependant, le gensim ne sort que les sujets qui dépassent un certain seuil comme indiqué here. Par exemple, si je tente
lda[corpus[89]]
>>> [(2, 0.38951721864890398), (9, 0.15438596408262636), (37, 0.45607443684895665)]
qui ne montre que 3 sujets qui contribuent le plus à documenter 89. J'ai essayé la solution dans le lien ci-dessus, mais cela ne fonctionne pas pour moi. J'ai toujours la même sortie:
theta, _ = lda.inference(corpus)
theta /= theta.sum(axis=1)[:, None]
produit la même sortie c'est-à-dire seulement 2,3 sujets par document.
Ma question est de savoir comment puis-je modifier ce seuil pour que je puisse accéder au COMPLET distribution de sujet pour chaque document? Comment puis-je accéder à la distribution complète du sujet, même si la contribution d'un sujet à un document est insignifiante? La raison pour laquelle je veux la distribution complète est que je peux effectuer une recherche KL similarity entre la distribution des documents.
Merci à l'avance