D'une manière ou d'une autre, cela ... Il semble que vous puissiez jouer avec des passes ou des itérations J'ai vraiment peur car je ne connais pas le contenu tel que l'ajustement des paramètres du calcul numérique.
Où est l'erreur
model_lda = LdaModel(corpus=corpus, num_topics=30, id2word=corpus.id2word)
WARNING:gensim.models.ldamodel:too few updates, training might not converge; consider increasing the number of passes or iterations to improve accuracy
Jetez un œil à Code source Le problème est de lancer la dernière méthode de mise à jour
Dans la méthode de mise à jour_Près de la ligne 616
if updates_per_pass * passes < 10:
logger.warning("too few updates, training might not converge; consider "
"increasing the number of passes or iterations to improve accuracy")
passes utilise le paramètre init passe de LdaModel tel quel. 1 est attribué par défaut. updates_per_pass ... Mmm ...
Dans la méthode de mise à jour_Ligne 607
updates_per_pass = max(1, lencorpus / updateafter)
Pour lencorpus, la valeur de len (corpus) est attribuée près de la ligne 585 de la méthode de mise à jour. Le point est le nombre de documents. Le nombre de phrases lorsque cet avertissement est émis est de 4019. updateafter...
Dans la méthode de mise à jour_Autour de la ligne 599
if update_every:
updatetype = "online"
updateafter = min(lencorpus, update_every * self.numworkers * chunksize)
else:
updatetype = "batch"
updateafter = lencorpus
S'il n'y a pas d'argument spécifié pour la méthode de mise à jour, La même chose que le paramètre init update_every est affecté à update_every. La valeur initiale est 1. Si vous n'avez rien fait, le type de mise à jour sera en ligne. self.numworkers contient 1 si le paramètre init distribué reste False.
chunksize est ...
Dans la méthode de mise à jour_595 lignes
chunksize = min(lencorpus, self.chunksize)
self.chunksize est identique au paramètre init chunksize. La valeur par défaut est 2000.
En d'autres termes ... updateafter = min(4019, 112000) = 2000 updates_per_pass = max(1, 4019 / 2000) ≒ 2 Ainsi, la formule d'évaluation à gauche de if est 2 * 1. Out.
Les mesures ・ Augmentez les passes. Dans ce cas, passe = 5 et vous ne vous fâchez pas. -Reduce updatfter = diminuer update_every ou chunksize. _ Dans ce cas, si vous ne modifiez que la taille du morceau, vous ne vous fâcherez pas si vous la définissez à environ 400.
Je suis fatigué de ce paramètre, alors je le chercherai un autre jour.
Recommended Posts