文章目錄
1.前言
最近在利用transformer自動化生成彈幕。在transformer的實現中,用到了一個標準BLEU標準。這個標準全稱爲bilingual evaluation understudy。同時參考了一些文章的介紹:
- 機器翻譯評測——BLEU算法詳解:http://www.cnblogs.com/by-dream/p/7679284.html
最後根據自己的理解解釋一下這個算法的含義。
2.N-gram
BLEU測評標準,主要是利用了N-gram來對翻譯譯文和標準譯文進行一個一個匹對。比如:
機器譯文:It is a nice day today
人工譯文:Today is a nice day
2.1 1-gram
如果用1-gram進行匹配的話,則可以得到:
這時候,機器譯文可以匹配到5個詞語,而它總詞語數爲6,所以匹配度爲:
2.2 3-gram
如果使用3-gram進行匹配:
可以看到,機器譯文可以組成4個詞組,而匹配上了2個詞組,所以匹配度爲:
2.3 N-gram總結
n-gram匹配以此類推,一般使用1-gram,2-gram,3-gram和4-gram來衡量句子與句子之間的匹配度。1-gram的結果代表了文中有多少個詞被單獨翻譯出來了,因此它反映的是這篇譯文的忠實度;而當我們計算2-gram以上時,更多時候結果反映的是譯文的流暢度,值越高文章的可讀性就越好。
3. BLEU算法
3.1 召回率
上面的n-gram方法,只考慮了機器譯文中的詞語數,而沒有同時考慮人工譯文中出現的次數。舉個例子:
機器譯文:the the the the
人工譯文:The cat is standing on the ground
如果使用1-gram方法進行匹配,則得到100%的匹配度。這是因爲“the”這個詞語在人工譯文中都出現了,但這個100%的匹配度顯然是不準確的。因此BLEU算法修正了這個錯誤,改爲考慮詞語出現在譯文中的最小次數:
其中表示在機器譯文中的第個詞語,則代表在機器譯文中這個詞語出現的次數,而則代表在人工譯文中這個詞語出現的次數。最後可以得到修正後的匹配度:
3.2 BLEU公式
首先定義幾個數學符號:
- 人工譯文表示爲,其中,表示共有個參考答案。
- 翻譯譯文表示,其中,表示共有個翻譯。
- N-gram表示個單詞長度的詞組集合,令表示第個詞組
- 表示第個詞組在翻譯譯文中出現的次數
- 表示第個詞組在標準答案中出現的次數
最後可以得到計算每個n-gram的公式:
- 在分子中,指的是第k個詞組在中的最小次數,也就是相當於找了最相似的候選句子。
3.3 懲罰因子
上面的算法已經足夠可以有效的翻譯評估了,然而N-gram的匹配度可能會隨着句子長度的變短而變好,因此會存在這樣一個問題:一個翻譯引擎只翻譯出了句子中部分句子且翻譯的比較準確,那麼它的匹配度依然會很高。爲了避免這種評分的偏向性,BLEU在最後的評分結果中引入了長度懲罰因子(Brevity Penalty)。
BP的計算公式如上。代表表示機器翻譯譯文的長度,表示參考答案的有效長度。當存在多個參考譯文時,選取和翻譯譯文最接近的長度。當翻譯譯文長度大於參考譯文的長度時,懲罰係數爲,意味着不懲罰,只有機器翻譯譯文長度小於參考答案纔會計算懲罰因子。
3.4 BLEU最終公式
由於各N-gram統計量的精度隨着階數的升高而呈指數形式遞減,所以爲了平衡各階統計量的作用,對其採用幾何平均形式求平均值然後加權,再乘以長度懲罰因子,得到最後的評價公式:
BLEU的原型系統採用的是均勻加權,即 。N的上限取值爲4,即最多隻統計4-gram的精度。
4.實例
4.1 句子間的BLEU
翻譯譯文:Going to play basketball this afternoon ?
人工譯文:Going to play basketball in the afternoon ?
其中翻譯譯文gram長度爲:7,人工譯文長度爲:8
- 1-gram計算:
- 2-gram計算:
- 3-gram計算:
- 4-gram計算:
- BP計算:
最後根據公式計算BLEU的值:
4.2 多個句子間的BLEU
翻譯譯文:
(1)Going to play basketball this afternoon ?
(2)Going to play basketball afternoon ?
人工譯文:
(1)Going to play basketball in the afternoon ?
(2)Going to play basketball in the afternoon ?
上面的翻譯譯文有兩個,其對應的人工譯文也是有兩個。
第一個翻譯譯文長度:7;第二個翻譯譯文長度:6
第一個人工譯文長度:8;第二個人工譯文長度:8
- 1-gram計算:
- 2-gram計算:
- 3-gram計算:
- 4-gram計算:
- BP計算:
最後根據公式計算BLEU的值:
總的來說,如果是評價一個語料集的BLEU,需要把所有的句子進行整體考慮,來計算BLEU,而不是把每個句子的BLEU求和平均。