机器翻译(MT)评价指标

BLEU

BLEU总体思想就是准确率,假如给定标准译文reference,神经网络生成的句子是candidate,句子长度为n,candidate中有m个单词出现在reference,m/n就是bleu的1-gram的计算公式。

BLEU还有许多变种。根据n-gram可以划分成多种评价指标,常见的指标有BLEU-1、BLEU-2、BLEU-3、BLEU-4四种,其中n-gram指的是连续的单词个数为n。

BLEU-1衡量的是单词级别的准确性,更高阶的bleu可以衡量句子的流畅性。

b l e u 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 ) ∑ 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_n = \frac{\sum_{c \in candidates}\sum_{n-gram \in c} Count_{clip}(n-gram)}{\sum_{c^` \in candidates}\sum_{n-gram^` \in c^`} Count_{clip}(n-gram^`)} bleun=ccandidatesngramcCountclip(ngram)ccandidatesngramcCountclip(ngram)

分子

神经网络生成的句子是candidate,给定的标准译文是reference。

1) 第一个求和符号统计的是所有的candidate,因为计算时可能有多个句子,

2)第二个求和符号统计的是一条candidate中所有的n−gram,而 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TkJeLIeN-1650888496571)(https://www.zhihu.com/equation?tex=Count_%7Bclip%7D%28n-gram%29)] 表示某一个n−gram在reference中的个数。

所以整个分子就是在给定的candidate中有多少个n-gram词语出现在reference中。

分母

前两个求和符号和分子中的含义一样,Count(n-gram’)表示n−gram′在candidate中的个数,综上可知,分母是获得所有的candidate中n-gram的个数。

BLEU实质是对两个句子的共现词频率计算,但计算过程中使用好些技巧,追求计算的数值可以衡量这两句话的一致程度。BLEU容易陷入常用词短译句的陷阱中,而给出较高的评分值。

ROUGE

机器自动摘要常见的参考指标rouge有若干个优化版本,核心是通过统计机器候选摘要句子和标准摘要句子重叠的单元n-gram,来评判摘要的质量。

  • ROUGE-N
  • ROUGE-1
  • ROUGE-2
  • ROUGE-3
  • ROUGE-L
  • ROUGE-W
  • ROUGE-S
  • ROUGE-SU

ROUGE-N

R O U G E − N = 共 现 的 字 / 词 个 数 摘 要 个 数 ROUGE-N = \frac{共现的字/词个数}{摘要个数} ROUGEN=/

对应的N即为连续字个数。例如N等于1:

人工y:文章内容新颖 (6个字)
机器x:这篇文章内容是新颖的(10个字)
重叠的部分是6个字
候选句子摘要句子是x,人工摘要句子是y
precision 两个句子重叠部分的n-gram/len(x) = 6/10
recall 两个句子重叠部分的n-gram/len(y) = 6/6

可以看出来机器生成的把人工的全部召回了,但是实际上机器生成的太多。此时精度就是来限制句子的关联程度的。

ROUGE-L

最长公共子序列的重合率计算。

S是人工摘要,C是机器摘要

R L C S = L C S ( C , S ) l e n ( S ) R_{LCS}=\frac{LCS(C,S)}{len(S)} RLCS=len(S)LCS(C,S)

P L C S = L C S ( C , S ) l e n ( C ) P_{LCS}=\frac{LCS(C,S)}{len(C)} PLCS=len(C)LCS(C,S)

F L C S = ( 1 + β 2 ) R L C S P L C S R L C S + β 2 P L C S F_{LCS}=\frac{(1 + \beta^2)R_{LCS}P_{LCS}}{R_{LCS}+\beta^2P_{LCS}} FLCS=RLCS+β2PLCS(1+β2)RLCSPLCS

R L C S R_{LCS} RLCS 表示召回率,而 P L C S P_{LCS} PLCS表示精确率, F L C S F_{LCS} FLCS 就是 ROUGE-L。一般 beta 会设置为很大的数,因此 F L C S F_{LCS} FLCS 几乎只考虑了 R L C S R_{LCS} RLCS (即召回率)

优点:反应句子级别顺序,不需要制定n-gram的长度

缺点:只考虑了最长子序列的长度,忽略了其他子序列

适用于短摘要提取

参考

https://zhuanlan.zhihu.com/p/223048748

https://www.zhihu.com/search?type=content&q=Rouge-l

你可能感兴趣的:(NLP,python)