0

我知道该most_similar方法在输入先前添加的字符串时有效,但是如何反向搜索某个单词的 numpy 数组?

modelw2v = KeyedVectors.load_word2vec_format('GoogleNews-vectors-negative300.bin.gz',binary=True)
differenceArr = modelw2v["King"] - modelw2v["Queen"]


# This line does not work
modelw2v.most_similar(differenceArr) 
4

1 回答 1

0

most_similar()方法可以将向量作为搜索的来源,但您应该明确地将它们指定为提供给方法positive参数的列表的一个成员,以便其处理更简单来源(如字符串或字符串列表)的逻辑是'很困惑。

具体来说,这应该与您的其他代码一起使用:

model23v.most_similar(positive=[differenceArr,])

positive更一般地,您可以为该方法的和参数提供向量列表(或用于查找向量的词键)negative,并且该方法将组合它们(根据您在源代码中看到的确切逻辑)。因此,例如突出的 word2vec 示例...

wv('king') - wv('man') + wv('woman') = ?

...可以使用该most_similar()方法实现,而无需执行您自己的其他向量算术:

sims = modelw2v.most_similar(positive=['king', 'woman'], negative=['man'])
于 2020-07-10T08:02:11.220 回答