python - 使用 WordNet 感知相似度矩阵
问题描述
我有一个用于整个文档集合的唯一词(不包括停用词)词汇表。我想执行查询扩展。在某些方法中,我发现对于查询中的每个单词,它的前 k 个同义词(通常 k=3)被扩充到查询中。但是,我使用的是基于 TFIDF 文档表示的向量空间模型,因此将不在词汇表中的单词添加到查询中最终会被丢弃。此外,由于它不使用词义消歧技术,因此添加同义词不能保证查询中的词所使用的意义被添加的同义词保留,从而导致查询漂移。因此,我正在考虑创建一个 Sense Similarity Matrix,该矩阵将包含查询之间的相似性得分和词汇表中的单词在整个语料库中使用的所有可能的意义。相似度得分将基于信息论或基于路径的方法来计算。
但是,我无法理解如何找到词汇表中单词的所有意义。另外,我的方法正确吗?有人可以通过指向一些相关资源来指导我吗?
解决方案
如果您寻找具有相似语义的单词,我认为您应该研究 word2vec 及其改进的变体,例如 Glove ( https://nlp.stanford.edu/projects/glove/ ) 和 fasttext ( https://fasttext.cc/)。它们基本上是单词的向量表示,您可以计算单词之间的相似度以构建完整的相似度矩阵。您还可以在模型中查询前 N 个相似词。
推荐阅读
- linux - 将两个文件夹位置合二为一
- python - 在 Python 中展平或序列化数据以使其仅包含数据字节的适当方法是什么?
- reactjs - 当我在 Visual Studio/IIS 中运行时在客户端应用程序上使用文件保护程序时,为什么我的 .Net Core 3.1 API/SPA 突然停止?
- database - postgres - 转换 .dat.gz 文件 .sql 文件?
- javascript - TypeError:errorScreen 不是函数
- pandas - Excel写入以在具有多个工作表的同一张工作表上获取多个数据框并格式化数据
- testcontainers - 我想通过属性配置 IndefiniteWaitOneShotStartupCheckStrategy,而不是在 testcontainer 上使用 Java 类
- string - 来自 abort(3) (SIGABRT) 错误的中止信号
- python - 烧瓶登录不导入
- webmethod - NET Core 应用程序 WebMethod 需要传入 URL 作为参数