0

我是 word2vec 世界的新手,我刚刚开始使用 gensim 的 word2vec 实现。

我使用两个天真的句子作为我的第一个文档集,

[['first', 'sentence'], ['second', 'sentence']]

我得到的向量是这样的:

'first', -0.07386458, -0.17405555
'second', 0.0761444 , -0.21217766
'sentence', 0.0545655 , -0.07535963

但是,当我输入另一个玩具文档集时:

[['a', 'c'], ['b', 'c']]

我得到以下结果:

'a', 0.02936198, -0.05837455
'b', -0.05362414, -0.06813956
'c', 0.11918657, -0.10411404

同样,我是 word2vec 的新手,但根据我的理解,我的两个文档集在结构上是相同的,因此相应单词的结果应该是相同的。但为什么我得到不同的结果?算法总是给出概率输出还是文档集太小?

我使用的功能如下:

model = word2vec.Word2Vec(sentences, size=2, min_count=1, window=2)
4

1 回答 1

0

您获得不同向量的主要原因是 word2vec 中向量的随机初始化(还有其他原因,例如负采样、线程可能导致向量值的差异)。

word2vec 背后的理念是,如果文档的数量(训练数据)>> 唯一词的数量(词汇量),则词的向量将在几次迭代后稳定下来。

于 2015-08-24T12:18:38.353 回答