单词嵌入关系

时间:2017-08-01 18:02:57

标签: numpy matrix word2vec algebra word-embedding

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

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

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

1 个答案:

答案 0 :(得分:0)

您可以准确了解原始Google发布的word2vec代码如何解决其word-analogy.c代码中的类比:

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

如果您对Python更熟悉,可以通过阅读类比来了解gensim Word2Vec实现如何在其accuracy()方法中测试类比a:b:c:expected& #34;来自questions-words.txt文件(原始Google word2vec包中提供),然后使用bc作为正(添加)示例,a作为反面示例(减去),然后在结果向量附近找到单词:

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

使用most_similar()函数的操作,在返回最接近的向量列表之前接受多个positivenegative示例,如下所示:

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