【NLP】BLEU值


為了解決這個問題,首先需要知道BLEU值是如何計算出來的。
BLEU全稱是Bilingual Evaulation Understudy。其意思是雙語評估替補。所謂Understudy(替補),意思是代替人進行翻譯結果的評估。

BLEU的思想基於Count based Model,盡管它並不完美,但它提供了一種非常有效的以單一數字指標評估機器翻譯結果的方法。

下面以一個例子說明BLEU的計算。

假如正確的翻譯參考(2)個是:

The cat is on the desk.

There is a cat on the desk.

那么很自然想到,用實際翻譯結果中出現在參考翻譯中的單詞數除以實際翻譯結果單詞總數,是一種評估方法。例如,若翻譯結果為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\)

這是比較合理的。

還有個因素需要考慮,假如實際翻譯句子為desk the on cat a is there,那么得分為\(7/7\),雖然單詞都出現了,上面的方法僅僅考慮了uni-gram,句子的流暢度卻沒有考慮。因此,根據“平滑”的思想,進一步考慮bi-gram,tri-gram。實際應用中,一般是考慮1-gram到4-gram。具體來說:

計算所有單個單詞,\(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分。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM