Sujet de la distribution: Comment voyons-nous le document appartiennent à quel sujet après avoir fait LDA en python
Je suis en mesure d'exécuter le LDA code de gensim et a obtenu le top 10 des sujets avec leurs mots-clés.
Maintenant, je voudrais aller un peu plus loin pour voir quelle est la précision de la LDA algo est en voyant ce qui est le document qu'ils cluster dans chaque rubrique. Est-ce possible dans gensim LDA?
Fondamentalement, je voudrais faire quelque chose comme cela, mais en python et utilisant gensim.
LDA avec topicmodels, comment puis-je voir quels sujets différents documents appartiennent?
gensim
est cool et simple de la bibliothèque. Le dev, Radim est aussi un beau mec pour une approche au sujet de sa bibliothèque. avez-vous besoin de quelque chose que regrouper les documents par thèmes?
Vous devez vous connecter pour publier un commentaire.
En utilisant les probabilités de les sujets, vous pouvez essayer de définir un certain seuil et l'utiliser comme un regroupement de référence, mais je suis sûr qu'il y a de meilleures façons de faire de regroupement que ce "hacky" la méthode.
[out]
:Juste pour rendre les choses plus claires:
Le code ci-dessus est la somme de la note de tous les mots et sur tous les sujets, pour tous les documents.
Puis normaliser la somme par le nombre de scores.
scores = list(chain(*[[score for topic,score in topic] \ for topic in [doc for doc in lda_corpus]])) threshold = sum(scores)/len(scores)
[j for i,j in zip(lda_corpus,documents) if i[0][1] > threshold]
à l' [0][1] fait partie?lda_corpus
, à l'intérieur de l'index est l'accès à la rubrique score. En fait, vous devez imprimer vous-même essayez cetteprint [i for i in lda_corpus]
puis[i[1] for i in lda_corpus
, puis essayezlda_corpus[0][1]
,Si vous souhaitez utiliser l'astuce de
dans la réponse précédente, par alvas, assurez-vous de définir minimum_probability=0 dans LdaModel
Autrement la dimension de lda_corpus et les documents peuvent ne pas s'entendre depuis gensim supprimera toute corpus avec une probabilité inférieure à minimum_probability.
Une autre façon de documents de groupe sur des sujets consiste à attribuer les rubriques en fonction de la probabilité maximale
Note
lda[mm]
est grosso modo une liste de listes, ou matrice 2D. Le nombre de lignes est le nombre de documents et le nombre de colonnes est le nombre de sujets. Chaque élément de la matrice est un n-uplet de la forme(3,0.82)
par exemple. Ici 3 se réfère à la rubrique index et de 0,82 la probabilité correspondante à ce sujet. Par défaut,minimum_probability=0.01
et tout n-uplet avec une probabilité inférieure à 0,01 est omis danslda[mm]
. Vous pouvez mettre 1/#sujets si vous utilisez la méthode de regroupement avec un maximum de probabilité.lda_corpus[i][j] sont de la forme [(0,t1),(0,t2),..., (0,t10),....(n,t10)] où le 1er terme désigne l'index du document et le 2ème terme désigne la probabilité du sujet dans ce document.