Gensim word2vec在python3缺少词汇

Sam*_*Lee 15 python gensim word2vec

我正在使用Word2Vec的gensim实现.我有以下代码片段:

print('training model')
model = Word2Vec(Sentences(start, end))
print('trained model:', model)
print('vocab:', model.vocab.keys())
Run Code Online (Sandbox Code Playgroud)

当我在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'
Run Code Online (Sandbox Code Playgroud)

到底是怎么回事?gensim word2vec与python3不兼容吗?

goj*_*omo 26

您是否在这两个地方使用相同版本的gensim?Gensim 1.0.0移动vocab到辅助对象,因此在1.0.0之前版本的gensim(在Python 2或3中)中,您可以使用:

model.vocab
Run Code Online (Sandbox Code Playgroud)

...在gensim 1.0.0+中你应该使用(在Python 2或3中)......

model.wv.vocab
Run Code Online (Sandbox Code Playgroud)