2014-09-18 2 views
0

J'utilise la bibliothèque gensim pour appliquer LDA à un ensemble de documents. En utilisant gensim je peux appliquer LDA à un corpus quel que soit le terme poids: binaire, tf, tf-idf ...Pondération à court terme pour le LDA original dans le gensim

Ma question est, quel est le terme de pondération qui devrait être utilisé pour l'original LDA? Si j'ai bien compris, les poids devraient être des fréquences à terme, mais je ne suis pas sûr.

Répondre

1

Ce devrait être un corpus représenté comme un "sac de mots". Ou, oui, des listes de dénombrements à terme.

Le format correct est celui du corpus défini dans le first tutorial on the Gensim webpage (ils sont vraiment utiles).

A savoir, si vous avez un dictionary tel que défini dans le tutoriel de Radim, et les documents suivants,

doc1 = ['big', 'data', 'technique', 'lots', 'of', 'cash'] 
doc2 = ['this', 'document', 'has', 'words'] 
docs = [doc1, doc2] 

alors votre corpus (pour une utilisation avec LDA) devrait être un objet itérable (par exemple une liste) des listes de tuples de la forme: (dictKey, count), où dk se réfère à la clé du dictionnaire d'un terme, et le nombre est le nombre de fois qu'il se produit dans le document. Cela signifie « document sac de mots » est fait pour vous avec

corpus = [dictionary.doc2bow(doc) for doc in docs] 

Cette fonction doc2bow.

Questions connexes