摘 要:使用基于短語的統計翻譯方法,搭建了一個簡易的阿拉伯語到中文的翻譯系統。核心的解碼器采用了log-linear直接翻譯模型進行開發,在系統中使用了大量的開源軟件進行語料庫的預處理,并討論了該方向上尚未解決的問題和未來的發展趨勢。
關鍵詞:短語; 統計翻譯; 阿拉伯語; log-linear; 解碼
中圖分類號:TP391.43文獻標志碼:A
文章編號:1001-3695(2009)00-2306-04
doi:10.3969/j.issn.1001-3695.2009.06.093
Phrase-based machine translation system from Arabic to Chinese
LI Kai, ZHENG Jie, JIANG Tong-hai
(Research Center for Multilingual Information Technology, Xinjiang Technical Institute of Physics Chemistry, Chinese Academy of Sciences, Urumqi 830011, China)
Abstract:
There was an implementation of a simple Arabic to Chinese translation system using a phrase-based statistical translation methods in this dissertation. The development of the core decoder used a log-linear direct translation model. In the system, used a large number of open source software in preprocessing corpus. And there was also a discussion of the unsolved problems and development trends in the future in this dissertation.
Key words:phrase; statistical translation; Arabic; log-linear; decoder
自然語言處理在國內已經得到了充分的發展,尤其是在中文處理方面已經達到了相對較高的水平;同時在機器翻譯方面,也取得了長足的進步,但主要研究還是在中文與英文的互翻譯上,對于一些相對較小的語種來說,國內的研究還比較少,如在阿拉伯語與中文的翻譯方面,還處于起步階段。本文采用國際上流行的基于短語(base phrase)的統計機器翻譯思想,借鑒了國際上阿拉伯語到英語[1]、英語到中文[2,3]的機器翻譯處理方法,利用國內外現有的開源工具,建立了一個簡易的阿拉伯語到中文的翻譯系統。
1 系統描述
1.1 基于短語的統計機器翻譯模型
基于短語的統計機器翻譯[4~6]以短語作為翻譯的基本單位。對于一個阿拉伯語句子,翻譯系統將其劃分為多個連續的詞語串[7](即所謂的phrase);然后將每一個阿拉伯語短語翻譯為漢語短語;最后將產生的漢語短語進行順序調整,并輸出譯文,如圖1所示。
1.2 基準的統計機器翻譯系統
在統計機器翻譯中,假定一個源語言句子 fJ1=f1…fj…fJ,要被翻譯成目標語言句子為cI1=c1…ci…cI。在所有可能的目標翻譯句子中,選擇出概率最高的句子作為最終的目標翻譯句子。
c^I^1=arg maxI,cI1{Pr(cI1|fJ1)}(1)
對于直接翻譯概率 Pr(cI1|f J1),系統采用了log-linear直接翻譯模型[8]進行模擬:
Pr(cI1|fJ1)=exp(∑Mm=1λmhm(cI1,fJ1))/∑c′ I′1exp(∑Mm=1λmhm(c′I′1, fJ1))(2)
在式(2)中的分母(語言模型)因為僅與源語言句子fJ 1有關,所以在搜索的過程中能夠省略分母,然后得出了一個對翻譯模型起決定作用的公式:
c^I^1=arg maxI,cI1{∑Mm=1λmhm(cI1, fJ 1)}(3)
這個方法是the source channel approach[9]的一個泛化。其優點是能夠很容易地把輔助模型h(#8226;)整合到整個系統之中。這個模型的比例因子 λM1能夠被訓練,通過一種區別性的學習方法(discriminative training)[8],其訓練的優化準則為
λ^M1=arg maxλM1{∑Ss=1log pλm1(es|fs)}(4)
這個判定準則是凸的,并存在全局最優。
筆者引入以下六個特征,并將其整合到log-linear模型中:短語翻譯概率為p(c~|a~);逆向短語翻譯概率為p(a~|c~);詞匯化的短語翻譯概率為lex(c~|a~);逆向詞匯化的短語翻譯概率為lex(a~|c~);中文語言模型為lm(cI1);中文句子長度為I。
翻譯系統的整個流程圖如圖2所示。
整個系統由以下模塊構成:訓練語料庫預處理模塊、中文分詞工具(利用開源工具Stanford NLP提供的中文分詞工具[10])、阿拉伯語詞形分析工具(利用開源工具Encode-Arabic-1.8版[11]和AMIRA1.0版[12])、詞語對齊模塊(利用開源工具GIZA++獲得初始對齊,然后對結果進行再處理)、短語抽取模塊、語言模型訓練模塊(利用開源工具SRI)、語言模型應用工具(利用開源工具SRI)、輸入預處理模塊、解碼模塊、輸出后處理模塊。
每個模塊都是一個可獨立執行的文件,可以運行在Linux平臺上。模塊之間以文件作為接口,這些文件包括訓練語料庫、規范的訓練語料庫(采用GIZA++定義)、分詞的訓練語料庫(采用GIZA++定義)、詞語對齊的語料庫、短語翻譯概率表、語言模型(采用SRI定義)、輸入文本、輸出文本。
2 預處理和規范化工具
一個訓練語料的流程圖如圖3所示。
2.1 訓練語料的預處理
訓練語料都是中文和阿拉伯文句子對齊的語料,在進行GIZA++訓練前,需要對這些語料進行加工處理。對語料進行預處理的主要工作就是進行中文分詞和阿拉伯語的詞形分析。實現原理如下:
a)中文分詞
系統中使用Stanford NLP自然語言處理小組開發的中文分詞開源工具[13]對文檔進行處理,分詞后的文件保持原文件名(filename.txt),同時產生原文件的備份文件(filename.cla.bak)。舉例如圖4所示。
b)阿拉伯語的詞形分析
系統中使用了Diab開發的AMIRA1.0進行阿拉伯語詞形分析,但是在處理前,首先要利用軟件Encode-Arabic將阿拉伯語的句子轉換為Buckwalter編碼的格式;然后再將經過編碼轉換的句子輸入到AMIRA,依次進行詞法分析、詞性標注和短語劃分。舉例如圖5所示。
2.2 詞語對齊
本模塊的主要目標就是實現訓練語料庫中的句子自動詞語對齊。
其基本思想是利用GIZA++進行漢語到阿拉伯語、阿拉伯語到漢語兩個方向的訓練,再對兩個方向的對齊結果按照Och等人[14]提出的Heuristic的思路進行優化。GIZA++實現了IBM統計翻譯模型,但得到的對齊結果忽略了多對多及多對一的情況。為了解決GIZA++詞語對齊的問題,通常利用雙向對齊的結果進行優化。優化的方法采用了以兩個方向對齊結果的交集為中心點,檢查其上下左右(grow)及對角(diag)相鄰的八個點,若在并集中,則作為擴展的對齊點加入對齊序列中。具體實現偽代碼如下:
Neighboring=((-1,0)(0,-1),(1,0)(0,1),(-1,-1),(-1,1),(1,-1),(1,1));
Align_Intersect=intersect(c2f,f2c);
Align_Union=union(c2f,f2c);
Heuristic();
Heuristic():
for chinese word c=0…cn
for arabic word f=0…fn
if(c aligned with f)
for each neighboring point((c-new,f-new))
if((c-new not aligned and f-new not aligned)
and (c-new,f-new) in Align_Union)
add alignment point (c-new,f-new);
2.3 短語抽取
目標:從詞對齊的語料庫中自動學習阿拉伯語短語到漢語短語的翻譯。
實現原理:很多基于短語的統計機器翻譯系統的短語抽取方法都很相似,根據這些方法,本模塊實現了從詞對齊中自動抽取雙語短語的算法。基本思想就是首先根據詞對齊生成最大似然詞匯化辭典;然后進行短語抽取;最后對每一個短語對計算四個翻譯概率。
2.3.1 生成最大似然詞匯化翻譯表
對于已經進行了詞對齊的語料,直接估計最大似然詞匯化翻譯表,用于短語對的詞匯化概率計算。如果直接用GIZA++產生的翻譯表計算,由于有的詞條在GIZA++詞典中沒有出現,導致會有一些短語對的詞匯化概率為0,而且GIZA++詞典中沒有w(a|NULL)和w(c|NULL)這兩個概率值。直接估計的方法就是直接抽取對齊的詞對,如果某個詞沒有與之對齊的翻譯詞,就認為它與NULL對齊;然后計算同現次數,按照式(5)(6)分別計算出w(c|f)和w(f|c),從而直接生成詞匯化的翻譯表。
w(c|f)=count(c, f)/countc(c, f)(5)
w(f|c)=count(c, f)/countf(c, f)(6)
2.3.2 短語抽取
從詞語對齊的語料庫中抽取雙語短語,要求短語對必須與詞對齊相容。定義如下:
(c, f)∈BPci∈c:(ci, fi)∈W→fi∈fAND fj∈f:(ci, fj)∈W→ci∈c(7)
其中:W表示詞語對齊的矩陣。抽取方法就是提取對齊矩陣中所有以對齊點為頂點的矩形,條件是與矩形所在行范圍內的詞源對齊的目標詞都在這個矩形的列范圍內,反之亦然,如圖6所示。
經常參加體育運動
>$trk
dA}mA
fY
Aln$ATAt
AlryADyp
圖6 詞語對齊矩陣
2.3.3 計算概率
短語抽取完后,再計算四個翻譯概率:p(a~|c~),lex(a~|c~)、p(c~|a~)、lex(c~|a~)。計算方法就是對所有生成的短語對分別計算阿拉伯語短語、中文短語以及兩者的同現次數;然后求商得到p(a~|c~)和 p(c~|a~),最后利用2.3.1節中生成的詞典按照
lex(cJ1|aI1,w)=ΠJj=11/{i|(j,i)∈w}∑(j,i)∈wP(cj|ai)(8)
計算得到lex(c~|a~)和lex(a~|c~)。
3 核心模塊的設計
實現原理:解碼部分主要參考了Koehn的Pharaoh系統說明文檔。其解碼的過程可以分為以下幾步:
a)獲取候選短語。根據輸入的已分詞的阿拉伯語句子,按照順序切分的阿拉伯語短語片段從雙語詞表中獲取對應的中文短語及其概率信息。
b)計算未來概率。在已獲取的中文候選短語的基礎上,動態規劃計算任意連續位置間的概率情況。
c)產生擴展假設。中文句子按照從左至右的順序產生,用候選短語進行擴展,計算出相應的代價,進行beam search。
d)根據beam search中每一步假設的代價,選擇最低的假設,回溯產生中文譯文。
圖7是核心模塊的系統流程。
3.1 選擇候選短語
一般地,一個雙語短語表是非常龐大的,對于一個輸入句子,只需選擇與這個句子相關的短語就可以了,這樣可以節省內存空間。為了便于解碼,候選短語中需記錄以下信息:阿拉伯語短語的起始、結束位置;阿拉伯語短語對應的中文短語翻譯;翻譯概率。然后可以窮舉一個阿拉伯語句子的所有可能短語,對每一個阿拉伯語短語查找雙語短語表,將雙語短語表中漢語部分與之完全匹配的短語選擇出來,參考以下算法:
for start=0 to ArabicWord.size()
{
for end=start to ArabicWord.size()
{
if((start-end)>MAX_PHRASE_LEN)
break;
string phrase=ArabicWord[start,end];
Search translation options
for phrase from Bilingual Phrase table
}
}
3.2 計算未來概率
在搜索過程中,程序以Hypothesis來存儲漢語短語翻譯及概率等信息,并將已翻譯相同個數的阿拉伯語詞語的Hypothesis存儲到同一個棧中。為了減少搜索空間,采用寬度優先的柱式搜索,這樣需要對同一個棧中的Hypothesis進行剪枝。盡管同一個棧中存放的Hypothesis覆蓋的阿拉伯語詞的個數相同,但是其覆蓋的位置可能不同;在剪枝時,為了進行比較,不僅要考慮已翻譯詞的概率,還要考慮未來概率。
未來概率是指如果要完成整個句子的翻譯,剩余部分達到的最大概率,它與當前還未翻譯的詞語相關,根據短語翻譯概率、短語長度及語言模型進行估算。在候選短語中,每一個阿拉伯語短語f~endstart均對應一個或多個中文短語翻譯。利用式(9)求得f~endstart的最大翻譯概率:
TP(f~endstart)=max∑λi×log(pi(a~,f~))(9)
其中:pi(c~,f~)指短語的四個翻譯概率、中文短語長度以及中文短語語言模型概率。利用以下的動態規劃算法,可以很容易地求得任意連續串的未來概率。
for each ArabicPhrase in Translation Option
TP
FutureCost(start,end)=TP;
for len=1 to ArabicWord.size()
for i=0 to ArabicWord.size()-len
for j=i to i+len
double p=FutureCost(i,j)+FutureCost(j+1,i+len);
if(p>FutureCost(i,i+len))
FutureCost(i,i+len)=p;
3.3 Beam Search
搜索是解碼器的核心,候選短語的選擇和未來概率的計算都是為搜索做準備的。系統中采用了beam search搜索策略,每一次只保留最好的N個決策,實際上它是一種寬度優先搜索算法。對于一個阿拉伯語句子a1a2…an,解碼器每次都根據候選短語選擇句子中為翻譯的一個短語ai…aj進行翻譯,根據式(4)計算相應概率,產生中文短語翻譯,并將這些信息存儲到Hypothesis中,根據已經翻譯的單詞個數m將新產生的Hypothesis存儲到相應的棧stack(m)中。當一個句子翻譯完畢時,關于這個句子的完整翻譯信息可以從最后一個棧stack(n)中向前回溯得到。以下是參考算法:
initialize HypothesisStack[0,…,nf]
create initial Hypothesis hp_init and push to HypothesisStack[0];
for i=0 to nf-1
for each hypothesis in HypothesisStack[i]
for each new_hp that can be derived form hp
covered_number=number of foreign words coverd so far;
push new_hp to HypothesisStack[covered_number];
prune HypothesisStack[covered_number];
3.4 譯文的產生
搜索完畢,可以通過回溯產生最終的譯文。一般地,系統中只產生一個最好的譯文(1-best),即從最后一個棧中找到概率最大的Hypothesis,根據其指向父親節點的指針向前回溯。有時,例如訓練log-linear模型的參數或者用N-best 做rerank 等,可能會需要解碼器輸出多個譯文(N-bset),可以利用A*算法來產生N-best。下面將著重介紹生成1-best算法:
find the Hypothesis with the highest probability in HypothesisStack[nf];
english_translation=hyp_best.english;
father_hyp=hyp_best.father;
while father_hyp !=hyp_init
english_translation=father_hyp.english+english_translation;
father_hyp=father_hyp.father;
output english_translation;
4 翻譯結果
選取了永中Office2007阿拉伯語版的用戶手冊和中文版的用戶手冊作為訓練的雙語語料庫。因為所取的語料大部分限制在計算機辦公領域,所以經過測試發現在辦公相關的中文句子的翻譯過程中,效果較好;但是在其他領域的翻譯效果還有待提升。在測試的過程中發現,翻譯過程中對于人名和地名的翻譯不是很好。雖然翻譯的結果能讓人們理解源語言的含義,但是要想達到人工翻譯的水準,還有巨大的提升空間。所以對于未來的工作,系統還需要從以下三個方面繼續進行改進:a)繼續豐富和擴充雙語語料的語句,擴大語料庫的涵蓋范圍;b)進一步提高人名和地名翻譯準確度;c)為了提高語句的翻譯質量,希望能夠融合基于語義的方法,建立基于實例的log-linear生成模型[15,16]。
5 結束語
本系統是基于短語的統計思想,搭建的一個簡單的阿拉伯語到中文的統計翻譯系統,里面還有很多問題需要進一步探討。阿拉伯語和中文的機器翻譯在我國的研究相對較少,希望通過本文能夠更多地關注這個方向的研究和發展。
參考文獻:
[1]ISBIHANI A El, KHADIVI S, BENDER O, et al. Morpho-syntactic Arabic preprocessing for Arabic to English statistical machine translation[C]//Proc of Workshop on Statistical Machine Translation. New York:Association for Computational Linguistics,2006:15-22.
[2]LIU Zhan-yi, WANG Hai-feng, WU Hua. Log-linear generation mo-dels for example-based machine translation[C]//Proc of the 11th MT SUMMIT XI. Copenhagen:[s.n.], 2007:305-312.
[3]基于短語的中文到英文統計機器翻譯系統“絲路”1.0版[EB/OL].(2006-12-28).http://www.nlp.org.cn/docs/upload/20061218/36/silKROad-1.0-man-1016.pdf.
[4]KOEHN P, OCH F J, MARCU D. Statistical phrase-based translation[C]//Proc of HLT-NAACL. Morristown, NJ:Association for Computational Linguistics,2003:48-54.
[5]ZENS R, NEY H, WATANABE T, et al. Reordering constraints for phrase-based statistical machine translation[C]//Proc of the 20th International Conference on CoLing. Morristown, NJ:Association for Computational Linguistics,2004:205-211.
[6]KOEHN P. Pharaoh: a beam search decoder for phrase-based statistical machine translation models[C]//Proc of the 6th Conference of the Association for Machine Translation. Washington DC:[s.n.], 2004:115-124.
[7]DIAB M, HACIOGLU K, JURAFSKY D. Automatic tagging of Arabic text: from raw text to base phrase chunks[C]//Proc of HLT-NAACL 2004. Boston:Association for Computational Linguistics,2004:149-152.
[8]OCH F J, NEY H. Discriminative training and maximum entropy models for statistical machine translation[C]//Proc of the 40th Annual Meeting of the Association for Computational Linguistics (ACL). Morristown, NJ:Association for Computational Linguistics, 2002:295-302.
[9]BROWN P F, PIETRA S A D, PIETRA V J D, et al. The mathema-tics of statistical machine translation[J]. Computational Linguistics,1993, 19(2):263-313.
[10][EB/OL].http://nlp.stanford.edu/software/parser-faq.shtml.
[11][EB/OL].http://sourceforge.net/projects/encode-arabic/.
[12][EB/OL].http://www1.cs.columbia.deu/~mdiab/.
[13]CHANG Pi-chuan, GALLEY M, MANNING C D. Optimizing Chinese word segmentation for machine translation performance[C]//Proc of ACL Workshop on Statistical Machine Translation. Columbus:Association for Computational Linguistics, 2008:224-232.
[14]OCH F J, NEYH. Improved statistical alignment models[C]//Proc of the 38th Annual Meeting of the Association for Computational Linguistics. Morristown, NJ:Association for Computational Linguistics,2004:440-441.
[15]LIU Zhan-yi, WANG Hai-feng, WU Hua. Example-based machine translation based on tree-string correspondence and statistical generation[J]. Machine Translation, 2006,20(1):25-41.
[16]BAR K, CHOUEKA Y, DERSHOWITZ N. An Arabic to English example-based translation system[C]//Proc of Information and Communication Technologies International Symposium, Workshop on Arabic Natural Language Processing. 2007:355-359.