張鎣,朱蘭娟
目前,機(jī)器翻譯軟件的程序設(shè)計(jì)者大多并未能科學(xué)地在軟件方案中運(yùn)用語言學(xué)理論,只涉及到淺層語法,并充分利用統(tǒng)計(jì)學(xué),幫助翻譯軟件在很短時間內(nèi)學(xué)會解決大量的實(shí)際翻譯問題[1]。雖然統(tǒng)計(jì)機(jī)器翻譯是目前非限定領(lǐng)域機(jī)器翻譯中性能較佳的方法[2],但是,基于統(tǒng)計(jì)學(xué)的翻譯軟件對于連貫較長字段的翻譯非常不力,語言學(xué)研究與翻譯軟件的設(shè)計(jì)可謂處于脫節(jié)狀態(tài),導(dǎo)致翻譯軟件的輸出仍采取“原語”的結(jié)構(gòu)表達(dá)方式,忽視了短語和句子結(jié)構(gòu)的復(fù)雜性,只簡單地將其以線型結(jié)構(gòu)的方式分析處理,極容易產(chǎn)生語法和語義上的丟失和混亂[3,4]。
本文將研究重點(diǎn)放在以語法語義規(guī)則為基礎(chǔ)的翻譯策略上,旨在盡量精確地剖析句子的每個層次和結(jié)構(gòu)。作為輔助,我們建立了語料庫,不僅使常用的語素包含更多的語義內(nèi)容,并以概念代替詞作為基本單位,添加更多的新信息[1]。
本文中句法結(jié)構(gòu)的表現(xiàn)形式是依存結(jié)構(gòu)。
美國計(jì)算語言學(xué)家J. Robinson于1970年提出了依存語法的4條公理:任何句子只有一個成分是獨(dú)立的;句中的其它成分直接依存于某一成分;任何一個成分都不能依存于兩個或以上的成分;如果A直接依存于B,而C位于A和B之間,那么C依存于A或者 B,或者A和B之間的某一成分[5]。
動詞之間的層次關(guān)系,決定了句子中動詞與相關(guān)的其他成分之間的依存關(guān)系,動詞為“支配詞”,其相關(guān)成分為“從屬詞”[6]。
句子的依存關(guān)系,一般被描述為一個樹狀結(jié)構(gòu)[4]。句子唯一獨(dú)立成分即句子主句的謂詞,就是整句的主支配詞,其他從句的謂詞為輔支配詞,每個節(jié)點(diǎn)都只依附于一個支配詞。我們以主支配詞作為依存樹的根節(jié)點(diǎn),動詞依存關(guān)系決定了整個依存樹的“主干”。如在句子“他發(fā)現(xiàn)小孩喜歡一起踢足球。中主干就是“發(fā)現(xiàn)”->“喜歡”->“踢”,其中“發(fā)現(xiàn)”為主支配詞,“喜歡”和“踢”為輔支配詞(參見圖1和圖2)。
圖1 依存結(jié)構(gòu)樹的線性表示
圖2 邊標(biāo)記的依存結(jié)構(gòu)樹
為了正確地描述句子的語義關(guān)系,在句法分析時,我們會參照“格語法”標(biāo)準(zhǔn),給依存樹的每條邊加上不同的標(biāo)記,即對各句子成分之間的依存關(guān)系進(jìn)行分類[5]。
“格語法”是Charles J. Fillmore于1966年提出的一種理論[5],用來描述超越語法層次之上的語義關(guān)系。Fillmore認(rèn)為,每一個動詞都有自己固定的“格框架”,其中包含豐富的語法語義信息。在實(shí)際應(yīng)用中,把“格框架”中的格映射到動詞周圍的短語結(jié)構(gòu)上[6]。
“格框架”從語義的層面上,給出了新的句法分析的體系和規(guī)則[6],但是其主要的缺陷是,“格集合”的確定沒有客觀的標(biāo)準(zhǔn),在應(yīng)用中總會遇到各種問題:過分歸納或者歸納不周等[5]。故我們以語法關(guān)系為主分類依存關(guān)系,“格語法”起輔助判斷的作用,采用如圖2所示的方法標(biāo)記依存樹。
短語結(jié)構(gòu)具有如下特點(diǎn):一個短語只有一個中心;短語的中心反映該短語所表現(xiàn)的成分屬性;同一個短語可以表現(xiàn)為不同的成分屬性;短語結(jié)構(gòu)最重要的構(gòu)成法則是語素之間的關(guān)系規(guī)則。
短語結(jié)構(gòu)的分析也有必要參考動詞以外的語素所具有的類似于“格框架”的屬性組。由于“格語法”的局限性,我們以語素之間的制約關(guān)系和短語結(jié)構(gòu)之間的制約關(guān)系等為主,“格語法”為輔,來分析短語結(jié)構(gòu),步驟如下:
(1) 將語素聚成小的多個語義群;
(2) 基于每一個語義群自己的固有屬性,以某個群為中心,將小群合并為大群;
(3) 將語義群定義為特定句子成分。
主要模塊調(diào)用流程見圖3:
圖3 分析模塊流程圖
本文中狀語結(jié)構(gòu)的分析思想是:獨(dú)立于句子主干,只對其支配詞負(fù)責(zé)。狀語分析模塊的運(yùn)作步驟如下:
(1) 刪除副詞語素和充當(dāng)狀語的其它成分;
(2) 分析副詞語素,合并為語義群;
(3) 根據(jù)某些狀語改變當(dāng)前的動詞時態(tài);
(4) 狀語加回句中。
狀語按照作用分為:描述、程度、時間、地點(diǎn)、頻度、時態(tài)和否定。其中,描述(或頻度)、否定和程度副詞語素在一定情況下需要合并為新的描述性狀語。
狀語模塊工作流程如下:
(1) 以支配詞為中心依次尋找所有的副詞,區(qū)分出直接作用于動詞的狀語和附屬于描述或頻度副詞的副詞;
(2) 修改動詞時態(tài),存儲該動詞的各種相關(guān)的時態(tài)和語態(tài);
(3) 動詞之后,按照時態(tài)副詞->描述副詞->地點(diǎn)->時間副詞->程度副詞->時間名詞的順序加回;動詞之前,按照時態(tài)副詞->頻度副詞的順序加回。
圖4中是句子“他上個學(xué)期已經(jīng)在學(xué)校里學(xué)了整個課程?!钡臓钫Z分析思路:
圖4 狀語分析處理及加回
附屬于形容詞的副詞與附屬于動詞的副詞一樣處理。
一個句子當(dāng)中的名詞結(jié)構(gòu),除了“簡單定語+名詞”這種常見的構(gòu)成模式之外,還會包含“定語從句+名詞”、“名詞性動詞”和“名詞性句子”這幾種模式。本文采用了 4個模塊來分析這四類名詞性結(jié)構(gòu)。
該模塊以一個名詞概念為中心,按照名詞結(jié)構(gòu)構(gòu)成規(guī)則,擴(kuò)張為一個語義群。
一個簡單名詞結(jié)構(gòu)由形容詞、介詞結(jié)構(gòu)、數(shù)量詞、所有格和指示代詞作為定語,由于漢語中的定語都在被修飾詞前面,確定定語時,以中心名詞為起點(diǎn),向前逐個尋找定語并與中心名詞合并,同時修改中心詞的屬性,直至沒有定語。然后將所有定語和中心名詞放到一個定語排序子模塊中進(jìn)行排序翻譯。
本模塊根據(jù)語法和短語構(gòu)成的規(guī)則,分辨出充當(dāng)名詞的動詞,將該動詞作為動詞中心,按照語法規(guī)則和“格框架”,映射到周圍的語素成分,擴(kuò)張為動詞結(jié)構(gòu)(可能包含多個動詞),然后轉(zhuǎn)換為對應(yīng)的名詞結(jié)構(gòu)。
漢語語素本身不具有可以區(qū)別詞性的特征標(biāo)記或時態(tài)標(biāo)記,所以一個概念語素可能同時具備多種詞性,我們將優(yōu)先級最高的詞性寫入機(jī)器字典,其他的詞性特征以屬性的方式記錄。詞性的優(yōu)先級從高低排列為:形容詞->動詞->名詞->方位詞、連詞、介詞->副詞。
復(fù)雜的名詞結(jié)構(gòu)在分析之前,必須處理好所有簡單的名詞結(jié)構(gòu)和狀語。如果定語是動詞短語甚至句子,我們不一定能通過語法規(guī)則和簡單的短語構(gòu)成規(guī)則直接判斷出中心名詞,必須借助動詞的“格框架”,對其周圍的名詞進(jìn)行映射,才可以確定中心名詞以及中心名詞與定語從句的依存關(guān)系。中心名詞確定之后,再分析定語從句中的動詞結(jié)構(gòu)。
所有名詞結(jié)構(gòu)分析完之后,必須再次調(diào)用簡單名詞分析模塊進(jìn)行分析。
大體來說,我們需要的詞性轉(zhuǎn)換如下:動詞到名詞、形容詞到名詞、形容詞到副詞及介詞結(jié)構(gòu)到副詞。
詞性轉(zhuǎn)換都只包含從高級別詞性到低級別詞性的轉(zhuǎn)換。判斷出某個結(jié)構(gòu)需要詞性變換以后,就要重新考慮其詞典中的所有屬性,對于轉(zhuǎn)換為副詞的結(jié)構(gòu),必須按照狀語的分析規(guī)則,從句中刪除。而轉(zhuǎn)換為名詞結(jié)構(gòu)的短語,也同樣需要經(jīng)過名詞分析模塊的處理,成為完備的名詞短語結(jié)構(gòu)。
名詞性句子是指一個具備句子特點(diǎn)的結(jié)構(gòu)充當(dāng)名詞結(jié)構(gòu),在中文中是一個真正的句子,其中心動詞的英文表述一般是動名詞結(jié)構(gòu)。
本模塊在動詞主干進(jìn)行分析的時候,根據(jù)動詞之間的層次判斷出充當(dāng)名詞“格”的句子,然后進(jìn)行分析。
在主干分析中,將名詞性句子通過本模塊分析并整理成為一個名詞結(jié)構(gòu)。名詞性句子的判斷仍然需要考慮動詞 “格框架”之間的比較以及各動詞本身的分類屬性的層次關(guān)系,層次高的動詞就可以以低層動詞結(jié)構(gòu)或句子為賓語。
對主干的分析采取的方法是“從后向前”分析法,核心思想是,將一個動詞及其后面的部分封裝起來,作為前面動詞的賓語或者補(bǔ)語。主干和動詞結(jié)構(gòu)進(jìn)行分析時,會調(diào)用狀語分析模塊為每一個動詞分析狀語并修改時態(tài)。由于當(dāng)前謂詞的主語以及前面的動詞還沒有分析,在當(dāng)前謂詞的狀語分析之后,我們主要為其存儲圖5所示的如下幾個形式:
圖5 動詞的時態(tài)處理
· 現(xiàn)在時:根據(jù)當(dāng)前謂詞的狀語分析之后當(dāng)前謂詞應(yīng)該表現(xiàn)的時態(tài)(后稱“當(dāng)前時態(tài)”);
· 第三人稱單數(shù):當(dāng)前時態(tài)對應(yīng)的第三人稱單數(shù);
· 過去時:在當(dāng)前時態(tài)基礎(chǔ)上,向前推一個時態(tài);
· 過去式第三人稱單數(shù):針對be動詞,指當(dāng)前時態(tài)之前一個時態(tài)對應(yīng)的第三人稱單數(shù)形式。
動詞主干分析采用遞歸算法,步驟大致如下:
(1) 考慮最后一個動詞及其后的成分,通過分析其“格框架”,將其后面的成分定為賓語或者補(bǔ)語,或是一個從句(非動詞謂詞),也可能該動詞屬于前面的結(jié)構(gòu),后面的非動詞結(jié)構(gòu)為謂語成分;
(2) 考慮除了最后動詞以外的動詞及其后的成分,確定其賓語、補(bǔ)語及從句,或者該動詞和后面動詞組合為一個結(jié)構(gòu),同樣,該動詞也可能屬于前面的動詞結(jié)構(gòu);
(3) 對于最前面的動詞,后面的成分已經(jīng)分析完畢,要考慮之前的成分,如主語和主語之前的關(guān)聯(lián)詞或者介詞,還要根據(jù)后面動詞的情況,判斷是否有復(fù)雜的主語需要由3.5中的模塊處理;
(4) 一條動詞主干的翻譯是不包括逗號的,對于一個帶有分句的句子,每個分句都分開翻譯,所以須考慮主語的省略問題,例如,在“在學(xué)校的時候,他喜歡數(shù)學(xué)”。時間狀語從句中就沒有主語,所以在主干分析模塊中,設(shè)計(jì)了用來“尋找”主語的子模塊。
本漢英翻譯軟件用,實(shí)現(xiàn)符合規(guī)范語法的完整的或帶有分句的陳述句或者疑問句的翻譯。
下圖是本軟件經(jīng)過大量樣本的測試,得出的各種動詞主干類型和各種短語結(jié)構(gòu)類型的翻譯準(zhǔn)確度。圖6中的測試項(xiàng),句中的其他成分都一樣,分句都定為含有3個動詞。圖7中的測試是專門針對短語的。每一個測試類型都至少選擇了30個樣本進(jìn)行測試,并盡量覆蓋各種類型。
圖6 不同主干類型的翻譯準(zhǔn)確度
圖7 各種短語結(jié)構(gòu)的翻譯準(zhǔn)確度
本文以依存結(jié)構(gòu)樹和短語結(jié)構(gòu)規(guī)則為基礎(chǔ),借鑒了“格語法”的基本思想,提出了一種復(fù)雜句子漢英翻譯軟件的設(shè)計(jì)思路,介紹了該軟件借助于短語分析模塊進(jìn)行翻譯策略,以及如何按照漢語語法中的典型的知識內(nèi)容判斷并完成詞性轉(zhuǎn)化的方法,最后,給出了該算法的實(shí)用性測試結(jié)果。
[1]馮志偉.機(jī)器翻譯研究[M],中國對外翻譯出版公司,2005.
[2]Wikipedia, Machine translation[EB/OL]. (2008-10-19),[2009-04-15].http://en.wikipedia.org/wiki/Machine_tran slation .
[3]劉彬,李麗.淺析基于依存語法的翻譯軟件詞典的構(gòu)建[J],湖南醫(yī)科大學(xué)學(xué)報(bào)(社會科學(xué)版), 2005.
[4]李霞.一種小型漢英翻譯軟件的設(shè)計(jì)原理及實(shí)現(xiàn)[J],福建電腦, 2007, (3).
[5]劉群.機(jī)器翻譯中的知識表示與歧義消解[R],北京大學(xué)軟件與微電子學(xué)院2006-2007年度夏季課程.
[6]劉海濤.依存語法和機(jī)器翻譯[J],語言文字應(yīng)用1997,(3).