程 艷 堯磊波 張光河 唐天偉 項國雄 陳豪邁 馮 悅 蔡 壯
1(江西師范大學計算機信息工程學院 南昌 330022)
2(江西師范大學管理決策評價研究中心 南昌 330022)
3(江西師范大學新聞與傳播學院 南昌 330022)
4(豫章師范學院數學與計算機學院 南昌 330022)
情感分析,也稱為觀點挖掘,是指人們對服務、產品、組織、個人、問題、事件、話題及其屬性的情感、觀點、評價、態度和情緒[1].在自然語言處理領域,情感傾向性分析是一項基礎性任務,近年來已經吸引了國內外學者的廣泛關注.隨著互聯網和移動網絡的快速發展,用戶在網上發表的觀點和評論也越來越多,從這些內容中挖掘出重要的情感信息也值得探索.情感分析主要分為主客觀情感識別和情感分類這2類,主客觀情感識別是將給定文本分成主觀性或客觀性文本,情感分類則是把主觀性文本分類為正面、負面或者中性[2].情感分析方法主要有基于機器學習和基于情感詞典的這2類方法,隨著神經網絡研究的再次復蘇,基于深度學習的方法被廣泛應用到文本情感分析任務中.基于情感詞典的方法最先被用于情感分析領域,它首先需要構建一個情感詞典,然后對情感詞典進行手工極性和強度標注,最后實現對文本的情感分類.這種方法雖然能夠對文本進行情感分類,但是分類的效率并不高,因為它需要人工構建情感詞典并進行手工標注.20世紀90年代,機器學習方法開始在文本情感分析中嶄露頭角[3-4].機器學習方法模型的函數雖然簡單,但通常需要復雜的特征工程,而特征的好壞能夠直接影響后面的分類效果,此外,機器學習方法的泛化能力比較低.近年來興起的深度學習方法很好地彌補了基于機器學習和基于情感詞典2種方法的缺陷,并被成功地應用于自然語言處理任務中,尤其是被應用在情感分析任務中,如卷積神經網絡[5-7](convolution neural network, CNN)、長短期記憶(long-short term memory, LSTM)網絡[8-9].循環神經網絡(recurrent neural network, RNN)和CNN是目前深度學習領域比較熱門的2種模型.但這2種模型也都存在一定的缺陷,CNN不能考慮到上下文語義信息,從而忽視了句子之間的相互聯系;RNN模型缺乏對文本特征提取的能力,不能很好地提取句子的局部特征.針對2種模型存在的缺陷問題,本文利用CNN、雙向門控循環單元(bidirectional gated recurrent unit, BiGRU)網絡模型和注意力機制,結合word2vec詞向量[10]表示模型,提出一種基于注意力機制的多通道CNN和BiGRU網絡的模型來解決文本情感分類問題.模型使用3個CNN進行信息抽取,利用不同大小的卷積窗口進行粒度不同的情感特征提取,從而可以提取到更豐富的文本情感特征.BiGRU網絡能夠考慮文本上下文信息和保持句子間單詞時序,因此能夠更加充分地利用整個文本中的特征信息,有效識別文本情感極性.同時在CNN通道和BiGRU網絡通道都引入注意力機制,能夠更加關注句子中對分類重要的單詞信息,以此來進一步提升分類準確率.
本文的主要貢獻有3個方面:
1) 利用雙向GRU(BiGRU)代替單向GRU和傳統的RNN模型,使模型既能夠考慮到文本上下文語義信息,又能夠解決梯度消失問題.
2) 提出一種結合CNN和BiGRU的網絡模型.該模型既能夠利用不同大小的卷積核在CNN不同通道內提取文本中粒度不同的特征信息,又能夠使用BiGRU網絡充分考慮到句子上下文語義信息,彌補了各自的缺陷,增強了模型的文本特征提取能力,提高了分類準確率.
3) 將注意力機制引入到本文模型中,它能夠提取影響情感極性分類的關鍵文本特征,使模型能夠關注到句子中對文本分類貢獻大的詞語,以此來提升CNN和BiGRU網絡的特征提取效果.
情感分析是研究人們對實體的看法、態度和情感的.情感傾向性分析一直都是自然語言處理領域的研究熱點.早些年,主要使用基于情感詞典和傳統的機器學習的方法進行情感傾向性分析.基于情感詞典的方法是使用情感詞典中已經人工標注好的詞條和句子中分好詞的每個詞語進行匹配,再用相關公式對每個句子進行計算并打分,最后整個句子得分大于0的分為正類,小于0的分為負類,以此進行文本情感傾向性分析.對于英文詞典,Kamps等人[11]使用WordNet英文情感詞典判斷英文文本的情感傾向性.與英文情感詞典相比,規范的中文情感詞典相對缺乏,最早也是最普遍使用的是由董振東等人[12]標注的大型情感分析詞語庫HowNet.基于情感詞典進行分類的方法雖然操作簡單,但是情感詞典的構建耗時耗力,且擴充范圍有限,具有領域局限性.而傳統的基于機器學習的情感分類方法通常被看作是一類有監督學習問題.Pang等人[13]在2004年利用最大熵、樸素貝葉斯和支持向量機(support vector machine, SVM)在文本情感分析中進行了實驗比較,發現使用SVM進行文本情感分類能夠達到最優效果.Lee等人[14]將最大熵分類應用于給定電子產品評論的極性評估.這些機器學習方法雖然能夠進行文本情感分類,但是在分類的過程中需要復雜的特征選擇,這個過程同樣需要人工設計,同樣會導致其擴展性差,很難適應不同的領域和應用需求.
近些年來,深度學習方法逐漸成為了情感分析的主流方法.它不需要人工進行干預,是一種端到端的方法,可以實現對特征進行自動選擇,因此效率會比基于詞典和機器學習的方法更高,且領域適用性更強.Collobert等人[15]于2011年首先提出使用CNN解決詞性標注等自然語言處理(natural language processing, NLP)領域的問題.在2014年,Kim[6]提出將CNN應用于英文文本情感分類任務中,并取得了當時不錯的分類結果.Kalchbrenner等人[5]提出了一種寬卷積模型,并且用k-max池化代替了傳統CNN的最大池化,這樣做可以保留更多的特征信息.這種模型不需要任何的先驗信息輸入,也不需要構造非常復雜的人工特征.Yin等人[16]使用多通道不同尺寸的卷積神經網絡進行句子分類.陳珂等人[17]提出一種多通道卷積神經網絡模型,使用多個卷積神經網絡提取句子的多方面特征,在中文微博情感分析任務上取得了不錯的效果.然而,基于CNN的文本情感分類存在不能考慮句子上下文語義信息問題.
相較于CNN,RNN引入了記憶單元使得網絡具備了一定的記憶性,能夠捕捉到文本間的長距離依賴關系.但是它也存在一定的弊端,即在訓練的過程中會出現梯度消失問題.而LSTM和門控循環單元(gated recurrent unit, GRU)網絡在傳統的RNN基礎上引入了門機制,較好地克服了RNN中梯度消失的弊端.基于LSTM和GRU模型,很多人在它們基礎上進行改進,并取得了不錯的分類效果.Tang等人[18]首先使用CNN或LSTM實現單句表示,然后再用gated RNN編碼句子間的內在關系和語義聯系,最后再實現篇章級文本的編碼,通過此方法可以較好地捕獲句子間的語義信息.Lai等人[19]提出了一種RCNN模型,首先利用雙向循環網絡模型得到單詞的上下文信息,然后再通過CNN的卷積池化過程進行文本分類,在ZONews,Fudan,ACL,SST這4個測試集上取得了最好的效果.Zhou等人[20]提出了一種C-LSTM模型,首先利用卷積神經網絡提取文本特征,然后再用LSTM網絡代替最大池化層得到最終分類結果.Ruder等人[21]使用一種層次化的雙向LSTM模型進行方面級別的文本情感分類.Rao等人[22]使用2層LSTM進行文檔級別的情感分類.Sachin等人[23]使用LSTM、GRU、雙向GRU和雙向LSTM方法進行亞馬遜評論情感分析,并取得了不錯的效果.雖然LSTM和GRU模型能夠提取到上下文語義信息和考慮到單詞間時序問題,但是它們并不能像CNN那樣很好地提取句子的局部特征.
為了能夠充分發揮CNN和RNN的各自優勢,越來越多的研究者將CNN與RNN進行結合以此來進行文本情感傾向性分析.Wang等人[24]使用一層CNN和一層RNN構成一個融合模型,進行短文本情感分析,實驗證明效果優于單純使用CNN和RNN模型.Zhou等人[25]提出一種結合雙向LSTM和CNN的模型,并在池化層使用2維最大池化代替傳統的最大池化得到最終分類結果.Zhang等人[26]提出一種CNN-LSTM模型,用于預測Twitter文本的情感強度.Zhang等人[27]提出一種多通道CNN-LSTM模型,用于Twitter文本情感分類任務.Alayba等人[28]提出一種結合CNN和LSTM模型,用于阿拉伯語情感分析,并取得了不錯的分類效果.Zhang等人[29]使用基于Convolution-GRU模型對Twitter仇恨評論文本進行情感極性判別.
近幾年來,注意力機制被廣泛應用于文本分類任務中,因為注意力機制能夠讓模型從大量信息中有選擇性地篩選出重要信息,同時忽略一些不重要的信息,能夠讓模型注意到句子中對情感分類重要的詞語,例如Yang等人[30]結合了雙向RNN與注意力機制,構建了注意力模型應用在篇章級文本分類任務中,取得了當時文本分類任務的最佳結果;Wang等人[31]將多層注意力機制和CNN結合用于句子關系分類任務中,模型在多個數據集上的實驗結果表明,使用注意力機制的模型比未使用的模型有更高的分類精度.Yang等人[32]提出2種不同的基于注意力機制的雙向LSTM模型用于目標相關的情感分類,在當時達到了最好的分類效果.Wu等人[33]使用基于注意力機制的CNN-LSTM網絡模型進行Twitter文本情感強度分析,并取得了不錯的效果.程艷等人[34]提出一種融合卷積神經網絡與層次化注意力網絡的模型,先利用CNN學習詞語特征,然后再將其輸入到基于注意力機制的雙向GRU網絡中得到句子的情感傾向.吳小華等人[35]提出一種結合雙向LSTM和自注意力機制的模型,先使用雙向LSTM得到文本的上下文語義特征,然后通過自注意力機制自動調整特征權重,在短文本情感分類任務上取得了不錯的效果.袁和金等人[36]提出一種提出了一種基于多通道卷積與雙向GRU網絡的情感分析模型,并在雙向GRU網絡上引入注意力機制來自動關注對情感極性影響較強的特征.鑒于融合注意力機制的神經網絡模型的出色表現,本文在對文本情感傾向性分析任務中也引入了注意力機制,使網絡模型能夠更多地注意到對文本情感極性貢獻大的詞語.
基于CNN,RNN和注意力機制各自的優點,本文提出一種基于注意力機制的多通道CNN和BiGRU網絡模型,該模型利用3通道CNN提取文本不同粒度的局部特征信息,并且使用BiGRU網絡模型代替傳統的RNN模型,提取文本上下文語義信息,然后在每一個通道上都引入注意力機制,最后將它們進行拼接,得到一種新的基于注意力機制的多通道神經網絡模型.本文綜合利用CNN,BiGRU網絡和注意力機制這3種深度學習方法的優點,既考慮了文本的局部信息又考慮到了上下文語義信息,避免了文本信息的丟失,還能通過注意力機制關注到句子中對情感分類貢獻較大的詞語,提高了模型對文本情感分類性能.

oi=W·Si:i+h-1,
(1)


Fig. 1 The structure of the CNN圖1 CNN結構
我們在2.1節已經詳細描述了用一個過濾器提取一個特征的過程.圖1中模型利用了幾個不同大小的過濾器(具有不同窗口大小)來提取不同的特征,接下來把每一個過濾器提取的特征進行max-pooling操作,以此來得到多個不同的最重要特征,然后把這些特征進行拼接,最后再傳遞給全連接的Softmax層,其輸出是標簽上的概率分布.

Fig. 2 The structure of the GRU圖2 GRU結構
Cho等人[38]在2014年最初提出了一種GRU網絡模型,以使每個循環單元能夠自適應地捕獲不同時間尺度的依賴性,有關GRU的結構說明如圖2所示:
相比于LSTM,GRU的模型更為簡單,僅由更新門z和重置門r構成,比LSTM少了一個門,所以在訓練的時候參數更少,收斂時間更快.可以通過式(2)~(5)更新參數:
rt=σ(Wrxt+Urht-1),
(2)
zt=σ(Wzxt+Uzht-1),
(3)
(4)
(5)

單向GRU的狀態是從前往后單向傳輸的,也就是忽略了后文單詞對整體狀態的影響;BiGRU是GRU的一個變體,它的輸出取決于前向狀態和后向狀態的雙重影響,解決了單向GRU存在的問題,使得最后的輸出結果更加準確.BiGRU的模型結構如圖3所示:

Fig. 3 The structure of the BiGRU圖3 雙向GRU結構


Fig. 4 The structure of attention mechanism圖4 注意力機制結構
注意力機制早在2014年便被應用在機器翻譯任務上[39],并取得了當時最好的效果.2016年,Yang等人[30]把注意力機制應用于文本篇章級別的情感分類任務中,取得了不錯的分類效果.因為對于每個句子而言,每個詞的重要程度不同,所以本文引入注意力機制來提取句子中重要單詞的語義信息.注意力機制可以抽象為由Encoder和Decoder這2個模塊組成.Encoder一般為編碼器,對輸入數據做一定的變換得到語義向量;Decoder一般為解碼器,同樣經過一定的變換后得到輸出數據.注意力機制結構如圖4所示.
主要公式如式(6)~(8)所示:
ui=tanh(Wihi+bi),
(6)
(7)
(8)
其中,uw為隨機初始化的上下文向量,在訓練的過程中更新;ui為隱藏層向量hi經過一個全連接運算得到的結果;Wi和bi分別為注意力計算的權值矩陣和偏置項;αi為句子中第i個單詞的注意力分數,L為句子的長度.
本文在上述基礎模型上提出一種基于注意力機制的多通道CNN和BiGRU網絡的文本情感分析模型.該模型由卷積神經網絡、雙向門控循環網絡和注意力機制組成,模型結構如圖5所示.

Fig. 5 The overall structure of model圖5 模型整體結構
本文的總體模型是由多個通道組成,主體是3個拼接的CNN模型通道和一個BiGRU模型通道,3個CNN通道主要是用來提取句子間詞語的不同的局部特征,而BiGRU通道是用來得到句子上下文語義信息.CNN通道的輸入是每個句子經過分詞操作得到的詞語.第1層是嵌入層,作用是把輸入的每個詞語映射成一個向量表示;第2層是注意力機制層,主要是為了提取句子間重要單詞信息;第3層是卷積層,主要用來提取詞語間的局部特征,本文詞向量維度選取300維,選擇的3種過濾器大小分別為3×300,4×300,5×300,每一種過濾器各128個,步長stride=1,padding=valid(不需要進行補零操作),經過卷積操作之后就能得到句子的局部特征;第4層為池化層,主要是把卷積層得到的局部特征進行最大池化操作,提取句子間最重要的特征,丟棄部分不相關和無用特征,以此生成固定維度的特征向量,再將3個經過最大池化操作輸出的特征進行拼接,作為全連接層輸入的一部分,經過3種不同過濾器得到的3種不同的特征經過拼接后可以為后面句子情感分類提供更豐富的特征信息.
BiGRU通道的第1層亦為詞嵌入層,詞向量的維度也設置為300維,第2層同樣是一個注意力機制層,和用于CNN模型的注意力機制一樣,均用來提取句子中重要的單詞信息;BiGRU的第3層和第4層分別為前向GRU和后向GRU結構,它們的隱藏層大小都設置為128,因為當前時刻的輸入單詞和前后序列單詞都有一定的關系,所以將輸入序列分別從前后2個方向輸入GRU模型中,如圖3所示,然后通過隱藏層來保存前后方向文本的信息,最后將這2個隱藏層的輸出進行拼接,得到BiGRU最后輸出,BiGRU輸出代碼如下:BiGru_output=keras.layers.Bidirectional(gru(hidden_dim,return_sequences=True))(inputs).
利用BiGRU模型主要是用來提取句子中詞的上下文語義信息,以此來提取文本中詞語的全局特征,然后我們將CNN通道中經過池化操作拼接起來的特征和BiGRU的輸出進行融合,融合的代碼為:output=keras.layers.merge.concatenate([cnn_output,BiGru_output]).
將融合的特征作為全連接層的輸入,全連接層中的激活函數都是使用relu,在全連接層之后加入dropout機制,每次訓練的時候都讓一部分神經元不工作,這樣做的目的是為了防止過擬合,最后再把它輸入到Softmax分類器中得到最后的分類結果,本文Softmax分類器將x分類為類別j的概率如式(9)所示:
(9)
其中,θ為訓練中的所有參數,k=2,本文均為二分類任務.
本文實驗環境如下:操作系統為Windows10,CPU是Intel Core i7-6700U,GPU為GeForce GTX 1080,內存大小為DDR3 8 GB,開發環境為Keras 2.1.0,開發工具使用的是PyCharm.
本文實驗部分在2個公開數據集上進行:
1) 譚松波酒店評論數據集.用戶在國內不同酒店上的評論數據集,然后經過譚松波教授的整理,用于情感傾向性分析.
2) IMDB[40]數據集.國外用戶在網站上對電影的評論數據,評論包括正向和負向的情感,用于情感傾向性分析.
數據集中的每條評論已經被人為地設置了情感標簽,這2個數據集具體信息如表1所示,部分評論數據如表2所示,為了減少訓練過程中帶來的隨機性影響,我們分別在這2個數據集上進行10折交叉驗證實驗.本文句子的長度我們用詞語個數來衡量.

Table1 Specific Information of Two Datasets表1 2個數據集具體信息

Table 2 Part of Review Data表2 部分評論數據
詞向量在自然語言處理中起著至關重要的作用,結合詞向量進行預訓練有助于提高模型的準確率[41].對于中文數據集,本文使用大規模中文Wikipedia百科數據集來預訓練CBOW模型,以此來得到中文詞向量,經過訓練之后,每個語義相近的中文詞語被映射到向量空間中相近的位置上,在訓練過程中,我們設置詞向量的維度大小為300.首先用Jieba分詞工具對輸入的句子進行分詞操作,之后去除停用詞,然后使用詞向量訓練工具把這些詞語轉換為向量形式后作為神經網絡的輸入.對于英文數據集,本文使用大規模英文Wikipedia數據集來訓練CBOW模型,以此來得到英文詞向量,在訓練過程中我們同樣設置詞向量維度為300.然后通過空格把每個句子分成一個個單詞,再去除停用詞,本文中我們把句子最大長度設置為200,小于該長度時,對句子進行補零操作,大于該值時進行截斷操作.本文實驗基于Keras深度學習框架,模型的優化函數采用Adam[42]函數,因為它能為不同的參數設計獨立的自適應性學習率,并且能夠加快網絡收斂速度.
在本文實驗中,為了得到更加豐富的情感特征信息,將多通道CNN所選取的卷積核窗口大小分別為3,4,5,每個卷積核的數量都為128.為了防止過擬合現象,我們使用了L2正則化和dropout機制.本文模型的詳細超參數設置如表3所示:

Table 3 Hyper Parameters of Experiment表3 模型超參數設置
為了驗證本文提出的模型的分類性能,我們使用準確率作為評估指標,將本文基于注意力機制的多通道CNN和BiGRU模型(MC-AttCNN-AttBiGRU)分別與13種模型方法在2個數據集上進行實驗對比.
1) SVM.相較于其他機器學習方法,SVM在情感分類上面的效果較好[13],本文先把句子中的每個單詞用詞向量表示,然后再把這些單詞向量進行加權平均作為SVM的輸入進行分類.
2) Fasttext[43].Fasttext是Facebook開源的文本分類工具.在本實驗中,將模型學習率設為0.01,詞向量的維度設置為300.
3) CNN[6].普通的單通道CNN分類,把句子中每個詞語經過詞嵌入之后得到的詞向量作為CNN的輸入,然后經過卷積層、池化層、全連接層和最后的Softmax輸出層進行分類.
4) MC-CNN.這是卷積核窗口大小分別為3,4,5的3個卷積層通道的拼接,即3通道CNN情感分類模型,過程和單個CNN分類一樣,只是最后把3個經過池化層得到的最大特征進行了拼接,以此來獲得更豐富、不同粒度的特征信息.
5) RCNN[19].這是一個單通道的CNN-RNN模型,該模型使用CNN和RNN進行文本分類,在訓練的過程中對輸入詞向量進行微調.
6) C-LSTM[20].這是一個單通道CNN-LSTM模型,首先把句子中每個詞語經過詞嵌入之后得到的詞向量作為CNN的輸入,然后把抽取到的特征作為LSTM的輸入,最后再經過全連接和Softmax層得到最終分類結果.
7) Convolution-GRU[29].這是一種結合CNN和GRU的復合模型,首先把句子中每個詞語經過詞嵌入之后得到的詞向量作為CNN的輸入,然后把抽取到的特征作為GRU的輸入,最后再經過全連接和Softmax層得到最終分類結果.
8) MC-CNN-LSTM[27].這是一種多通道的CNN-LSTM模型,該模型由2部分組成:一部分是多通道CNN模型;另一部分是LSTM模型.首先使用多通道CNN抽取不同的n-gram特征,然后把得到的特征作為LSTM的輸入,最后再經過全連接和Softmax層得到最終分類結果.
9) BiGRU.使用經過詞嵌入之后的單詞向量作為輸入經過BiGRU網絡模型進行句子情感分類.
10) ATT-MCNN-BGRUM[36].該模型是一種單通道的CNN-BiGRU模型,首先使用多通道的CNN模型提取到文本的不同的n-gram特征,然后將其輸入到基于注意力機制的BiGRU模型中,最后使用Maxout神經元得到最后的分類結果.
11) MC-CNN-BiGRU.這是3個CNN通道和BiGRU通道的拼接,3個CNN通道和BiGRU通道的輸入都是經過詞嵌入之后單詞的詞向量,但3個CNN通道和BiGRU通道都不加入注意力機制.
12) MC-AttCNN-BiGRU.這是3個CNN通道和BiGRU通道的拼接,并且在3個CNN通道上都加入注意力機制,而BiGRU通道不加入注意力機制,其他參數設置和MC-CNN-BiGRU一致.
13) MC-CNN-AttBiGRU.這是3個CNN通道和BiGRU通道的拼接,并且在BiGRU通道上加入注意力機制,而3個CNN通道不加入注意機制,其他參數設置和MC-CNN-BiGRU一致.
14) MC-AttCNN-AttBiGRU.這是本文提出的最終模型,3個CNN通道和BiGRU通道的拼接,并且在BiGRU通道和3個CNN通道上都加入注意力機制,以經過詞嵌入之后得到的詞向量作為輸入,分別通過CNN通道和BiGRU通道提取特征,最后將提取到的2種特征融合進行最后的情感分類.
本文用所提出的MC-AttCNN-AttBiGRU與3.4節其他13種神經網絡模型方法在譚松波酒店評論數據集和IMDB上進行實驗對比,實驗結果如表4所示:

Table 4 Accuracy Comparison of the Proposed Model and Other Baseline Models on Two Public Datasets表4 本文模型和其他基線模型在2種公開數據集上的準確率對比 %
從表4可以看出,本文提出的MC-AttCNN-AttBiGRU模型方法在2個數據集上都取得了比其他模型更好的分類效果,在譚松波酒店評論數據集上準確率達到了92.28%,在IMDB數據集上準確率達到了91.70%,說明了本文所提模型的優越性.
由表4可知,基于神經網絡模型方法(CNN,RCNN等)在分類效果上還是顯著優于傳統機器學習模型方法SVM的,因為SVM模型只是簡單地對句子中所有單詞向量進行加權平均,并沒有考慮到句子間的上下文語義和一些更深層次的信息,所以分類效果不好,基于神經網絡模型方法準確率大概比基于傳統機器學習方法SVM高10%左右,說明了深度學習方法在文本情感分類任務上更有效果;此外,Fasttext模型分類準確率(83.96%,81.69%)優于SVM模型(80.16%,79.86%),證明Fasttext模型在文本情感分析中的優良性能,因為其模型簡單,運算速度快,因此本文把它作為基線模型;在譚松波酒店評論數據集上,CNN和BiGRU的分類準確率相近,因為它們都能提取到一定的語義信息,但CNN的準確率要比BiGRU的稍微高一點,這是因為譚松波酒店評論數據集較小并且評論文本較短,CNN可以很好地提取句子整體特征,而BiGRU卻無法在短文本上充分發揮其優勢;在IMDB數據集上,BiGRU的分類準確率要比CNN準確率要稍微高一點,這是因為IMDB數據集的每條評論都很長,BiGRU可以充分發揮其長距離記憶的優勢;通過MC-CNN和單通道CNN,C-LSTM和MC-CNN-LSTM,ATT-MCNN-BGRUM和MC-AttCNN-AttBiGRU這3組對比實驗可以看出,多通道模型相對于單通道模型能夠提取到更豐富的情感特征信息,有助于提高情感分類性能;通過對比C-LSTM和Convolution-GRU可以看出,Convolution-GRU模型在本文數據集上的分類效果要優于C-LSTM模型;通過對比MC-CNN-BiGRU,MC-CNN-LSTM和RCNN,C-LSTM,Convolution-GRU可以看出多通道的CNN-RNN模型還是優于單通道CNN-RNN模型;通過MC-CNN-BiGRU和CNN,BiGRU進行對比可以看出融合了CNN和BiGRU的多通道模型還是比單獨的CNN,BiGRU分類效果要好得多,這是因為MC-CNN-BiGRU結合了CNN和BiGRU各自的優點,既能提取到句子間連續單詞的局部信息又能夠獲得句子上下文語義信息,從而得到更高的分類準確率.通過MC-AttCNN-BiGRU,MC-CNN-AttBiGRU和MC-CNN-BiGRU對比發現,加入注意力機制的多通道模型可以更好地提高分類準確率,因為它能讓模型更加注意到句子中那些對情感分類貢獻較大的單詞;通過MC-AttCNN-AttBiGRU和MC-AttCNN-BiGRU,MC-CNN-AttBiGRU對比發現,在CNN通道和BiGRU通道同時引入注意力機制還能再進一步提升文本分類準確率.
本文提出的MC-AttCNN-AttBiGRU模型方法不僅能夠提取到句子中連續單詞的局部特征信息,還能夠捕獲句子上下文語義信息,充分發揮了CNN和BiGRU各自的優勢,并且引入注意力機制能夠讓模型在特征提取的過程中更加關注句子中比較重要的情感詞語信息,減少那些對分類不重要的詞語的影響,所以本文提出的模型相較于其他幾種基線模型能夠獲得最好的效果.
為了更加直觀有效地展示模型效果,本文在實驗部分使用seaborn庫和matplotlib庫進行句子中單詞注意力權重分配的可視化展示,本文選取正面和負面評論各一段進行可視化展示實驗.
文本1:總體感覺還不錯.房間很干凈、簡潔、舒適.
文本2:酒店前臺小女孩子服務太次, 態度很差.

Fig. 6 Text one word attention weight heatmap圖6 文本1單詞注意力權重熱力圖
對于文本1和文本2,我們首先使用Jieba分詞工具對句子進行分詞,然后再去除標點符號和停用詞,得到“總體 感覺 還 不錯 房間 很 干凈 簡潔 舒適”和“酒店 前臺 小 女孩子 服務 太 次 態度 很差”這些單詞,然后再分別繪制單詞級別的注意力權重熱力圖如圖6、圖7所示.圖中顏色越深即灰度值越大,表示分配給單詞的權重越高,說明該單詞對后續情感分類的重要性更高.

Fig. 7 Text two word attention weight heatmap圖7 文本2單詞注意力權重熱力圖
文本1中經過Jieba分詞和去除停用詞和標點之后包含9個單詞,從圖6中可以看出模型對“還”、“不錯”、“很”、“干凈”、“簡潔”、“舒適”這幾個單詞分配了較高的權重,這些都是有關正面評論的詞語;文本2經過Jieba分詞和去除停用詞之后也包含9個單詞,從圖7可以看出模型對“太”、“次”、“很差”這幾個單詞分配了較高的權重,這些都是有關負面評論的詞語.
通過在這2段正負評論文本上進行注意力權重可視化實驗,結果表明:本文使用注意力機制可以很好地找出句子中對情感分析結果影響較大的單詞,證明了注意力機制確實能夠關注句子中比較重要的情感詞語.
本文提出了一種基于注意力機制的多通道CNN和BiGRU的網絡模型用于文本情感傾向性分析,該模型既能夠利用CNN有效地提取到文本間相鄰詞語的局部特征,又能夠利用BiGRU捕獲句子上下文全局語義信息,而且引入注意力機制還能更好的注意到句子中對情感分類貢獻大的詞語.在中英文數據集上多個實驗結果充分證明了本文提出模型的有效性,這種多通道混合模型比單一的CNN和BiGRU網絡提取的特征效果更好,且本文提出的模型較其他幾種基線模型在2個公認的數據集上都取得了最好的分類效果.
雖然本文模型可以通過CNN提取局部特征和BiGRU網絡提取一定的上下文語義結構信息,但是這對于文本情感分類任務還是不夠的.傳統的文本情感分類方法一般加入了一些句法結構特征,而本文提出的模型沒有使用任何句法結構特征,因此下一步工作我將探討如何讓深度學習方法與傳統的方法結合,并考慮引入更多文本特征進一步來提高分類準確率.