多策略分析的複雜長句翻譯處理算法
在實用機器翻譯系統的研究
開發中,複雜長句的翻 譯處理是其面臨的一個主要難題。提出一種多
語種通用的基於多策略分析的複雜長句翻譯處理算法,該算法通過基於實例模式匹配和規則分析相結合的方法,綜合利用源語言句子中多種相關的語言特徵,包括
語法語義特徵、句子長度、標點符號、功能詞以及上下文語境條件等對複雜長句進行切分簡化處理和譯文的複合生成。另一方面,通過對不同語種設計相同的知識表示形式,實現該算法對不同語種翻譯系 統的通用性。
設計考慮
針對造成句子複雜的因素,我們在設計處理算法時基於以下幾個方面的考慮:
1、綜合利用多種相關語言特徵知識:在進行句子切分處理時,切分點的選擇儘量綜合利用諸如:句子長度、標點、功能詞、上下文語境條件等多方面的因素,以使切分開的句子各部分在長度上是適中的,表達的結構和意義上是相對完整的,從而保證對句子各個部分翻譯處理的效果。
2、多語種通用:對於多語機器翻譯系統來說,不同語種的翻譯系統都會存在對複雜長句的處理問題。因此,在進行複雜長句切分處理算法的設計時,要考慮到算法對不同語種翻譯系統的通用性,通過設計相同的數據結構和算法機制,配套以不同的語種知識庫,實現算法的多語種通用性。
3、同時考慮句子的切分簡化和譯文的複合生成處理:翻譯的最終目的是得到目標語言的翻譯結果。因此,在進行多策略的切分處理時,同時要考慮到切分的各個部分譯文的複合生成問題。另一方面,切分實例模式的建立以生成為導向 ,從而可以得到較好的翻譯結果。
基於多策略分析的複雜長句翻譯處理算法
由於自然語言的複雜性,基於單一策略的分析處理算法很難處理好對複雜長句的翻譯處理。為此,提出了一種基於多策略分析的複雜長句翻譯處理算法,該算法通過基於實例模式匹配和規則分析的方法的結合,基於一種多知識一體化的知識表示形式,從而實現對多語種通用的綜合利用句子的多種相關語言特徵,包括長度、標點、功能詞以及上下文語境條件對複雜長句進行切分簡化處理和譯文的複合生成的翻譯處理算法。
知識表示
在描述的複雜長句的翻譯處理中,涉及的知識主要有二種類型:一種類型是多知識一體化表示的規則知識(包括字典知識和歸約規則知識);另一種類型是多知識一體化表示的長句切分簡化處理的實例模式知識,其表示形式包括如下幾個部分:
<模式類型 >:主要指明相應模式的類型,包括:並排列型、從屬修飾型和插入語型;
<源文模式 >:用於說明源文句子中的一些特徵條件,對不同的模式類型,源文模式所表達的意義有所不同。對於並排列型,源文模式描述的是長句切分點的特徵串,如:“,which”、“,that”等;對於插入語型,源文模式描述的是插入成分的特徵串,如:“that is to say”等;對於從屬修飾型,源文模式是一個含有特徵化結構成分的多種特徵知識一體化表示的模式;
<模式條件 >:用於說明該模式使用時應該滿足的上下文語境條件,可以是對切分點前後部分的長度限制、句式限制等;
<譯文模式 >:用於說明該模式相應的譯文生成模式或譯文串,以實現對切分開的各個部分的譯文拼合生成順序。
算法描述
基於上述知識表示形式,提出的複雜長句的切分簡化處理算法為:對於任一個輸入的源文句子,逐個掃描每一個成分(詞或標點符號),並以該成分的基本形式(如英文單詞的原形)檢索系統的長句切分簡化處理實例模式庫,如果該模式庫中存在符合條件的模式,則進行相應的處理,具體的算法描述如下
設當前處理的源語言句子SourceSent為:w1w2w3 … …wn
(wi可以是一個源語言單詞、數字、特殊符號或標點符號等語言成分)
(1)設循環變數i的初始值為:i=1;設當前翻譯的句子的起始位置s=1;轉(2);
(2)如果i等於n,則把ws+1…wn進行基於規則的分析轉換生成相應的譯文,返回;否則從SourceSent中讀取成分wi,並用這個成分到長句切分簡化處理實例模式庫進行檢索,如果存在符合條件的實例模式,則轉(3),否則,i=i+1;並轉(2);
(3)如果符合條件的實例模式的類型是排列型,則轉(4),否則,如果符合條件的實例模式是插入型模式,則轉(5),否則轉(6);
(4)把當前的輸入句子SourceSent以wi為界進行切分,先對該成分左邊的部分w1w2w3…wi-1進行基 於規則的分析轉換生成相應的譯文,同時置:s=i;i=i;並把從wi+1開始的剩餘部分繼續轉(2)處理並生成相應的譯文,最後與前半部分的譯文合併形成整個輸入句子的譯文;
(5)把當前的輸入句子SourceSent以wi為界進行插入語成分的提取,並對提取的插入成分wiwi+1…wj進行基於規則的分析轉換生成一個獨立成分IS(independent structure)和相應的譯文。然後,再對輸入w1w2w3…wi-1 IS wj +1…wn 進行基於規則的分析轉換並生成相應的譯文,最後把IS的對應譯文替換譯文模式中的IS;
(6)把當前的輸入句子SourceSent與符合條件的候選模式的源文模式進行近似匹配分析,最後根據該模式的解模式生成相應的譯文。
句子比較的英漢翻譯模板自動提取算法
模板的自動抽取算法對機器翻譯的研究具有重要意義。從面向英漢翻譯的角度出發,對基於句子比較的翻譯模板抽取(ATTEBSC)算法及其改進開展了比較研究,結果發現傳統ATTEBSC算法在處理大規模語料庫時運行效率較低,而且產生的無用模板比例較高,其中一個重要原因是沒有事先對雙語對齊語料庫進行分類處理。通過相似性分析對句子進行聚類處理後再運行ATTEBSC算法,則發現該算法的運行效率和有用模板的比例都獲得了較大的提高。
翻譯模板抽取算法的改進
詳細論述了ATTEBSC算法,不難看出該算法能夠從具有相同或相近句子結構的句對中學習出較好的模板,但是從句子結構相去甚遠的句對中學習出的模板一般質量較差甚至毫無用處。例如:如果句對由一個主謂賓結構句和一個強調句構成,那么算法就很難學出較好的模板。因此在進行模板抽取前,有必要從大規模語料庫中把具有相似結構的句子對進行聚類。為提高ATTEBSC算法的效率,所使用的聚類方法應避免進行複雜的句法、語法分析。通過使用標誌結構的比較實現句子對的啟發式聚類分析。
標誌結構是一組描述句子對特徵參數,其中包括:英語句首標誌headSign、英語句中標誌midSign、英語句尾標誌tail-Sign、英語子句個數eSubSentNum、漢語子句個數cSubSent-Num、英語單詞個數eWordsNum和漢語單詞個數cWordsNum,它們的含義分別解釋如下:
(1)headSign參數用於標識英語句子句首特徵,漢語句子語法過於複雜,因此忽略相應的漢語譯句分析。在具體套用中,該參數對各種英語句型句首的前幾個單詞編號,如:What(What疑問句):headSign=1;If(假設句):headSign=2;There be:headSign=3等,每種編號表示一種英語句型;所有不屬於以上類型的句子規定預設參數值為0。
(2)midSig參數:大量的英語句型的特徵詞並不在句子兩端,如定語從句中,標誌that,which,whose等位於句中,這種詞用midSign參數表示,如:util、so、before、as soon as等,編號方法同上。同樣,該參數只用於標識英語句子。
(3)tailSign參數用於標識英語句子的句尾特徵,即標點符號。例如:“?”表示問句;“。”表示陳述句;“!”表示感嘆句等,分別對其編號,編號方法同上。
(4)eSubSentNum參數:將具有不同分句數的兩個句子相比較,會產生不好的模板,因此設定該欄位表示英語的子句數,子句數通過“,”或“;”判斷,因此該參數的值就是句子中逗號或分號的個數加一。
(5)cSubSentNum參數:漢語句子的子句數,該欄位賦值方法同上。
(6)eWordsNum參數:用於記錄英語句子的單詞數。如果兩個相比較的句子句長相差太多,則難於抽取到有價值的翻譯模板;如果英語句子的句長和對應的漢語譯句的句長相差太多,通常也難於抽取到有價值的翻譯模板。因此設定該參數用以記錄句子長度。
(7)cWordsNum參數:用於記錄漢語句子的字數。
實驗結果
利用PIII1.4G和128M記憶體的計算機在Windows2000Server下實現C#編寫的ATTEBSC算法。為驗證該算法的性能,分別在5000句對和10000句對的兩個語料庫上運行了所實現的算法,測試結果見ATTEBSC算法的性能測試,其中系統1是對ATTEBSC算法的直接實現,而系統2是對語料庫聚類後再實現ATTEB-SC算法。
從ATTEBSC算法的性能測試結果不難看出,系統2的模板抽取效率和準確率比系統1有顯著提高。由於使用託管語言編程,因此系統1和系統2的運行速度受到較大影響;另外,由於使用xml檔案組織數據,而且使用DOM解析器進行數據分析,因此當語料規模較大時,系統1和系統2運行速度將受到嚴重影響。正在設法採用SAX解析器提高系統1和系統2的運行速度。