我正在尝试使用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(" "))
任何人都可以帮我弄清楚如何解决问题。一般来说,我想使用一些预训练模型来获得出现在一起的单词序列的概率。
答案 0 :(得分:0)
在初始设置和训练后,您无法将模型从使用负采样(例如negative=5, hs=0
)切换到使用hierarchical-softmax(例如hs=1, negative=0
)。这两个模型使用不同的内部属性,这些属性仅由setup& amp;训练。 (例如,属性syn1
仅存在于以分层 - softmax模式创建和训练的模型中。)
由于score()
方法目前仅适用于HS模型,因此您只需将其与在该模式下训练的模型一起使用。
(另请注意,单个文本的score()
对单个模型的值不能被解释为绝对概率。它只能与针对同一模型的其他文本的得分进行比较,或者与替代模型相同的文本,分数的相对值变得有意义。)