在gensim word2vec模型中获得文本给定词嵌入模型的概率

时间:2017-09-06 01:35:35

标签: python nlp gensim word2vec language-model

我正在尝试使用gensim word2vec模型获得最可能的单词序列。我找到了一个提供这些文件的预训练模型:

c('a', 'i', 'k')

这是我的代码试图用这个模型得到句子的概率:

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(" "))

任何人都可以帮我弄清楚如何解决问题。一般来说,我想使用一些预训练模型来获得出现在一起的单词序列的概率。

1 个答案:

答案 0 :(得分:0)

在初始设置和训练后,您无法将模型从使用负采样(例如negative=5, hs=0)切换到使用hierarchical-softmax(例如hs=1, negative=0)。这两个模型使用不同的内部属性,这些属性仅由setup& amp;训练。 (例如,属性syn1仅存在于以分层 - softmax模式创建和训练的模型中。)

由于score()方法目前仅适用于HS模型,因此您只需将其与在该模式下训练的模型一起使用。

(另请注意,单个文本的score()对单个模型的值不能被解释为绝对概率。它只能与针对同一模型的其他文本的得分进行比较,或者与替代模型相同的文本,分数的相对值变得有意义。)