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)間でWordベクトルクエリコードを共有するために、作成者はWordベクトルのストレージとクエリを個別のクラスKeyedVectorsに分離しました。
Word2vecクラスの2つのメソッドといくつかの属性は廃止されました。
方法
の属性
これらは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)
現在、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)