METEOR(Metric for Evaluation of Translation with Explicit ORdering)是一个用于评估机器翻译和文本生成质量的指标。
METEOR 通过以下步骤计算相似度分数:
词汇匹配:在候选文本和参考文本之间寻找匹配的词汇
对齐计算:找到最佳的词汇对齐方式
分数计算:
METEOR = (1 - α × 惩罚因子) × 调和平均值
其中:
从您的代码可以看到,METEOR 的使用方式:
# ...existing code...
meteor = evaluate.load('meteor', keep_in_memory=True, experiment_id=random.randint(1,1e8))
meteor_results = meteor.compute(predictions=predictions, references=references)
result[group_name] = meteor_results['meteor']
# ...existing code...
注意:代码中存在一个错误,predictions 和 references 的赋值顺序颠倒了:
# ...existing code...
for sample in samples:
gt = sample['norm_gt'] if sample.get('norm_gt') else sample['gt']
pred = sample['norm_pred'] if sample.get('norm_pred') else sample['pred']
# 应该是:
predictions.append(pred) # 预测结果
references.append(gt) # 真实标签
# ...existing code...
机器翻译评估
文本摘要评估
OCR/文档识别评估(如您的项目)
问答系统评估
在您的文档识别项目中,METEOR 特别适合评估文本内容的识别准确性,能够容忍一些同义词替换和词序变化。