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