【问题标题】:How do I find a synonym of a word or multi-word paraphrase using the gensim toolkit如何使用 gensim 工具包找到一个词或多词释义的同义词
【发布时间】:2018-10-15 21:41:26
【问题描述】:

在使用 gensim 工具包加载了预训练的 word2vec 模型后,我想找到一个给定上下文的单词的同义词,例如“她是一个聪明的人”的智能。

【问题讨论】:

  • 您的问题与paraphrasing 或查找paraphrases 相关,而不是同义词。不同之处在于两个单词可以是同义词,但两个句子或一个单词和一个句子只能是它们自己的释义。

标签: python nlp word2vec gensim word-sense-disambiguation


【解决方案1】:

有一种方法[most_similar()][1] 将通过模型坐标中的余弦相似度将最接近向量的单词报告给给定单词。例如:

similars = loaded_w2v_model.most_similar('bright')

但是,Word2vec 不会找到严格的同义词 - 只是在其训练语料库中与上下文相关的词。这些通常是同义词,但在其他方面也可能相似——例如用于相同的主题领域,或者能够在功能上相互替换。 (在最后一个方面,有时高度相似的词向量用于反义词,因为像“热”和“冷”这样的词出现在同一个地方,指的是事物的同一方面。)

普通的 word2vec 也不能很好地处理多义词(像“bright”这样的标记既是“光线充足”的词,又是“智能”的词)。因此,与“bright”最相似的单词列表将包含来自其不同含义的混​​合词。

【讨论】:

  • 我最初使用了 lesk 算法(来自 nltk.wsd 导入 lesk),但结果并不令人满意,所以我认为 word2vec 会是更好的方法。你能给我推荐一个替代品吗?
  • 抱歉,我不知道同义词发现的最佳实践是什么。 (我可以看到词向量发挥了一些作用,但您可能需要其他启发式方法来确认词在用法示例中确实是“同义词”。)
  • 有一些有趣的工作可以梳理出词向量中的多义词——例如参见offconvex.org/2016/07/10/embeddingspolysemyarxiv.org/abs/1511.06388——这些加上 Lesk 算法之类的东西可能会帮助您确定何时使用像 ' 这样的词明亮的'有多种意义,以及在上下文中使用哪种意义。然后,如果您在该意义上寻找最相似的词,您可能会有更高比例的同义词(但仍有一些侵入性的相似用法反义词或其他相关词)。
猜你喜欢
  • 1970-01-01
  • 2012-03-19
  • 1970-01-01
  • 2012-04-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多