在信息检索中, 我们通常需要对查询的结果进行评价, 以此来衡量一个信息检索系统的好坏。以下列出常用的指标, 并且给出python的实现(参考[1])。
Precision and Recall
在一个信息检索系统中, 最基本的指标就是precision和recall, precision衡量了检索到的文章的相关度, recall衡量了相关的文章被检索到的程度, 若用公式来表达,就是
PrecisionRecall=P(revelent|retrieved)=P(retrieved|relevant)
其中, P() $指概率
通常来说, 普通的用户希望第一页检索到的文章是相关的,即precision是高的, 而对于一些研究人员或者分析师来说, 他们希望有更多的相关文档被检索到, 即使有一些错误的结果, 他们也不介意, 即recall是高的。precision与recall之间存在一种trade off 的关系, 即precision高, 则recall低, vice versa。
Mean Reciprocal Rank(MRR)
这个指标在Question Answering(QA)领域比较常用, 在IR中并不常用(至少在目前看过的论文中是这样的)。简而言之,就是对一个查询query, 产生了一个result list,我们记录第一个relevant文档出现的位置, 然后取倒数, 这样就得到了Reciprocal Rank, 对多个query取平均就是MRR了, 如下公式表示[2]
MRR=1|Q|∑i=1Q1ranki
import numpy as np
def meanReciprocalRank(rs):
''' Calculate Mean Reciprocal Rank
Args:
rs: ranking scores, 2-dimension np.array
return:
mrr: Mean Reciprocal Rank
'''
rs = [np.asarray(s).nonzero()[0]

本文详细介绍了信息检索系统评价中的关键指标,包括Precision、Recall、Mean Reciprocal Rank (MRR)、R Precision、Precision@K、Average Precision (AP)、Mean Average Precision (MAP)以及Normalized Discounted Cumulative Gain (NDCG)。这些指标用于衡量检索结果的相关性和排序效果,特别是强调了NDCG在考虑位置权重上的重要性。

3466

被折叠的 条评论
为什么被折叠?



