在 gensim 中加载 Word2Vec 模型时出错
Error while loading Word2Vec model in gensim
我在加载 word2vec 存储库中可用的 gensim 模型时收到 AttributeError
:
from gensim import models
w = models.Word2Vec()
w.load_word2vec_format('GoogleNews-vectors-negative300.bin', binary=True)
print w["queen"]
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-3-8219e36ba1f6> in <module>()
----> 1 w["queen"]
C:\Anaconda64\lib\site-packages\gensim\models\word2vec.pyc in __getitem__(self, word)
761
762 """
--> 763 return self.syn0[self.vocab[word].index]
764
765
AttributeError: 'Word2Vec' object has no attribute 'syn0'
这是一个已知问题吗?
解决了以下问题:
from gensim import models
w = models.Word2Vec.load_word2vec_format('GoogleNews-vectors-negative300.bin', binary=True)
print w["queen"]
为了在不同的训练算法(Word2Vec、Fastext、WordRank、VarEmbed)之间共享词向量查询代码,作者将词向量的存储和查询分离到一个单独的 class KeyedVectors。
word2vec class 中的两个方法和多个属性已被弃用。
方法
- load_word2vec_format
- save_word2vec_format
属性
- syn0norm
- syn0
- 词汇
- index2word
这些已移至 KeyedVectors class。
升级到此版本后,您可能会遇到有关已弃用方法或缺少属性的异常。
要删除异常,您应该使用
KeyedVectors.load_word2vec_format (instead ofWord2Vec.load_word2vec_format)
word2vec_model.wv.save_word2vec_format (instead of word2vec_model.save_word2vec_format)
model.wv.syn0norm instead of (model.syn0norm)
model.wv.syn0 instead of (model.syn0)
model.wv.vocab instead of (model.vocab)
model.wv.index2word instead of (model.index2word)
目前,由于 models.Word2Vec
已被弃用,您需要使用 models.KeyedVectors.load_word2vec_format
而不是 models.Word2Vec.load_word2vec_format
,如下所示。
from gensim import models
w = models.KeyedVectors.load_word2vec_format('model.bin', binary=True)
我在加载 word2vec 存储库中可用的 gensim 模型时收到 AttributeError
:
from gensim import models
w = models.Word2Vec()
w.load_word2vec_format('GoogleNews-vectors-negative300.bin', binary=True)
print w["queen"]
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-3-8219e36ba1f6> in <module>()
----> 1 w["queen"]
C:\Anaconda64\lib\site-packages\gensim\models\word2vec.pyc in __getitem__(self, word)
761
762 """
--> 763 return self.syn0[self.vocab[word].index]
764
765
AttributeError: 'Word2Vec' object has no attribute 'syn0'
这是一个已知问题吗?
解决了以下问题:
from gensim import models
w = models.Word2Vec.load_word2vec_format('GoogleNews-vectors-negative300.bin', binary=True)
print w["queen"]
为了在不同的训练算法(Word2Vec、Fastext、WordRank、VarEmbed)之间共享词向量查询代码,作者将词向量的存储和查询分离到一个单独的 class KeyedVectors。
word2vec class 中的两个方法和多个属性已被弃用。
方法
- load_word2vec_format
- save_word2vec_format
属性
- syn0norm
- syn0
- 词汇
- index2word
这些已移至 KeyedVectors class。
升级到此版本后,您可能会遇到有关已弃用方法或缺少属性的异常。
要删除异常,您应该使用
KeyedVectors.load_word2vec_format (instead ofWord2Vec.load_word2vec_format)
word2vec_model.wv.save_word2vec_format (instead of word2vec_model.save_word2vec_format)
model.wv.syn0norm instead of (model.syn0norm)
model.wv.syn0 instead of (model.syn0)
model.wv.vocab instead of (model.vocab)
model.wv.index2word instead of (model.index2word)
目前,由于 models.Word2Vec
已被弃用,您需要使用 models.KeyedVectors.load_word2vec_format
而不是 models.Word2Vec.load_word2vec_format
,如下所示。
from gensim import models
w = models.KeyedVectors.load_word2vec_format('model.bin', binary=True)