第7章 数据资源.docxVIP

  • 0
  • 0
  • 约2.98千字
  • 约 4页
  • 2026-02-02 发布于陕西
  • 举报

数据资源

WMT收集的包含人工直接打分的翻译数据集

/wmt22/metrics/index.html

Demetr数据集:对正确翻译进行扰动获得翻译对source,translation_good,translation_bad

/marzenakrp/demetr

1.WMT人类评分数据

数据获取,点击进入以下链接:/wmt22/metrics/index.html

并点击红框标注的两个链接下载所需数据

该数据包含以下字段:(1)src:原文;(2)mt:候选译文;(3)ref:参考译文;(4)score:人工打分(基于翻译中的错误进行扣分,并以多位标注者的打分进行平均:最低分为-25,最高分为0分)

自动化评估的分数应该与人工打分的趋势相同,即人工打分分数与自动化评估分数应该为正相关。因此,我们可以用Pearson相关系数来评估自动化翻译评估的质量高低。系数越接近1则说明评估与人类评估越拟合,越能表现人类的阅读体验。

2DEMETR:DiagnosingEvaluationMetricsforTranslation

数据获取,点击进入链接:/marzenakrp/demetr

该数据包含以下几个部分:(1)source:原文;(2)reference:参考译文;(3)MT:正确译文;(4)perturbedMT:扰动过后的错误翻译。如上图所示,verlor的正确翻译应为lost,但扰动后的译文为won,造成了错译。正确的译文和错误的译文只有这一个错误,因此自动化评估的分差可以归因于这一错误。在这种实验场景下,我们期待评估指标能够给扰动后的翻译赋一个更低的分数。当评估指标给MT比perturbedMT更高的分数时,我们可以认为评估工具做出了正确的判断,我们用准确率作为评估指标的能力。

评估代码与结果

Python

importpandasaspd

fromglobimportglob

fromquality_estimationimportcalculate_quality_metrics

defevaluate_on_demetr():

fns=glob(data/demetr/*json)

df=pd.concat([pd.read_json(fn)forfninfns],ignore_index=True)

df=df[df.pert_name!=base_id35_reference].sample(n=2)

n_sample=len(df)

sources=df.src_sent.tolist()+df.src_sent.tolist()

references=df.eng_sent.tolist()+df.eng_sent.tolist()

candidates=df.mt_sent.tolist()+df.pert_sent.tolist()

metrics_scores=calculate_quality_metrics(sources,candidates,references)

formetric,scoresinmetrics_scores.items():

df[fmt_{metric}]=scores[:n_sample]

df[fpert_{metric}]=scores[n_sample:]

#saveresults

df.to_json(results/demetr_results.jsonl,orient=records,lines=True,force_ascii=False)

#computeaccuracy

formetricinmetrics_scores.keys():

acc=(df[fmt_{metric}]df[fpert_{metric}]).mean().item()

print(fAccuracyfor{metric}:{acc:.4f})

defevaluate_on_human_score():

df=pd.concat([pd.read_csv(fn)forfninglob(data/human/*csv)],ignore_index=True)

sources=df.src.tolist()

references=df.ref.tolist()

candidates=df.

文档评论(0)

1亿VIP精品文档

相关文档