查询与文档的余弦相似性

2024-05-16 13:36:23 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我在一个信息检索的概念上挣扎。它与给定查询的文档的余弦相似性有关。在

我正在操作大约1000个文件,用[docID x terms]生成一个术语频率矩阵。在

我已经生成了这个矩阵,但是对于如何处理查询以及从中生成余弦相似性,我感到困惑。在

我得到了一个查询,其中包含了我应该通过语料库解析的术语,我已经完成了。并生成一个向量,其中所有docid至少包含一个单词。在

所以我应该用余弦相似性来计算所有这些行向量?在

示例:

查询是一个列位置和项在术语频率矩阵中的列表

occurrencevector是一个数组,其中包含查询中的单词

Query = [[2796, 'crystalline'], [6714, 'lens'], [5921, 'including'], [5566, 'humans']]
OccurrenceVector = array([ 13,  14,  15,  72,  79, 138, 142, 164, 165, 166, 167, 168, 169,
   170, 171, 172, 180, 181, 182, 183, 184, 185, 186, 211, 212, 213,
   499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511,
   512, 513])

我的思维过程是这样的:

  1. [docID x terms](行x列)的项频率矩阵

  2. 接收针对语料库的带有术语的查询

  3. 检索包含这些术语出现在其中的所有docid的向量

  4. 检索与检索到的docID对应的每一行

  5. 计算检索到的所有行之间的余弦相似度?

用这样的多维数组来计算余弦相似度是正确的吗?在


Tags: 文件文档概念矩阵数组相似性单词向量
1条回答
网友
1楼 · 发布于 2024-05-16 13:36:23

我建议您看看6th Chapter of IR Book(尤其是6.3)。在

您还需要将查询视为文档。在为文档构造查询时为其构造向量。然后为了得到最好的结果,您需要根据查询的所有文档向量计算相似度。在

请记住,您还可以选择一个文档向量,并计算它与语料库中所有其他文档的相似度。通过这种方法,您可以计算文档之间的相似度。在

希望这有帮助。在

干杯

相关问题 更多 >