Python gensim-word2vec模型中文本给定词嵌入概率的获取

Python gensim-word2vec模型中文本给定词嵌入概率的获取,python,nlp,gensim,word2vec,language-model,Python,Nlp,Gensim,Word2vec,Language Model,我正在尝试使用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.s

我正在尝试使用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'

谁能帮我找出解决这个问题的办法吗。一般来说,我想使用一些预先训练的模型来获得单词序列出现在一起的概率。

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

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


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

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

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

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