web-dev-qa-db-ja.com

gensimでWord2Vecモデルの読み込み中にエラーが発生しました

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'

これは既知の問題ですか?

10
Tarantula

次の問題を修正しました:

from gensim import models
w = models.Word2Vec.load_Word2vec_format('GoogleNews-vectors-negative300.bin', binary=True)
print w["queen"]
11
Tarantula

異なるトレーニングアルゴ(Word2Vec、Fastext、WordRank、VarEmbed)間でWordベクトルクエリコードを共有するために、作成者はWordベクトルのストレージとクエリを個別のクラスKeyedVectorsに分離しました。

Word2vecクラスの2つのメソッドといくつかの属性は廃止されました。

方法

  • load_Word2vec_format
  • save_Word2vec_format

の属性

  • syn0norm
  • syn0
  • 語彙
  • index2Word

これらはKeyedVectorsクラスに移動されました。

このリリースにアップグレードした後、非推奨のメソッドまたは欠落している属性に関する例外が発生する場合があります。

例外を削除するには、使用する必要があります

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)
3
Prakhar Agarwal

現在、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)
0