首页 > 解决方案 > 使用 WordNet 感知相似度矩阵

问题描述

我有一个用于整个文档集合的唯一词(不包括停用词)词汇表。我想执行查询扩展。在某些方法中,我发现对于查询中的每个单词,它的前 k 个同义词(通常 k=3)被扩充到查询中。但是,我使用的是基于 TFIDF 文档表示的向量空间模型,因此将不在词汇表中的单词添加到查询中最终会被丢弃。此外,由于它不使用词义消歧技术,因此添加同义词不能保证查询中的词所使用的意义被添加的同义词保留,从而导致查询漂移。因此,我正在考虑创建一个 Sense Similarity Matrix,该矩阵将包含查询之间的相似性得分和词汇表中的单词在整个语料库中使用的所有可能的意义。相似度得分将基于信息论或基于路径的方法来计算。

但是,我无法理解如何找到词汇表中单词的所有意义。另外,我的方法正确吗?有人可以通过指向一些相关资源来指导我吗?

标签: pythonnlpinformation-retrievalwordnetword-sense-disambiguation

解决方案


如果您寻找具有相似语义的单词,我认为您应该研究 word2vec 及其改进的变体,例如 Glove ( https://nlp.stanford.edu/projects/glove/ ) 和 fasttext ( https://fasttext.cc/)。它们基本上是单词的向量表示,您可以计算单词之间的相似度以构建完整的相似度矩阵。您还可以在模型中查询前 N 个相似词。


推荐阅读