2017-02-28 339 views
6

我正在使用Word2Vec的gensim實現。我有以下代碼片段:Gensim word2vec在python3失蹤vocab

print('training model') 
model = Word2Vec(Sentences(start, end)) 
print('trained model:', model) 
print('vocab:', model.vocab.keys()) 

當我在python2中運行它,它按預期運行。最終的印刷品是詞彙表中的所有單詞。

但是,如果我在python3運行它,我得到一個錯誤:

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' 

這是怎麼回事? gensim word2vec與python3不兼容?

回答

12

您是否在兩個地方使用相同版本的gensim? Gensim 1.0.0移動vocab到輔助對象,因此而在預1.0.0版本gensim的(在Python 2或3),你可以使用:

model.vocab 

...在gensim 1.0.0+你應該改用(在Python 2或3中)...

model.wv.vocab