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