对于我使用gensim.models.KeyedVectors(来自模型)的项目,我需要添加和减去词向量word2vec-google-news-300
不幸的是,我已经尝试过,但无法正确地做到这一点。
让我们看一下流行的例子Queen ~= king - man + woman。
当我想从国王中减去男人并添加女人时,
我可以用 gensim 做到这一点
# model is loaded using gensim.models.KeyedVectors.load()
model.wv.most_similar(positive=["king", "woman"], negative=["man"])[0]
正如预期的那样,它返回('queen', 0.7118192911148071)
了我使用的模型。
现在,为了实现相同的加法和减法向量(它们都是单位范数),我尝试了以下代码:
vec1, vec2, vec3 = model.wv["king"], model.wv["man"], model.wv["woman"]
result = model.similar_by_vector(vec1 - vec2 + vec3)[0]
result
在上面的代码中,('king', 0.7992597222328186)
这不是我所期望的。
我的错误是什么?