徐 秀,劉德喜
(江西財經(jīng)大學(xué) 信息管理學(xué)院,江西 南昌 330013)
文本情緒分析是自然語言處理領(lǐng)域的重要研究方向之一,它主要研究文本所蘊含的情緒及與情緒相關(guān)的深層信息。文本情緒分析的研究大多集中在情緒類別和情緒對象識別等方面,在實際應(yīng)用中,若忽略更加深入和豐富的情緒信息,將影響分析的效果。挖掘文本中造成情緒的原因,可以為輿情監(jiān)控、經(jīng)濟預(yù)測、公眾意見挖掘、產(chǎn)品設(shè)計等應(yīng)用提供可用信息,還可以幫助有關(guān)部門及時且有針對性地介入控制,有利于重大政策的決策。文本情緒原因識別(emotion cause detection,ECD)旨在發(fā)現(xiàn)文本中某一情緒表達背后的潛在原因。
傳統(tǒng)基于規(guī)則的方法[1-4]耗費人工且規(guī)則構(gòu)建復(fù)雜,而基于統(tǒng)計與機器學(xué)習(xí)的方法[5-10]在特征抽取上存在主觀性過強的問題。近年來,深度學(xué)習(xí)方法[11-25]在文本情緒原因識別任務(wù)上取得了較好的效果,但現(xiàn)有工作中仍存在一些不足。例如,Li等人[13]提出了一種基于協(xié)同注意力神經(jīng)網(wǎng)絡(luò)的情緒原因識別方法(Co-Attention Neural Network,CANN),借助協(xié)同注意力機制來捕獲每個候選原因子句和情緒子句之間的交互關(guān)系,但忽略了文本中候選原因子句的上下文語義信息??紤]子句的相對位置信息,Xia等人[16]將相對位置嵌入向量連接到子句的表示中,這種方法對相對位置信息的利用較弱,對候選原因子句的分類影響較小,且增加了特征維數(shù),可能會導(dǎo)致過擬合。
為了解決語義和相對位置信息利用不充分的問題,本文在CANN方法的基礎(chǔ)上提出一種基于上下文和位置交互的協(xié)同注意力神經(jīng)網(wǎng)絡(luò)模型(CPC-ANN),該模型先將相對位置信息編碼到子句的每個詞向量中,利用雙向長短時記憶網(wǎng)絡(luò)(Bi-Directional Long Short-Term Memory,Bi-LSTM)、Transformer網(wǎng)絡(luò)來捕捉子句的語義信息,以幫助產(chǎn)生更好的子句表示。然后,引入上下文子句信息,采用注意力機制捕獲候選原因子句和情緒子句之間的語義關(guān)系。最后,利用卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)對候選原因子句進行分類(識別)。
本文的主要貢獻包括:
(1) 提出了一種新的CPC-ANN模型,該模型通過Bi-LSTM和Transformer來提取更深層次的子句語義信息。
(2) 將子句的相對位置信息通過相加的方式編碼到詞向量中,以增強子句相對位置信息的影響。
(3) 在候選原因子句中融合其上下文子句,以提供更多的語義信息。
(4) 在一個公共基準情緒原因數(shù)據(jù)集上驗證了CPC-ANN模型的效果。本文還通過消融實驗,證實了不同模塊的有效性。
本文的組織結(jié)構(gòu)如下: 引言部分介紹研究背景;第1節(jié)總結(jié)相關(guān)研究現(xiàn)狀;第2節(jié)介紹CPC-ANN模型及其各層的搭建與作用;第3節(jié)介紹實驗結(jié)果和案例;最后,對全文進行總結(jié)并提出下一步的工作。
文本情緒原因分析是從情緒出發(fā),探索產(chǎn)生情緒背后的原因,屬于情緒的深層次分析。在早期,很多學(xué)者采用基于規(guī)則的方法來研究文本情緒原因識別問題。Lee等人[1]首次給出了情緒原因識別的正式定義,并構(gòu)建了基于人工標(biāo)注方案的中文情緒原因注釋語料庫,同時歸納了提取情緒原因的語言學(xué)線索詞?;谠撜Z料庫,Lee等人[2]設(shè)計了基于語言學(xué)線索構(gòu)建的兩套特征,利用系統(tǒng)自動提取特征和手動提取特征相結(jié)合的方式來檢測情緒原因。此外,許多學(xué)者將基于規(guī)則的方法擴展到微博等非正式文本。Li等人[3]提出了一種識別微博情緒原因的方法,通過引入社會學(xué)等其他領(lǐng)域的知識和理論來抽取情緒原因。Gao等人[4]以情緒認知模型為基礎(chǔ)提出了一個基于規(guī)則的情緒原因認知模型,從事件的主體、客體和動因來識別微博文本中情緒的原因。
為了解決人工耗費大的問題,一些學(xué)者使用基于統(tǒng)計與機器學(xué)習(xí)的方法。Russo等人[5]采用聚類的方法,通過基于相關(guān)語言模式和常識庫來識別情緒原因,并在其標(biāo)注的意大利語語料庫上進行實驗。Xu等人[6]提出了一種基于學(xué)習(xí)排序的情緒原因識別方法,通過提取大量情緒依賴特征和情緒獨立特征,對候選原因子句排序。一些學(xué)者將情緒原因識別看作分類任務(wù),即判別文本中的每一個子句是否是情緒原因。Chen等人[7]將文本情緒原因識別視為一個多標(biāo)簽分類問題,基于最大熵分類構(gòu)建多標(biāo)簽情緒原因識別模型,該模型不僅可以識別多個情緒原因,還可以捕獲遠距離句子信息。Gui等人[8]則提出了一種基于多核支持向量機(support vector machines,SVM)分類模型,借助樹結(jié)構(gòu)表示事件,來確定事件是否表達了情緒原因。
雖然分類模型的構(gòu)建相對容易,并且取得了較好的識別效果,但是其難以捕捉文本中子句之間的關(guān)系。為解決此問題,一些學(xué)者將情緒原因識別問題看作序列標(biāo)注問題。其中,李逸薇等人[9]利用條件隨機場(Conditional Random Field,CRF)來識別情緒原因,不僅能很好地融合多種統(tǒng)計特征,還能夠充分考慮文本上下文之間的特征信息。Ghazi等人[10]則利用CRF來預(yù)測子句級別的情緒原因,并通過FrameNet構(gòu)建了包含情緒和情緒原因的英文數(shù)據(jù)集。
受到深度學(xué)習(xí)方法的啟發(fā),神經(jīng)網(wǎng)絡(luò)模型和注意力機制在情緒原因識別任務(wù)中得到了廣泛的應(yīng)用。慕永利等人[11]采用集成的CNN模型,來判別一個子句是否包含情緒原因信息??紤]子句與情緒詞的關(guān)系,Gui等人[12]采用深度記憶網(wǎng)絡(luò)的方法,將情緒原因提取作為一項問答任務(wù),來識別文本情緒原因。Li等人[13]提出了協(xié)同注意力神經(jīng)網(wǎng)絡(luò),通過注意力機制捕捉子句與情緒詞的關(guān)系,并進一步利用CNN來進行情緒原因識別。考慮到情緒詞周圍的語境可以提供重要線索,Li等人[14]提出了一種基于多注意力神經(jīng)網(wǎng)絡(luò)的方法,該方法結(jié)合情緒詞與情緒語境,以及情緒子句與候選原因子句之間的相互作用,來進行情緒原因的提取。
以上工作[11-14]大多將情緒原因識別任務(wù)視為對多個子句獨立的分類任務(wù),這導(dǎo)致一篇文本中被識別為情緒原因的子句可能不存在或者存在多個。為解決此問題,Ding等人[15]提出了一個基于神經(jīng)網(wǎng)絡(luò)架構(gòu)的模型,將情緒原因識別任務(wù)從一個獨立預(yù)測問題轉(zhuǎn)化為包含動態(tài)全局標(biāo)簽信息的排序預(yù)測問題。Xia等人[16]提出了一個基于循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Networks,RNN)和Transformer的層次結(jié)構(gòu)網(wǎng)絡(luò),通過建模文本中多個子句之間的關(guān)系,并結(jié)合編碼相對位置和全局預(yù)測信息,在一個聯(lián)合框架中對多個子句進行同步分類。巫繼鵬等人[17]提出了一種結(jié)合規(guī)則蒸餾和層級注意力網(wǎng)絡(luò)的方法,采用殘差結(jié)構(gòu)的層級注意力網(wǎng)絡(luò)和基于對抗學(xué)習(xí)的知識蒸餾框架,實現(xiàn)結(jié)合深度神經(jīng)網(wǎng)絡(luò)和語言學(xué)規(guī)則的情感原因發(fā)現(xiàn)。
除此之外,文本的語篇結(jié)構(gòu)信息、文本中多個子句之間的語義關(guān)系也能為情緒原因識別提供重要線索。Yu等人[18]提出了一種基于多級層次網(wǎng)絡(luò)的子句選擇方法,將詞的位置、不同層次的語義信息以及多個子句之間的語義關(guān)系都考慮在內(nèi),進行情緒原因的提取。Fan等人[19]結(jié)合文本語篇結(jié)構(gòu)信息、先驗知識(情緒詞、相對位置信息等)的規(guī)則,提出了一個正則化的層次神經(jīng)網(wǎng)絡(luò),來進行情緒原因分析。Liang等人[20]在Bi-LSTM-CRF模型上,通過兩種注意力機制來編碼情緒表達與候選子句、相對位置與候選子句之間的相互影響。Diao等人[21-22]提出了一種多粒度雙向注意流網(wǎng)絡(luò),利用雙向注意流機制獲得情感詞與上下文之間的潛在語義信息,以提高情緒原因識別的性能。此外,他們還提出了一種基于增強表示的注意力卷積上下文網(wǎng)絡(luò),通過增強表征和注意力機制來提取深層情緒語義信息,同時引入層次上下文信息,從而更好地識別情緒原因。Hu等人[23]提出一種基于子句間依存關(guān)系的圖卷積網(wǎng)絡(luò),通過構(gòu)造一個在子句級別編碼依賴的圖,來融合語義和結(jié)構(gòu)信息,有效地進行情緒原因分析。
為了增強原因和情緒之間的隱含聯(lián)系,Xia等人[24]將情緒原因提取任務(wù)擴展為情緒-原因?qū)μ崛∪蝿?wù),即通過情緒子句和原因子句的相互學(xué)習(xí),提取出文本中的情緒-原因?qū)?。Ding等人[25-26]則提出了一個2D一體化方法,將文本中的所有子句都看作情緒子句和原因子句來進行兩兩組合配對,以提高情緒原因識別性能。
文本情緒原因識別的主要目的是從一段包含情緒的文本中識別情緒產(chǎn)生的原因信息,示例如表1所示。
一般地,待識別的文本中只標(biāo)注一個情緒子句和至少一個與之對應(yīng)的情緒原因子句。文本情緒原因識別任務(wù)即: 給定文本中的情緒子句C0,從C-3到C+2六個子句中識別出情緒原因子句C-1。
基于上下文和位置交互協(xié)同注意力神經(jīng)網(wǎng)絡(luò)模型(CPC-ANN)如圖1所示。CPC-ANN模型主要分為五層: 相對位置嵌入層、Bi-LSTM層、Transformer層、注意力層以及CNN輸出層。下面分別對模型的五個模塊進行介紹。
在CPC-ANN模型中,相對位置被定義為當(dāng)前子句和情緒子句之間的相對距離。例如,情緒子句左邊最近子句的相對位置是-1,情緒子句右邊最近子句的相對位置是+1,等等。
給定一個包含情緒和情緒原因的文本D={c1,c2,…,ck}, 該文本由k個子句組成,假設(shè)文本中包含唯一一個情緒子句ce和至少一個對應(yīng)的情緒原因子句ca,子句ci={w1,w2,…,wn}由n個詞組成。對于子句ci,1≤i≤k, 首 先通 過Word2Vec將每個單詞wt,1≤t≤n, 映射到一個d維向量ut∈Rd, 并計算出子句ci相對于情緒子句ce的相對位置pi。
為了增強相對位置信息的作用,將子句的相對位置信息通過相加的方式嵌入到子句的每個詞向量中,其計算方法如式(1)所示。
因此,子句ci可以表示為一個特征映射Xi={x1,x2,…,xn}。 特別地,將情緒子句ce和情緒候選原因子句ca的特征映射分別記為Xe={x1e,x2e,…,xne}和Xa={x1a,x2a,…,xna}。
對訓(xùn)練語料中的原始輸入序列長度進行統(tǒng)計,將所有輸入序列用占位符補充至最大長度,將統(tǒng)一了長度的輸入序列輸入到模型中。
CPC-ANN模型用Bi-LSTM編碼子句中詞的上下文信息。將子句ci的向量表示Xi輸入到Bi-LSTM中獲得兩個方向的隱藏層輸出信息,如式(2)、式(3)所示。
其中,xt為子句Xi的第t個詞wt的嵌入向量,通過Bi-LSTM得到該詞的隱變量表示如式(4)所示。
最后,將子句ci中所有詞的隱變量表示拼接起來,得到ci的上下文嵌入矩陣Hi∈Rn×2h, 其中,h為隱藏單元數(shù)。特別地,情緒子句Xe和候選原因子句Xa通過Bi-LSTM編碼表示記為He和Ha。
為挖掘子句內(nèi)詞語之間的關(guān)系,獲得更深層的文本語義信息,CPC-ANN模型采用Transformer對子句進行編碼。Transformer主要包括多頭自注意力機制和前饋神經(jīng)網(wǎng)絡(luò)。
多頭自注意力機制的目的是得出句子中其余部分對所關(guān)注部分的影響,其計算過程可以表示為將查詢Q、關(guān)鍵字K和值V映射到輸出上,表示如式(5)~式(7)所示。
其中,WQ、WK和WV分別是查詢、關(guān)鍵字和值的可學(xué)習(xí)權(quán)值矩陣。
然后,計算出子句的注意力表示Zi,如式(8)、式(9)所示。
在注意力子層之后是一個前饋神經(jīng)網(wǎng)絡(luò)子層,其計算如式(11)所示。
多頭自注意力層和前饋神經(jīng)網(wǎng)絡(luò)層都使用殘差連接,然后在輸出處使用歸一化。
最后,得到子句向量Hi的輸出向量oi。特別地,情緒子句表示為oe,候選原因子句表示為oa。
CPC-ANN模型借助注意力機制捕獲情緒子句與候選原因子句之間的語義關(guān)系,為子句的詞序列語義特征分配不同的權(quán)重。
首先,將上下文語義信息融入到候選原因子句中,如式(13)所示。
其中,of、ob是候選原因子句上下文子句的向量表示。
如果候選原因子句的上下文子句為空,即當(dāng)前候選原因子句為文本的第一個子句或最后一個子句,則只融入其下文子句或上文子句,如式(14)所示。
其次,構(gòu)造注意力矩陣A∈Rn×n來測量候選原因子句和情緒子句之間的語義關(guān)系,其計算如式(15)所示。
其中,score為余弦距離,Ai,j表示候選原因子句o的第i個詞向量oi與情緒子句oe的第j個詞向量oje之間的語義關(guān)系強度。
然后,將注意力矩陣用于子句的原始向量表示,獲得兩個子句的最后的輸出,如式(16)、式(17)所示。
CPC-ANN模型利用CNN從子句中獲取局部上下文特征,經(jīng)過多次卷積運算,將這些局部特征形成一個全局特征向量。將兩個子句序列化輸出Ca和Ce送入CNN層,應(yīng)用三個長度分別為2、3、4的卷積濾波器和最大池化操作, 以選 擇信息最豐富的特性。將3個卷積操作得到的輸出結(jié)果進行拼接,其候選原因子句Ca的計算如式(18)~式(20)所示。
其中,cnn2,3,4為卷積操作,poolmax為最大池化操作,WC為全連接層的權(quán)重。
同理,情緒子句最后通過CNN層生成特征向量Oe,將它們連接起來通過一層全連接層并送入softmax層來進行分類。最后,模型的訓(xùn)練過程采用反向傳播方法進行參數(shù)調(diào)整,損失函數(shù)采用交叉熵損失函數(shù),計算方法如式(21)、式(22)所示。
CPC-ANN模型是在Gui等人[8]標(biāo)注的中文情緒原因數(shù)據(jù)集上進行的實驗,數(shù)據(jù)集的統(tǒng)計信息如表2所示。
表2 中文情緒原因語料庫的統(tǒng)計信息
模型的參數(shù)設(shè)置: 詞向量的維度d設(shè)為30,文本子句最大字數(shù)n為42。實驗過程中,隨機將數(shù)據(jù)集的90%作為訓(xùn)練集,10%作為測試集,重復(fù)實驗15次,求取各個衡量指標(biāo)的平均值。模型超參數(shù)設(shè)置如表3所示。
實驗評估使用精確率P(Precision)、召回率R(Recall)以及F1值。其計算如式(23)~式(25)所示。
表3 模型超參數(shù)設(shè)置
其中,Ccauses是模型預(yù)測的正例與真實正例重疊部分的數(shù)量,Pcauses是模型預(yù)測為正例的數(shù)量,Acauses為樣本中真實正例的數(shù)量。
為了驗證CPC-ANN模型的有效性,將CPC-ANN模型與以下幾組方法進行比較:
(1) 基于規(guī)則和常識的方法:
① 基于規(guī)則的方法(RB)[1]。
② 基于常識的方法(CB)[5]。
(2) 基于機器學(xué)習(xí)方法:
③ Multi-kernel[8]。
(3) 基于深度神經(jīng)網(wǎng)絡(luò)的方法:
④ ConvMS-Memnet[12]: 卷積多插槽深度記憶網(wǎng)絡(luò)模型。
⑤ CANN[13]: 協(xié)同注意力神經(jīng)網(wǎng)絡(luò)模型。
⑥ HCS[18]: 多層次神經(jīng)網(wǎng)絡(luò)模型。
⑦ RTHN[16]: 基于RNN和Transformer的層次神經(jīng)網(wǎng)絡(luò)模型。
⑧ MANN[14]: 基于多注意力的神經(jīng)網(wǎng)絡(luò)模型。
⑨ RHNN[19]: 基于知識正則化方法的層次神經(jīng)網(wǎng)絡(luò)模型,該方法為當(dāng)前已知最佳性能方法。
⑩ CPC-ANN: 本文提出的基于上下文及位置交互的協(xié)同注意力模型。
各模型的實驗結(jié)果如表4所示。
表4 CPC-ANN模型實驗結(jié)果
由表4可以看出,總體上,CPC-ANN模型在各個評測指標(biāo)上都顯著優(yōu)于其他模型,P、R和F1值分別為0.845 5、0.796 2和0.820 1,其中,F(xiàn)1值比目前最先進的方法RHNN提升了2.87%。
在基于規(guī)則和常識的方法中,RB精確率較高,而CB的召回率較高。主要原因是該類方法主要依賴于規(guī)則和線索詞來識別情緒原因,規(guī)則準確但覆蓋受限,常識詞典有更高的覆蓋但過濾不夠精準,而RB+CB則利用了二者的互補關(guān)系。
在基于機器學(xué)習(xí)方法中,Multi-kernel通過句法結(jié)構(gòu)來表示引起情緒的事件,提升了模型的性能。然而該方法依賴于昂貴的人工成本,缺乏對不同數(shù)據(jù)集的可擴展性。
在基于深度神經(jīng)網(wǎng)絡(luò)方法中,CANN和HCS在數(shù)據(jù)集上的性能相近,均比ConvMS-Memne的F1值提升了3.1%,其中CANN能夠捕捉情緒子句與每個候選原因子句之間的相互關(guān)系,HCS則通過學(xué)習(xí)不同層次的語義信息以及多個子句之間的語義關(guān)系,來進行情緒原因的提取。RTHN比HCS在F1值上提升了4.08%,說明考慮子句的相對位置信息以及全局標(biāo)簽信息有利于情緒原因的識別。MANN模型比CANN在F1值上提升了4.40%,說明多注意力機制的有效性。而RHNN在數(shù)據(jù)集上有更好的表現(xiàn),是因為其可以捕捉到更多的情緒線索。
本文所提出的CPC-ANN模型進一步提高情緒原因識別的性能。具體來說,與MANN相比,CPC-ANN在F1值上提升了4.95%,這表明Transformer在提取子句語義特征上具有優(yōu)越性,子句的相對位置信息對情緒原因識別有輔助作用。與RHNN相比,CPC-ANN在F1值上提升了2.87%,原因是CPC-ANN融合了候選原因子句的上下文語義信息,可以使注意力機制在捕捉每個候選原因子句和情緒子句之間的語義關(guān)系時獲得更多的語義信息。
為了驗證CPC-ANN模型各個模塊的作用,本節(jié)對其進行消融實驗。以CPC-ANN模型為基準,在模型參數(shù)不變的前提下,分別減少相對位置嵌入層中子句的相對位置信息(Relative Position,-RP)、注意力層中的原因子句上下文語義信息(Contextual Information,-CI)以及Transformer層(-TR)。其實驗結(jié)果如表5所示。
表5 消融實驗結(jié)果
從表5可以看出,去掉相應(yīng)模塊后,CPC-ANN模型的效果都有不同程度的下降,從而驗證了各個模塊的有效性。實驗結(jié)果顯示,子句的相對位置信息(-RP)對模型的影響最大,去掉RP后,CPC-ANN的F1值下降了6%。
除相對位置信息外,去掉候選原因子句的上下文語義信息(-CI),模型的F1值下降了1.74%,這表明上下文信息是理解情緒原因的重要輔助線索。最后Transformer層對模型的性能有一定的影響,這表明相對使用Bi-LSTM提取語義,Transformer在提取文本語義信息上有優(yōu)越性。
Gui等人[8]標(biāo)注的中文情緒原因數(shù)據(jù)集中,情緒原因相對位置嚴重不平衡,如表6所示。對數(shù)據(jù)的統(tǒng)計顯示,相對位置為“0”或“-1”的原因子句很普遍,占比高達78%。這種位置不平衡可能是導(dǎo)致深度神經(jīng)網(wǎng)絡(luò)模型表現(xiàn)出高性能的重要原因[26],或者說,模型的優(yōu)異表現(xiàn)可能并不是建立在對語義充分理解的基礎(chǔ)上,而是充分利用了位置信息。
表6 原因子句相對位置分布情況 (單位:%)
為了驗證CPC-ANN模型在學(xué)習(xí)深層語義信息方面的能力,本文構(gòu)建一個具有平衡位置分布的數(shù)據(jù)集。該數(shù)據(jù)集通過隨機選擇子句位置為“-1”“0”“-2”的子句,將其比例降低到與相對位置為“1”的子句對等的比例,同時保持其他相對位置的子句數(shù)量不變,從而構(gòu)建一個新的具有792個實例的相對位置平衡數(shù)據(jù)集,其位置分布如表6所示。各模型在位置平衡數(shù)據(jù)集上的識別結(jié)果如表7所示。
表7 位置平衡數(shù)據(jù)集上情緒原因識別結(jié)果
由表7可以看出,在使用了位置平衡數(shù)據(jù)集后,CPC-ANN模型的F1值從0.820 1下降到0.694 8,F(xiàn)1值下降比例為15.27%,小于CANN在F1值上的下降比例,表明CPC-ANN能夠獲得更多的語義信息來識別情緒原因。RTHN模型與位置信息相關(guān)性更強,其性能受位置偏差影響最大,下降比例達到24.37%。RHNN由于引入了基于位置和情緒的知識正則化約束項,當(dāng)位置不再起重要作用時,模型傾向于將更高的概率分配給那些與情感詞有關(guān)的子句,增強了學(xué)習(xí)特征與預(yù)測之間的因果聯(lián)系,因此在位置平衡數(shù)據(jù)上的F1值下降比例最小。與RHNN相比,CPC-ANN下降比例高于RHNN,但總體上的F1值仍優(yōu)于RHNN,說明在語義信息的利用上,CPC-ANN也較RHNN更有優(yōu)勢。
本節(jié)通過一些案例,來分析CPC-ANN模型的優(yōu)勢與不足。
3.6.1 正確示例分析
CPC-ANN模型是對CANN模型的改進。除此之外,RHNN模型是當(dāng)前已知性能最佳的模型。因此本節(jié)通過案例對比這三種模型。
(1)各模型對示例1的識別結(jié)果。如表8所示,CANN模型識別錯誤,而RHNN模型和CPC-ANN模型識別正確。其中,CPC-ANN模型融入了候選原因子句相對情緒子句的位置信息,RHNN模型則引入了基于位置的知識正則化約束項。這個示例證明了子句的相對位置信息能為情緒原因識別提供有效線索。
表8 各模型對示例1的識別結(jié)果
(2)各模型對示例2的識別結(jié)果。如表9所示,CANN模型和RHNN都識別錯誤,而CPC-ANN模型識別正確。其中,CPC-ANN模型采用了Bi-LSTM以及Transformer來提取子句特征,同時融入了候選原因子句的上下文信息,使模型能更好地學(xué)習(xí)子句的深層語義信息來識別情緒原因。
表9 各模型對示例2的識別結(jié)果
3.6.2 錯誤示例分析
CPC-ANN模型雖然取得了不錯的實驗效果,但有些情緒原因子句并不能很好地被識別。其錯誤的主要原因如下:
(1) 真實的情緒原因子句太短,使得可利用的語義信息太少,不能很好地建模候選原因子句與情緒子句之間的關(guān)系。如表10所示,示例3中,CPC-ANN模型對“-1”子句語義建模效果不好,導(dǎo)致CPC-ANN模型識別錯誤。
表10 CPC-ANN模型對示例3的識別結(jié)果
續(xù)表
(2) 在模型訓(xùn)練的過程中,位置信息被過多地融入模型中,使得模型對距離情緒子句較遠的情緒原因子句有較低的識別敏感度。如表11所示,示例4中,“-5”位置子句相對于情緒子句“0”距離較遠,導(dǎo)致CPC-ANN模型識別錯誤。
表11 CPC-ANN模型對示例4的識別結(jié)果
本文提出上下文及位置交互的協(xié)同注意力模型CPC-ANN,利用Transformer得到深層語義的子句表示,增強子句的相對位置信息,引入候選原因子句上下文信息,使得模型對于文本情緒原因特征的學(xué)習(xí)更加深入,大幅提高了情緒原因識別的準確性。實驗結(jié)果表明,本文方法在公開的數(shù)據(jù)集上達到了最先進的性能,案例分析也證實了充分利用子句相對位置信息和上下文信息的有效性。
在未來的研究中,可以從以下幾個方面對模型進行改進。首先,可以擴充中文情緒原因的數(shù)據(jù)集,解決標(biāo)注語料庫情緒原因的位置分布不平衡的問題。其次,可以考慮文本的語義結(jié)構(gòu)關(guān)系,探索如何將篇章信息融入文本情緒原因識別任務(wù)中,以進一步提高情緒原因識別的性能。