臧景才 陳建新 李永虎
摘要:本文主要介紹了基于短語(yǔ)統(tǒng)計(jì)方法的藏漢機(jī)器翻譯系統(tǒng)的實(shí)現(xiàn),其中對(duì)開(kāi)源工具包Moses(翻譯模型的訓(xùn)練工具)、IRSTLM(語(yǔ)言模型訓(xùn)練工具)、GIZA++(雙語(yǔ)對(duì)齊工具)及XMLRPC(在線翻譯工具)等的相關(guān)理論使用做了分析和說(shuō)明,并對(duì)藏漢雙語(yǔ)語(yǔ)料、藏漢雙語(yǔ)語(yǔ)料預(yù)處理、訓(xùn)練語(yǔ)言模型、訓(xùn)練翻譯模型、構(gòu)建解碼器和搭建藏漢在線翻譯系統(tǒng)幾個(gè)模塊的做了闡述,從而實(shí)現(xiàn)整個(gè)藏漢在線機(jī)器翻譯系統(tǒng)的搭建。
[關(guān)鍵詞]短語(yǔ) 統(tǒng)計(jì)模型 藏漢 在線翻譯
1 引言
目前,基于語(yǔ)料庫(kù)的統(tǒng)計(jì)機(jī)器翻譯方法成為了研究的主流,統(tǒng)計(jì)機(jī)器翻譯(Statistical Machine Translation,簡(jiǎn)稱SMT)系統(tǒng)首要任務(wù)是為語(yǔ)言的產(chǎn)生統(tǒng)計(jì)模型,并在此統(tǒng)計(jì)模型基礎(chǔ)上自動(dòng)從雙語(yǔ)語(yǔ)料中獲取需要的各種參數(shù),需要的人工干預(yù)較少,因此基于統(tǒng)計(jì)的機(jī)器翻譯比其他機(jī)器翻譯方法有著比較明顯的優(yōu)勢(shì)。本文利用MOSES、IRSTLM、GIZA++、Mteval、XMLRPC等開(kāi)源的工具包和一些公共資源搭建基于短語(yǔ)的藏漢在線翻譯系統(tǒng),通過(guò)實(shí)踐和應(yīng)用進(jìn)一步探討和研究藏漢機(jī)器翻譯系統(tǒng)的工作原理,提高應(yīng)用水平和翻譯效果。
2 開(kāi)源工具的選取
2.1 翻譯模型訓(xùn)練工具M(jìn)oses
Moses是一個(gè)基于短語(yǔ)的統(tǒng)計(jì)機(jī)器翻譯系統(tǒng),它的開(kāi)發(fā)領(lǐng)導(dǎo)者是Philipp Koehn。整個(gè)Moses系統(tǒng)都是開(kāi)放源代碼的,可在多個(gè)系統(tǒng)平臺(tái)上運(yùn)行。運(yùn)用處理好的雙語(yǔ)對(duì)齊語(yǔ)料庫(kù)進(jìn)行翻譯模型的訓(xùn)練,最終得到從源語(yǔ)言到目標(biāo)語(yǔ)言的翻譯概率表。本系統(tǒng)就是利用Moses進(jìn)行藏漢機(jī)器翻譯模型的訓(xùn)練。
2.2 語(yǔ)言模型訓(xùn)練工具IRSTLM
Moses目前支持三個(gè)語(yǔ)言模型工具包SRILM(The SRI language modeling toolkit),IRSTLM(IRST language modeling toolkit)和RandLM(the Rand LM language modeling toolkit)。IRSTLM是意大利TrentoFBK-IRST實(shí)驗(yàn)室開(kāi)發(fā)的語(yǔ)言模型訓(xùn)練工具包,主要目的是處理較大規(guī)模的訓(xùn)練數(shù)據(jù),在大規(guī)模語(yǔ)言模型的訓(xùn)練和使用上IRSTLM較SRILM有較大的優(yōu)勢(shì),其內(nèi)存消耗僅是SRILM的一半。IRSTLM訓(xùn)練的基本思想是把總的詞匯表分割成若干個(gè)子詞匯表,然后把每一個(gè)子詞匯表獨(dú)立地進(jìn)行訓(xùn)練,得出相應(yīng)的子語(yǔ)言模型,最后把這些得到的子語(yǔ)言模型進(jìn)行快速融合,得到最終的語(yǔ)言模型。另外,劃分的這些子詞匯表的大小可以是任意的,也就是說(shuō)訓(xùn)練子語(yǔ)言模型的內(nèi)存空間是可以控制的。所以,在本系統(tǒng)中選擇使用IRSTLM工具來(lái)訓(xùn)練語(yǔ)言模型。
2.3 詞語(yǔ)對(duì)齊工具GIZA++
統(tǒng)計(jì)機(jī)器翻譯(簡(jiǎn)稱SMT)系統(tǒng)能夠自動(dòng)從雙語(yǔ)語(yǔ)料中獲取模型系統(tǒng)需要的各種參數(shù),其中很重要的一個(gè)環(huán)節(jié)就是詞語(yǔ)、短語(yǔ)的對(duì)齊。GIZA工具是約翰.霍普金斯大學(xué)中的語(yǔ)言與語(yǔ)音處理中中心在1999年統(tǒng)計(jì)機(jī)器翻譯研發(fā)的,用于從雙語(yǔ)語(yǔ)料庫(kù)中抽取雙語(yǔ)對(duì)齊語(yǔ)料,進(jìn)行從源語(yǔ)言到目標(biāo)語(yǔ)言和從目標(biāo)語(yǔ)言到源語(yǔ)言兩個(gè)方向的參數(shù)訓(xùn)練,建立翻譯模型。GIZA++是GIZA的升級(jí)版本,是開(kāi)放源代碼的免費(fèi)工具包。本系統(tǒng)用該工具進(jìn)行漢語(yǔ)到藏語(yǔ)以及藏語(yǔ)到漢語(yǔ)的兩個(gè)方向的對(duì)齊訓(xùn)練。
2.4 藏漢機(jī)器翻譯自動(dòng)評(píng)測(cè)工具M(jìn)teval
Mteval是由NIST(美國(guó)國(guó)家標(biāo)準(zhǔn)與技術(shù)局)提供的機(jī)器翻譯自動(dòng)測(cè)評(píng)工具,該工具是用Perl語(yǔ)言編寫而成的?,F(xiàn)在普遍的采用BLUE作為機(jī)器翻譯的評(píng)測(cè)指標(biāo),它將翻譯結(jié)果的文件與參考答案進(jìn)行n-gram匹配,從而給出評(píng)分,得出評(píng)測(cè)結(jié)果。
2.5 搭建的藏漢在線翻譯系統(tǒng)工具XMLRPC
XMLRPC是一種基于Internet的遠(yuǎn)程函數(shù)調(diào)用協(xié)議,利用控制傳輸協(xié)議來(lái)傳輸XML格式的文件,并通過(guò)該協(xié)議獲得遠(yuǎn)程調(diào)用。XMLRPC是RPC機(jī)制的實(shí)現(xiàn)方式之一,采用XML語(yǔ)言作為服務(wù)器與客戶端的數(shù)據(jù)交互格式。搭建的藏漢在線翻譯系統(tǒng)是能夠通過(guò)Server的形式啟動(dòng),能夠通過(guò)網(wǎng)頁(yè)的形式來(lái)訪問(wèn)本文所搭建的這個(gè)藏漢機(jī)器翻譯系統(tǒng),使得系統(tǒng)具備了在線翻譯的功能。
3 搭建藏漢在線翻譯系統(tǒng)
統(tǒng)計(jì)機(jī)器翻譯的基本思想是通過(guò)對(duì)大量的平行語(yǔ)料庫(kù)進(jìn)行統(tǒng)計(jì)分析,構(gòu)建統(tǒng)計(jì)翻譯模型,進(jìn)而使用此模型進(jìn)行翻譯,選取統(tǒng)計(jì)中出現(xiàn)概率最高的詞條作為翻譯對(duì)象,如圖1。概率算法依據(jù)貝葉斯定理:假設(shè)要把一個(gè)藏語(yǔ)句子A翻譯成漢語(yǔ),所有漢語(yǔ)句子B,都是A的可能或是非可能的潛在翻譯。Pr(A)是類似A表達(dá)出現(xiàn)的概率,Pr(B|A)是A翻譯成B出現(xiàn)的概率。找到兩個(gè)參數(shù)的最大值,就能縮小句子及其對(duì)應(yīng)翻譯檢索的范圍,從而找出最合適的翻譯。
具體搭建Mosesserver需要安裝必要的工具,如Perl、PHP、netcat以及XMLRPC等。安裝完這些工具以后,需要對(duì)文件進(jìn)行配置,即可完成。
3.1 準(zhǔn)備藏漢雙語(yǔ)對(duì)齊語(yǔ)料庫(kù)
基于短語(yǔ)的藏漢在線翻譯系統(tǒng)是運(yùn)用統(tǒng)計(jì)方法的機(jī)器翻譯系統(tǒng)來(lái)搭建,這就需要依賴龐大的雙語(yǔ)語(yǔ)料庫(kù)為基礎(chǔ),語(yǔ)料庫(kù)的健全與否將會(huì)對(duì)系統(tǒng)的翻譯效果產(chǎn)生很大的影響。在構(gòu)建語(yǔ)料庫(kù)時(shí)盡量不要使得語(yǔ)料庫(kù)中單詞出現(xiàn)次數(shù)過(guò)低,從而引起數(shù)據(jù)稀疏的現(xiàn)象;盡量找到以藏語(yǔ)為原創(chuàng)的藏漢對(duì)照語(yǔ)料,忠實(shí)于藏語(yǔ)語(yǔ)言特點(diǎn);限制藏漢雙語(yǔ)語(yǔ)料中單詞的長(zhǎng)度,這樣會(huì)使得統(tǒng)計(jì)學(xué)習(xí)更加的容易。訓(xùn)練語(yǔ)料庫(kù)包括藏語(yǔ)語(yǔ)料和漢語(yǔ)語(yǔ)料庫(kù)。
3.2 藏漢雙語(yǔ)語(yǔ)料預(yù)處理
藏文的編碼方式較多,首先對(duì)輸入的藏文文本進(jìn)行編碼判別,把不同的編碼轉(zhuǎn)換成系統(tǒng)能夠識(shí)別的統(tǒng)一編碼格式。系統(tǒng)的源語(yǔ)言句子為藏語(yǔ),為了后期的詞抽取和短語(yǔ)對(duì)抽取,需要進(jìn)行斷句和分詞的預(yù)處理操作。預(yù)處理是將文本統(tǒng)一為相同的數(shù)據(jù)格式,然后進(jìn)行分析計(jì)算。預(yù)處理包分類和括編碼歸一,由于藏文字符為寬字符,因此語(yǔ)料以u(píng)tf-8的編碼格式儲(chǔ)存,為了便于語(yǔ)料庫(kù)的維護(hù),特別是構(gòu)建大型的藏漢雙語(yǔ)平行語(yǔ)料庫(kù)實(shí)行分類儲(chǔ)存;編碼歸一化是將文本轉(zhuǎn)換為相同的編碼格式。
3.3 訓(xùn)練藏漢短語(yǔ)翻譯模型
對(duì)藏漢雙語(yǔ)語(yǔ)料預(yù)處理,需要去掉空行、去掉多余的空格、短語(yǔ)切分、時(shí)間和數(shù)字的歸一化處理、根據(jù)詞典信息和長(zhǎng)度信息(這里要求短語(yǔ)的長(zhǎng)度在1到80之間),過(guò)濾掉過(guò)長(zhǎng)的對(duì)齊短語(yǔ),經(jīng)過(guò)以上,上步驟就可以得到相對(duì)比較干凈的雙語(yǔ)平行對(duì)齊句對(duì)。運(yùn)用IRSTLM工具包訓(xùn)練漢語(yǔ)語(yǔ)言模型,首先需要對(duì)漢語(yǔ)語(yǔ)料進(jìn)行分詞等預(yù)處理工作。訓(xùn)練后的輸出結(jié)果文件,采用的是ARPA標(biāo)準(zhǔn)格式。
3.4 GIZA++進(jìn)行雙語(yǔ)對(duì)齊
通過(guò)GIZA++進(jìn)行雙語(yǔ)對(duì)齊。對(duì)齊是雙向的對(duì)齊,也就是說(shuō)分別進(jìn)行從藏語(yǔ)到漢語(yǔ)和從漢語(yǔ)到藏語(yǔ)的對(duì)齊。GIZA++利用的IBM模型,它只能夠?qū)⒁粋€(gè)目標(biāo)語(yǔ)言映射到多個(gè)源語(yǔ)言單詞上去,如果想要得到多對(duì)多的映射,就需要對(duì)雙語(yǔ)對(duì)齊句對(duì)進(jìn)行優(yōu)化對(duì)齊(AlignWords),優(yōu)化的方法主要有intersect、Grow-Diag-Final、union等方法。Grow-Diag-Final優(yōu)化算法的基本思想是:獲得從藏語(yǔ)到漢語(yǔ)以及從漢語(yǔ)到藏語(yǔ)的對(duì)齊結(jié)果,并取得并集和交集。在此基礎(chǔ)之,上,以從藏語(yǔ)到漢語(yǔ)以及從漢語(yǔ)到藏語(yǔ)對(duì)齊結(jié)果的交集為中心點(diǎn),依次檢查它的上下左右(grow)、對(duì)角(ding)以及相鄰的8個(gè)節(jié)點(diǎn),如果在雙向?qū)R結(jié)果的并集中,則將其作為擴(kuò)展的對(duì)齊節(jié)點(diǎn),并加入到對(duì)齊序列中。其中,取交集是為了獲得較高的準(zhǔn)確率,取并集是為了獲得較高的召回率。根據(jù)得到的對(duì)齊矩陣,利用最大似然估計(jì)方法(Maximum Likelihood Estimate,MLE)獲得到翻譯概率表,經(jīng)過(guò)短語(yǔ)對(duì)抽取、短語(yǔ)評(píng)分計(jì)算出短語(yǔ)翻譯概率和短語(yǔ)詞翻譯概率,在完成上步驟以后,經(jīng)過(guò)重排模型,生成藏漢翻譯模型(Generate Model)。
3.5 構(gòu)建藏漢解碼器
統(tǒng)計(jì)機(jī)器翻譯可以看做對(duì)原文通過(guò)模型轉(zhuǎn)換為譯文的解碼過(guò)程,解碼器是一個(gè)基于短語(yǔ)的柱搜索解碼器,該解碼器運(yùn)用柱狀搜索算法,從漢語(yǔ)源語(yǔ)言模型和藏漢短語(yǔ)翻譯模型中讀取到有用的信息來(lái)進(jìn)行解碼。在解碼器的配置過(guò)程中,需要告訴解碼器漢語(yǔ)語(yǔ)言模型以及藏漢翻譯模型的路徑和名字。
3.6 GIZA++性能測(cè)試分析
短語(yǔ)對(duì)齊是統(tǒng)計(jì)翻譯的基石,隨著語(yǔ)料的不斷加大,對(duì)系統(tǒng)資源的占用會(huì)增大,需進(jìn)行測(cè)試和分析。此測(cè)試是在pc機(jī)上進(jìn)行,訓(xùn)練語(yǔ)料為100000和600000,句長(zhǎng)限制均為30的情況下內(nèi)存消耗量與時(shí)間的走勢(shì)圖。從測(cè)試可以發(fā)現(xiàn)兩種情況下所耗費(fèi)的時(shí)間不相同,訓(xùn)練語(yǔ)料為100000句時(shí)程序要運(yùn)行34分鐘,而600000句時(shí)需運(yùn)行104分鐘。在訓(xùn)練語(yǔ)料為100000句的時(shí)候,其峰值出現(xiàn)在程序運(yùn)行的第16分鐘,大小約為343650KB,600000句的時(shí)候,其峰值大約出現(xiàn)在程序運(yùn)行的第46分鐘,大小約為678481KB。可以看出,整個(gè)過(guò)程所用時(shí)間和內(nèi)存消耗量隨所處理訓(xùn)練語(yǔ)料的增大而變大。
通過(guò)測(cè)試,對(duì)于預(yù)估計(jì)整個(gè)過(guò)程的運(yùn)行具有很大幫助,從而避免在運(yùn)行中由于資源不足而導(dǎo)致程序崩潰的情況。
3.7 構(gòu)建藏漢解碼器
解碼器是一個(gè)基于短語(yǔ)的柱搜索解碼器,該解碼器運(yùn)用柱狀搜索算法,從源語(yǔ)言模型和藏漢短語(yǔ)翻譯模型中讀取到有用的信息來(lái)進(jìn)行解碼。在解碼器的配置過(guò)程中,需要告訴解碼器漢語(yǔ)語(yǔ)言模型以及藏漢翻譯模型的路徑和名字。構(gòu)建解碼器的具體命令行如下所示:
Moses-fmoses.ini
因?yàn)椴貪h雙語(yǔ)短語(yǔ)表是通過(guò)平行語(yǔ)料庫(kù)自動(dòng)抽取得到,同一個(gè)漢語(yǔ)的短語(yǔ)可能映射多個(gè)不同的藏語(yǔ)短語(yǔ)。要想快速高效地找到翻譯結(jié)果,就需要對(duì)藏漢雙語(yǔ)短語(yǔ)進(jìn)行匹配優(yōu)化。就是一個(gè)藏語(yǔ)短語(yǔ)只取理論上最好的N個(gè)漢語(yǔ)短語(yǔ)。這里所謂的最好就是用短語(yǔ)翻譯概率表來(lái)衡量的,翻譯的概率越高它就越好。
4 系統(tǒng)的特點(diǎn)和優(yōu)勢(shì)
基于短語(yǔ)的藏漢在線翻譯系統(tǒng),翻譯質(zhì)量的高低主要取決于概率模型的好壞和語(yǔ)料庫(kù)的覆蓋能力,基于短語(yǔ)的翻譯模型與基于句法的翻譯模型相比,模型較簡(jiǎn)單、訓(xùn)練速度較快、解碼效率較高;用基于短語(yǔ)的翻譯方法能夠包含局部上下文信息,比基于詞的翻譯方法能取得更好的翻譯效果;基于短語(yǔ)的翻譯語(yǔ)料更容易獲取,依賴爬蟲(chóng)技術(shù)有互聯(lián)網(wǎng)中大量的文本資料,基于這些文本資料可以獲取大量的語(yǔ)料來(lái)源,從而為自己的翻譯提供大量的依據(jù)數(shù)據(jù),不足之處是語(yǔ)料庫(kù)的選擇和處理工程量巨大。
5 結(jié)束語(yǔ)
本文利用MOSES、IRSTLM、GIZA++、Mteval、XMLRPC等開(kāi)源的工具包搭建基于短語(yǔ)的藏漢在線翻譯系統(tǒng)。首先,利用IRSTLM完成了對(duì)漢語(yǔ)語(yǔ)言模型的訓(xùn)練,利用Moses、GIZA++詞對(duì)齊工具完成了對(duì)藏漢翻譯模型的訓(xùn)練,通過(guò)Moses完成了整個(gè)藏漢機(jī)器翻譯系統(tǒng)的搭建;再次利用開(kāi)源工具XMLRPC實(shí)現(xiàn)了藏漢在線翻譯的功能。最后利用BLEU自動(dòng)評(píng)測(cè)技術(shù),對(duì)融入擴(kuò)展詞典前后的藏漢在線翻譯系統(tǒng)進(jìn)行自動(dòng)評(píng)測(cè)。所搭建的藏漢在線翻譯系統(tǒng)能夠以Server的形式,使得系統(tǒng)具備了在線翻譯的功能。
參考文獻(xiàn)
[1]張步峰,孫越恒,趙青.對(duì)齊模板在標(biāo)準(zhǔn)
短語(yǔ)統(tǒng)計(jì)機(jī)器翻譯模型中的應(yīng)用[J].電子測(cè)量技術(shù),2007,30(07):146-150.
[2]蘇翔,李玉鍾.GIZA++計(jì)算性能分析[J].計(jì)算機(jī)工程與科學(xué),2010,32(05).
[3]華卻才讓,基于樹(shù)到串藏語(yǔ)機(jī)器翻譯若干關(guān)鍵技術(shù)研究[D].陜西師范大學(xué),2014.
[4]位索東.基于短語(yǔ)的藏化在線翻譯系統(tǒng)研究[D].西北民族大學(xué)(碩士論文),2015.
[5]巴桑卓瑪.藏漢雙語(yǔ)平行語(yǔ)料庫(kù)構(gòu)建方法及關(guān)鍵技術(shù)研究[D].西藏大學(xué),2018.