【NLP】MT中BLEU評分機制

參考博客:https://blog.csdn.net/guolindonggld/article/details/56966200web

原著論文:http://www.aclweb.org/anthology/P02-1040.pdf.net

 

BLEU是2002年IBM研究人員提出的一種自動評價MT翻譯質量的方法。其本質是比對MT給出的結果(稱爲候選翻譯,candidate)和事前知道的比較好的若干個翻譯樣本(稱爲參考翻譯,reference,一般是人工翻譯給出的數據),比較二者之間的類似度。翻譯

在計算這個類似度的時候,最基本的策略是從candidate中逐步取出一些內容,考察這些內容,去檢查各個參考翻譯中是否存在相同的內容。若是相同的內容出現頻率越高,說明candidate的翻譯越準確。將這個頻率量化爲某個指標P (這個指標是針對某個內容子集而言的)。當咱們把candidate中全部信息都考察完畢,沒有漏掉的東西以後,加和全部的指標P,所獲得的分數越高,天然翻譯就是越準確的。blog

那麼具體取出的是什麼內容? 很天然想到的是單個單個的詞。不過單個詞的抽出內容(所謂的1-gram詞模型)的一個問題是經常使用詞陷阱。好比candidate中含有大量的the,in這類經常使用詞可是翻譯質量並不高時,因爲是經常使用詞,必然也在全部的reference中也都有出現,反而會致使分數比較高。爲了解決這個問題,咱們能夠作兩點改進:博客

1. 將1-gram升高爲N-gram,增強匹配的嚴格性。不過直接將此模型提高到N-gram,可能會致使太嚴格,因此能夠折中,以必定的權重將1-gram,2-gram... N-gram各個模型獲得的值作一個平均做爲最終的分數。這個平均通常是加權幾何平均。it

2. 另外一個想法,則是對量化指標這個過程作些調整。以前沒有具體說明量化指標的過程是怎麼作的,不過能夠感到,須要一個機制來統合而不是那麼傻乎乎地去計算頻率。好比某個詞或詞組在candidate中出現了好幾回該怎麼算,不一樣reference中出現次數又不相同又該怎麼辦pdf

 

綜合上述考慮,BLEU給出的PN值的計算公式是min( candidate.count(w), max(reference1.count(w), reference2.count(w)...   referenceN.count(w) ) ) / candidate.count(w) 。也就是說,針對某個從candidate中選出的詞或詞組w,首先求出各個reference中其出現次數的最大值,而後取這個值與candidate中w出現次數二者中較小的值。而後將這個值除以candidate中w出現次數。首先能夠肯定,這個值確定是小於等於1的。date

其次,上面這個公式是針對一個要素w的狀況,實際上翻譯結果中有w1,w2...wn那麼多,那麼這些結果的全部分子加起來除以全部分母加起來,獲得的就是PN了。方法

 

固然不要忘了,以前咱們說能夠將1,2...N-gram的結果都要拿來用。另外對加權幾何平均進行一個對數化處理,因而咱們就獲得了im

這樣一個公式了。

因爲最外面套了一個exp,而exp裏面的玩意兒必然小於0,因此最終產出確定是一個小於1的正值。

 

這樣看似不錯了。不過還有BLEU的第二個陷阱須要解決,即短句陷阱。好比中文中有一句「貓XXXX」的句子,那麼英語翻譯時幾乎必然會出現the cat這個詞組。若是MT的翻譯結果就是「the cat」,此時candidate長度就只有2,所以也就只能作到1-gram和2-gram的評估。然而不合理的地方在於,即使是漏譯了不少內容,在評估模型看來,P1和P2仍是有可能會比較高的。由於全部reference中都幾乎必然出現the cat這個詞組。

換言之,目前模型對於短翻譯句的評估還不是很合理,緣由是當candidate長度太短時,咱們只能作到有限的N-gram模型就不得不做罷。

爲了修正這個錯誤,BLEU提出的解決方案是引入BP(Brevity Penalty)即太短懲罰。相比於上面複雜的計算,BP的計算就要簡單不少了,首先從reference中找出長度與candidate最爲相近的一條。若是此條長度大於candidate長度,那麼定義BP爲exp(1 - r/c)。反之,若是candidate長度大於最接近的reference長度,那麼直接定義BP爲1。

將BP乘以上面算式算出的指標,即可獲得一個大於0小於1的BLEU分數了。

 

總的公式:

 

通常MT研究中,BLEU做爲標杆,有比較重要的意義。各類MT模型的目標都是爲了讓BLEU上升。

相關文章
相關標籤/搜索