algorithm - 计算信息检索中分级文档的平均准确率和召回率

标签 algorithm search-engine information-retrieval evaluation

我有一个正在开发搜索引擎的数据集。我已经成功地做到了这一点。现在我的下一步是计算这个搜索引擎的性能。我相信 Mean Average Precision (MAP) 和 Recall (/R) 是我需要计算的两个指标。我知道这些指标的公式,如果我简单地将我的文档标记为与每个查询相关或不相关,我就可以计算它们。但是,我对每个文档的标签都不是二进制的;相反,这些文档会针对每个查询进行评分。

例如,如果我有查询 1,我的数据集表明文档 14 与此查询最相关(分数:5),文档 54 有点相关(分数:4),文档 33 不太相关(得分:3),依此类推,得分为 0,这意味着该文档完全不相关且偏离主题。

我的问题是,如何使用这种标记计算 MAP/R?换句话说,如果我的第 2 个相关文档首先显示,或者我的最高相关文档显示在第 10 位等,我如何评估系统?

请理解我必须使用 MAP/R 来评估我的搜索引擎。

我希望对我的疑问得到一些指导。干杯!

最佳答案

Mean Average Precision 旨在评估具有二元相关函数的信息检索系统。另一方面,您具有分级相关性功能。因此,您需要一种不同的方法来评估您的系统。

虽然有人试图generalize the Average Precision evaluation method to handle graded relevance , 正确的做法是使用 The Normalized Discounted Cumulative Gain Measure 评估您的系统.

归一化折扣累积 yield 专为分级相关概念的情况而设计。与 k 处的精度一样,它是根据一定数量的 k 个热门搜索结果进行评估的。从某种意义上说,The Normalized Discounted Cumulative Gain 所做的是根据文档在结果列表中的位置来衡量文档的增益。增益从结果列表的顶部到底部累积,每个结果的增益在较低的排名中打折。请参阅上面链接中的实际公式。

如果出于某种原因您必须使用 MAP 或 Recall 来评估您的系统,那么您将不得不修改相关性度量,使其变成二元的(通过决定一个阈值,超过该阈值文档将被视为相关)。但是,要将封装在分级相关性度量中的信息合并,您唯一的选择是使用支持分级相关性的评估方法,例如归一化贴现累积增益。

关于algorithm - 计算信息检索中分级文档的平均准确率和召回率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48767939/

相关文章:

algorithm - 搜索引擎不精确计数(大约 xxx 结果)

dataset - Letor数据集格式

python - 字符串的快速哈希

php - Google 缓存显示的 Url 与我的网站 Url 不同

seo - 什么类型的 url 既对 seo 又对用户友好?

java - Lucene5.3.1中StandardFilter到底做了什么?

algorithm - 递推关系中是否可能存在负递推项?

c++ - 多数元素-数组的一部分

algorithm - 稳健的多边形法线计算

php - 重写 URL 是否有助于搜索引擎找到该页面?