爲了解決這個問題,首先須要知道BLEU值是如何計算出來的。
BLEU全稱是Bilingual Evaulation Understudy。其意思是雙語評估替補。所謂Understudy(替補),意思是代替人進行翻譯結果的評估。spa
BLEU的思想基於Count based Model,儘管它並不完美,但它提供了一種很是有效的以單一數字指標評估機器翻譯結果的方法。翻譯
下面以一個例子說明BLEU的計算。code
假如正確的翻譯參考(2)個是:io
The cat is on the desk.
class
There is a cat on the desk.
sed
那麼很天然想到,用實際翻譯結果中出如今參考翻譯中的單詞數除以實際翻譯結果單詞總數,是一種評估方法。例如,若翻譯結果爲The cat are on the desk
。則評分爲:\(5/6\),只有are沒有出現,這看起來是合理的。可是若翻譯結果爲is is is is is is is
,那麼很顯然,評分爲\(6/6\),is在參考翻譯句子中出現了。很明顯,這就不對了。方法
一個解決方法是,規定實際翻譯結果中每一個單詞的計數不得超過在單個參考翻譯中出現的最大次數。即上述is is is is is is
結果,單詞is在參考翻譯中出現的最大次數是1,所以,評分爲\(1/6\)。co
這是比較合理的。數字
還有個因素須要考慮,假如實際翻譯句子爲desk the on cat a is there
,那麼得分爲\(7/7\),雖然單詞都出現了,上面的方法僅僅考慮了uni-gram,句子的流暢度卻沒有考慮。所以,根據「平滑」的思想,進一步考慮bi-gram,tri-gram。實際應用中,通常是考慮1-gram到4-gram。具體來講:math
計算全部單個單詞,\(x_i\)在參考翻譯中的得分,計算方式爲:
\(在參考翻譯中的最大出現次數在實際翻譯中的出現次數score1 = \frac{\sum_{i=1}^nx_i在參考翻譯中的最大出現次數}{\sum_{i=1}^nx_i在實際翻譯中的出現次數}\)
式中,\(n\)是一元組,即單個單詞數(不包括重複)。
計算全部二元組,記爲\(x_i\)在參考翻譯中的得分,計算方式爲:
\(在參考翻譯中的最大出現次數在實際翻譯中的出現次數score2 = \frac{\sum_{i=1}^nx_i在參考翻譯中的最大出現次數}{\sum_{i=1}^nx_i在實際翻譯中的出現次數}\)
式中,\(n\)是二元組數(不包括重複)。
相似的計算三元組,四元組得分。
可見,若翻譯結果好,每一個得分的值就是1。
最後,將四個得分平均(或加權),獲得最後的分數:
\(score = \frac{1}{4}*(score1+score2+score3+score4)\)
實際應用中,經常取天然指數做爲最後的評分值,即:
$score =e^{ \frac{1}{4}*(score1+score2+score3+score4)} $
如今的應用(paper)中評估BLEU值,通常取n-gram從1到4,並不作平均,而是作加和再取對數值。即實際中的BLEU值計算方式爲:
\(BLEU = e^{ (score1+score2+score3+score4)}\)
可見,若是翻譯結果恰爲某個參考翻譯結果,四個得分都取1,最終的\(BLEU\)值爲\(e^4=54.598\),即BLEU值最大爲54.598分。