Gensim word2vec python3 缺少词汇

Gensim word2vec in python3 missing vocab

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

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 不兼容吗?

你在这两个地方使用的是同一个版本的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

如果您使用的是gensim 3.00+,我们可以使用:

    model.wv.key_to_index

更多信息:

https://github.com/RaRe-Technologies/gensim/wiki/Migrating-from-Gensim-3.x-to-4