楊進才,汪燕燕,曹 元,胡金柱
(華中師范大學 計算機學院,武漢 430079)
語義分析是自然語言處理(Natural Language Processing,NLP)領域中的一項基礎任務,是自然語言理解的基礎.在統計機器翻譯[1]、信息抽取[2]、自動問答[3]和計算機輔助評估[4]等下游任務中,通過語義分析獲取句子級別上的豐富的語義信息,推動自然語言處理領域的發展.
漢語文章中有2/3 的句子是復句,因而復句在現代漢語中占十分重要的地位.復句通常由兩個及兩個以上意義密切相關的分句組成.關系詞(也稱關系標記)是用來連接各個分句構成復句的語法成分,但在漢語復句中,分句中的關系詞可以部分省略或全部省略[5].
關系詞非充盈態復句是指關系詞在分句中沒完全顯式出現的復句.復句的關系類別是指兩個分句之間語義關系類別,一個含有多個分句的復句可以劃分為多個含兩個分句式的復句.因此,本文選取含有兩個分句的二句式復句作為研究對象.
二句式復句定義為一個二元組 〈c1,c2〉,其中c1,c2 為分句.
非充盈態復句滿足:(r(c1)=Φ∧r(c2)≠Φ)∨(r(c1)≠Φ∧r(c2)=Φ)
復句的類別與關系詞搭配有很強的關系,一個關系詞與不同的關系詞搭配,構成不同的類別.例句1 中,關系詞“既”與“也”搭配,復句關系類別為并列關系.例句2 中,關系詞“如果”與“也”搭配,類別為因果關系.對于一個每個分句的關系詞顯式出現的充盈態復句,根據關系詞搭配的可以判斷出對應的類別.對于例3,例4 和例5,僅分句2 中出現關系詞‘也’,對這樣的關系詞非充盈態復句,無法根據關系詞的搭配直接判斷復句的類別.
例1:這種電話既是用于緊急情況下的報警,也用于遇到一般困難時的求助.
例2:如果技術掌握得當,闊葉樹移栽也有成功的實例.
例3:當我的獨創產品成為世界一流時,我也自然而然躋身于世界強人之列.
例4:他聽課,也不打聲招呼.
例5:條件不同,面臨的任務也不同.
對于復句關系類別識別的方法分為兩類,第一類是借助關系詞識別和關系詞搭配的研究分析復句的語義關系.Huang HH 等基于半監督學習方法探索關系標記的概率分布,發現成對的關系詞連用對分析篇章的語義關系起到的強提示[6].胡金柱、舒江波等將詞性和關系標記搭配理論相結合,提出正向選擇算法用于關系詞識別[7].胡金柱、陳江曼等分析了關系詞連用情況,提出一種連用關系詞識別算法[8].胡金柱、胡泉等對在關系詞識別過程中的規則解析算法進行了研究,提出了包含匹配算法[9].
第二類是結合句法樹的詞法、句法特征,采用機器學習的方法識別復句關系類別.李艷翠、孫靜等基于已標注的清華漢語樹庫,采用最大熵、決策樹和貝葉斯方法判斷準關系詞是否為關系詞以及復句關系類別的識別[10].周文翠和袁春風[11]選取主語、謂語等相關特征,使用支持向量機模型識別并列復句.楊進才、陳忠忠等結合漢語復句的句法理論和分句間的語義信息,提出了基于語義相關度的非充盈態的二句式復句關系類別識別[12].Huang HH 等利用決策樹算法提取詞性、句子長度、關系標志特征,來識別漢語句子間的因果、并列關系[13].
上述方法需要依賴良好的語言學知識,通過人工總結規則以及發掘特征,不利于發現隱藏的特征,影響識別系統的自動化.
本文以復句整體為處理對象,在神經網絡模型中輸入關系詞特征,以自動地從復句分句中發現與關系詞相關的蘊含的語義關系特征.
漢語復句關系分類體系很多,著名漢語語言學家邢福義先生的復句關系“三分系統”[5]是目前廣泛使用的主流的分類體系.三分系統將復句分成因果、并列、轉折3 大類,其中每一大類又分成多個小類(如表1所示).

表1 復句三分系統
R<c1,c2>為復句關系類別.R(<c1,c2>)∈{因果,并列,轉折},因果={因果|推斷|假設|條件|目的},并列={并列|連貫|遞進|選擇},轉折={轉折|讓步|假設}.本文采用復句三分系統作為類別標識標準.
使用的Shallow CNN 模型結構如圖1所示.首先,利用查詢詞表,提取詞對應的詞向量,將整個復句轉換成句子向量并將其作為卷積層的輸入[14];同時,將關系詞特征輸入到我們的模型中.經過卷積和maxpooling操作,不同窗口大小的濾波器獲取不同的特征映射,最后這些特征連接起來,作為全連接層和Softmax 層的輸入,輸出各個類別概率分布.

圖1 SCNN 的結構圖
一個關系詞在不同的語境下,對應的復句關系類別可能不同,關系詞與類別是一對多的關系.經過對大規模地語料統計,我們考察了關系詞在關系類別、詞性、搭配情況以及在搭配中處于前呼還是后應等屬性,統計了499 個準關系詞的上述特征屬性,構建關系詞庫.
圖2展示的是部分關系詞與復句關系類別的對應.根據關系表采用onehot 離散化每一個詞,得到每一個詞對應的關系向量,Rri∈Rl中(其中l是關系類別數),若用Xi∈Rk表示每個詞在預訓練詞向量中對應的向量,則每個詞對應的特征向量記為Yi:


圖2 關系詞——關系類別對應
一個長度為n的句子表示為:

其中,⊕是連接操作,用Yi:i+j代表特征Yi,Yi+1,···,Yi+j之間的拼接操作.
卷積操作是濾波器w∈Rnk,一個大小為h個單詞的窗口的濾波器產生新特征.例如,一個特征ci是由大小為Yi:i+h-1的窗口生成的.句子級的特征向量利用濾波器矩陣[W1,W2,···,Wn-h+1]進行卷積操作生成,這些句子級的向量被轉化為特征映射:

這里的下標[i+h-1]表示卷積窗口的始末下標.此外,在embedding 層和濾波器矩陣之間應用卷積操作,即利用不同窗口大小的卷積核作用于整個句子,以獲取不同的特征映射表示,得到復句的不同特征表示.接下來,在上一步得到的特征映射中使用max-pooling 操作[15],即=max(),這樣就得到了特征映射中最重要的特征

然后將得到的特征通過全連接層Softmax,輸出最終的概率分布.
在訓練過程中,我們有兩種類型的詞向量:一種是直接通過訓練數據訓練詞向量,另一種是結合關系詞特征得到的詞向量.
CNN 網絡訓練是基于梯度的Adadelta 優化器[16]和反向傳播算法[17].同時,我們結合了early stopping[18]和dropout[19]來防止過擬合.
交叉熵函數用來證明可以加速反向傳播算法,提供良好的網絡性能和相對較短的停滯期,尤其對分類任務[20].為了構建目標函數,應該考慮交叉熵損失函數和L2 正則化項.我們使用ReLU 作為模型的激活函數,可以產生與Sigmoid 函數接近的結果,而ReLU 不存在指數計算,求導計算量小,且收斂得更快,同時緩解了過擬合的情況.模型參數調節列表如表2所示.
漢語復句語料庫(the Corpus of Chinese Compound Sentence,CCCS),可訪問http://218.199.196.96:8080/jiansuo/TestFuju.jsp 獲取.語料庫是包含658 447 條的漢語有標復句專用語料庫.來源于《人民日報》、《長江日報》.我們從中選取了24 706 條二句式非充盈態有標復句,構成語料庫簡記為NCCST.NCCST 語料庫中,各關系類別的數據分布如表3所示,3 種關系類別的數據分布是不平衡的,這會影響模型的訓練效果,易造成過擬合,模型難收斂.本文采用過采樣技術[15]處理不平衡樣本數據.

表2 模型參數調節列表

表3 數據統計分布表
決策樹算法(C5.0)[13]:作為傳統機器學習模型的代表,在各種分類問題上取得不錯的效果.本次對比的對象中,Huang HH 等使用了詞性、句子長度和關系連接詞等特征,用C5.0 模型訓練.
Semantic_relevance 模型[12]:該模型是基于漢語復句語義相關度計算,主要考慮了詞語共現、關系詞搭配距離、詞間距等因素.根據計算結果判別復句語義關系類別.
我們進行了3 個實驗,第1 個是預訓練詞向量作為CNN 模型的輸入;第2 個實驗在CNN 中引入外部知識,加入了關系詞特征,得到融合模型FCNN;第3 個是對比實驗,與文獻[13]中,Huang HH 等用決策樹算法進行的漢語句子的關系分類進行對比.此外,我們也進行了是否使用停用詞表(停用詞表不包括所有的關系詞)的對比實驗,實驗結果表明其對結果影響很小,幾乎可以忽略不計.
表4的結果顯示,Shallow CNN 比文獻[12]和文獻[13]中的方法在正確率分別高出5.16%和1.96%,說明神經網絡利用詞向量能夠捕獲基本的詞法、語義相似度一些信息.Shallow CNN 通過卷積運算自動學習詞法方面的特征,將低級特征組合成高級特征,得到整個復句的語義表示;同時使用max 池化操作捕獲復句關系詞特征,對復句的關系類別識別起到顯著的作用.

表4 識別正確率的對比結果
為了保證實驗結果的公平,所有模型使用的是同一數據集.表5分別展示了C5.0、shallow CNN 和FCNN模型在Precision、Recall 和Macro-F1 不同的表現結果.

表5 不同評價指標的實驗結果比較(%)
結果表明,相比較于C5.0,Shallow CNN 和FCNN在Macro-F1 上高出16.84%以上,這表明我們的方法在復句關系分類方面要好于C5.0 算法.C5.0 算法是決策樹算法的一種,該算法需要人工構建特征,分析分句之間的語言學特征比如詞性、關系連接詞等,從而構建對應的特征矩陣.因此,特征的選取對C5.0 算法起到關鍵的作用,而特征的好壞依賴于語言學知識和規則的總結.本文提出的Shallow CNN 模型直接利用CNN 做特征提取,得到句子的特征表示.值得一提的是,FCNN 在Shallow CNN 的基礎上加了關系詞特征,它在召回率和Macro-F1 上比Shallow CNN 好,分別提高了2.36%和0.32%,這表明關系詞提供了一些有利于復句關系類別分類的信息.FCNN 模型融合關系詞與關系類別之間映射關系這一特征,首先CNN 利用embedding層獲取復句的語義特征表示,然后融合對關系類別識別起到關鍵作用的關系詞特征,進一步強化神經網絡自動學習該特征,從而更加高效地識別關系類別.
我們對標識結果進行統計分析,發現FCNN 模型不僅對于一個關系詞對應單種關系類別的識別效果好,并且對于像“也”這樣的關系詞,它對應多個關系類別(如圖2所示),FCNN 也要比Shallow CNN 的識別效果要好.對于文中的例句,FCNN 能夠識別出例3 是并列關系,例4 是轉折關系,例5 是因果關系.模型中融合了關系詞特征,從側面說明了關系詞特征對復句類別的識別起到了提示作用.
我們進一步分析使用預訓練詞向量初始化的影響.如圖3所示,相比較于使用(-1,1)的均勻分布初始化詞向量,而使用訓練語料初始化詞向量的Micro-F1 值大約提高了24%.

圖3 詞向量不同對模型的影響
依據上述分析,一方面,基于特征的方法會很大程度地依賴特征提取的質量,并且耗時耗力;另一方面,特征提取又需借助于NLP 解析工具,這也會帶來解析工具已經存在的傳播誤差,影響系統性能.因此,Shallow CNN 和融合特征的FCNN,減少對先驗的語言學知識和大量的手動提取的特征的依賴,總體上要優于傳統的機器學習的方法.
本文中,我們利用卷積神經網絡模型學習了兩個分句之間有效的關系表示,進一步訓練Shallow CNN分類器,更好地處理復句的兩個分句的語義關系,并且該模型對復句的關系分類是簡單高效的.當加入關系詞特征時,系統的效果得了提升,我們模型已遠遠優于僅依賴手動提取特征的模型.自動學習特征能得到很好的結果,可用于替代利用語言學知識和現有的NLP 工具設計的特征.
在接下來的工作中,我們將重點探索無標復句的關系類別識別.并在依存句法樹上構建神經網絡模型,融合更豐富的語法與結構特征[21].