柔 特, 色差甲, 才讓加
(1. 青海師范大學 計算機學院,青海 西寧 810016;2. 青海師范大學 青海省藏文信息處理與機器翻譯重點實驗室, 青海 西寧 810008)
語言不但是人與人之間的溝通工具,而且已成為人與機器交互的手段之一。機器理解語言文字已成為自然語言處理研究的一項重要任務。人類運用語言主要是為了表達“意思”,表達“意思”的最基本單位是句子,句子組成段落,段落組成文章。人與機器交流的最基本單位也是句子。機器理解語義的方法目前有以下三種。
一是利用傳統(tǒng)詞法分析和句法分析對語義進行分析,也就是把句子分割為詞、短語(組塊)等不同的顆粒度來解析語義。在詞法分析層面上主要應用隱馬爾可夫(Hidden Markov Model,HMM)[1]、條件隨機場(Conditional Random Fields,CRF)[2]、支持向量機(Support Vector Machine,SVM)[3]、樸素貝葉斯(Naive Bayes)[4]等模型和算法。在句法分析層面上采用了ME[5]、CYK、Earley、Chart[6]等模型和算法,這些研究都依賴于人工提取各種特征,在句子結構和句子成分分析等方面較為有效,但從機器理解詞義、句義等角度分析相關度較差且聯系不緊密。
二是通過構建各類語義詞典對語義進行分析,目前較為成熟的成果有WordNet、 HowNet、CCD、同義詞詞林等[7-12],這些成果對知識的描述較為準確,但需要耗費很大的成本,且語義覆蓋面較小,在實際語義分析應用層面存在著較多困難。
三是利用深度學習方法和理論對語義進行分析,通常把詞語表示成向量形式,將詞向量作為深度學習模型的特征輸入,模型的效果很大程度上取決于詞向量的效果[13]。卷積神經網絡 (Convolutional Neural Network, CNN)、循環(huán)神經網絡(Recurrent Neural Networks,RNN)方法[14]等在機器理解句義方面表現優(yōu)異,已成為目前語義分析最有效的方法。
本文從藏文自身的語言特性出發(fā),提出了介于詞義之上句義之下的一個語義單元,將藏文句子分割為幾個或多個塊,每個塊隱含語法、語義、語用等關聯信息,語義塊識別是本文的主要研究內容。通過語義塊的分割,可降低句義分析的復雜度,使整句先分解后分析,最終得到完整的句義。本方法可彌補以語法為中心的句義研究的不足,在詞義消歧、語義角色標注、語義信息損失、降低長句句義分析復雜度等方面具有良好的應用前景。
人與人交流時無需先分析語法,后理解語義,人們使用語言的流利度很大程度上取決于記憶庫中存儲語塊的多少,語塊在形義關系上比較固定,它整體存儲在大腦記憶庫中,使用時直接提取[29],語塊的積累可以減輕人類大腦對語言處理的負擔,節(jié)約時間和精力[30],從而滿足即時交際的需要,使語言從加工到提取再到使用更加迅速、準確、流利和地道。
機器理解語義是研究自然語言處理的最終目的,目前尚無成熟的技術使機器直接理解句義,人們將“分治”的思想應用到了自然語言處理上,在語法層面上主流的方法是通過詞法、短語(組塊)、句法等分析手段分析句義。在語義層面上目前分為詞義和句義分析,語義塊是一個介于詞義和句義之間的語義單元。該方法與傳統(tǒng)以語法為中心的研究思路不同,可以降低對語法信息的依賴,并可以替代藏文詞義消歧、語義角色標注等工作,還在語義分析方面提出了一種新的方法。
語義塊是指將一個句子分割為若干個相對獨立的語義單元,長度基于詞義之上句義之下;是一種語法、語義、語用關聯的預處理手段。各語義塊之間非遞歸、非嵌套、不重疊。它是藏語自然語言理解中淺層句義分析的一個緩沖,也是把整句先分解后分析的一種方法。
組塊是針對句法分析,語義塊是針對句義分析,兩者方法不同但都服務于機器理解。我們接受了傳統(tǒng)語言學家的研究方法,在自然語言處理方法上以語法為中心的研究已成為主流。其中,短語(組塊)分析是淺層句法分析的代表,在英語、漢語、藏語等不同語言的研究中,將注意力集中于組塊分析對句法和句義分析的作用。
根據Abney對組塊的定義,它是一種語法結構,是符合一定語法功能的非遞歸短語。每個組塊都有一個中心詞,組塊內的所有成分都圍繞該中心詞展開,任何一種類型的組塊內部不包含其他類型的組塊[31]。漢語組塊也借鑒了英文的研究方法[32-33]。其中,漢語中比較常見的組塊類別有NP、VP、ADJP、ADVP 和MP等,在漢語組塊研究中認為序列問題很關鍵,但虛詞和助動詞等沒有實際意義,所以不在研究目標之內[34]。
組塊分析是以語法為中心的淺層句法分析方法,不強調語義和功能,通過組塊可簡化句子結構,降低句法分析的難度,為完全句法分析提供基礎。組塊不能覆蓋整個句子成分,有些句子成分不屬于任何組塊,例如,助詞和虛詞等不屬于任何一個組塊。
語義塊是以語義為中心的淺層句義分析方法,通過詞義之上句義之下的一個語義單元來縮短句義長度,注重強調語義和功能,可以降低句義分析難度,為完全句義分析提供基礎。語義塊覆蓋整個句子,尤其藏文虛詞不能成為獨立的語義塊而是屬于某個語義塊的成分。
語義塊識別的任務是在不需要深層次語言知識的前提下,通過藏文格助詞和語義顆粒度大小簡化句義,降低藏文句義分析難度,為完整的句義分析提供基礎。語義塊分割符合傳統(tǒng)句法樹分析規(guī)律、語義角色標注也可相互轉換。同時融合了語法、語義、語用為一體化的語義分析方法。
目前機器直接理解句義的方法很少,雖然有一些利用句向量理解句義的方法,但藏文實際效果不理想。藏文句子語義分割包括句子預處理、塊標注、語義塊識別等三個步驟,如圖1所示。其中,語義塊識別工作等同于藏文句子語義分割的過程。
圖1 句子語義分割方法
2.1.1 藏文分詞
2.1.2 識別藏文虛詞
藏文句義表達的核心是虛詞,虛詞限定每個語義塊之間的語義功能和關系,所以藏文句子中虛詞的功能不可忽略??赏ㄟ^虛詞對相對語義獨立的語義塊的長度進行界定,無虛詞的藏文句子,可通過組塊和助動詞等功能來界定語義塊的長度。
藏文語義塊標注與詞性標注的方式相似,但標注的依據需要遵守藏文構詞法和藏文文法的虛詞匹配規(guī)律。一般使用類型數量為4,采用BMES標注方法。
BMES標注方法說明;B: 塊開始;M: 塊中間;E: 塊結束;S: 獨立成塊。
預處理和標注是語義塊識別的前提條件,根據句子的分詞和標注結果分析后重新組合后生成一個新的塊,就是語義塊的識別過程。
2.3.1 標注方向
句子結構不一樣,語義塊的標注方法也不同,有正向語義標注、反向標注和雙向標注三種不同的標注方法。本文主要針對藏文的簡單句,句型結構上包括“主語+表語+連系動詞”“主語+謂語”“主語+賓語+謂語”“主語+雙賓語+謂語”“主語+賓語+賓補+謂語”等五種句型。
2.3.2 重組
預處理、塊標注和重組是藏文句子語義分割的基本步驟,也是語義塊識別的工作過程。是否能準確地識別語義塊,是藏文句義分析和機器理解中一個不可忽視的基礎性研究工作。
本節(jié)介紹將以上工作交給機器,及機器如何識別語義塊的過程。分詞是短語結構分析、組塊分析、句法結構分析、句義分析等藏文信息處理研究的核心技術。藏文句義分割過程類似于藏文分詞,按不同句子結構對句子中的語義進行分割。本文主要應用BiLSTM+CRF和ID-CNN+CRF模型對藏文句義進行分割,并需要識別藏文語義塊。
序列標注問題在淺層機器學習任務中是一個比較成熟的技術,隨著深度學習在自然語言處理中的廣泛應用,目前主流的序列標注學習框架是雙向長短時記憶循環(huán)神經網絡(Bidirectional Long Short-Term Memory ,Bi-LSTM)模型和空洞卷積神經網絡(Iterated Dilated CNN,ID-CNN)模型。本文利用這兩個模型對藏文語義塊進行識別,并對比兩個模型的優(yōu)勢。
3.1.1 雙向長短時記憶循環(huán)神經網絡(Bi-LSTM)模型
目前序列塊識別或者標注算法上表現最好的是Bi-LSTM算法[35-39],本文選擇該模型對藏文句子按順序讀取(從句首的第一個詞開始,從左往右遞歸)和逆序讀取(從句尾的第一個詞開始,從右往左遞歸)得到兩套不同的隱層表示,然后通過向量拼接得到最終的表示。圖2是一個雙向LSTM+CRF層的模型,在LSTM輸出層后再增加CRF層,加強了文本間信息的相關性,針對序列標注問題,每個句子中的每個詞都有一個標注結果,對句子中第i個詞進行高維特征抽取,通過特征學習到結果標注的映射,得到特征到任意標簽的概率,利用這些概率,可得到一個最優(yōu)序列結果,這個結果就是藏文句子分割后塊與塊之間重新組合生成語義塊的過程,也可以認為是語義塊識別的過程,如圖2所示。
圖2 BILSTM+CRF模型識別語義塊
每個塊可以看成詞嵌入的一種特征學習,未標注數據使用Word2Vec工具來轉換詞向量,在生成詞向量過程中設置不同的維度,然后詞嵌入特征為雙向LSTM,對輸出的隱層加一個線性層,然后再加一個條件隨機場(CRF)就得到本文實現的語義塊。
藏文詞向量的表示可以是預訓練的,也可以在訓練模型中隨機生成,輸入雙向LSTM之前加入dropout進一步提升模型效果。Bi-LSTM 層的輸出維度是標簽的長度,相當于每個詞hi映射到tag的發(fā)射概率值;設Bi-LSTM的輸出矩陣為P,其中Pi,j代表詞hi映射到tagj的非歸一化概率。對于CRF來說,假定存在一個轉移矩陣A,則Ai,j代表tagi轉移到tagj的轉移概率。對于輸入序列x對應的輸出tag序列y,定義如式(1)所示。
(1)
對輸入序列x所對應的每個輸出tag序列y計算這個分數,選擇出分數最大的一個作為最終的輸出tag序列??梢钥闯鰞?yōu)化目標為maxs(x,y),優(yōu)化方法為動態(tài)優(yōu)化算法。
3.1.2 空洞卷積神經網絡(ID-CNN)模型
考慮RNN不能并行計算,雖然RNN能夠解決長時問題,但句子較長時,句尾對句首的依賴依然會損失很多句義信息。為彌補不足我們利用CNN進行建模,但普通CNN有一個劣勢,就是卷積之后,末層神經元可能只得到了原始輸入句義中的一部分信息。所以本文采用文獻[40-41]提出的Dilation卷積。該模型識別過程如圖3所示,主要以藏文詞向量、卷積層、池化層、全連接層等為基礎,添加了條件隨機場。藏文分詞后的每個詞轉化為對應的詞向量矩陣。藏文分詞后詞的顆粒度大小不同導致句子長度不一致,為了解決此問題,以最長的藏文詞為準,長短不足的句子兩端補充占位符,使得所有詞向量矩陣大小一樣。形式上,對于1維的輸入序列x∈n和卷積核f: {0, …,k-1}→,空洞卷積運算F可以定義為式(2)。
(2)
其中,d為擴張系數,k為卷積核大小。擴張系數控制每兩個卷積核間會插入多少零值,當d=1時,空洞卷積就會退化為一般的卷積運算。使用較大的擴張系數允許輸出端的神經元表征更大范圍的輸入序列,因此能有效擴張。最后卷神經積網絡輸出結果上再加一個條件隨機場(CRF)就得到本文實現的語義塊。
圖3 ID-CNN+CRF模型識別語義塊
目前由于未發(fā)現藏文語義塊研究方面的相關報道和數據,因此,沒有適合的基準(Baseline)對比本文的實驗結果。從整體來看,識別效率高于一般的分詞和短語的識別率。
實驗數據主要來源于人工整理和藏文電子書,構建了共有102 358句子的藏文句庫。其中,實驗過程 中訓練數 據 集 為 92 358,測試數據 集 為10 000。實驗數據為藏文簡單句,句子類別為陳述句,句型結構上包括“主語+表語+連系動詞”“主語+謂語”“主語+賓語+謂語”“主語+雙賓語+謂語”“主語+賓語+賓補+謂語”等內容。從句子長度而言,最短句子為5個藏文詞,最長的句子為22個藏文詞。實驗模型的超參數設置具體數值如表1和表2所示。
在兩種不同模型中設置了相同的超參數,對詞向量維數(embedding)、學習速率(rate)、分類器隱藏層節(jié)點數(hidden)這三個主要參數對語義塊識別的影響進行了分析。
表1 基于BiLSTM+CRF 語義塊識別率 (%)
表2 基于IDCNN+CRF語義塊識別率 (%)
本文中語義塊的識別是核心內容,通過實驗發(fā)現語義塊在句義分析中優(yōu)于傳統(tǒng)的詞法分析和句法分析,因為語義塊隱含語法,語義、語用一體的功能,可以降低詞匯歧義問題,可替代語義角色標注等工作,又符合藏文句法分析樹的標記方法。另外,在藏文句子中,除句尾動詞固定外、其他語義塊可隨機變換序列,一句藏文可以生成幾十個或幾百個甚至上千個成分相同、語序不同但句義完全相同的句子[42]。
4.3.1 句型結構與模型的關系
藏文句子結構與漢語或英語存在著明顯的差異,漢語是主謂賓(SVO)結構,藏文是主賓謂(SOV)結構。其中,藏文句義中虛詞的語義功能非常突出。藏文句子中主謂不可缺而賓語可省略。若句中有施動格和拉格等虛詞,并有幾個或多個語義塊組成時,語序可以發(fā)生變化,但不影響句義。例如,
4.3.2 詞義消歧
4.3.3 語義角色標注
4.3.4 存在問題與不足
從自然語言理解角度看,改變以往僅語法為中心的研究思路,尋求機器理解自然語言的新方法、新思路是研究者孜孜追求的目標。藏文語義塊識別研究為藏文句子語義分析理論和藏文語義理解理論的發(fā)展提供了一個新的研究思路。
本文采用神經網絡與傳統(tǒng)CRF模型相結合的方法研究和識別藏文語義塊,對于空洞卷積神經網絡與雙向長短時記憶循環(huán)神經網絡來說,這兩個方法都沒有占據絕對的優(yōu)勢,各有相應的優(yōu)點。語義塊識別是句子語義分割的基礎工作,通過此方法可提高機器理解語義、消除詞的歧義、標注語義角色等問題的能力。