admin 管理员组

文章数量: 887021

Precision, Recall, BLEU and ROUGE

1. Precision和Recall的定义如下

        Precision = TP / (TP + FP)

        Recall = TP / (TP + FN)

        可以简单理解为,

        Precision =  (预测为正并且真正为正的样本个数) / (所有预测为正的样本个数) ;

        Recall=  (预测为正并且真正为正的样本个数) / (所有真正为正的样本个数);

2. BLEU and Rouge

        例如:

        Candidate:

        I will leave Beijing next Friday , Alex .

        Reference_1:

        I will leave Beijing for home next Friday .

2.1 BLEU

        在这里我们暂时先考虑n_gram为1的情况,并且为了便于理解,不考虑标点符号。对BLEU来讲,采用的是precision的标准,预测为正并且真正为正的词(token)如下标注, 标注格式为(candidate || reference_1)。

I will leave Beijing next Friday , Alex . || I will leave Beijing for home next Friday .

共有6个词。

所有预测为正的样本个数为

I will leave Beijing next Friday , Alex . || I will leave Beijing for home next Friday .

共有7个词,因此Precision = 6 / 7, 记录为P1。

2.2 ROUGE

        ROUGE是基于recall的计算方式,预测为正并且真正为正的词(token)和bleu中标注的相同,也为6个。

所有真正为正的样本个数为

I will leave Beijing next Friday , Alex . || I will leave Beijing for home next Friday . 共有8个。

因此 Recall = 6 / 8,记录为R1。

2.3 n-gram

        在上面的描述中,我们只考虑了n-gram为1的情况,在实践中,我们往往考虑多个n-gram的情况,并对结果进行加权变换。 例如对bleu,我们往往取到1-gram到4-gram的所有结果,(P1, P2, P3, P4),对应的权重为 (w1, w2, w3, w4), 从而得到bleu的公式为:

BLEU = exp(w1*logP1 + w2*logP2 + w3*logP3 + w4*logP4)

        对bleu来讲,还要面对另外一个问题,那就是句子翻译较短时,precision的分数有可能更高,甚至为1, 例如结果为 “I will leave Beijing” 时, P1=1(简单以P1举例说明,P2/P3/P4类似), 所以bleu的计算方式其实使句子更短的结果得分更高。因此可以考虑在bleu的分数前,加上一个系数,比较合理的分析是,这个系数在candidate句子较短时小于1以降低分数,在candidate句子大于一定长度时,截止到一个常数(比如1)。

        因此完整的bleu可以表示为:

        BLEU= alpha * exp(w1*logP1 + w2*logP2 + w3*logP3 + w4*logP4), 其中

        alpha = 1 if c > r else exp(1- r/c), 其中 r = len(reference), c = len(candidate)

​​​​​​​2.4 multi-references

        单参考为常见的情况,但为了更真实的反映句子的效果,也会采用多参考的情况。

        例如

        I will leave Beijing next Friday , Alex . ||

        ( reference1: I will leave Beijing for home next Friday .

        Reference2: I am going to leave for home next Friday, Alex)

        则此时 P1 = 1. 即所有预测出来的单个词都正确了。

2.5 ROUGE-N 和 ROUGE-L

         ROUGE处理常见的采用n-gram统计外,还有一种基于最长公共子串的统计方式(LCS)。

计算方式可参考ROUGE评价算法学习_Silience_Probe的博客-CSDN博客_rouge计算

3. ROUGE和BLEU的使用场景

        这两个都可以用在机器翻译和文本摘要的评价中,其中BLEU在机器翻译中常用,更关心precision,ROUGE在文本摘要中更常用,更关心recall。

本文标签: Precision Recall BLEU and ROUGE