2017-09-06 5 views
1

gensim word2vecモデルを使用して、単語の可能性の高いシーケンスを取得しようとしています。私はこれらのファイルを提供しpretrainedモデルを発見した:gensim word2vecモデルの単語埋め込みモデルのテキストの確率の取得

word2vec.bin 
word2vec.bin.syn0.npy 
word2vec.bin.syn1neg.npy 

これは私のコードは、このモデルで文の確率を取得しようとしている:私はこのエラーを取得しています。このコードを実行中

model = model.wv.load(word_embedding_model_path) 
model.hs = 1 
model.negative = 0 
print model.score(sentence.split(" ")) 

AttributeError: 'Word2Vec' object has no attribute 'syn1' 

誰でも問題の解決方法を理解できますか?一般的に、私はいくつかの事前学習モデルを使用して、一緒に出現する単語のシーケンスの確率を得たいと考えています。

答えて

0

最初のセットアップとトレーニングの後で、ネガサンプリング(たとえばnegative=5, hs=0)からhierarchical-softmax(たとえばhs=1, negative=0)を使用するようにモデルを切り替えることはできません。 2つのモデルは異なる内部プロパティを使用しますが、これらはセットアップ&トレーニングによってのみ作成されます。 (例えば、プロパティsyn1のみ階層ソフトマックスモードで訓練を受けた&を作成されたモデルに存在します。)score()メソッドは、現在のHSモデルのみの機能です

ので、あなただけのモデルでそれを使用する必要があるだろうそのモードで訓練された。

(単一のテキストのscore()からの値は、単一のモデルに対して、同じモデルに対する他のテキストのスコア、または同じテキストとの比較においてのみ、絶対確率として解釈できません代替モデルに対して、スコアの相対値が意味をなされることを意味する)

関連する問題