You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何计算真实值在提取列表中的匹配数及多文档平均性能得分?

单文档与多文档的关键词提取性能计算方法

一、单文档指标计算

直接统计真实值列表中出现在提取值列表里的元素数量,再和真实值总数对比,就能得到类似“3/3真实值被提取”的结果。

代码实现(Python)

def calculate_single_doc_score(extracted, real):
    # 统计匹配的真实值数量
    matched = sum(1 for val in real if val in extracted)
    total_real = len(real)
    return f"{matched}/{total_real}真实值被提取", matched / total_real if total_real != 0 else 0

# 示例测试
extracted_value = ["value", "of", "words", "that", "were", "tracked"]
real_value = ["value", "words", "that"]
result, score = calculate_single_doc_score(extracted_value, real_value)
print(result)  # 输出:3/3真实值被提取

二、多文档平均性能得分计算

完全可以基于单文档的结果计算全局平均得分,常用两种统计方式:

1. 微平均得分(Micro-average)

把所有文档的匹配数总和,除以所有文档的真实值总数总和,能反映整体的提取覆盖情况,适合关注全局总准确率的场景。
公式:总匹配数 / 所有文档真实值总数之和

2. 宏平均得分(Macro-average)

先计算每个文档的匹配率(匹配数/该文档真实值数),再对所有文档的匹配率取平均值,能平等看待每个文档的表现,避免大文档主导结果。
公式:(文档1匹配率 + 文档2匹配率 + ... + 文档N匹配率) / N

代码实现(Python)

def calculate_multi_doc_scores(documents):
    total_matched = 0
    total_real = 0
    doc_scores = []
    
    for extracted, real in documents:
        matched = sum(1 for val in real if val in extracted)
        total_real_doc = len(real)
        total_matched += matched
        total_real += total_real_doc
        if total_real_doc != 0:
            doc_scores.append(matched / total_real_doc)
    
    # 计算微平均得分
    micro_score = total_matched / total_real if total_real != 0 else 0
    # 计算宏平均得分
    macro_score = sum(doc_scores) / len(doc_scores) if doc_scores else 0
    
    return {
        "微平均得分": micro_score,
        "宏平均得分": macro_score,
        "总匹配情况": f"{total_matched}/{total_real}真实值被提取"
    }

# 多文档示例测试
multi_docs = [
    (["a", "b", "c"], ["a", "b", "c", "d"]),  # 3/4
    (["x", "y"], ["x", "z"]),  # 1/2
    (["m"], ["m", "n", "p"])   # 1/3
]
scores = calculate_multi_doc_scores(multi_docs)
print(scores)
# 输出示例:
# {'微平均得分': 0.5, '宏平均得分': 0.5555555555555556, '总匹配情况': '5/9真实值被提取'}

内容的提问来源于stack exchange,提问作者eliza nyambu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 08:15:31