Recall@k 计算
Recall@k 计算
def recall_at_k(queries, retrieved, gold, k):
hit = 0
for qid in queries:
got = set(retrieved[qid][:k])
if got & set(gold[qid]): # 命中任一相关片段
hit += 1
return hit / len(queries)
print(recall_at_k(qids, retrieved_ids, gold_ids, k=10))更严格的口径是相关片段召回比例(| retrieved∩gold | / | gold |),两者要写明,避免同名指标口径不一致。