我想了解更多关于我可以对词嵌入向量执行的代数函数。我知道通过余弦相似度我可以得到最相似的词。但我需要再做一层推理并得到以下关系:
X1 与 X2 的关系类似于 X3 与 X4 的关系。
作为例子,我可以说公主与王子的关系就像女人与男人的关系。我有 X1 到 X3,我的问题是我如何有效地弄清楚 X4 可以是什么。我尝试了余弦向量的绝对差,但它不起作用。
我想了解更多关于我可以对词嵌入向量执行的代数函数。我知道通过余弦相似度我可以得到最相似的词。但我需要再做一层推理并得到以下关系:
X1 与 X2 的关系类似于 X3 与 X4 的关系。
作为例子,我可以说公主与王子的关系就像女人与男人的关系。我有 X1 到 X3,我的问题是我如何有效地弄清楚 X4 可以是什么。我尝试了余弦向量的绝对差,但它不起作用。
您可以查看 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 包中提供) ),然后使用b
andc
作为正(添加)示例,并a
作为负示例(减去),然后在结果向量附近找到单词:
在返回最接近向量列表之前most_similar()
接受多个positive
和示例的 used 函数的操作见:negative