楊進才,汪燕燕,曹 元,胡金柱
(華中師范大學 計算機學院,武漢 430079)
語義分析是自然語言處理(Natural Language Processing,NLP)領(lǐng)域中的一項基礎(chǔ)任務(wù),是自然語言理解的基礎(chǔ).在統(tǒng)計機器翻譯[1]、信息抽取[2]、自動問答[3]和計算機輔助評估[4]等下游任務(wù)中,通過語義分析獲取句子級別上的豐富的語義信息,推動自然語言處理領(lǐng)域的發(fā)展.
漢語文章中有2/3 的句子是復(fù)句,因而復(fù)句在現(xiàn)代漢語中占十分重要的地位.復(fù)句通常由兩個及兩個以上意義密切相關(guān)的分句組成.關(guān)系詞(也稱關(guān)系標記)是用來連接各個分句構(gòu)成復(fù)句的語法成分,但在漢語復(fù)句中,分句中的關(guān)系詞可以部分省略或全部省略[5].
關(guān)系詞非充盈態(tài)復(fù)句是指關(guān)系詞在分句中沒完全顯式出現(xiàn)的復(fù)句.復(fù)句的關(guān)系類別是指兩個分句之間語義關(guān)系類別,一個含有多個分句的復(fù)句可以劃分為多個含兩個分句式的復(fù)句.因此,本文選取含有兩個分句的二句式復(fù)句作為研究對象.
二句式復(fù)句定義為一個二元組 〈c1,c2〉,其中c1,c2 為分句.
非充盈態(tài)復(fù)句滿足:(r(c1)=Φ∧r(c2)≠Φ)∨(r(c1)≠Φ∧r(c2)=Φ)
復(fù)句的類別與關(guān)系詞搭配有很強的關(guān)系,一個關(guān)系詞與不同的關(guān)系詞搭配,構(gòu)成不同的類別.例句1 中,關(guān)系詞“既”與“也”搭配,復(fù)句關(guān)系類別為并列關(guān)系.例句2 中,關(guān)系詞“如果”與“也”搭配,類別為因果關(guān)系.對于一個每個分句的關(guān)系詞顯式出現(xiàn)的充盈態(tài)復(fù)句,根據(jù)關(guān)系詞搭配的可以判斷出對應(yīng)的類別.對于例3,例4 和例5,僅分句2 中出現(xiàn)關(guān)系詞‘也’,對這樣的關(guān)系詞非充盈態(tài)復(fù)句,無法根據(jù)關(guān)系詞的搭配直接判斷復(fù)句的類別.
例1:這種電話既是用于緊急情況下的報警,也用于遇到一般困難時的求助.
例2:如果技術(shù)掌握得當,闊葉樹移栽也有成功的實例.
例3:當我的獨創(chuàng)產(chǎn)品成為世界一流時,我也自然而然躋身于世界強人之列.
例4:他聽課,也不打聲招呼.
例5:條件不同,面臨的任務(wù)也不同.
對于復(fù)句關(guān)系類別識別的方法分為兩類,第一類是借助關(guān)系詞識別和關(guān)系詞搭配的研究分析復(fù)句的語義關(guān)系.Huang HH 等基于半監(jiān)督學習方法探索關(guān)系標記的概率分布,發(fā)現(xiàn)成對的關(guān)系詞連用對分析篇章的語義關(guān)系起到的強提示[6].胡金柱、舒江波等將詞性和關(guān)系標記搭配理論相結(jié)合,提出正向選擇算法用于關(guān)系詞識別[7].胡金柱、陳江曼等分析了關(guān)系詞連用情況,提出一種連用關(guān)系詞識別算法[8].胡金柱、胡泉等對在關(guān)系詞識別過程中的規(guī)則解析算法進行了研究,提出了包含匹配算法[9].
第二類是結(jié)合句法樹的詞法、句法特征,采用機器學習的方法識別復(fù)句關(guān)系類別.李艷翠、孫靜等基于已標注的清華漢語樹庫,采用最大熵、決策樹和貝葉斯方法判斷準關(guān)系詞是否為關(guān)系詞以及復(fù)句關(guān)系類別的識別[10].周文翠和袁春風[11]選取主語、謂語等相關(guān)特征,使用支持向量機模型識別并列復(fù)句.楊進才、陳忠忠等結(jié)合漢語復(fù)句的句法理論和分句間的語義信息,提出了基于語義相關(guān)度的非充盈態(tài)的二句式復(fù)句關(guān)系類別識別[12].Huang HH 等利用決策樹算法提取詞性、句子長度、關(guān)系標志特征,來識別漢語句子間的因果、并列關(guān)系[13].
上述方法需要依賴良好的語言學知識,通過人工總結(jié)規(guī)則以及發(fā)掘特征,不利于發(fā)現(xiàn)隱藏的特征,影響識別系統(tǒng)的自動化.
本文以復(fù)句整體為處理對象,在神經(jīng)網(wǎng)絡(luò)模型中輸入關(guān)系詞特征,以自動地從復(fù)句分句中發(fā)現(xiàn)與關(guān)系詞相關(guān)的蘊含的語義關(guān)系特征.
漢語復(fù)句關(guān)系分類體系很多,著名漢語語言學家邢福義先生的復(fù)句關(guān)系“三分系統(tǒng)”[5]是目前廣泛使用的主流的分類體系.三分系統(tǒng)將復(fù)句分成因果、并列、轉(zhuǎn)折3 大類,其中每一大類又分成多個小類(如表1所示).
表1 復(fù)句三分系統(tǒng)
R<c1,c2>為復(fù)句關(guān)系類別.R(<c1,c2>)∈{因果,并列,轉(zhuǎn)折},因果={因果|推斷|假設(shè)|條件|目的},并列={并列|連貫|遞進|選擇},轉(zhuǎn)折={轉(zhuǎn)折|讓步|假設(shè)}.本文采用復(fù)句三分系統(tǒng)作為類別標識標準.
使用的Shallow CNN 模型結(jié)構(gòu)如圖1所示.首先,利用查詢詞表,提取詞對應(yīng)的詞向量,將整個復(fù)句轉(zhuǎn)換成句子向量并將其作為卷積層的輸入[14];同時,將關(guān)系詞特征輸入到我們的模型中.經(jīng)過卷積和maxpooling操作,不同窗口大小的濾波器獲取不同的特征映射,最后這些特征連接起來,作為全連接層和Softmax 層的輸入,輸出各個類別概率分布.
圖1 SCNN 的結(jié)構(gòu)圖
一個關(guān)系詞在不同的語境下,對應(yīng)的復(fù)句關(guān)系類別可能不同,關(guān)系詞與類別是一對多的關(guān)系.經(jīng)過對大規(guī)模地語料統(tǒng)計,我們考察了關(guān)系詞在關(guān)系類別、詞性、搭配情況以及在搭配中處于前呼還是后應(yīng)等屬性,統(tǒng)計了499 個準關(guān)系詞的上述特征屬性,構(gòu)建關(guān)系詞庫.
圖2展示的是部分關(guān)系詞與復(fù)句關(guān)系類別的對應(yīng).根據(jù)關(guān)系表采用onehot 離散化每一個詞,得到每一個詞對應(yīng)的關(guān)系向量,Rri∈Rl中(其中l(wèi)是關(guān)系類別數(shù)),若用Xi∈Rk表示每個詞在預(yù)訓(xùn)練詞向量中對應(yīng)的向量,則每個詞對應(yīng)的特征向量記為Yi:
圖2 關(guān)系詞——關(guān)系類別對應(yīng)
一個長度為n的句子表示為:
其中,⊕是連接操作,用Yi:i+j代表特征Yi,Yi+1,···,Yi+j之間的拼接操作.
卷積操作是濾波器w∈Rnk,一個大小為h個單詞的窗口的濾波器產(chǎn)生新特征.例如,一個特征ci是由大小為Yi:i+h-1的窗口生成的.句子級的特征向量利用濾波器矩陣[W1,W2,···,Wn-h+1]進行卷積操作生成,這些句子級的向量被轉(zhuǎn)化為特征映射:
這里的下標[i+h-1]表示卷積窗口的始末下標.此外,在embedding 層和濾波器矩陣之間應(yīng)用卷積操作,即利用不同窗口大小的卷積核作用于整個句子,以獲取不同的特征映射表示,得到復(fù)句的不同特征表示.接下來,在上一步得到的特征映射中使用max-pooling 操作[15],即=max(),這樣就得到了特征映射中最重要的特征
然后將得到的特征通過全連接層Softmax,輸出最終的概率分布.
在訓(xùn)練過程中,我們有兩種類型的詞向量:一種是直接通過訓(xùn)練數(shù)據(jù)訓(xùn)練詞向量,另一種是結(jié)合關(guān)系詞特征得到的詞向量.
CNN 網(wǎng)絡(luò)訓(xùn)練是基于梯度的Adadelta 優(yōu)化器[16]和反向傳播算法[17].同時,我們結(jié)合了early stopping[18]和dropout[19]來防止過擬合.
交叉熵函數(shù)用來證明可以加速反向傳播算法,提供良好的網(wǎng)絡(luò)性能和相對較短的停滯期,尤其對分類任務(wù)[20].為了構(gòu)建目標函數(shù),應(yīng)該考慮交叉熵損失函數(shù)和L2 正則化項.我們使用ReLU 作為模型的激活函數(shù),可以產(chǎn)生與Sigmoid 函數(shù)接近的結(jié)果,而ReLU 不存在指數(shù)計算,求導(dǎo)計算量小,且收斂得更快,同時緩解了過擬合的情況.模型參數(shù)調(diào)節(jié)列表如表2所示.
漢語復(fù)句語料庫(the Corpus of Chinese Compound Sentence,CCCS),可訪問http://218.199.196.96:8080/jiansuo/TestFuju.jsp 獲取.語料庫是包含658 447 條的漢語有標復(fù)句專用語料庫.來源于《人民日報》、《長江日報》.我們從中選取了24 706 條二句式非充盈態(tài)有標復(fù)句,構(gòu)成語料庫簡記為NCCST.NCCST 語料庫中,各關(guān)系類別的數(shù)據(jù)分布如表3所示,3 種關(guān)系類別的數(shù)據(jù)分布是不平衡的,這會影響模型的訓(xùn)練效果,易造成過擬合,模型難收斂.本文采用過采樣技術(shù)[15]處理不平衡樣本數(shù)據(jù).
表2 模型參數(shù)調(diào)節(jié)列表
表3 數(shù)據(jù)統(tǒng)計分布表
決策樹算法(C5.0)[13]:作為傳統(tǒng)機器學習模型的代表,在各種分類問題上取得不錯的效果.本次對比的對象中,Huang HH 等使用了詞性、句子長度和關(guān)系連接詞等特征,用C5.0 模型訓(xùn)練.
Semantic_relevance 模型[12]:該模型是基于漢語復(fù)句語義相關(guān)度計算,主要考慮了詞語共現(xiàn)、關(guān)系詞搭配距離、詞間距等因素.根據(jù)計算結(jié)果判別復(fù)句語義關(guān)系類別.
我們進行了3 個實驗,第1 個是預(yù)訓(xùn)練詞向量作為CNN 模型的輸入;第2 個實驗在CNN 中引入外部知識,加入了關(guān)系詞特征,得到融合模型FCNN;第3 個是對比實驗,與文獻[13]中,Huang HH 等用決策樹算法進行的漢語句子的關(guān)系分類進行對比.此外,我們也進行了是否使用停用詞表(停用詞表不包括所有的關(guān)系詞)的對比實驗,實驗結(jié)果表明其對結(jié)果影響很小,幾乎可以忽略不計.
表4的結(jié)果顯示,Shallow CNN 比文獻[12]和文獻[13]中的方法在正確率分別高出5.16%和1.96%,說明神經(jīng)網(wǎng)絡(luò)利用詞向量能夠捕獲基本的詞法、語義相似度一些信息.Shallow CNN 通過卷積運算自動學習詞法方面的特征,將低級特征組合成高級特征,得到整個復(fù)句的語義表示;同時使用max 池化操作捕獲復(fù)句關(guān)系詞特征,對復(fù)句的關(guān)系類別識別起到顯著的作用.
表4 識別正確率的對比結(jié)果
為了保證實驗結(jié)果的公平,所有模型使用的是同一數(shù)據(jù)集.表5分別展示了C5.0、shallow CNN 和FCNN模型在Precision、Recall 和Macro-F1 不同的表現(xiàn)結(jié)果.
表5 不同評價指標的實驗結(jié)果比較(%)
結(jié)果表明,相比較于C5.0,Shallow CNN 和FCNN在Macro-F1 上高出16.84%以上,這表明我們的方法在復(fù)句關(guān)系分類方面要好于C5.0 算法.C5.0 算法是決策樹算法的一種,該算法需要人工構(gòu)建特征,分析分句之間的語言學特征比如詞性、關(guān)系連接詞等,從而構(gòu)建對應(yīng)的特征矩陣.因此,特征的選取對C5.0 算法起到關(guān)鍵的作用,而特征的好壞依賴于語言學知識和規(guī)則的總結(jié).本文提出的Shallow CNN 模型直接利用CNN 做特征提取,得到句子的特征表示.值得一提的是,FCNN 在Shallow CNN 的基礎(chǔ)上加了關(guān)系詞特征,它在召回率和Macro-F1 上比Shallow CNN 好,分別提高了2.36%和0.32%,這表明關(guān)系詞提供了一些有利于復(fù)句關(guān)系類別分類的信息.FCNN 模型融合關(guān)系詞與關(guān)系類別之間映射關(guān)系這一特征,首先CNN 利用embedding層獲取復(fù)句的語義特征表示,然后融合對關(guān)系類別識別起到關(guān)鍵作用的關(guān)系詞特征,進一步強化神經(jīng)網(wǎng)絡(luò)自動學習該特征,從而更加高效地識別關(guān)系類別.
我們對標識結(jié)果進行統(tǒng)計分析,發(fā)現(xiàn)FCNN 模型不僅對于一個關(guān)系詞對應(yīng)單種關(guān)系類別的識別效果好,并且對于像“也”這樣的關(guān)系詞,它對應(yīng)多個關(guān)系類別(如圖2所示),FCNN 也要比Shallow CNN 的識別效果要好.對于文中的例句,FCNN 能夠識別出例3 是并列關(guān)系,例4 是轉(zhuǎn)折關(guān)系,例5 是因果關(guān)系.模型中融合了關(guān)系詞特征,從側(cè)面說明了關(guān)系詞特征對復(fù)句類別的識別起到了提示作用.
我們進一步分析使用預(yù)訓(xùn)練詞向量初始化的影響.如圖3所示,相比較于使用(-1,1)的均勻分布初始化詞向量,而使用訓(xùn)練語料初始化詞向量的Micro-F1 值大約提高了24%.
圖3 詞向量不同對模型的影響
依據(jù)上述分析,一方面,基于特征的方法會很大程度地依賴特征提取的質(zhì)量,并且耗時耗力;另一方面,特征提取又需借助于NLP 解析工具,這也會帶來解析工具已經(jīng)存在的傳播誤差,影響系統(tǒng)性能.因此,Shallow CNN 和融合特征的FCNN,減少對先驗的語言學知識和大量的手動提取的特征的依賴,總體上要優(yōu)于傳統(tǒng)的機器學習的方法.
本文中,我們利用卷積神經(jīng)網(wǎng)絡(luò)模型學習了兩個分句之間有效的關(guān)系表示,進一步訓(xùn)練Shallow CNN分類器,更好地處理復(fù)句的兩個分句的語義關(guān)系,并且該模型對復(fù)句的關(guān)系分類是簡單高效的.當加入關(guān)系詞特征時,系統(tǒng)的效果得了提升,我們模型已遠遠優(yōu)于僅依賴手動提取特征的模型.自動學習特征能得到很好的結(jié)果,可用于替代利用語言學知識和現(xiàn)有的NLP 工具設(shè)計的特征.
在接下來的工作中,我們將重點探索無標復(fù)句的關(guān)系類別識別.并在依存句法樹上構(gòu)建神經(jīng)網(wǎng)絡(luò)模型,融合更豐富的語法與結(jié)構(gòu)特征[21].