2017-09-18 5 views
0

je tente d'exécuter le modèle LDA n passe l'objet LDA à la get_coherence() indiquant les erreurserreur tout en identifier la valeur de la cohérence du modèle LDA

x.get_coherence()

*** TypeError: diags() prend au moins 2 arguments (2) donnée

mon code: -

Imodel = models.ldamodel.LdaModel (corpus = corpus, id2word = dictionnaire, num_topics = i, passe = 10)

ldalist.append (Imodel)

x = CoherenceModel (= modèle Imodel, textes = tokenizedTexts, dictionnaire = dictionnaire, la cohérence = cohérence)

cohValue = x.get_coherence()

Répondre

1

la cohérence peut être calculé sans les textes bruts.

Les textes sont juste le corpus "non-vectorisé".

Vous transformez le corpus dans la liste des listes de mots comme celui-ci avant de pouvoir l'utiliser pour la cohérence:

texts = [[dictionary[word_id] for word_id, freq in doc] for doc in corpus] 

construire ensuite des modèles de cohérence et obtenir le résultat:

u_mass = models.CoherenceModel(model=topic_model, corpus=corpus, dictionary=dictionary, coherence='u_mass') 
u_mass_coh = u_mass.get_coherence() 

c_v = models.CoherenceModel(model=topic_model, texts=texts, corpus=corpus, dictionary=dictionary, coherence='c_v') 
c_v_coh = c_v.get_coherence() 

c_uci = models.CoherenceModel(model=topic_model, texts=texts, corpus=corpus, dictionary=dictionary, coherence='c_uci') 
c_uci_coh = c_uci.get_coherence() 

c_npmi = models.CoherenceModel(model=topic_model, texts=texts, corpus=corpus, dictionary=dictionary, coherence='c_npmi') 
c_npmi_coh = c_npmi.get_coherence() 
+0

textes = [[ dictionnaire [word_id] pour word_id, freq dans doc] pour doc dans corpus] textes [[u'mini ', u'major', u'inflammatory ', u'review', u'bowl ', u'disease' , u'involve ', u'virulence', u'aiec ', u'the'], [u'interaction ', u'patient', u'herb ', u'ibd', u'drug ', u' personnes âgées ', u'grow', u 'concern']] topic_model, texts = textes, corpus = corpus, dictionnaire = dictionnaire, cohérence = 'c_v'). get_coherence() *** TypeError: diags() prend au moins 2 arguments (2 donnés) – user3480223