張寶華,張華平,厲鐵帥,商建云
1.北京理工大學計算機學院,北京 100081;2.中央軍事委員會政法委員會,北京 100120
隨著智能電子設備的普及和網絡的發展,大量的社交媒體及電商平臺開始走入人們的生活,人們在日常使用過程中會產生海量的評論數據。合理利用觀點挖掘技術可以從這些數據中獲取巨大的價值,如對電商評論數據進行觀點挖掘,可以分析得出商品的優缺點,商家可以對其進行修改;對影評數據進行挖掘,可以看到當前電影的缺點和優點,方便用戶進行選擇,也方便出版方的宣傳工作;對新聞評論區等數據進行挖掘,可以掌握當前群眾的態度。情感分析作為觀點挖掘的主要技術之一,面臨著巨大的挑戰。
新詞頻出、長短不一、結構不定是網絡評論數據的主要特點。嚴重依賴情感詞典的傳統規則情感分析方法一方面由于情感詞典中缺少網絡新詞,無法得到新詞的正確情感權重,在計算時只能忽略這部分詞;另一方面又因為網絡文本的結構不定,使用現有的規則對網絡文本結構進行分析會出現一定的誤差,導致該方法對這類數據的分析效果很差。而基于深度學習的分析方法雖然在分析效果上較好,但也存在一些問題。首先,單一的神經網絡模型在處理文本數據時會因為模型本身存在的結構缺陷,造成部分情感特征的損失,從而導致分析準確率較低;其次,現有神經網絡模型需要將文本數據映射到向量空間,構建文本向量矩陣之后進行模型運算,但是在這個過程中丟失了在傳統方法中對句子情感有很大影響的結構信息;最后,現有的情感分析模型已經開始研究如何將規則方法中使用的一些特征加入深度學習方法中,但是其仍然以輸入全部文本數據為主,缺少對其他特征的提取。
雖然基于規則的方法的分析效果要弱于深度學習方法,但是基于規則的方法中的句法規則特征在深度學習方法中仍然具有很重要的作用。因此,需要構建一種新的模型,將這部分句法規則特征融入神經網絡模型。為了結合不同模型的優點,并將句法結構規則引入深度學習模型中,本文構建了基于多輸入模型及句法結構的神經網絡模型。該模型同時將文本向量、情感詞向量和語法規則向量輸入獨立的神經網絡模型中,并對模型提出的特征進行拼接,從而得到更加全面的文本特征。實驗證明,本文提出的神經網絡模型較其他模型的效果更好。
本文主要有以下貢獻:
● 本文提出了一種結合多通道卷積神經網絡(multi-channel convolutional neural network,MCNN)、長短期記憶(long short-term memory,LSTM)網絡和全連接神經網絡的合并模型MCNN_S_LSTM_NN,該模型可以結合單個模型的優勢,從文本評論中獲取更全面的情感特征,從而提高情感分析的準確率;
● 本文針對每部分模型的特點,設計了不同的模型輸入,可以從不同的角度對文本進行特征提取;
● 本文首先將句法結構、標點符號等在基于情感詞典的情感分析方法中會用到的分析規則應用到深度學習中。同時,本文構建了句法規則提取器,可以直接對文本規則進行提取,并映射到向量空間,作為深度學習模型的輸入。
深度學習方法最早由Collobert R等人[1]在2011年應用到自然語言處理領域,用于解決詞性標注等問題。2014年,Kim Y[2]首先在文本分類方面使用卷積神經網絡(convolutional nearal network,CNN),并且取得了很好的分類效果。之后Kalchbrenner N 等人[3]提出了一種寬卷積模型,并選擇用k-max池化代替傳統CNN的最大池化來保留更多的特征。Zhang Y L等人[4]通過多次重復實驗,比較了不同超參數對CNN模型結構在性能和穩定性方面的影響。Gao J等人[5]和She n Y L等人[6]介紹了如何將句子表示成包含語義的結構。Zha ng R等人[7]提出了可有效獲取句子依賴信息的CNN模型,通過處理預訓練的詞嵌入來構建分層的文本表示。CNN常被用于捕獲局部特征,而循環神經網絡(recurrent neural network,RNN)由于自身存在反饋環結構,可以保留記憶信息,在時間序列模型中得 到了很好的應用[8]。但是RNN自身存在一定的缺陷,當文本長度增加時,梯度消失和梯度爆炸情況的出現會導致分析效果不理想。LSTM和門控循環單元在傳統RNN的基礎上引入了門機制,較好地解決了RNN的問題。So cher R等人[9]通過構建Tree-LSTM獲取到更多的文本特征。Tran K等人[10]為了提升模型對歷史信息的處理能力,在LSTM的基礎上引入了外部記憶單元,但是由于增加了大量的參數,模型準確度提升不大。Chen P等人[11]使用具有注意力機制的雙向長短期記憶(bidirection long short term memory,BiLSTM)網絡獲得了較 好的分類效果。宋婷等人[12]建立了分層的LSTM模型,用于提取方面級的情 感。Wang Y Q等人[13]通過對LSTM建模、對上下文建模,結合文本隱藏狀態和方面級情感分析中的方面信息生成注意力向量,并建立了AE-LSTM和ATAE-LSTM神經網絡模型,最后得到方面級的情感分類模型。LSTM也存在缺點,其雖然能獲得文本的上下文語義信息,但是缺少對文本局部信息的獲取。
聯合多個簡單模型的神經網絡模型逐漸成為情感分析方法 的主流,Cheng Y等人[14]建立了典型的并行雙層網絡結構,輸入的數據會先經過注意力機制的計算,計算得到的結果分別被輸入多通道卷積神經網絡(mutil-channel CNN,MCNN)和雙向門控循環單元(bidirection gated recurrent unit,BiGRU),接著將兩個模型得到的特征合并,最后對特 征進行訓練。Yang L等人[15]使用串行結構將CNN和BiGRU進行組合,并在最后一層加入了注意力機制。Li W等人[16]使用并行結構將BiLSTM和CNN組合起來。不同的是,其提出了使用情感詞進行填充的方法,可以緩 解梯度消失問題。Li W J等人[17]雖然沒有使用CNN,但是并行了3個BiLSTM,將文本的輸入向量分別與詞性向量、位置向量和依存語法向量拼接,并分別作為3個模型的輸入;然后利用注意力機制將3個特征進行拼接。通過拼接這3個向量可以將句子的部分語法規則特征輸入模型中,從而提 高模型的準確率。Usama M等人[18]使用了串行的方法,將RNN和CNN合并起來,并在兩個模型中間加入了注意力機制。Basiri M E 等人[19]提出了新的既包含并行結構又包含串行結構的模型。該模型首先將BiLSTM和BiGRU進行并行處理,之后利用CNN進行卷積操作,提取局部特征并降低特征維度。可以看到,并行網絡由于可以綜合單一網絡模型的優點, 已經成為當前的分析主流。Jin N等人[20]提出了MLT-MSCNN-LSTM,該模型同樣將MCNN和LSTM網絡作為基礎模型。此外,該模型還提出了融合網絡(fusion net),用于合并MCNN不同卷積核的輸出。該模型首先訓練word-embedding矩陣,同時作為MCNN和LSTM兩個模型的輸入;然后分別用LSTM提取全局特征、用MCNN提取局部特征,再使用融合網絡合并;最后將兩個模型的輸出進行拼接得到句子的最終表示特征。在融合網絡中,Jin N等人[20]首先將3個經過最大值池化后的特征拼接,然后使用全連接神經網絡獲取特征,同時在全連接神經網絡中使用dropout機 制來提高模型的收斂速度。Li W J等人[17]提出了SAMF-BiLSTM模型,該模型在LSTM上加入了自注意義力(self-attention)機制和層正則化(layer normalization),該模型一共包含5層,且通過3個BiLSTM從不同方面提取文本的情感特征。該模型在詞向量層做了改進,在訓練好的詞向量上拼接了語音特征向量、位置值向量和依賴解析向量,并將拼接向 量作為模型的輸入。Basiri M E等人[21]提出 了ABCDM(attention-based bidirectional CNN-RNN deep model)。該模型主要采用注意力機制,首先將文本數據轉換為向量矩陣;然后通過BiLSTM和BiGRU兩個模型同時提取文本特征,提取完成后引入注意力機制;接著在最后一層加入卷積神經網絡進行卷積,提取相關的局部特征并降低特征維度;最后將輸出合并,得到最終的特征向量,利用全連 接神經網絡進行最后的預測。Usama M等人[22]提出了基于注意力機制的卷積神經網絡和循環神經網絡情感分析(ATTConv RNNrand)模型。該模型使用了雙通道的卷積神經網絡;然后對經過卷積神經網絡計算后的文本特征進行注意力計算,并將其輸入循環神經網絡中;最后利用 全連接神經網絡進行學習和訓練。Li W J等人[17]提出了情感詞填充的卷積神經網絡和長短期記憶網絡(CNN_BiLSTM_sentiment_padding)模型,創新性地使用情感詞填充代替數字0填充。在對句子長度較短的句子進行填充時,作者使用句子中情感詞權重絕對值的大小,確定句子中不同情感詞的填充個數,然后使用情感詞填充,這可以強調句子中的情感信息。作者構建了并行的BiLSTM和MCNN模型,分別使用兩個模型對句子特征進行提取,再將兩個模型得到的特征合并,在最后一層采用全連接神經網絡進行學習 和預測。
但是,上述模型中,只有Yang L等人[15]使用了部分的語法規則, 其他模型都忽略了對語法規則的輸入;而Cheng Y[14]等人的結論中提到,需要考慮將傳統方法中的句法結構特征融入深度學習模型中,這也是本文主要研究的內容。
如圖1所示,本文的模型主要包括MCNN、LSTM和全連接神經網絡。其中,MCNN的輸入為整個句子的詞向量矩陣,通過構建多通道CNN提取文本特征;LSTM的輸入為句子中的情感詞的詞向量矩陣。特征提取器主要提取句子中的句法結構信息,并將其映射到向量空間作為全連接神經網絡的輸入。將這3個網絡得到的特征進行融合,然后利用全連接神經網絡輸出句子的情感類別。

圖1 模型的整體架構
本文模型分為3個部分,MCNN、LSTM和全連接神經網絡。其中,MCNN的輸入為整個句子的詞向量矩陣。對于訓練集中的數據,首先使用word2vec算法計算其詞向量,然后通過MCNN來提取文本特征。LSTM的輸入為句子中包含的情感詞的詞向量矩陣,LSTM主要用來提取文本中的情感詞特征。最后一部分的神經網絡模型是全連接神經網絡,其輸入是特征提取器從文本中提取到的句法特征。特征提取器主要包含兩個功能:特征提取和特征映射。特征提取是指從文本中提取其包含的句子結構特征、句間關系特征和標點符號特征,詳細內容將在第3.1節中介紹。提取到特征之后,需要將這部分特征在特定規則下映射到向量空間,從而輸入神經網絡模型中。在這三部分特征全部提取結束后,進行拼接處理。最后利用全連接神經網絡對整體特征進行學習。
本文的模型是由3個基本神經網絡模型構成的。對于每個基本神經網絡模型,本文構建了不同的輸入。對于MCNN,根據CNN可以提取局部特征的能力,選擇將整個句 子的詞向量矩陣作為輸入。對于LSTM模型,之前的研究[23]證明了在LSTM模型中只使用情感詞代表句子的情感特征可以獲取比使用整個句子作為輸入更好的效果。因此,本文選擇使用句子中包含的情感詞作為輸入,在將句子輸入之前,先使用情感詞典構建方法對數據集構建情感詞典,然后提取句子中的情感詞,構建情感詞的詞向量矩陣并作為輸入。對于全連接神經網絡,本文設計的輸入是句子的句法規則特征。本文主要使用了如下3種規則:結構規則、句間關系規則、句型規則。
● 結構規則:根據句子中是否包含多個單句可以將句子分為復句和單句。復句是由多個單句構成的,復句的情感權重由單句的情感權重根據一定的規則累加得到,單句的情感權重就是本身的權重。因此,要先根據句內標點、關聯詞等將句子標定為為單句或復句,若是復句,則根據單句的個數將包含的單詞映射到向量空間。
● 句間關系規則:這里的句間關系規則主要有4種,轉折關系、遞進關系、因果關系和假設關系。在轉折關系中根據轉折詞的不同,可以將轉折句分為轉折前句和轉折后句,轉折前后句的情感極性相反,且強調后句的情感;在遞進關系中,前后遞進句的情感逐漸增強,且更強調后遞進句的情感;在因果關系中,更強調原因的情感;在假設關系中,更強調條件,對后假設句的情感有削弱。基于此,本文將每個單句中的關聯詞映射到向量中作為輸入。
● 句型規則:根據結尾標點符號的不同,主要分為陳述句、感嘆句和疑問句。其中,以句號結尾的為陳述句,句子情感值不變。以嘆號結尾的為感嘆句,句子的情感值增強。以問號結尾的為問句,根據是否有反義疑問詞,可分為反義疑問句和問句,問句表示無情感,而反義疑問句則強調句子的反向情感。因此根據結尾符號和是否包含反義疑問詞,可以將句型映射到向量空間中。具體步驟如下。
(1)初始化語法規則特征向量GV=[0]。
(2)根據標點符號和句子中是否有連接詞判斷是否為復句,若是,則將GV的第一位置為1,進行下一步;否則根據標點符號,將GV的對應位置置1。
(3)根據關聯詞和標點符號對句子進行切分,并根據切分出來的單句數量,在GV剩下的位置上置1。
(4)對切分的每個單句進行關聯詞匹配和標點符號匹配,并以12位的向量空間標記每條單句的處理結果。其中轉折前置詞、假設前置詞、因果前置詞和強調前置詞由前4位表示,后關聯詞由中間4位表示,標點符號類型由后4位表示,每個單句都會得到類似的12位標記,然后按順序組成GV。
(5)填充0,將GV補足到N位,其中N表示全連接層的輸入長度限制。
由此,針對不同基本模型的特點,構建了不同的輸入,并將語法規則特征映射到向量空間作為全連接神經網絡的輸入,通過全連接神經網絡將其補充到最終模型的特征中。
本文提出的基本模型主要有MCNN和LSTM。
3.2.1 卷積神經網絡層
MCNN的架構如圖2所示,其主要由卷積層、池化層和全連接層構成。卷積層用來提取輸入數據的特征;在卷積層進行特征提取后,輸出的特征圖會被傳遞到池化層進行特征選擇和信息過濾;全連接層等價于傳統前饋神經網絡的隱藏層,一般和輸出層連接,實現最后的輸出。

圖2 MCNN的架構
在本文的模型中,假設句子的最大長度為N,其中不足N的用0補齊;詞向量維度為d,則輸入句子可以用矩陣S∈Rn+d表示。假設卷積核W∈Rd×h,其中,d表示卷積核的長度,大小和詞向量的維度相同;h表示卷積核的寬度。本文選擇的卷積核大小分別為3×3、5×5、7×7。對于輸入S∈Rn+d,通過卷積操作可得特征向量O=(O0,O1,O2,…,On-h) ∈Rn-h+1, 則O中元素的計算式為Oi=W·Si,i+h-1,其中i= 1,2,3,…,n-h,符號“·”表示矩陣的點乘操作。Si,j表示矩陣S的第i行到第j行的子矩陣。在卷積神經網絡中,卷積完成之后一般進行池化操作,在池化層中使用最大池化操作,在每個過濾器中都可以取得最大值,可以提取到最顯著的特征。Zhang Y等人[4]的研究工作也表明,在各種句子分類任務中,最大池化操作在性能上始終優于其他池化策略。因此,這里選用1-max池化,其主要思想是通過選擇特定特征圖的最大值來捕獲與特定特征圖相對應的最重要特征。如圖2所示,經 過不同大小的卷積核以及同樣的池化操作后,提取出不同大小的特征,將這些特征進行合并,然后傳遞給以Sigmoid為激活函數的全連接層,就可以得到不同情感類別的概率。
3.2.2 長短期記憶網絡
LSTM的架構如圖3所示。RNN可以處理一定的短期依賴,但是由于序列較長時,序列后部的梯度很難反向傳播到前面的序列,因此無法處理長期依賴問題。而在LSTM中引入了細胞狀態,并使用輸入門、遺忘門和輸出門來保存和控制信息,可以解決RNN的缺點。

圖3 LSTM的架構
LSTM的某個狀態有以下步驟。
(1)當輸入門it接收到當前輸入xt和最后的最終隱藏狀態ht-1之后,it通過以下計算式進行計算:。其中 ,σ是一個邏輯S型函數,wix和wih分別代表兩個權重矩陣,bi是輸入門的偏差向量。
(2)若it的值為1,則表示當前輸入的信息可以進入細胞狀態;若值為0,則表示當前輸入的信息不可以進入細胞狀態。然后計算候選值,其中wcx和wch分別代表兩個權重矩陣,bc是偏差向量。(3)之后遺忘門ft將執行操作。ft的值為0表示不傳遞信息ct-1給ct,ft的值為1表示將全部信息傳遞給ct。其中wfx和wfh分別代表兩個權重矩陣,bf是遺忘門的偏差向量。
(4)計算完成后的細胞狀態為ct=ftct-1+itct。
最終隱藏狀態的輸出與前一個序列的隱藏狀態、當前輸入和當前單元狀態值有關,用一個激活函數tanh將當前單元狀態的值壓縮到-1~1。將先前隱藏狀態與當前輸入通過sigmoid函數轉換后的值與當前單元狀態經過壓縮后的值進行相乘,保留或舍棄先前的狀態信息與此時的輸入信息,從而得到一個新的隱藏狀態值。
在基本模型都提取到文本的情感特征之后,將3個模型得到的特征進行合并,這可以取長補短,綜合不同模型的特點,同時可以將文本的句法規則特征加入文本的最終特征中,實現句法規則特征與深度學習模型的融合。最后通過全連接神經網絡對最終的文本情感特征進行分類。
本文在Linux環境下使用Python2.7和Keras完成了模型的編寫,并在8塊型號為1080Ti的GPU上進行了訓練。從第3節可以看出,本文的3個模型的輸入各不相同。其中 LSTM的輸入為情感詞,因此需要先利用情感詞典構建方法[18]構建情感詞典,也可以采用公開的情感詞典,但是效果不如針對數據單獨提取的詞典。
本文的數據集主要使用譚松波酒店評論數據(Hotel)、NLPCC2014情感分析task2以及筆者從豆瓣上采集的影評數據(Douban),將好評認為正面情感,差評認為負面情感。對3個語料庫的統計結果見表1。

表1 對3個語料庫的統計結果
為了驗證本文模型對最終結果的貢獻,本文設計了消融實驗,實驗結果見表2。
其中,MCNN_S_LSTM_NN是本文提出的多輸入模型,MCNN表示多通道卷積神經網絡,S_LSTM表示以LSTM模型為基礎且輸入為句子中包含的情感詞的詞向量矩陣,LSTM表示以LSTM模型為基礎且輸入為整個句子的向量矩陣,NN表示以全連接神經網絡為基礎且輸入為通過句法規則特征提取器提取的句法規則向量。從表2可以看到,帶有NN的模型要比不帶NN的模型的準確率高,說明句法結構特征的引入豐富了情感特征,從而提高了情感分析的準確率。S_LSTM和LSTM的對比則說明句子中的情感詞對句子的情感有很極大的影響。

表2 消融實驗的準確率
本文主要選取CNN、LSTM、SLCABG[14]、ATTConv RNN-rand[17]、ABCDM[18]、SAMF-BILSTM[15]、CNNBiLSTM(sentiment word padding)[16]、MC-AttCNN-AttBiGRU[13]作為對比模型,將精確率(P)、召回率(R)、F1值和準確率(ACC)作為評測指標,其實驗結果見表3。
從表3可以看到,本文構建的模型MCNN_S_LSTM_NN在3個數據集上的準確率均最高,這證明了本文構建的模型的可行性和先進性。另外,從表3還可以看到,組合模型的準確率相較于簡單模型要更高,這說明復合模型可以綜合簡單模型的優點,可以提取到更全面的文本特征。在模型中使用注意力機制的方法(如MC-AttCNN-AttBiGRU、ABCDM、ATTConv-RNN rand)的準確率也比較高,這也許是本文可以繼續學習和研究的一個方向。

表3 對比實驗的實驗結果
本文構建了基于多輸入模型及句法結構的中文評論情感分析方法,通過研究基于情感詞典的情感分析方法,將情感分析中對句子情感會產生重要影響的句法規則特征融入深度學習模型中,豐富了模型獲取到的文本情感特征,提高了模型的準確率。同時,本文還提出了句法規則特征抽取方法,可以在文本輸入時將特征提取出來,構建成向量矩陣并作為模型的一個輸入。從消融實驗的結果可以看出,句法規則特征的引入可以提高深度學習模型的分析準確率,對比實驗則說明單個模型的效果要弱于組合模型,且目前組合模型的情感分析方法已成為當前的研究主流。從3個數據集上的實驗結果來看,本文構建的模型可以提取到更多的特征,且情感分析的準確率更高,證明了本方法的有效性。
這是第一次將句法規則特征通過特征提取器提取特征的方式引入深度學習模型中,為之后情感分析方法的研究提供了新的研究思路。當然,本文模型也有一些不足之處,如句法規則的引入過于簡單、現有的規則特征提取方法可能會造成一些信息的損失,仍然需要進一步研究解決。