python 使用周围词的 word2vec 上下文相似度

python word2vec context similarity using surrounding words

我想使用 w2v 制作的嵌入,以便在给定上下文(周围词)的情况下获得最可能的替代词,而不是提供单个词。

示例: 句子='I would like to go to the park tomorrow after school'

如果我想找到与 "park" 相似的候选人,通常我会利用 Gensim 模型的相似度函数

model.most_similar('park')

并获得语义相似的词。然而,这可以给我类似动词 'park' 的词,而不是我想要的名词 'park'。

有什么方法可以查询模型并将其周围的词作为上下文以提供更好的候选者吗?

Word2vec 主要不是单词预测算法。它在内部尝试进行半预测,以训练其词向量,但通常这些训练预测并不是需要词向量的最终用途。

也就是说,最新版本的 gensim 添加了一个 predict_output_word() 方法,该方法(对于某些模型模式)近似于训练期间所做的预测。它可能对您的目的有用。

或者,检查初始目标词 most_similar() 与上下文词 有点相似的词可能会有所帮助。

已经有一些关于在词向量训练期间消除多重词义歧义(如 'to /park/ a car' 与 'walk in a /park/')的研究论文,但我还没有在开源库中看到它们的实现.