Word2Vec,most_similar(word1)在不同的运行中返回相同的输出

时间:2016-04-21 00:13:12

标签: python gensim word2vec

我正在做一个小实验,我有2000条推文作为我的输入文档。我在这个输入推文上训练word2vec,然后找到与特定单词最相似的前10个单词 - w1

我担心的是,如果我运行word2vec 10次(使用相同的参数)并检查前10个最相似的单词w1,给我相同的单词集(权重也相同)。

现在AFAIK word2vec在开始时初始化随机权重,那么为什么它在不同的运行中给我相同的输出呢?

1 个答案:

答案 0 :(得分:0)

documentation中所述,gensim的word2vec的默认seed设置为1。对于不同的输出,请尝试改变种子变量

from gensim.models.word2vec import Word2Vec

sentences = ['a quick brown fox jumps over a dog'.split()]
model = Word2Vec(sentences, min_count=1, size=5, seed=1)
print model['fox']

Out: array([ 0.0629408 ,  0.07386301, -0.00788937, -0.09287976,  0.05859811], dtype=float32)

model = Word2Vec(sentences, min_count=1, size=5, seed=2)
print model['fox']

Out: array([-0.05617044,  0.00294411, -0.09557492,  0.02923537, -0.08322554], dtype=float32)