楊 泉
(北京師范大學 漢語文化學院,北京 100875)
自然語言處理中的短語結構語法關系判定是一項重要的基礎性研究工作,其結果對于機器翻譯、信息抽取、情感分析等諸多實際應用系統的處理效果至關重要[1]。短語層級語法關系判定問題實質上就是在一個短語結構可能存在的諸多語法關系中判定出正確的一個,因此是一種分類問題,可以通過機器學習算法予以解決。然而當前對于短語層級語法關系自動判定的研究較少,特別是用人工智能算法對短語語法關系做分類判斷的研究更不多見。其主要原因可能是因為大部分機器學習方法都不能直接處理原始的語言文本,需要根據語言學知識將文本轉化為適合機器學習算法使用的形式,比如詞語向量化、文本特征標記等。
N1+N2結構是由2個名詞組成的漢語短語結構,也是中文信息處理中的高頻語言現象。當其中的N1與N2實例化為不同名詞時,該結構可能會產生4種不同的語法關系:并列關系、定中關系、復指關系和主謂關系[2-3]。從這個角度來說,對于N1+N2結構語法關系判定問題可以轉化為對某條語料可能存在的語法關系的分類判定問題,本文擬以此結構為例探討如何用機器學習領域的分類方法判斷漢語短語結構的語法關系。
隨機森林(random forest)[4]是一種常用于解決分類問題的有監督非參數化機器學習方法[5-6],其核心思想是用隨機化方法構建決策樹(decision tree)[7]。該算法不需要先驗知識,只需訓練樣本學習分類規則,是一種數據驅動的非參數分類方法[8],因其簡單、易于實現、計算量小而成為集成學習的典型代表[9],已被廣泛應用于圖像語義標注[10]、文本可讀性評估[11]、語音情感識別[12]等領域,均取得了良好的效果。
目前,自然語言處理領域對于N1+N2結構的研究還停留在對于結構本身的識別和搜索階段[13-14],鮮見有運用人工智能算法對該結構的語法關系做分類判別的研究,其他短語結構也較少。因此,本文擬運用簡潔易用、適應性較好的隨機森林算法建立N1+N2結構語法關系判定方法,在已有研究成果的基礎上構建語料庫,并為每條語料標注構建隨機森林所需要的特征信息,以期探討如何更好地運用人工智能算法解決自然語言處理中的關鍵問題。
本文剩余部分結構如下:第1部分介紹N1+N2結構語料庫搭建過程;第2部分介紹N1+N2結構特征集構造過程;第3部分介紹用于判斷N1+N2結構語法關系的隨機森林算法和流程;第4部分總結分析本文隨機森林算法實驗結果。
1)語料獲取及篩選
首先從BCC語料庫中搜索出17 108條N1+N2結構語料(語料來自BCC語料庫的4個子庫:人民日報海外版、人民日報、文學、科技文獻);然后用Python編寫程序對語料進行自動篩選,去除各種情況不合格語料后,獲得10 398條初選合格語料;再經人工校對及去重處理,最終獲得5 098條無重復合格語料入庫。
2)名詞語義信息標注
用Python編寫程序,為N1+N2結構中每個名詞自動標注其在《同義詞詞林》①本文使用的《同義詞詞林》是《哈工大信息檢索研究室同義詞詞林擴展版》,下文簡稱《詞林》。中的語義編碼,目的是為了計算N1與N2之間的語義距離以便提取特征,從而讓機器自學N1+N2結構中名詞的語義類別與短語的語法關系之間的規律。
3)短語語法關系標注
對全部入庫的N1+N2結構語料人工標注其語法關系,并進行多次校對,在此基礎上建立“定中、并列、復指、主謂”4種語法關系的子語料庫,每種語法關系的語料數量及占比情況見表1。

表1 入庫語料各類關系數量及占比
最終入庫的全部語料都是從實際運用的語言中提取的,其中定中關系語料在語料庫中占比較多,而主謂關系語料占比較少,這是語料實際情況的反映,為了讓機器學習到語料的真實面貌,本文暫時沒有進行人工干預。
《詞林》使用5層編碼體系來表示全部詞語義項,每個編碼都是8位,按層級展開后每個義項編碼都是一個樹圖,編碼“Aa01A01=”的樹形結構如圖1所示。

圖1 編碼“Aa01A01=”樹形圖
在《詞林》體系中第1層到第5層編碼分別為:大類、中類、小類、詞群和原子詞群。前面7位編碼就可以唯一代表一個原子詞群,第8位編碼的意義在于表示一個原子詞群內部詞語之間的關系,只有3種情況:“=、#、@”,分別表示詞語義項之間的“近義、相關、唯一”3種關系[15]。《詞林》編碼的樹形結構與隨機森林中決策樹的通用形式非常接近,且所有編碼都有其語言學上的重要含義,因此每層編碼都可以被提取轉化為決策樹中的特征進行比較,全部特征可以轉化為隨機森林的特征集。
從語言學角度來看,具有相同語法關系的短語在語義上也具有某種共性,以N1+N2結構4種語法關系為例,并列關系短語中的2個名詞一般具有相同或相對的語義類別;復指關系中的2個名詞常常指代同一個人或事物;定中關系里N1對N2起到修飾、限制作用;主謂關系中N2往往是對N1的陳述或說明[16-17]。由此可見語法關系實際是對語義關系進一步的抽象概括,而詞語的語義關系對短語的語法關系起到決定性作用。詞語的語義關系可以經過向量化后,通過語義相似度表示出來,因此計算詞語的語義相似度可以作為判斷語法關系的一個特征屬性。
在《詞林》體系中,每個8位編碼都可以代表某個詞語的語義分類位置,2個詞語的位置距離越接近,它們的意義也就越接近,可以通過計算詞語位置距離的遠近來判斷2個詞語意義的相似程度。《詞林》編碼體系非常便于將詞語義項進行向量化表示,僅需再找到一種易于實現的算法模型就可以計算出詞義相似度。
文獻[18]僅使用《詞林》編碼體系中2個詞語最近公共父結點深度來計算2個詞語的語義相似度,簡潔易用、可重復性強,因此本文用來計算N1+N2結構中2個名詞間的語義相似度,具體公式如下:

式中:D為任意2個詞語的義項s1和義項s2在《詞林》中最近公共父結點的深度;S(s1,s2)為s1和s2的語義相似度值;λ為參數,其中:λ1=0.981 1,λ2=0.497 7,λ3=0.124 4,λ4=4.461 2。
至此,語料庫中每條語料的標注信息主要包括以下幾個方面:
1)N1和N2均標注了《詞林》語義編碼;
2)N1+N2短語標注了語法關系;
3)N1+N2短語標注了2個名詞的語義相似度值。最終入庫語料樣例見表2。

表2 語料標注樣例
上文為隨機森林的特征提取做好了準備,記本文構造的特征集為“P”,其中包含7個特征,形式化表示為
P={‘S’;‘N11 N21’;‘N12 N22’;‘N13 N23’;‘N14 N24’;‘N15 N25’;‘N16 N26’}
各個特征具體含義如下:
特征1:S,表示N1與N2的詞義相似度值;
特征2:N11 N21,表示N1與N2在《詞林》中第1層大類中的語義編碼;
特征3:N12 N22,表示N1與N2在《詞林》中第2層中類中的語義編碼;
特征4:N13 N23,表示N1與N2在《詞林》中第3層小類中的語義編碼;
特征5:N14 N24,表示N1與N2在《詞林》中第4層詞群中的語義編碼;
特征6:N15 N25,表示N1與N2在《詞林》中第5層原子詞群中的語義編碼;
特征7:N16 N26,表示N1與N2在《詞林》中的第8位語義編碼。
下面以“青菜(Bh06A02=)蘿卜(Bh06A25=)”、“皇后(Af05B02=)陛下(Af05A01=)、“電子(Ba01H08#)郵 箱(Bp09A03=)”、“謊 言(Dk11A47=)萬歲(Aa03A06=)”4組短語為例,說明隨機森林的特征集構成。將這4組詞語的《詞林》語義編碼按上述特征提取方法加工處理后,再加入詞義相似度特征和語法關系特征,就可以產生隨機林算法需要的特征集,具體構成如表3所示。

表3 隨機森林特征集
隨機森林是一種基于決策樹的并行集成學習算法,包含多個由Bagging[19-20]集成學習技術訓練得到的決策樹,當輸入待分類的樣本時,最終的分類結果由單個決策樹的輸出結果投票決定[7]。本文用此算法對N1+N2結構語法關系進行分類判別研究,每個結構具有7個特征供建立決策樹使用,本文中的決策樹均通過C4.5算法生成。
記給定的訓練集為T={(N1+N2)i,Ri},其中(N1+N2)i∈{標注了信息的名詞結構},Ri∈{blp,fzp,dzp,zwp}是全部分類結果。本文構造的隨機森林是在此訓練集上以21棵決策樹{Tr(Tm,Pm),m=1,2,…,21}為基分類器,進行集成學習后得到的一個組合分類器。對每一棵決策樹都從整體訓練集和全體特征集中獨立地抽取相同數量的訓練子集Tm和特征子集Pm;每棵決策樹從7個特征中隨機選擇5個特征進行構建。
在執行決策時,最終分類結果由每棵決策樹的分類結果進行投票決定,將得票最多的選項作為判別結果。若出現2種結果相同的情況,則再生成一棵決策樹,并用該決策樹的判斷結果作為最終輸出結果。在上文形式化處理的基礎上,本文為判斷N1+N2結構語法關系所構造的隨機森林示意圖如圖2所示。

圖2 隨機森林算法示意圖
根據圖2,利用隨機森林算法判定語法關系的基本步驟如下:
步驟1從訓練集T中,按一定比例有放回地隨機抽取一個子集Tm。
步驟2從總體特征集P中,隨機抽取5個特征,構成特征子集Pm。
步驟3用決策樹算法在訓練子集Tm上構建決策樹Tr(Tm,Pm)。
步驟4在測試樣本集Te上,隨機森林中每棵決策樹的判斷結果為R={R1,…,R21},采用投票機制,對測試用例(N1+N2)x進行分類。
步驟5輸出(N1+N2)x的類別Ri。
本文用Matlab編寫隨機森林算法,將已標注好的語料庫按8∶2的比例劃分為訓練集和測試集,其中訓練集有4 078條語料,測試集有1 020條語料。因為原始語料庫做了去重處理,訓練集和測試集中不存在重復語料,所得測試結果應該較為客觀。
4.1.1 正確率
最終在隨機森林算法的基礎上判定測試集中N1+N2結構語法關系的計算結果。從算法角度來看,在構造決策樹時若使用特征太少,則單棵決策樹的效果會變差;若特征太多,則決策樹種類會變少。因此本文從特征集全部7個特征中選擇5個特征,此時特征組合方式共有C(7,5)=21種,能夠較好地平衡產生決策樹的多樣性和單棵決策樹的決策效果。在實驗中分別計算了10~30棵決策樹構成模型的計算結果,其正確率如圖3所示。

圖3 不同數量樹的正確率直方圖(%)
從圖3中可以看出:隨著決策樹數量的增多,計算正確率有增加的趨勢。當算法中樹的數量超過20時,決策樹的數量與最多能夠產生的不同特征的決策樹種類相當,計算正確率雖有所波動,但均能保持在94%以上。因此,選取較適中的21棵樹的計算結果進行更加詳細的分析,按此方法對語料進行分類后,正確判斷和錯誤判斷的結果見表4。

表4 全部語料測試結果
在表4基礎上,進一步計算4種語法關系里面判斷正確和錯誤的數量及比例,詳細結果如表5所示。

表5 4種語法關系判斷結果
4.1.2 查準率和查全率
對于最終判定結果從4種語法關系的角度分別進行查準率和查全率計算后,具體結果見表6。

表6判定結果查準率和查全率表
具體分析上述實驗結果為:
1)從正確率和錯誤率角度來看,本文設計算法總體的正確率為94.80%,該正確率與相關文獻中使用隨機森林算法解決其他分類問題的結果,以及解決自然語言處理中類似的語法分類判定問題的結果相比均處在較高水平。在原始語料庫中,4種語法關系的語料比例不均衡,其中定中關系語料占了絕大多數,而主謂關系語料較少,這給算法提出了巨大的挑戰。分類錯誤的53個結構中,定中關系判斷錯誤的語料有14個,全部判斷成了并列關系;其他語法關系錯誤總數為39個,全部判斷成了定中關系。后面的工作中可以考慮從平衡語料類型、增加語料規模、完善語料庫標注信息、增加分類特征等方面進行改進。
2)在查準率和查全率方面,對于占比最大的定中關系,其查準率和查全率均能保持較高水平。語料占比較少的復指關系和主謂關系,具有100%的查準率,但在查全率方面有待進一步提高。對于并列關系,從語言學角度分析,該結構和定中關系結構在詞語語義類別等方面都具有較高的相似度,因此誤判較多,在查準率和查全率方面均不夠理想,需要在特征的構建方面進一步加以研究改進。
本文提出的方法可以較為準確地解決N1+N2結構語法關系分類判定問題。該方法是將人工智能算法與自然語言處理領域實際問題相結合的有益嘗試。
短語結構語法關系判斷是自然語言處理中的關鍵問題,短語是詞和句子的過度層級,解決該問題對于計算機判斷詞語的切分標注結果以及理解句子的語法語義關系而言都至關重要。未來的研究應該擴展人工智能各種方法在自然語言處理中的應用范圍,進一步運用機器學習相關算法解決中文信息處理中的其他問題。本文實驗結果表明:在科學技術日新月異的時代,將嶄新的人工智能算法與古老的語言學領域相結合會取得意想不到的成果,也是學科融合發展的必經之路。