卓瑪扎西,才讓加,色差甲,班瑪寶
(1. 青海師范大學(xué)計(jì)算機(jī)學(xué)院,青海 西寧 810016;2. 藏語(yǔ)智能信息處理及應(yīng)用國(guó)家重點(diǎn)實(shí)驗(yàn)室,青海 西寧 810008;3. 青海省藏文信息處理工程技術(shù)研究中心,青海 西寧 810008)
句法分析是自然語(yǔ)言處理領(lǐng)域中的一項(xiàng)基礎(chǔ)性研究工作,已成為機(jī)器翻譯[1]、語(yǔ)義分析[2]、問(wèn)答系統(tǒng)[3]、信息抽取[4]等諸多自然語(yǔ)言處理任務(wù)中不可或缺的流程之一。一般句法分析方法可分為有監(jiān)督、半監(jiān)督和無(wú)監(jiān)督三種方法,自賓州樹(shù)庫(kù)開(kāi)放以來(lái),有監(jiān)督的英漢文等句法分析研究取得了快速的發(fā)展,相比傳統(tǒng)句法分析方法,性能取得了明顯的提高[5]。
藏文句法分析研究由于受數(shù)據(jù)資源匱乏問(wèn)題的限制,使有監(jiān)督藏文句法分析在理論、方法和技術(shù)等方面還未取得顯著進(jìn)展,而無(wú)監(jiān)督方法可以在一定程度上解決數(shù)據(jù)資源匱乏的問(wèn)題,但單一的無(wú)監(jiān)督方法在句法分析任務(wù)上的性能與有監(jiān)督方法還存在一定的差距。針對(duì)以上問(wèn)題,提出了一種基于組塊分割的無(wú)監(jiān)督藏文句法分析方法,該方法首先分割藏文組塊的基礎(chǔ)上采用擾動(dòng)掩碼算法(Perturbed Masking)[6],對(duì)藏文組塊進(jìn)行了無(wú)監(jiān)督藏文句法分析,然后根據(jù)藏文自身的語(yǔ)法特征對(duì)無(wú)監(jiān)督藏文句法分析結(jié)果進(jìn)行了優(yōu)化,以完成高效的無(wú)監(jiān)督藏文句法分析任務(wù),通過(guò)不同領(lǐng)域的數(shù)據(jù)和不同長(zhǎng)度的藏文句子數(shù)據(jù)集上進(jìn)行測(cè)試,證明了本方法的有效性及可行性。
自20世紀(jì)40年代末開(kāi)始,句法分析作為自然語(yǔ)言處理領(lǐng)域的核心任務(wù)和關(guān)鍵技術(shù),一直是研究人員關(guān)注的熱點(diǎn)問(wèn)題[7]。英漢文句法分析經(jīng)歷了從有監(jiān)督到半監(jiān)督,再到無(wú)監(jiān)督方法的研究歷程,近幾年無(wú)監(jiān)督句法分析方法廣受研究人員的關(guān)注。文獻(xiàn)[8]提出了解析、閱讀和預(yù)測(cè)三種任務(wù)混合的模型(Parsing-Reading-Predict Networks,簡(jiǎn)稱(chēng)PRPN),該模型首先推斷未標(biāo)注數(shù)據(jù)中的句法結(jié)構(gòu),增強(qiáng)語(yǔ)言模型的語(yǔ)法信息,然后用此模型完成無(wú)監(jiān)督句法分析。文獻(xiàn)[9]提出了一種有序神經(jīng)元(Ordered Neurons)模型,不僅可以提高語(yǔ)言模型的效果,還可以讓LSTM無(wú)監(jiān)督地學(xué)習(xí)句法結(jié)構(gòu)。文獻(xiàn)[6]通過(guò)采用擾動(dòng)掩碼算法,提出了一種無(wú)監(jiān)督的探索BERT可解釋性的方法,其中無(wú)監(jiān)督句法分析在WSJ10數(shù)據(jù)集和PTB23數(shù)據(jù)集上的F1值分別達(dá)到了58%和的42.1%,通過(guò)和文獻(xiàn)[8,9]進(jìn)行對(duì)比,驗(yàn)證了基于擾動(dòng)掩碼算法的無(wú)監(jiān)督句法分析方法的有效性。文獻(xiàn)[10]構(gòu)建了3萬(wàn)句漢文二分結(jié)構(gòu)的樹(shù)庫(kù),為了簡(jiǎn)化傳統(tǒng)句法分析任務(wù),把漢文句法分析轉(zhuǎn)換為迭代二分的序列標(biāo)注問(wèn)題,通過(guò)訓(xùn)練循環(huán)神經(jīng)網(wǎng)絡(luò)模型,完成表示完全二叉樹(shù)的句法層次結(jié)構(gòu)。隨著無(wú)監(jiān)督學(xué)習(xí)研究的升溫,以上國(guó)內(nèi)外文獻(xiàn)采用不同方法進(jìn)行了無(wú)監(jiān)督句法分析,為藏文句法分析理論提供了參考。
目前,藏文句法分析的研究主要以有監(jiān)督的方法為主,文獻(xiàn)[11,12]采用判別式的依存句法分析方法,研究了藏文依存句法分析和藏文復(fù)合句切分標(biāo)注方法。文獻(xiàn)[13]通過(guò)Fillmore格語(yǔ)法與藏文傳統(tǒng)語(yǔ)法進(jìn)行對(duì)比,提出了格結(jié)構(gòu)體是藏文句子最直接組成成分的觀點(diǎn)。文獻(xiàn)[14]通過(guò)分析藏文疑問(wèn)句的構(gòu)成特點(diǎn),對(duì)藏文疑問(wèn)句進(jìn)行了分類(lèi),歸納了各類(lèi)藏文疑問(wèn)句的結(jié)構(gòu)特征,并利用PCFG對(duì)藏文疑問(wèn)句進(jìn)行了句法分析。文獻(xiàn)[15]通過(guò)對(duì)比藏文語(yǔ)義塊和組塊,提出了組塊可簡(jiǎn)化句法結(jié)構(gòu)和組塊分析可降低藏文句法分析難度的思路。以上文獻(xiàn)采用的都是有監(jiān)督方法的藏文句法分析方法,并在局部實(shí)驗(yàn)或限定領(lǐng)域內(nèi)取得了較好的實(shí)驗(yàn)結(jié)果,為進(jìn)一步研究藏文句法分析提供了參考,但上述方法都屬于傳統(tǒng)的基于規(guī)則和統(tǒng)計(jì)以及二者相結(jié)合的方法,需要大量高質(zhì)量的句法標(biāo)注樹(shù)庫(kù)和繁瑣的人工特征工程,但到目前藏文沒(méi)有一個(gè)公開(kāi)的句法樹(shù)庫(kù),無(wú)法使用深度學(xué)習(xí)等先進(jìn)的方法進(jìn)行大規(guī)模藏文句法分析。
1)藏文組塊的定義
2)藏文組塊的分類(lèi)
各類(lèi)組塊的具體定義如下:
謂語(yǔ)組塊:指一個(gè)句子中的謂語(yǔ)成分,一般由動(dòng)詞、形容詞和助動(dòng)詞等詞或短語(yǔ)來(lái)充當(dāng)。
根據(jù)3.1節(jié)中藏文組塊定義及分類(lèi),可以對(duì)各類(lèi)藏文組塊進(jìn)行分割,分割方法如下:
無(wú)監(jiān)督藏文句法分析是在沒(méi)有標(biāo)注數(shù)據(jù)的前提下,利用無(wú)標(biāo)注數(shù)據(jù)研究藏語(yǔ)自然語(yǔ)言語(yǔ)法結(jié)構(gòu)的方法。隨著預(yù)訓(xùn)練語(yǔ)言模型的發(fā)展,無(wú)監(jiān)督句法分析效果日益增高,但還是無(wú)法滿足大規(guī)模高效藏文句法分析的需求。因此,可根據(jù)藏文傳統(tǒng)語(yǔ)法,通過(guò)規(guī)定藏文組塊邊界,為下一步無(wú)監(jiān)督句法分析提供支撐。
通過(guò)組塊分割方法,對(duì)藏文無(wú)標(biāo)注句子進(jìn)行切分后,可以將藏文句法分析任務(wù)轉(zhuǎn)化為多個(gè)子任務(wù),設(shè)計(jì)了基于藏文組塊分割的無(wú)監(jiān)督藏文句法分析模型,模型結(jié)構(gòu)見(jiàn)圖1。
從圖1中可以看出,基于組塊分割的無(wú)監(jiān)督藏文句法分析模型由組塊分割模塊、無(wú)監(jiān)督句法分析模塊和藏文句法優(yōu)化模塊構(gòu)成,各模塊的功能如下:
圖1 基于組塊分割的無(wú)監(jiān)督藏文句法分析模型結(jié)構(gòu)
1)組塊分割模塊
2)無(wú)監(jiān)督句法分析模塊
無(wú)監(jiān)督句法分析模塊對(duì)無(wú)標(biāo)注的藏文句子進(jìn)行句法分析,包含兩個(gè)子功能:一是分析藏文句子的組塊和組塊之間的句法層次結(jié)構(gòu),是一個(gè)粒度較粗的句法分析,用遞歸二分方法,將組塊序列按照從左到右的順序依次進(jìn)行切分,得出藏文句子的各類(lèi)組塊層次結(jié)構(gòu),如圖2所示。
圖2 藏文組塊句法結(jié)構(gòu)
從圖2中可以看出,每一次迭代把藏文句子S分成了一個(gè)組塊和剩余序列(s1或s2等),當(dāng)完成謂語(yǔ)組塊的切分后迭代結(jié)束。二是分析藏文組塊序列中的每一個(gè)組塊,采用文獻(xiàn)[6]的方法,通過(guò)擾動(dòng)掩碼算法求出基于藏文預(yù)訓(xùn)練語(yǔ)言模型(UniLM)的組塊內(nèi)部詞語(yǔ)義相關(guān)度矩陣,采用二分聚類(lèi)算法分析藏文組塊內(nèi)部句法結(jié)構(gòu)。其二分聚類(lèi)算法是把藏文組塊C=[x1,x2,…,xn]分為C1=[x1,x2,…,xk]和C2=[xk+1,xk+2,…,xn]兩個(gè)部分,即用二分聚類(lèi)算法求最合適的切分點(diǎn)K,希望將相關(guān)性較大的詞歸為一類(lèi),輸出最優(yōu)句法結(jié)構(gòu),將目標(biāo)函數(shù)K定義為
(1)
式(1)中的f(xi,xj)為藏文詞xi和xj的詞義相關(guān)度,當(dāng)i=j時(shí),f(xi,xj)=0。
3)藏文句法優(yōu)化模塊
藏文句法優(yōu)化模塊優(yōu)化無(wú)監(jiān)督藏文句法分析模塊輸出的結(jié)果。經(jīng)藏文無(wú)監(jiān)督句法分析模塊結(jié)果進(jìn)行分析后發(fā)現(xiàn),用二分聚類(lèi)算法求藏文句子的切分點(diǎn)K時(shí),出現(xiàn)兩類(lèi)的虛詞聚類(lèi)錯(cuò)誤,分別如下:
根據(jù)現(xiàn)代藏文自身的語(yǔ)法特點(diǎn),藏文句子中虛詞具有接續(xù)和關(guān)聯(lián)等語(yǔ)法功能,沒(méi)有實(shí)際語(yǔ)義,不能單獨(dú)使用,應(yīng)與其上文(C1)先結(jié)合[19],進(jìn)而設(shè)計(jì)了解決問(wèn)題 (a)(b)的句法優(yōu)化算法1。
算法1 藏文句法優(yōu)化算法
輸入 Input_file, Ge_list, k ∥ Input_file=[C1,C2],Ge_list是藏文虛詞列表,k是式(1)結(jié)果
輸出 TS_tree ∥藏文虛詞錯(cuò)位處理后的句法結(jié)構(gòu)
1)X=read( Input_file, X) ∥讀組塊列表
2)ge_list=read( Ge_list, ge_list) ∥讀虛詞集
3)for ge_word in ge_list do ∥ge_word是藏文虛詞
4) if ge_word in X and C2[0] and not in C2[1] then ∥查看虛詞位置
5) Knew=k+1 ∥重新設(shè)置切分點(diǎn)
6) TS_tree ←[[x1,x2,…,xKnew], [xKnew+1,…,xn]] ∥輸出新的句法結(jié)構(gòu)
7) else
8)TS_tree←[[x1,x2,…,xk-1,xk],[xk+1,…,xn]] ∥輸出原句法結(jié)構(gòu)
9) end if
10)end for
11)Return TS_tree ∥輸出最后句法結(jié)構(gòu)
基于組塊分割的無(wú)監(jiān)督藏文句法分析的流程如圖3所示。
第一步:輸入句子
第二步:分詞
第三步:分割組塊
第四步:句子組塊和組塊內(nèi)部句法分析
第五步:優(yōu)化句法
第六步:輸出句法樹(shù)
輸出句法廣義表的樹(shù)形結(jié)構(gòu),如圖4所示。
首先,以前期建立的規(guī)模為4.7G的藏文純文本數(shù)據(jù)訓(xùn)練了UniLM語(yǔ)言模型,然后,構(gòu)建了含新聞、法律、小說(shuō)和文學(xué)等題材的規(guī)模為1200條藏文句法分析的測(cè)試集,測(cè)試集中每條句子的長(zhǎng)度為4-15個(gè)詞,將用分詞系統(tǒng)對(duì)測(cè)試集進(jìn)行了分詞,為了保證分詞質(zhì)量,對(duì)分詞結(jié)果進(jìn)行了人工校對(duì),測(cè)試集中的句子和組塊數(shù)量分布如圖5所示。
圖4 藏文句子二分樹(shù)形結(jié)構(gòu)
圖5 測(cè)試集中的句子和組塊數(shù)量
為了驗(yàn)證本方法的有效性,設(shè)計(jì)了三組實(shí)驗(yàn),分別考查了藏文句法分析效果、不同句長(zhǎng)對(duì)本方法性能的影響以及本方法在不同題材數(shù)據(jù)集上的通用性,為了能夠有效對(duì)比實(shí)驗(yàn)結(jié)果,三組實(shí)驗(yàn)所用的預(yù)訓(xùn)練語(yǔ)言模型和測(cè)試數(shù)據(jù)都一樣。
實(shí)驗(yàn)一:因目前尚未查閱到有關(guān)無(wú)監(jiān)督方法的藏文句法分析研究報(bào)道,無(wú)法直接與前人的藏文句法分析研究工作和結(jié)果進(jìn)行比較,故為了驗(yàn)證本方法的有效性,實(shí)驗(yàn)時(shí)采用文獻(xiàn)[6]中的無(wú)監(jiān)督句法分析方法,在本文測(cè)試集上進(jìn)行了句法分析,以此作為基線。為了驗(yàn)證本方法的有效性和優(yōu)越性,在詞長(zhǎng)度為4-15的1200句測(cè)試集上進(jìn)行了對(duì)比實(shí)驗(yàn),對(duì)比實(shí)驗(yàn)結(jié)果見(jiàn)表1。
表1 藏文句法分析對(duì)比實(shí)驗(yàn)結(jié)果
從表1中的實(shí)驗(yàn)結(jié)果可以看出,采用無(wú)監(jiān)督進(jìn)行藏文句法分析時(shí),在測(cè)試集上基線模型的正確率達(dá)到了31.47%,經(jīng)分析,基線模型效果較差的原因有二,一是測(cè)試集中30%的藏文句子詞數(shù)大于10,隨著詞數(shù)增多,出現(xiàn)了各詞之間的語(yǔ)義相關(guān)度降低問(wèn)題;二是隨著句子變長(zhǎng)而虛詞增多,易出現(xiàn)虛詞聚類(lèi)錯(cuò)誤問(wèn)題,因此直接采用文獻(xiàn)[6]中的無(wú)監(jiān)督方法進(jìn)行藏文句法分析時(shí),藏文句法分析效果不好。
另外,從表1中還可以看出,無(wú)監(jiān)督藏文句法分析方法和組塊分割方法結(jié)合時(shí),藏文句法分析正確率達(dá)到了49.27%,表明加入組塊分割方法有助于提高無(wú)監(jiān)督藏文句法分析的效果。當(dāng)無(wú)監(jiān)督藏文句法分析方法和句法優(yōu)化方法結(jié)合時(shí),藏文句法分析正確率達(dá)到了53.24%,表明藏文句法優(yōu)化算法符合藏文自身的語(yǔ)法特點(diǎn),有助于提高無(wú)監(jiān)督藏文句法分析的效果。當(dāng)組塊分割+無(wú)監(jiān)督+句法優(yōu)化時(shí),藏文句法分析的正確率達(dá)到了82.76%,相比基線模型的正確率提高了51.29個(gè)百分點(diǎn),驗(yàn)證了本文方法的有效性。
實(shí)驗(yàn)二 為了考查句子長(zhǎng)度對(duì)本方法的影響,將測(cè)試集分成了四組不同句子長(zhǎng)度的子測(cè)試集,然后在四組子測(cè)試集上進(jìn)行實(shí)驗(yàn),其結(jié)果見(jiàn)表2。
從表2中可以看出,隨著句子長(zhǎng)度的增加,句法分析性能呈下降的趨勢(shì),這是因?yàn)楸痉椒ǖ幕A(chǔ)是無(wú)監(jiān)督句法分析方法,而無(wú)監(jiān)督方法隨著句子長(zhǎng)度的增加越難獲取詞與詞之間的語(yǔ)義相關(guān)度。
表2 不同句長(zhǎng)數(shù)據(jù)集上的句法分析結(jié)果
實(shí)驗(yàn)三 為了驗(yàn)證本方法的通用性,分別在新聞、法律和小說(shuō)等題材的數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn),并計(jì)算了與實(shí)驗(yàn)一的偏差,實(shí)驗(yàn)結(jié)果見(jiàn)表3。
表3 不同題材數(shù)據(jù)集上的句法分析結(jié)果
從表3中可以看出,本方法在不同題材數(shù)據(jù)上的句法分析效果有所偏差,在法律數(shù)據(jù)集上的效果最佳,正確率到達(dá)到了86.79%。在小說(shuō)數(shù)據(jù)集上的效果較低,正確率只有79.11%。原因在于常用的法律文本結(jié)構(gòu)規(guī)范,內(nèi)容嚴(yán)謹(jǐn),所以其句法分析效果較好。常見(jiàn)的小說(shuō)文本語(yǔ)言靈活多變,會(huì)用各種修辭手法,所以導(dǎo)致其句法分析效果較低。各類(lèi)數(shù)據(jù)集上的句法分析正確率與實(shí)驗(yàn)一的最高偏差為4.03%,證明本方法在不同題材數(shù)據(jù)集上的通用性。
在無(wú)藏文句法分析樹(shù)庫(kù)數(shù)據(jù)集的情況下,為了能夠進(jìn)行句法分析,提出了一種基于組塊分割的無(wú)監(jiān)督藏文句法分析方法,研究結(jié)果為:
1)對(duì)藏文組塊進(jìn)行了定義和分類(lèi),規(guī)定了面向藏文無(wú)監(jiān)督句法分析的藏文組塊分割邊界。
2)結(jié)合組塊分割、無(wú)監(jiān)督藏文句法分析模型和藏文句法優(yōu)化算法,提高了無(wú)監(jiān)督句法分析效果,經(jīng)實(shí)驗(yàn)表明,句子長(zhǎng)度為4-15個(gè)詞的單句數(shù)據(jù)集上正確率達(dá)到了82.76%,驗(yàn)證了本文方法的有效性。