馬文倩,王麗清,王 娟,陳寶童
(云南大學 信息學院,云南 昆明 650091)
BLEU算法常用于機器翻譯質量的評估[1]。它使用候選翻譯中一個詞或n個相連的詞(n-gram)在參考譯文中的出現次數作為基本的衡量標準。但其評估準確度過度依賴于參考譯文的質量、規模和覆蓋面,因此在參考譯文不足或未覆蓋全部可能的正確翻譯的情況下,會因評估誤判而導致低分,這在非通用語翻譯的評估中尤為突出。對此,R.Guimar?es等人提出考慮了文本中單詞語義的自動評估翻譯差異的方法[2],Samiksha Tripath等人提出基于句子嵌入的機器翻譯評估方法[3]。此外,將句子級的話語結構[4]以及神經網絡[5]用于機器翻譯的評估,都在語義和語法方面取得了一定的進展。此外,還可采用引入相同含義的不同翻譯來增加參考譯文的方法,幫助提升準確度。但如果參考譯文全部使用人工翻譯,則存在主觀性強[6]、成本高和重復使用性低[7]等缺點。
為此,有學者提出使用已有的同義詞庫,在BLEU評估過程中加入同義詞替換和淺層解析模塊[8],或者平滑處理[9]來克服這一缺點的方法。但很多情況下沒有現有的同義詞或近義詞庫,需要通過近義詞提取技術首先構建詞庫[10-11]。針對這一問題,R. Wang等人提出了一種親密關系概念來對文本中的近義詞進行發現和排序[12];合并wordnet等英語資源,并從中提取的方法,也被用于找出目標語言中給定單詞的近義詞[13];還有,數據概念模型[14]以及神經網絡[15]也有被用于解決近義詞提取問題的先例。
文中在對泰語進行BLEU質量評估中,為解決評估誤判和泰語參考譯文不足的問題,將泰語語料庫用深度學習模型進行詞向量訓練,引入word2vec中的近義詞提取方法,找到字典中泰語單詞的近義詞。然后據此通過參考譯文的近義詞替換,生成多參考譯文用于評估。該方法對于使用了與參考譯文中不同表達方式而被誤判低分的問題,得到了修正。實驗結果表明,這種方法可以快速、高效地擴充參考譯文,并且能有效地提升BLEU算法的準確度,可用于快速擴充參考譯文和非通用語等語料不足的翻譯評估。
BLEU算法的基本思想是:用候選譯文中的每個n-gram和參考譯文中的相匹配,將所有參考譯文中單個出現此n-gram的最大數量作為此n-gram的最大匹配數量。將參考譯文中所有匹配到的n-gram數量除以所有n-gram的數量,作為長度為n時的BLEU精確度得分。BLEU的計算公式如下:
(1)
式中,pn為上述長度為n時的BLEU的精確度得分,wn為pn的權值,BP(brevity penalty)為短句懲罰因子,當候選翻譯長度大于最相近參考譯文長度時,BP=1,否則BP=exp(1-最相近參考譯文長度/候選譯文長度)。根據以上公式可知,參考譯文的數量及表達方式的覆蓋程度,對BLEU評估結果影響較大。為使評估結果效果更好且更符合人的判斷,在BLEU評估算法的參考譯文輸入階段與評估階段之間,加入語料庫訓練、近義詞提取及參考譯文生成階段,在輸入單個或少量參考譯文后,先對參考譯文中的近義詞進行替換及擴充,將擴充后的參考譯文集,再用于下一階段的評估工作。
在翻譯中,由于更多地依賴翻譯者的學識、理解、表達和語言應用能力,因此,翻譯的結果往往呈現多樣化,并且沒有絕對的最優。另一方面,每種語言在不同的文化背景下,對事物的理解與表述方式不同,使用符合當地背景的近義表達,更能體現地域和文化的差異,也更接近于一個最優表達。所以,文中在近義詞的生成和提取中,選擇使用GloVe模型訓練目標語言的語料庫,學習目標語言的表達和語法特征,進而提取出基于目標語言文化背景下的近義詞。
GloVe模型使用大量語料庫構建詞的共現矩陣,即詞i在中心詞j的環境下出現的次數,記為矩陣的元素Xij而構成矩陣。然后基于全局詞匯共現的統計信息來學習詞向量,旨在將詞進行向量化表示,并盡可能地了解每種語言中的語義和語法關系。
具體的代價函數[16]為:
(2)
其中,wi和wj為單詞i和單詞j對應的詞向量,詞匯表的總量表示為N,bi和bj為定義的偏差項,權重函數f必須具備以下三個特點:(1)為避免隨著詞匯共現次數增大,出現權重下降的情況,f必須為非減函數;(2)當兩詞匯共現次數為0時,權重大小也應為0,即f(0)=0;(3)為避免加權過度,當一個詞匯出現頻率過高時,加權函數給予這個詞匯的值應相對較小。
考慮到在實驗室環境下GloVe模型用時更短且效果更好,但沒有可用的查找近義詞模塊,該文將GloVe模型訓練出的泰語詞向量轉為word2vec可讀取格式,再利用gensim完成批量收集近義詞的工作。
根據GloVe模型局部上下文窗口的特點,假設利用近義詞替換得到的參考譯文不僅可以提高待評估句子的準確率,而且可以在一定范圍內保證句子的流利性,并在下文中將對此觀點進行闡述和實驗證明。
由于泰語和漢語的語法特征相似[17-18],因此可以將GloVe訓練時產生的詞頻字典文本進行清洗和詞性標注后提取出所有名詞、動詞、形容詞和副詞,并對應進行替換,而達到擴充參考譯文的目的?,F有的訓練詞向量的模型認為語料庫越大、質量越高,則訓練出的詞向量效果越好。由于收集到的泰語語料庫質量和大小有限,因此對得到的每個原詞生成10個近義詞文本進行抽樣檢查,觀察近義詞與原詞間的余弦值后,設置閾值對近義詞文本進行批量篩選。最終留下相似度高的近義詞,并用于下階段的參考譯文生成。
經過近義詞篩選后,在上文中收集到的近義詞文本中,每個原詞對應的近義詞數量常常是不等的,且在語料庫足夠大、質量足夠高時,可能會訓練出更多的質量較高的近義詞。為保證收集到的近義詞文本的全面性,可更改Wordvec參數生成需要數量的近義詞。這樣,就會產生每個原詞都收集到10個甚至是更多的近義詞。所以,排除取相鄰詞之間的所有近義詞的組合這種可能會產生參考譯文和花費時間都呈指數級增長的與初衷相悖的方法,而選擇每次只替換一個近義詞生成參考譯文。
基于近義詞擴充的BLEU評估算法流程如圖1所示。

圖1 基于近義詞擴充的BLEU算法流程
文中所研究的評估算法將用于基于短句子的翻譯及評估,所以使用n等于1和n等于2的加權平均值乘以懲罰因子作為評估標準。在實驗中,將n=1和n=2的權值分別設置為0.4和0.6,希望在提高準確度的同時,可以盡可能保證句子的流利性。在加權平均的情況下,BLEU計算公式等價于幾何平均值。為了保證該方法在提高準確度的同時,也在一定程度上保證參考譯文的流利性,將n=2時的權重設置為比n=1時高。如果n=2時的精度為零,則說明參考譯文的流利性較差,所以通過該設置,保證分數高的參考譯文可以同時在準確度和流利性方面得到兼顧。
為獲得用于近義詞提取的訓練預料,首先對爬取的部分高質量泰語新聞文本(54M)和下載的wiki數據泰語網頁鏡像數據(1.3G)進行清洗和分詞。圖2是mysql數據庫中的高質量泰語新聞文本部分截圖。

圖2 部分數據截圖(1)
然后,按1.3節中描述的近義詞擴充方法,將GloVe訓練時產生的詞頻字典文本進行清洗和詞性標注,提取出所有名詞、動詞、形容詞和副詞,再用閾值提取出最相似的不超過10個近義詞,用于參考譯文的擴充生成。
擴充前的參考譯文(部分)如圖3所示。

圖3 部分數據截圖(2)
提取并篩選后的近義詞部分詞表如圖4所示。

圖4 篩選后部分近義詞詞表
使用近義詞文本對原參考譯文擴充后,生成的多參考譯文部分如圖5所示,可以看到標號為153的句子得到了擴充。

圖5 擴充后的參考譯文部分截圖
從原有的中泰黃金測試集語料庫中,選取200對長短、領域不同對照文本作為實驗原數據。將中文文本通過不同渠道分發給志愿者或借助第三方機器翻譯工具取得多組人工或機器翻譯的泰語翻譯結果。
大多數譯者認為評分高的一組比評分低的一組誤差較大,少部分譯者認為兩組都有誤差且程度相同。然后,將誤差大的一組記為A組,誤差小的一組記為B組。
再使用基于近義詞替換的BLEU評估方式對這兩組翻譯再一次進行評估,得到第二次的評估結果,將兩次評估結果進行對比分析。
實驗結果對比如表1、圖6和圖7所示。

表1 A、B組使用文中方法前后結果對比

圖6 A組翻譯使用文中方法前后對比

圖7 B組翻譯使用文中方法前后對比
為了更清晰地呈現評估值在兩種不同算法中的差異,采用均值平滑,即取第一句和之后每十句算出前面的均值并在圖中標出。得到的A組與B組結果分別如圖8和圖9所示。

圖8 采用均值平滑后A組翻譯對比

圖9 采用均值平滑后B組翻譯對比
圖中可以看出,A組翻譯和B組翻譯都有不同程度的提升。且對于長度與領域不同的翻譯任務,同一組翻譯結果的提升程度穩定,可以在提升準確度的同時,有效反映這組翻譯的綜合水平。
從圖8、圖9與表1的實驗結果可知,使用基于近義詞替換的BLEU改進算法前后,A組翻譯評估結果平均提升了0.06,B組翻譯平均提升了0.04。且A組與B組的平均評分差從0.104提高至0.115,提升了10.6%。針對實驗結果不理想的情況,對實驗過程進行分析,得出的原因如下:
高質量的大型語料庫對模型的訓練結果有積極的作用,文中實驗采用的語料庫的一部分是從wiki數據下載的鏡像,數據庫的平衡性較低。由于語料庫的平衡性和規模性的問題,可能出現Word2vec計算出的余弦相似度較高,但質量較低的近義詞。閾值是抽樣觀察近義詞文本后設定的,主觀性較強,不能有效篩選出所有的高質量近義詞。近義詞提取的字典文件使用了GloVe訓練結果中的詞頻統計文件,直接篩選出所有動詞、名詞、形容詞和副詞。這樣篩選后的字典文件過大,即近義詞替換過程中需要替換的詞較多,這導致了B組評估分數同樣提升。
由于評估過程中的參考翻譯并不是單純的越多越好,普通的近義詞并不能拉開優秀譯者與普通譯者之間的評估分數。通過觀察、分析擴充后的參考翻譯,發現一些常用的詞被多次替換,這樣在提升A組這種質量較高的翻譯評估分數的同時,也提升了B組的評估分數。因此,在字典文件篩選過程中不僅要考慮語法特性,留下特定詞性的單詞,還要考慮優秀譯者的翻譯習慣,篩選出優秀譯者習慣使用的詞語,再進行替換。
以泰語為例,結合深度自然語言處理模型,提出了一種針對非通用語翻譯評估的精確度提升方法,并通過實驗證明該方法可以在一定程度上提升因為參考譯文不足而被誤判低分的譯文的BLEU評分。針對實驗結果不理想的情況做出分析和說明,分析表明,單純地替換參考翻譯中所有的近義詞后的評估結果并不能完全達到預期。在近義詞生成階段還需要進一步完善??梢栽谟柧氝^程中使用高質量的語料庫提升提取的近義詞質量,或是對近義詞文本進行篩選留下優秀譯者習慣使用的詞語,以此對算法進行進一步改進。基于該文的后續工作,該方法著重考慮了短句子的精確度提升,即只考慮了n等于1和2時的加權計算,如果想進一步考慮n-gram取到3或4的情況可以直接在BLEU評估時調整參數計算,或者在訓練階段自定義字典,訓練出連續兩個詞或三個詞的近義詞。不過這需要訓練的語料庫較大,有待后續條件具備時進一步研究。