鄭燕娥,鄭志明
(1.仰恩大學(xué) 工程技術(shù)學(xué)院, 福建 泉州 362014; 2. 湄洲灣職業(yè)技術(shù)學(xué)院, 福建 莆田 351254)
?
基于GLR算法的英語(yǔ)長(zhǎng)難句句法分析的探討
鄭燕娥1,鄭志明2
(1.仰恩大學(xué) 工程技術(shù)學(xué)院, 福建 泉州 362014; 2. 湄洲灣職業(yè)技術(shù)學(xué)院, 福建 莆田 351254)
[摘要]英語(yǔ)長(zhǎng)難句是英漢翻譯的一大障礙點(diǎn),其復(fù)雜結(jié)構(gòu)的有效識(shí)別和分析直接關(guān)系到英漢翻譯質(zhì)量?;诖?,對(duì)英語(yǔ)長(zhǎng)難句的句法分析技術(shù)進(jìn)行研究,提出基于GLR算法的長(zhǎng)難句拆分策略。將長(zhǎng)難句拆分為不同層次的片斷,利用GLR算法識(shí)別與分析各片斷中的簡(jiǎn)單短語(yǔ),提煉出句子的主干結(jié)構(gòu),為生成譯文做好鋪墊;同時(shí)對(duì)錯(cuò)誤拆分的情形進(jìn)行糾正,從而有效提高了句法分析的合理性。 實(shí)驗(yàn)結(jié)果表明,該拆分策略在長(zhǎng)難句的句子結(jié)果拆分上具有較好的合理性。
[關(guān)鍵詞]長(zhǎng)難句拆分策略;GLR算法;句法分析
引言
當(dāng)前兩大主流的句法分析技術(shù)為短語(yǔ)句法分析和依存句法分析。前者以短語(yǔ)結(jié)構(gòu)分析為主,后者側(cè)重于分析句子成分構(gòu)成以及各句子成分之間的依存關(guān)系。歸結(jié)起來(lái),句法分析的重點(diǎn)在于詞法、結(jié)構(gòu)消歧和分析句子成分構(gòu)成、上下文關(guān)系等。英語(yǔ)長(zhǎng)難句分析的難點(diǎn)是如何確定句子主干結(jié)構(gòu)以及各修飾成分間的關(guān)系,而解決問(wèn)題的最佳方法是對(duì)長(zhǎng)難句進(jìn)行拆分,拆分后的片斷長(zhǎng)度變短且各片斷結(jié)構(gòu)相對(duì)簡(jiǎn)單,為長(zhǎng)難句句法分析提供了有利條件。
本文采用基于GLR算法的長(zhǎng)難句拆分策略進(jìn)行句法分析,其基本思想為:(1)對(duì)句子進(jìn)行詞性標(biāo)注。(2)依據(jù)語(yǔ)言學(xué)知識(shí),確定并列連詞、從句引導(dǎo)詞以及相應(yīng)的標(biāo)點(diǎn)符號(hào)為拆分點(diǎn),精簡(jiǎn)句子成分,將包含了拆分點(diǎn)但不應(yīng)該被拆分的句子成分進(jìn)行合并,然后對(duì)合并后的句子成分進(jìn)行詞性重新標(biāo)注。(3)依據(jù)剩余的拆分點(diǎn)將長(zhǎng)難句拆分為不同層次的片斷,多片斷并行操作有利于提高英漢翻譯的執(zhí)行效率。(4)利用GLR算法對(duì)各片斷中的簡(jiǎn)單短語(yǔ)進(jìn)行識(shí)別與分析,確定短語(yǔ)的中心詞,提煉出句子的主干結(jié)構(gòu),為生成譯文做好鋪墊。(5)用正則表達(dá)式匹配已歸類的錯(cuò)誤情形,對(duì)錯(cuò)誤拆分進(jìn)行糾正,有效提高了句法分析的合理性。
1詞性標(biāo)注
詞性也稱為詞類,在很大程度上能夠反映句子的結(jié)構(gòu)。詞性標(biāo)注就是判定句子中每個(gè)詞的語(yǔ)法范疇、確定其詞性并進(jìn)行恰當(dāng)標(biāo)記的行為[1]。詞性標(biāo)注對(duì)長(zhǎng)難句拆分時(shí)準(zhǔn)確把握句子的結(jié)構(gòu)發(fā)揮了重要作用。下面是利用斯坦福大學(xué)研發(fā)的詞性標(biāo)注工具對(duì)一個(gè)長(zhǎng)句(Eg1)中每個(gè)詞進(jìn)行詞性標(biāo)注后得到的形式:
Eg1: In_IN the_DE online_JJ classroom_NN,_, people_NN communicate_VB with_IN each_PRP other_PRP mainly_RB?by_IN writing_VBG and_IN voice_NN chat_NN,_,?but_CC it_RPP$is_VB very_RB important_JJ that_WDT students_NN have_VB no_JJ difficulty_NN using_VBG writing_NN to_IN express_VB their_PRP opinions_NNS._.
其中單詞后面緊跟以“_”起始的大寫(xiě)字母組合便是對(duì)應(yīng)單詞的詞性,詞性標(biāo)注前預(yù)先進(jìn)行詞性編碼,詞性編碼如下所示。
介詞——IN 連詞——CC 引導(dǎo)詞——WDT 定冠詞——DE
名詞——NN、NNS(名詞單復(fù)數(shù))、NNR、NNRS(專有名詞單復(fù)數(shù))
形容詞——JJ、JJR(比較級(jí))、JJS(最高級(jí))
副詞——RB、RBR(比較級(jí))、RBS(最高級(jí))
動(dòng)詞——VB、VBD(過(guò)去式)、VBN(過(guò)去分詞)、VBG(現(xiàn)在分詞)、
VBZ(一般現(xiàn)在時(shí)第三人稱)、VBP(一般現(xiàn)在時(shí)非第三人稱)
代詞——PRP(人稱代詞)、PRP$(物主代詞)
2合并不應(yīng)該被拆分的句子成分
根據(jù)語(yǔ)言學(xué)知識(shí),將拆分點(diǎn)大致分為三大類:標(biāo)點(diǎn)符號(hào)、并列連詞和從句引導(dǎo)詞。標(biāo)點(diǎn)符號(hào)主要包含逗號(hào)、冒號(hào)、分號(hào),但句號(hào)、括號(hào)、引號(hào)、問(wèn)號(hào)、感嘆號(hào)除外;并列連詞指的是表示并列、轉(zhuǎn)折、選擇、因果等關(guān)系的單連詞或復(fù)合連詞,如but、or、so that等;從句引導(dǎo)詞如which、in which、that等。對(duì)包含拆分點(diǎn)但不應(yīng)該被拆分的固定搭配詞組以及簡(jiǎn)單短語(yǔ)(比如名詞性短語(yǔ)、形容性短語(yǔ)、動(dòng)副短語(yǔ)等),采用正則表達(dá)式與相應(yīng)的模式庫(kù)進(jìn)行模式匹配,如果匹配,則將相應(yīng)成分合并為僅帶一個(gè)詞性的“詞”,實(shí)現(xiàn)簡(jiǎn)化句子結(jié)構(gòu)和減少誤拆。下面是某個(gè)句子的部分成分合并后的形式:
such|as_COM milk,|bread,|card|and|flower_NN
其中as可作連詞,屬于拆分點(diǎn),那么such as之間有可能被拆分,milk,bread,card and flower 也包含了拆分點(diǎn)(逗號(hào)和連詞and),也有可能被拆分,由于such as是固定搭配、用逗號(hào)和and連接的幾個(gè)名詞是名詞性短語(yǔ)不應(yīng)該被拆分,所以將他們分別合并為一個(gè)詞,COM和NN為他們合并后的詞性。
3句子拆分
經(jīng)過(guò)初步處理影響拆分合理性的一些因素,依據(jù)剩余的拆分點(diǎn)將長(zhǎng)難句拆分為不同層次的片斷。表示邏輯關(guān)系的并列連詞拆分得到的片斷的層次級(jí)別比從句引導(dǎo)詞高,對(duì)于從句中包含子從句,則依據(jù)句子邏輯順序劃分相應(yīng)的子層,多片斷并行操作有利于提高英漢翻譯的執(zhí)行效率,然而拆分后的片斷不能保證都滿足合理性要求。例如,Eg1例子經(jīng)初步合并成分后按剩余拆分點(diǎn)可劃分為6個(gè)片斷,其中片斷④是誤拆,因?yàn)閍nd可連接兩個(gè)并列句子或并列詞組,如果連接的是兩個(gè)并列詞組,則不應(yīng)當(dāng)被拆分。句子拆分的層次結(jié)構(gòu)圖如圖1所示。
4短語(yǔ)識(shí)別與分析——GLR算法
GLR算法是一種擴(kuò)充的LR分析算法,引入圖棧和分析森林有效解決了LR算法無(wú)法處理的歧義問(wèn)題,而且其分析速度較快,在簡(jiǎn)單句法分析上具有很大的優(yōu)勢(shì)。
本文利用GLR算法對(duì)各片斷中的簡(jiǎn)單短語(yǔ)進(jìn)行識(shí)別與分析,簡(jiǎn)單短語(yǔ)一般是以名詞相關(guān)的短語(yǔ)或動(dòng)詞性短語(yǔ)為主,因而構(gòu)造兩個(gè)多出口的分析表分別用于分析這兩大類短語(yǔ),通過(guò)引入符號(hào)映射實(shí)現(xiàn)短語(yǔ)邊界的自動(dòng)識(shí)別,確定短語(yǔ)的中心詞,提煉出句子的主干結(jié)構(gòu),為生成譯文做好鋪墊。
GLR算法基于擴(kuò)充的上下文無(wú)關(guān)文法[2],是一個(gè)五元式 G= (VT,VN,VF,P,S),其中VT為非空有限終結(jié)符集;VN為非空有限非終結(jié)符集,且VT與VN的交集為空;VF為約束函數(shù)集,是一個(gè)非空有限集,只有當(dāng)條件滿足時(shí)才能用產(chǎn)生式進(jìn)行規(guī)約;P為產(chǎn)生式集,且P→
GLR算法分析的步驟[3]如下:
(1)初始化。狀態(tài)O入棧,分析指針指向待分析的輸入符號(hào),清除終止標(biāo)志。
(2)符號(hào)映射。如果沒(méi)有終止標(biāo)志,利用映射函數(shù)將當(dāng)前輸入符號(hào)映射為分析表終止符。
(3)查ACTION表判定下一個(gè)動(dòng)作將執(zhí)行哪種操作:
①如果是移進(jìn),則將當(dāng)前狀態(tài)及當(dāng)前符號(hào)入棧,分析指針下移;
②如果是規(guī)約,則調(diào)用約束函數(shù)檢查是否滿足規(guī)約條件,若條件滿足,則構(gòu)造從符號(hào)棧彈出的節(jié)點(diǎn)所組成的句法樹(shù),并將其壓入符號(hào)棧,然后將狀態(tài)棧中的各中間狀態(tài)彈出,通過(guò)查看GOTO表,將新?tīng)顟B(tài)壓入狀態(tài)棧,同時(shí)將中心詞指針指向相應(yīng)的中心詞,若條件不滿足,則設(shè)置終止標(biāo)志;
③如果是終止,指的是指針對(duì)分析表終結(jié)符的“報(bào)錯(cuò)”,不屬于分析失敗,把當(dāng)前輸入字符重新映射到分析表終止符后繼續(xù)分析,然后設(shè)置終止標(biāo)志;
④如果是接受,則可識(shí)別的短語(yǔ)完成分析,將符號(hào)棧頂句法樹(shù)彈出,返回;⑤如果是出錯(cuò),指的是指針對(duì)分析表終止符的“報(bào)錯(cuò)“,屬于分析失敗,恢復(fù)初始狀態(tài),返回;
(4)依次繼續(xù)執(zhí)行下一個(gè)動(dòng)作,直到分析結(jié)束。
5糾正錯(cuò)誤拆分
長(zhǎng)難句的錯(cuò)誤拆分主要?dú)w因于片斷邊界的錯(cuò)誤識(shí)別,通常出現(xiàn)在標(biāo)點(diǎn)符號(hào)處、and或or處、連接詞處、從句右邊界處。本文通過(guò)對(duì)錯(cuò)誤情形的分析和歸類,選定6個(gè)語(yǔ)言學(xué)特征作為判定的依據(jù),它們分別為:句子的長(zhǎng)短、是否以標(biāo)點(diǎn)結(jié)尾、是否以 and 或 or 起始、是否含有謂語(yǔ)動(dòng)詞、是否以連詞起始、是否以引導(dǎo)詞起始。如果符合錯(cuò)誤拆分的情形,則將相應(yīng)的片斷進(jìn)行合并,實(shí)現(xiàn)了錯(cuò)誤拆分的糾正,進(jìn)而提高句法分析的合理性。 錯(cuò)誤拆分部分情形如表1所示。
表1錯(cuò)誤拆分部分情形及糾正方法
6實(shí)驗(yàn)結(jié)果分析
為驗(yàn)證拆分策略的有效性,本文利用Java語(yǔ)言編寫(xiě)測(cè)試代碼,建立詞庫(kù),該詞庫(kù)中包含了5張表,分別用于存儲(chǔ)四六級(jí)單詞、固定搭配、拆分點(diǎn)、名詞性相關(guān)短語(yǔ)、動(dòng)詞性短語(yǔ)。從新視野大學(xué)英語(yǔ)讀寫(xiě)教程第一冊(cè)課本中挑選100個(gè)長(zhǎng)難句進(jìn)行測(cè)試,分別將成分合并、拆分得到的片斷、錯(cuò)誤拆分糾正、句子主干結(jié)構(gòu)等信息輸出。通過(guò)分析與統(tǒng)計(jì),得到實(shí)驗(yàn)結(jié)果如表2所示。
其中識(shí)別總數(shù)為利用正則表達(dá)式進(jìn)行詞庫(kù)匹配得到的全部的句子成分的數(shù)量,實(shí)際存在數(shù)為長(zhǎng)難句中實(shí)際存在的句子成分的數(shù)量,正確識(shí)別數(shù)為程序正確識(shí)別出的句子成分的數(shù)量;正確率=正確識(shí)別數(shù)/識(shí)別總數(shù)*100%,召回率=正確識(shí)別數(shù)/實(shí)際存在數(shù)*100%。實(shí)驗(yàn)結(jié)果表明,基于GLR的拆分策略在長(zhǎng)難句的句子結(jié)構(gòu)拆分上具有較好的合理性。
表2 實(shí)驗(yàn)結(jié)果
7結(jié)語(yǔ)
本文主要針對(duì)長(zhǎng)難句復(fù)雜結(jié)構(gòu)進(jìn)行簡(jiǎn)化分析,利用GLR算法對(duì)片斷中的短語(yǔ)進(jìn)行識(shí)別和分析,確定其中心詞,為生成譯文做好鋪墊,同時(shí)對(duì)錯(cuò)誤拆分的情形進(jìn)行糾正,能夠提高句法分析的合理性,為譯文生成合理框架提供借鑒。英漢句式結(jié)構(gòu)存在差異[4],因而規(guī)定符合漢語(yǔ)表達(dá)習(xí)慣的譯文規(guī)則極其關(guān)鍵,今后會(huì)將對(duì)長(zhǎng)難句生成譯文規(guī)則進(jìn)行深入研究,進(jìn)一步完善句法分析的形式化理論體系。
[參考文獻(xiàn)]
[1]左軍軍.英漢機(jī)器翻譯中長(zhǎng)句分析技術(shù)的研究[D].遼寧:沈陽(yáng)航空航天大學(xué),2013.
[2]朱敬國(guó),吐?tīng)柛?依布拉音,張路等.基于GLR算法的維吾爾語(yǔ)句法分析研究[J].現(xiàn)代計(jì)算機(jī),2011(4):19-22.
[3]郭永輝,吳保民,王炳錫.一個(gè)基于GLR算法的英漢機(jī)器翻譯淺層句法分析器[J].計(jì)算機(jī)工程與應(yīng)用,2004(34):124-129.
[4]支風(fēng)寧.英漢句式結(jié)構(gòu)對(duì)比[J].外語(yǔ)研究,2012(2):305-306.
[責(zé)任編輯:D]
English Long Sentence Syntactic Analysis based on GLR Algorithm
ZHENG Yan-e1, ZHENG Zhi-ming2
(1.YangEn University, Quanzhou 362014,China;
2.MeiZhouWan Vocational Technology College, Putian 351254,China)
Abstract:English long sentence is a big obstacle point in English Chinese translation,the effective identification and analysis of its complex structure directly related to the quality of English Chinese translation. Based on this,this paper researches on the syntax analysis technology of English long sentence, and proposes long sentence split strategy based on GLR algorithm. Long sentence will be split into different levels of fragments,and it uses GLR algorithm to identify and analyze the simple phrases in each fragment and then extracts the main sentence structure, paves the way for the target language generation;At the same time it corrects the cases of error split, so it effectively improves the rationality of syntactic analysis.The experimental results show that, the split strategy in long sentence structure split has better rationality.
Key words:long sentence splitting strategy;GLR algorithm;syntax analysis
[中圖分類號(hào)]TP391.1
[文獻(xiàn)標(biāo)識(shí)碼]A
[文章編號(hào)]1671-5330(2015)02-0032-04
[作者簡(jiǎn)介]鄭燕娥(1981—),女,福建仙游人,講師,主要從事數(shù)據(jù)庫(kù)與數(shù)據(jù)挖掘、智能算法研究。
[基金項(xiàng)目]2013年度仰恩大學(xué)科研培育計(jì)劃項(xiàng)目課題(KJ20143009)
[收稿日期]2015-02-25