J'utilise l'implémentation gensim de Word2Vec. J'ai l'extrait de code suivant:
print('training model')
model = Word2Vec(Sentences(start, end))
print('trained model:', model)
print('vocab:', model.vocab.keys())
Lorsque j'exécute cela en python2, cela fonctionne comme prévu. L'impression finale est tous les mots du vocabulaire.
Cependant, si je l'exécute en python3, j'obtiens une erreur:
trained model: Word2Vec(vocab=102, size=100, alpha=0.025)
Traceback (most recent call last):
File "learn.py", line 58, in <module>
train(to_datetime('-4h'), to_datetime('now'), 'model.out')
File "learn.py", line 23, in train
print('vocab:', model.vocab.keys())
AttributeError: 'Word2Vec' object has no attribute 'vocab'
Que se passe-t-il? Gensim Word2vec n'est-il pas compatible avec python3?
Utilisez-vous la même version de gensim aux deux endroits? Gensim 1.0.0 déplace vocab
vers un objet d'assistance, alors que dans les versions antérieures à 1.0.0 de gensim (dans Python 2 ou 3), vous pouvez utiliser:
model.vocab
... dans gensim 1.0.0+, vous devriez plutôt utiliser (dans Python 2 ou 3) ...
model.wv.vocab