BLEU机器翻译评价指标学习笔记

BLEU是一种用于评估机器翻译质量的指标,通过比较机器译文与参考译文的n-gram精度。它考虑了翻译的充分性和流畅性,并通过惩罚因子调整不同长度的翻译。虽然BLEU方便快速,但忽略了语法准确性和同义词表达。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

BLEU机器翻译评价指标学习笔记

BLEU(bilingual evaluation understudy),双语互译质量评估辅助工具,主要用来评估机器翻译质量的工具。

评判思想:机器翻译结果越接近专业人工翻译的结果,则越好。

实际工作:判断两个句子的相似程度。

计算公式
B L E U − N = B P ⋅ e x p ( ∑ n = 1 N w n l o g p n ) BLEU-N=BP \cdot exp\Big(\sum_{n=1}^{N}{w_nlog{p_n}}\Big) BLEUN=BPexp(n=1Nwnlogpn)
其中,BP为惩罚因子, p n p_n pn为多元精度, w n w_n wn为多元精度对应的权重。

多元精度n-gram precision

原始多元精度

原文:猫坐在垫子上
机器译文: the the the the the the the.
参考译文:The cat is on the mat.

  • 1元精度 1-gram

    img

    6个词中,5个词命中译文,1元精度 p 1 p_1 p1为5/6.

  • 2元精度 2-gram

    img

    2元词组的精度则是 3/5.

  • 3元精度 3-gram

    img

    3元词组的精度为1/4.

  • 4元精度 4-gram

    4元词组的精度为0。

一般情况,1-gram可以代表原文有多少词被单独翻译出来,可以反映译文的充分性,2-gram以上可以反映译文的流畅性,它的值越高说明可读性越好。

  • 异常情况

    原文:猫坐在垫子上
    机器译文: the the the the the the the.
    参考译文:The cat is on the mat.

    此时,1-gram匹配度为7/7,显然,此译文翻译并不充分,此问题为常用词干扰

改进多元精度

C o u n t w i , j c l p = m i n ( C o u n t w i , R e f j C o u n t w i ) C o u n t c l p = m a x ( C o u n t w i , j c l p ) , i = 1 , 2 , 3 ⋯ p n = ∑ C ∈ C a n d i d a t e s ∑ n − g r a m ∈ C C o u n t c l i p ( n − g r a m

### 机器翻译评估标准 #### BLEU (Bilingual Evaluation Understudy) BLEU 是一种广泛使用的自动评估指标,主要用于衡量机器翻译的质量。它通过比较生成的翻译结果与参考译文中的 n-gram 匹配情况来计算分数。具体来说,BLEU 计算的是精确度得分,并引入了惩罚机制以应对过短的翻译输出[^1]。 以下是使用 Python 实现 BLEU 的简单代码示例: ```python from datasets import load_metric bleu = load_metric("bleu") predictions = [["the cat is on the mat"]] references = [["the cat is lying on the mat"]] result = bleu.compute(predictions=predictions, references=references) print(result) ``` 尽管 BLEU 广泛应用于英语和其他语言对之间,但在中文环境中可能需要额外的分词工具支持[^3]。 --- #### ROUGE (Recall-Oriented Understudy for Gisting Evaluation) ROUGE 主要用于评估文本摘要质量和自然语言生成任务的表现。它的核心思想在于统计生成文本和参考文本之间的重叠部分,可以是连续片段(skip-bigram)、n-grams 或最长公共子序列等[^2]。对于机器翻译而言,ROUGE 同样能够提供关于翻译质量的部分见解。 下面是一个简单的 ROUGE 使用案例: ```python from rouge_score import rouge_scorer scorer = rouge_scorer.RougeScorer(['rouge-1', 'rouge-l'], use_stemmer=True) scores = scorer.score( "The quick brown fox jumps over a lazy dog.", "The fast brown fox leaps over a sleepy hound." ) for key, value in scores.items(): print(f"{key}: {value}") ``` 需要注意的是,虽然 ROUGE 更关注召回率而非精度,但它仍然无法全面反映语义层面的一致性。 --- #### METEOR (Metric for Evaluation of Translation with Explicit ORdering) METEOR 被设计成更贴近人类判断的一种方法论。除了考虑单词级别的匹配外,还加入了同义词替换、词形还原等功能模块。这种方法试图克服其他传统评分体系仅依赖表面形式匹配所带来的局限性。 实现 METEOR 可能涉及如下操作: ```python import nltk from meteor_score.meteor_score import meteor_score hypothesis = ["this", "is", "a", "test"] reference = ["only", "a", "test"] score = meteor_score([reference], hypothesis) print(score) ``` 然而值得注意的是,由于 METEOR 需要访问外部资源库来进行诸如词林映射等工作,因此其运行效率通常低于前两者。 --- ### 局限性和改进方向 上述提到的各种自动化评测手段都存在一定的缺陷,例如它们均未能有效解决全局连贯性的考量以及潜在的语言偏差等问题。未来的研究可能会集中在开发更加智能化的方法上,这些新方案或许会更多地利用深度学习模型或者强化交互反馈机制来提升评价效果。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值