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

表1 入庫(kù)語(yǔ)料各類(lèi)關(guān)系數(shù)量及占比
最終入庫(kù)的全部語(yǔ)料都是從實(shí)際運(yùn)用的語(yǔ)言中提取的,其中定中關(guān)系語(yǔ)料在語(yǔ)料庫(kù)中占比較多,而主謂關(guān)系語(yǔ)料占比較少,這是語(yǔ)料實(shí)際情況的反映,為了讓機(jī)器學(xué)習(xí)到語(yǔ)料的真實(shí)面貌,本文暫時(shí)沒(méi)有進(jìn)行人工干預(yù)。
《詞林》使用5層編碼體系來(lái)表示全部詞語(yǔ)義項(xiàng),每個(gè)編碼都是8位,按層級(jí)展開(kāi)后每個(gè)義項(xiàng)編碼都是一個(gè)樹(shù)圖,編碼“Aa01A01=”的樹(shù)形結(jié)構(gòu)如圖1所示。

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

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

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

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

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

圖3 不同數(shù)量樹(shù)的正確率直方圖(%)
從圖3中可以看出:隨著決策樹(shù)數(shù)量的增多,計(jì)算正確率有增加的趨勢(shì)。當(dāng)算法中樹(shù)的數(shù)量超過(guò)20時(shí),決策樹(shù)的數(shù)量與最多能夠產(chǎn)生的不同特征的決策樹(shù)種類(lèi)相當(dāng),計(jì)算正確率雖有所波動(dòng),但均能保持在94%以上。因此,選取較適中的21棵樹(shù)的計(jì)算結(jié)果進(jìn)行更加詳細(xì)的分析,按此方法對(duì)語(yǔ)料進(jìn)行分類(lèi)后,正確判斷和錯(cuò)誤判斷的結(jié)果見(jiàn)表4。

表4 全部語(yǔ)料測(cè)試結(jié)果
在表4基礎(chǔ)上,進(jìn)一步計(jì)算4種語(yǔ)法關(guān)系里面判斷正確和錯(cuò)誤的數(shù)量及比例,詳細(xì)結(jié)果如表5所示。

表5 4種語(yǔ)法關(guān)系判斷結(jié)果
4.1.2 查準(zhǔn)率和查全率
對(duì)于最終判定結(jié)果從4種語(yǔ)法關(guān)系的角度分別進(jìn)行查準(zhǔn)率和查全率計(jì)算后,具體結(jié)果見(jiàn)表6。

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