Gensim中使用向量的相似性度量

时间:2018-12-15 11:34:03

标签: gensim word2vec

我有一对单词和这些单词的语义类型。我正在尝试使用语义类型来计算这两个单词之间的相关性度量,例如:word1 = king,type1 = man,word2 = queen,type2 = woman 我们可以使用gensim word_vectors.most_like从'king-man + woman'获得'queen'。但是,我正在寻找以“ king-man + woman”和“ queen”表示的向量之间的相似性度量。

我正在寻找以上(或)解决方案 计算代表“男人+女人”(和)的向量的方式 使用gensim中的向量值计算两个向量之间的相似度  投影权重向量的简单均值的计算方法(即国王男人+女人)

1 个答案:

答案 0 :(得分:1)

您应该查看gensim most_similar()方法的源代码,该方法用于提出此类类比问题的答案。具体来说,当您尝试...

sims = wv_model.most_similar(positive=['king', 'woman'], negative=['man'])

...(在经过充分训练的模型中)最高结果通常是“ queen”或类似值。因此,在搜索所有已知向量以寻找最接近该目标的向量之前,您可以查看源代码以确切了解其如何计算wv('king') - wv('man') + wv('woman')的目标组合。看到...

https://github.com/RaRe-Technologies/gensim/blob/5f6b28c538d7509138eb090c41917cb59e4709af/gensim/models/keyedvectors.py#L486

...并且请注意,局部变量mean是提供的positivenegative值的组合。

您可能还会发现其他有用的方法,可以直接使用,也可以作为自己代码的模型使用,例如distances() ...

https://github.com/RaRe-Technologies/gensim/blob/5f6b28c538d7509138eb090c41917cb59e4709af/gensim/models/keyedvectors.py#L934

...或n_similarity() ...

https://github.com/RaRe-Technologies/gensim/blob/5f6b28c538d7509138eb090c41917cb59e4709af/gensim/models/keyedvectors.py#L1005