0

我想了解更多关于我可以对词嵌入向量执行的代数函数。我知道通过余弦相似度我可以得到最相似的词。但我需要再做一层推理并得到以下关系:

X1 与 X2 的关系类似于 X3 与 X4 的关系。

作为例子,我可以说公主与王子的关系就像女人与男人的关系。我有 X1 到 X3,我的问题是我如何有效地弄清楚 X4 可以是什么。我尝试了余弦向量的绝对差,但它不起作用。

4

1 回答 1

0

您可以查看 Google 发布的原始word2vec代码如何解决其代码中的类比问题word-analogy.c

https://github.com/tmikolov/word2vec/blob/master/word-analogy.c

如果您更熟悉 Python,您可以accuracy()通过从文件中读取类比“a:b :: c:expected”来查看 gensim Word2Vec 实现如何测试类比questions-words.txt(在原始 Google word2vec 包中提供) ),然后使用bandc作为正(添加)示例,并a作为负示例(减去),然后在结果向量附近找到单词:

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

在返回最接近向量列表之前most_similar()接受多个positive和示例的 used 函数的操作见:negative

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

于 2017-08-02T06:41:31.497 回答