我正在阅读这个关于 Gensim 的答案most_similar:
它执行向量算术:添加正向量,减去负向量,然后从结果位置列出最接近该角度的已知向量。
但当我测试时,情况并非如此。我使用 Gensim 数据集训练了 Word2Vec"text8"并测试了这两个:
model.most_similar(positive=['woman', 'king'], negative=['man'])
>>> [('queen', 0.7131118178367615), ('prince', 0.6359186768531799),...]
Run Code Online (Sandbox Code Playgroud)
model.wv.most_similar([model["king"] + model["woman"] - model["man"]])
>>> [('king', 0.84305739402771), ('queen', 0.7326322793960571),...]
Run Code Online (Sandbox Code Playgroud)
它们显然不一样。0.713甚至第一个和第二个中的皇后得分0.732也不相同。
所以我再次问这个问题,Gensim 是如何most_similar工作的?为什么上面两者的结果不同呢?