6
from gensim.models import word2vec

sentences = word2vec.Text8Corpus('TextFile')
model = word2vec.Word2Vec(sentences, size=200, min_count = 2, workers = 4)
print model['king']

输出向量是“king”的上下文向量还是“king”的词嵌入向量?如何获得“king”的上下文向量和“king”的词嵌入向量?谢谢!

4

2 回答 2

5

它是“国王”的嵌入向量。

如果使用分层 softmax,则上下文向量为:

model.syn1

如果您使用负采样,它们是:

model.syn1neg

可以通过以下方式访问向量:

model.syn1[model.vocab[word].index]
于 2016-12-19T00:01:13.907 回答
1

“上下文向量”也是一个“词嵌入”向量。词嵌入意味着词汇如何映射到实数向量。

当您说“词嵌入”向量时,我假设您指的是中心词的向量。

在 word2vec 算法中,当您训练模型时,它会为一个词创建两个不同的向量(当“king”用于中心词和用于上下文词时)。

我不知道 gensim 是如何处理这两个向量的,但通常人们会平均上下文和中心词,或者连接两个向量。它可能不是处理向量的最漂亮的方法,但它的效果很好。

因此,当您在某个预训练的向量上调用 model['king'] 时,您看到的向量可能是两个向量的平均版本。

于 2017-04-02T17:06:35.870 回答