2017-07-24 4 views
3

Selon le gensim.models.Word2VecAPI reference, "compute_loss" est un mot-clé valide. Cependant, j'obtiens une erreur qui indique que c'est unexpected keyword.Pourquoi Word2Vec de gensim ne reconnaît pas le mot clé 'compute_loss'?

MISE À JOUR:

La classe Word2Vec sur GitHub does have le mot-clé 'compute_loss', mais ma bibliothèque locale ne fonctionne pas. Je vois que la documentation et la bibliothèque de gensim s'écartent l'une de l'autre. J'ai trouvé que le fichier win-64/gensim-2.2.0-np113py35_0.tar.bz2 dans conda repository n'est pas à jour.

Cependant, après la désinstallation de gensim avec conda, pip install gensim n'a rien changé car cela ne fonctionne toujours pas.

Apparemment, la source sur GitHub et la bibliothèque distribuée sont différentes, mais le tutoriel semble supposer que le code est comme sur GitHub.

/FIN DE MISE A JOUR

je l'ai suivi et téléchargé le tutorial notebook on Word2Vec.

En entrée [25], première cellule après le titre "Training Loss Computation", j'obtiens une erreur dans l'initialiseur de la classe Word2Vec.

Entrée:

# instantiating and training the Word2Vec model 
model_with_loss = gensim.models.Word2Vec(sentences, min_count=1, 
compute_loss=True, hs=0, sg=1, seed=42) 

# getting the training loss value 
training_loss = model_with_loss.get_latest_training_loss() 
print(training_loss) 

Sortie:

--------------------------------------------------------------------------- 
TypeError         Traceback (most recent call last) 
<ipython-input-25-c2933abf4b08> in <module>() 
     1 # instantiating and training the Word2Vec model 
----> 2 model_with_loss = gensim.models.Word2Vec(sentences, min_count=1, compute_loss=True, hs=0, sg=1, seed=42) 
     3 
     4 # getting the training loss value 
     5 training_loss = model_with_loss.get_latest_training_loss() 

TypeError: __init__() got an unexpected keyword argument 'compute_loss' 

je gensim 2.2.0 installé via Conda et un nouveau nouveau clone du référentiel gensim (avec le bloc-notes de tutoriel). J'utilise 64 bits Python 3.5.3 sur Windows 10. (Anaconda)

J'ai essayé de rechercher d'autres avec la même rencontre, mais je n'ai pas réussi.

Savez-vous la raison de ceci, et comment résoudre ce problème? Apparemment, la source sur GitHub et la librairie distribuée sont différentes, mais le tutoriel semble supposer que le code est comme sur GitHub. J'ai également précédemment posted the question dans la liste de diffusion officielle.

Répondre

2

MISE À JOUR:compute_loss a été ajouté dans la version 2.3.0, le 25 juillet. /UPDATE

Le bloc-notes référencé dans la question est sur la branche développer. La branche master a un notebook qui est compatible avec la dernière distribution.

Le paramètre compute_loss a été ajouté dans this commit, le 19 juin. Le last upload à PYPI était le 21 juin, seulement deux jours plus tard. (À partir d'aujourd'hui). Le compute_loss n'est pas inclus dans la distribution. (La dernière validation dans v2.2.0 est this.

Je suppose que la solution est d'attendre la prochaine version de gensim, et de télécharger le code du dépôt dans le temps. Toutefois, cela peut entraîner des problèmes pour que la version FEST de GIM fonctionne, au moins sous Windows. Voir Using Gensim shows "Slow version of gensim.models.doc2vec being used".

Comment installer gensim de GitHub est expliqué dans leur install documentation.