比较不同长度文档的 tf-idf 向量的余弦相似度

机器算法验证 文本挖掘 信息检索
2022-04-08 21:00:42

我正在计算 2 个向量之间的余弦相似度。

这些向量分别是信息检索查询和文档表示。

它们是使用tf-idf权重计算的。

由于我的文档长度不同,tf-idf 权重理论​​上是无界的。

问题是:余弦相似度仍然是一个有效的度量吗?我可以比较每个文档的几个余弦相似度吗?

2个回答

根据维基百科的 tf-idf 文章

给定文档中的术语计数只是给定术语在该文档中出现的次数。该计数通常被标准化以防止偏向较长的文档(无论该术语在文档中的实际重要性如何,它可能具有更高的术语计数)以衡量术语 t 在特定文档 d 中的重要性

因此,将术语 t 的频率归一化为它出现的文档 d 的长度。然后您可以计算 tf-idf 向量之间的余弦相似度。

余弦相似度仍然是一个有效的度量。实际上,这就是 tf-idf 权重对于不同文档的长度不同的规则,仅仅是因为它们使用的词并不完全相同。请注意,tf-idf 向量中缺失的单词实际上是频率为 0 的单词。

因此,您可以通过添加一对 0 将两个向量拉长到相同的长度,然后计算余弦相似度。