为什么将'positive'å’Œ'negative'å‚数传递给gensimçš„most_like函数ä¸ä¼šè¿”回与矢é‡æ•°å­¦ç»“果相åŒçš„结果?

时间:2019-08-01 21:07:17

标签: nlp gensim word2vec

model.similar_by_vector(model['king'] - model['man'] + model['woman'], topn=1)[0]

结果

('king', 0.8551837205886841)

而

model.most_similar(positive=['king', 'queen'], negative=['man'], topn=1)[0]

给出ä¸åŒçš„答案(您期望的答案)

('monarch', 0.6350384950637817)

但是我希望它们都能返回相åŒçš„结果。我是å¦è¯¯è§£äº†å¦‚何对这些å‘é‡è¿›è¡Œå‘é‡æ•°å­¦è¿ç®—?

1 个答案:

答案 0 :(得分:1)

例如,如果您想仔细查看它们在åšä»€ä¹ˆä¸Žæ‚¨æœŸæœ›çš„ä¸åŒï¼Œå¯ä»¥æŸ¥çœ‹most_similar()(和similar_by_vector())方法的æºä»£ç ã€‚通过在线æµè§ˆé¡¹ç›®çš„æºå­˜å‚¨åº“:

https://github.com/RaRe-Technologies/gensim/blob/f97d0e793faa57877a2bbedc15c287835463eaa9/gensim/models/keyedvectors.py#L491

https://github.com/RaRe-Technologies/gensim/blob/f97d0e793faa57877a2bbedc15c287835463eaa9/gensim/models/keyedvectors.py#L598

尤其是,您看到的差异å¯èƒ½æœ‰å‡ ä¸ªå› ç´ åœ¨èµ·ä½œç”¨ï¼š

  • 当您å‘most_similar()æ供查找键(å•è¯ä»¤ç‰Œï¼‰æ—¶ï¼Œå¦‚果您想è¦ä¼ å…¥çš„答案中没有的答案,则将这些键作为答案返回会失去资格。å‚数。也就是说,å³ä½¿ç›®æ ‡ä½ç½®æœ€æŽ¥è¿‘'king',如果'king'是æ供的键之一,也将被忽略为å¯èƒ½çš„排åå“应。

  • most_similar()使用æ¯ä¸ªè¾“å…¥è¯çš„å•ä½é•¿åº¦å½’一化版本(通过使用word_vec(word, use_norm=True)进行查找,而方括å·æŸ¥æ‰¾ï¼ˆä¾‹å¦‚model[word])则使用原始éžæ ‡å‡†åŒ–å‘é‡ã€‚