我正在做一个小实验,我有2000条推文作为我的输入文档。我在这个输入推文上训练word2vec,然后找到与特定单词最相似的前10个单词 - w1
。
我担心的是,如果我运行word2vec 10次(使用相同的参数)并检查前10个最相似的单词w1
,给我相同的单词集(权重也相同)。
现在AFAIK word2vec在开始时初始化随机权重,那么为什么它在不同的运行中给我相同的输出呢?
答案 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)