2017-09-06 92 views
1

我想用gensim word2vec模型獲得最可能的單詞序列。我發現了一個預訓練的模型,它提供了以下文件:在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)的模型切換到使用層次軟極限(例如hs=1, negative=0)。這兩個模型使用不同的內部屬性,這些屬性僅由設置&培訓創建。 (例如,物業syn1在創建&訓練有素的分層模式添加Softmax的模型只存在。)

由於score()方法也是目前唯一的功能爲HS模式,你只需要配車型使用在那種模式下接受過培訓。 (還請注意,單個文本的score()與單個模型的值不能被解釋爲絕對概率,而僅僅是與其他文本與相同模型或相同文本的分數進行比較針對替代模型,評分的相對價值變得有意義。)

相關問題