如何使用word2vec获取给定单词的嵌入向量和上下文向量?

时间:2016-09-09 07:28:25

标签: python vector word2vec word-embedding

from gensim.models import word2vec

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

输出向量是' king'的上下文向量吗?或者“王”这个词的嵌入向量?如何同时获得“王”的上下文向量?以及“王”的嵌入向量这个词谢谢!

2 个答案:

答案 0 :(得分:2)

它是' king'的嵌入向量。

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

model.syn1

如果你使用负抽样,他们是:

model.syn1neg

可以通过以下方式访问这些载体:

model.syn1[model.vocab[word].index]

答案 1 :(得分:0)

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

当你说“嵌入”这个词时,我认为你的意思是中心词的向量。矢量。

在word2vec算法中,当您训练模型时,它会为一个单词创建两个不同的向量(当&#39; king&#39;用于中心词时以及它用于上下文词时。)< / p>

我不知道gensim如何处理这两个载体,但通常情况下,人们平均上下文和中心词,或者连接两个载体。它可能不是处理载体最美丽的方法,但它的工作方式非常好。

因此,当您在某些预训练的矢量上调用模型[&#39; king&#39;]时,您看到的矢量可能是两个矢量的平均版本。