班瑪寶,才智杰,拉瑪扎西
(1. 青海師范大學 計算機學院,青海 西寧 810016; 2. 藏文信息處理教育部重點實驗室 青海 西寧 810008; 3. 青海省藏文信息處理與機器翻譯重點實驗室 青海 西寧 810008)
隨著信息技術(shù)的不斷進步,藏語自然語言處理已經(jīng)發(fā)展到了“句”的層面。但是由于多種原因,藏文句法分析的研究還未取得重大突破。若要深層次地理解藏文,就必須對藏文句子進行句法分析[1]。迄今為止,有關(guān)藏文句法分析方面的文章都是針對所有藏文句型展開。然而不同類型的藏文句子在結(jié)構(gòu)特征方面存在明顯差異,從而導致藏文句法分析效果不夠理想。針對不同類型的句子,研究其句法,可以提高藏文句法分析的整體性能。
疑問句是一種常見的藏文句型,也是藏文問答系統(tǒng)、搜索引擎、信息的抽取和檢索等問題中的主要句型。本文通過分析藏文疑問句的構(gòu)成特點,對藏文疑問句進行了分類,并歸納了結(jié)構(gòu)特征,進而利用PCFG研究了藏文疑問句的句法分析。經(jīng)測試,在封閉測試集上的準確率、召回率和F1值分別達97.6%、97.3%和97.4%,在開放測試集上的準確率、召回率和F1值分別達96.0%、95.4%和95.7%。
自20世紀50年代開始,句法分析作為自然語言處理領(lǐng)域的核心任務(wù)之一,一直是研究人員關(guān)注的熱點問題[2]。目前用于句法分析的主要方法有規(guī)則法、統(tǒng)計法和規(guī)則與統(tǒng)計相結(jié)合的方法,統(tǒng)計法中又有基于最大熵的依存句法分析和基于深度學習的句法分析等方法。文獻[3]采用規(guī)則的方法,作者從分析漢語的句法特點出發(fā),規(guī)定了漢語句法規(guī)則,進而研究了漢語句法分析方法。文獻[4]采用了統(tǒng)計方法研究了漢文句法,在正確分詞的前提下,句法分析的準確率和召回率分別為86.9%和85.7%[4]。文獻[5-6]采用了規(guī)則與統(tǒng)計相結(jié)合的方法,其中文獻[5]分析了PCFG獨立假設(shè)的局限性,從而在句法結(jié)構(gòu)共現(xiàn)概率中引入了上下文信息,利用Inside-Outside算法進行迭代,最后提出了一個基于統(tǒng)計模型的自頂向下的漢語句法分析器,在封閉測試下,其標記準確率和標記召回率分別為88.1%和86.8%;文獻[6]從單個句法分析標記錯誤和句法分析層次結(jié)構(gòu)標注錯誤兩個角度進行了探究,利用規(guī)則和統(tǒng)計的理論,發(fā)現(xiàn)自動修正不一致,其一致性檢驗的準確率為87.6%,召回率為94.8%。文獻[7]采用最大熵的依存句法分析方法,比較了自頂向下(Up2Down)算法、自底向上(Down2Up)算法和最大生成樹(MST)算法的效果,得出最大熵模型的依存句法分析算法中MST算法效果最好的結(jié)論。文獻[2]采用深度學習的方法,介紹了前饋神經(jīng)網(wǎng)絡(luò)的依存句法分析模型和長短時記憶神經(jīng)網(wǎng)絡(luò)的依存句法分析模型,并對基于這兩種模型的句法分析效果進行了比較;實驗表明,基于前饋神經(jīng)網(wǎng)絡(luò)的依存句法分析模型在賓州樹庫開發(fā)集上無標記依存正確率(UAS)和帶標記依存正確率分別為91.4%和89.8%,測試集上無標記依存正確率(UAS)和帶標記依存正確率分別為90.2%和88.5%;基于長短時記憶神經(jīng)網(wǎng)絡(luò)的依存句法分析模型在賓州樹庫開發(fā)集上的無標記依存正確率(UAS)和帶標記依存正確率分別為91.9%和90.5%,測試集上的無標記依存正確率(UAS)和帶標記依存正確率分別為90.7%和89.0%。
用于藏文句法分析的主要方法有基于規(guī)則和基于判別式的依存句法分析方法。文獻[1,8]采用規(guī)則的方法對藏文句法分析的算法進行了研究,并設(shè)計和實現(xiàn)了句法分析器,但未考察句法分析效果。文獻[9]提出基于判別式的藏語依存句法分析方法,采用感知機方法訓練句法分析模型,CYK自底向上算法解碼生成最大生成樹,句法分析正確率達到81.2%。文獻[10]采用判別式的依存句法分析方法,提出了一種基于判別式的藏文復合句切分標注方法,句法分析的準確率達到了88.7%。文獻[11]通過分析藏語判斷句的特征,構(gòu)造了其句法樹生成規(guī)則,并通過PCFG解決句法歧義問題,最后通過CYK算法進行解碼,自動生成判斷句句法結(jié)構(gòu)樹。
在藏文書面語中,每個疑問句至少會有一個疑問代詞,而且不同的疑問代詞通過與其上下文相結(jié)合可以構(gòu)成不同類型的疑問句。藏文疑問句的結(jié)構(gòu)特征如表1所示。
句法分析指通過某種方式對句子結(jié)構(gòu)進行自動分析。上下文無關(guān)語法CFG(context-free grammar)是一種較好的句法分析模型,但它不能解決有歧義句子的語法樹解析問題。從統(tǒng)計上看,一個語法樹解析是否正確,主要與句法規(guī)則出現(xiàn)概率有關(guān)。概率上下文無關(guān)語法PCFG(probabilistic context-free grammar)在CFG的基礎(chǔ)上增加了句法規(guī)則概率,提升了句法分析的性能,是一種句法分析的好模型。CYK(Cocke-Younger-Kasami)是基于動態(tài)規(guī)劃思想設(shè)計的一種自底向上對上下文無關(guān)文法CFG進行句法分析的算法,也是適用于PCFG剖析的一種標準的動態(tài)規(guī)劃算法,對給定的句子進行自底向上分析并生成廣義的句法結(jié)構(gòu)樹。本文在藏文疑問句句法分析時,選擇了PCFG模型,并以CYK算法解碼。
基于PCFG的句法分析模型主要包括語法規(guī)則初始概率值和結(jié)構(gòu)共現(xiàn)概率兩個參數(shù),其計算方法如下。
3.1.1 語法規(guī)則的初始概率計算方法
統(tǒng)計訓練語料中各規(guī)則出現(xiàn)的次數(shù),利用最大似然估計求出每條規(guī)則出現(xiàn)的頻率,作為語法規(guī)則的初始概率值,計算如式(1)所示。
(1)
其中,C(A→X)表示規(guī)則A→X在樹庫中出現(xiàn)的次數(shù),其中A表示非終結(jié)符(nonterminal symbols)集,X表示終結(jié)符(terminal symbols)集,P(A→X)表示規(guī)則A→X的概率估計值。
本文在沿用已有算法的基礎(chǔ)上,對訓練語料進行迭代訓練,從而得到一個收斂的語法規(guī)則。為了盡量減少語法規(guī)則概率的估計對語料庫的依賴,對語法規(guī)則的初始估計概率值進行再次估算,方法如下:
設(shè)置一個閾值γ,將語法規(guī)則分為高頻規(guī)則集HFR和低頻規(guī)則集LFR,分別如式(2)、式(3)所示。
設(shè)M為LFR集合中規(guī)則的個數(shù),N為HFR中所有規(guī)則的概率值總和,即:
(4)
利用如下公式得開始迭代的初始概率值:
(5)
(6)
這里a的取值范圍為0~1,是再次估計后HFR集合中所有規(guī)則的估計概率值的總和;同樣1-a為LFR集合中規(guī)則的概率值總和。
3.1.2 結(jié)構(gòu)共現(xiàn)概率計算方法
結(jié)構(gòu)共現(xiàn)概率的計算采用最大似然估計的方法。處于句首的句法范疇F向前共現(xiàn)概率P(ε,F(xiàn))、非句首的句法范疇F向前共現(xiàn)概率P(v,F(xiàn))、處于句尾的句法范疇E向后共現(xiàn)概率P(ε,E)和非句尾的句法范疇E向后共現(xiàn)概率P(v,E)計算分別如式(7)~式(10)所示。
從實際的語言現(xiàn)象來看,對于一個確定的訓練語料,即使語料規(guī)模再大,也會遇到數(shù)據(jù)稀疏問題。其原因在于進行句法分析時,測試語料中會遇到訓練語料中從未出現(xiàn)過且合法的新語法規(guī)則,從而出現(xiàn)零概率問題。
圖1 句法樹S
數(shù)據(jù)平滑的基本原則是適當減少藏文訓練語料庫中出現(xiàn)的語法規(guī)則概率,而把減少的那部分概率賦予訓練語料中未出現(xiàn)的合法的新的語法規(guī)則,過程如下:
設(shè)N為訓練的標識數(shù),nr為語料中出現(xiàn)r次的事件個數(shù),則式(11)成立:
N=∑rr×nr
(11)
按最大似然估計原理,出現(xiàn)r次的語法規(guī)則A→X的概率為:
(12)
根據(jù)式(12)中Turing公式,調(diào)整出現(xiàn)r次的規(guī)則A→X的概率為:
(13)
使用Good-Turing公式,可以得到訓練語料中所有語法規(guī)則的概率和為:
(14)
C(A→X)>0表示該語法規(guī)則在訓練語料中出現(xiàn)的次數(shù)大于零,訓練語料中從未出現(xiàn)過的語法規(guī)則的概率和為:
(15)
C(A→X)=0表示在訓練語料中出現(xiàn)的語法規(guī)則次數(shù)為零。
藏文疑問句句法分析中的句法排歧是主要難點,人腦可以通過考慮各種綜合因素來避免歧義產(chǎn)生,但計算機難以解決歧義問題。由于本文對藏文疑問句進行句法分析時,測試語料已分好詞,故排歧時不需要考慮分詞歧義,文章中句法排歧主要解決的是節(jié)點的標記。本文利用統(tǒng)計的方法來計算歧義句中每個詞與上下文之間的概率之積,通過找出概率最大的句法結(jié)構(gòu)樹來實現(xiàn)消解歧義的目的。
UP->uc#0.024
可得兩個符合語法規(guī)則的句法樹,如圖2和圖3所示。
圖2 句法結(jié)構(gòu)樹1
圖3 句法結(jié)構(gòu)樹2
分別計算以上兩個句法結(jié)構(gòu)樹的概率值:
句法結(jié)構(gòu)樹1中:
句法結(jié)構(gòu)樹2中:
(1) 規(guī)則集及其概率值:
(2) 利用概率CYK句法解碼算法后生成的句法結(jié)構(gòu)樹如圖4所示。
圖4 句法結(jié)構(gòu)樹
我們從青海師范大學建立的藏語語料庫[14]中選擇了500個疑問句,對此人工標注句法標記,得到500個結(jié)構(gòu)樹庫作為實驗語料。實驗過程為:
① 用CFG模型生成規(guī)則;
② 用PCFG模型計算由CFG模型生成的各種規(guī)則的概率值;
③ 用CNF模型計算由PCFG模型輸出結(jié)果中結(jié)構(gòu)共現(xiàn)概率;
④ 用概率CYK算法對藏文疑問句進行句法分析并生成廣義的句法結(jié)構(gòu)樹。
實驗包括封閉式測試和開放式測試。封閉測試時,對訓練語料中的500個原句進行了測試;開放式測試時,隨機找了100個未在訓練語料中出現(xiàn)的疑問句進行了測試。實驗結(jié)果如表2所示。
表2 藏文疑問句句法分析實驗結(jié)果
表2中的準確率、召回率和F1值是自然語言處理領(lǐng)域常用的評價標準,其計算方法如下:
從表2中的實驗結(jié)果可以看出,基于PCFG的藏文疑問句句法分析在封閉測試集上的準確率、召回率和F1值分別達到了97.6%、97.3%和97.4%,在開放測試集上的準確率、召回率和F1值分別達到了96.0%、95.4%和95.7%,句法分析效果比文獻[9-10]有明顯的提高,表明根據(jù)具體句型及其特征,針對性的研究句子的句法,其性能有很大的提高。由于訓練語料較少,影響了實驗結(jié)果。主要有以下兩種錯誤:
疑問句是一種常見的藏文句型,也是藏文問答系統(tǒng)、搜索引擎、信息抽取和檢索等問題中的主要研究句型。本文通過分析藏文疑問句的構(gòu)成特點,對藏文疑問句進行了分類,并歸納了各類藏文疑問句的結(jié)構(gòu)特征,在此基礎(chǔ)上利用PCFG對藏文疑問句進行句法分析。經(jīng)測試,在封閉測試集上的準確率、召回率和F1值分別達97.6%、97.3%和97.4%,在開放測試上的準確率、召回率和F1值分別達96.0%、95.4%和95.7%,句法分析效果比現(xiàn)有藏文句法分析有了明顯的提高。測試中主要出現(xiàn)了短語節(jié)點標記錯誤和詞節(jié)點標記錯誤兩種類型,究其原因是由于訓練語料規(guī)模較小而造成。
PCFG模型屬于監(jiān)督式學習方法,對訓練語料的質(zhì)量要求很高。為了能更好地研究藏文句法,今后一方面需不斷擴建藏文疑問句句法標記樹庫來提高句法分析效果,另一方面應(yīng)研究并嘗試無監(jiān)督式的基于神經(jīng)網(wǎng)絡(luò)模型的藏文句法分析技術(shù),以提高藏文句法分析的性能。