翟學明,魏巍
(華北電力大學 控制與計算機工程學院,河北 保定 071003)
人的發展與溝通密不可分。有研究表明,人類的理性學習依賴于情緒[1]。隨著互聯網的興起,人們開始習慣在網上交流,發表自己對某件事情的看法,網絡的保護讓人們更加真實地表達自己的情感。因此,分析這些包含用戶情感信息的觀點對于輿情監控、營銷策略等方面具有非常良好的效果。情感分析,又名意見挖掘、觀點分析等,它是通過計算機來幫助人們訪問和組織在線意見,分析、處理、總結和推理主觀文本的過程[2]。
在情感分析研究中最重要的就是情感分類技術。情感分類主要是針對文本中表達的情感進行識別和分類,如積極、消極等,進而得到潛在的信息。目前研究較多的情感分類技術主要分為以下3種:第1種是基于情感詞典的方法[3]。基于情感詞典的方法主要是將文檔中的句子,找出不同詞性的詞并計算其相應得分。這種方法過于依賴情感詞典,具有嚴重的領域特征,效果并不理想[4];第2種是基于人工提取特征分類的方法。基于人工提取特征分類的方法是一種傳統機器學習的方法,該方法需要大量已經被事先標注好的數據,然后再利用支持向量機[5]、樸素貝葉斯、條件隨機場等機器學習算法進行情感分類。其中,條件隨機場是一種判別式概率學習模型,在序列標注、命名實體識別、中文分詞等方面都具有很好的效果;第3種方法,即基于深度學習的方法[6]。深度學習模型在不需要人工標注的前提下,能夠充分挖掘文本的情感信息,得到良好的分類效果。
卷積神經網絡(CNN)最初廣泛應用于數字圖像處理領域,并迅速應用于情感分析。Collobert等[7]首次提出將CNN用于解決NLP詞性標注等問題。Kim[8]提出將CNN應用于情感分析任務并取得了良好的效果。隨著CNN在情感分類上的廣泛應用,其缺陷也越來越明顯。CNN只能挖掘文本的局部信息,對于長距離依賴的捕捉效果有所欠缺。而循環神經網絡(RNN)彌補了這方面的不足[9]。RNN相較于CNN具有記憶功能,能夠實現在序列化數據中捕捉動態信息,在情感分類任務中取得了良好的效果。Tang等[10]對篇章級文本進行建模,提出了一種層次化RNN模型。RNN雖然適用于上下文處理,但在處理長距離依賴問題的情況下,會產生梯度爆炸的情況。針對此問題,Hochreiter等[11]提出了LSTM模型,對RNN的內部構造進行了優化。Zhu等[12]利用LSTM對文本進行建模,將其劃分為詞序列,進而進行情感分類。傳統的LSTM只能有效地使用上文信息,忽略了向下的信息,這在一定程度上影響了情感分類的準確性。白靜等[13]利用了Bi-LSTM進行建模,將詞向量分別通過Bi-LSTM與CNN,最后再融合注意力機制,取得了更好的效果,但也存在計算復雜度過大的不足。為了減少計算量,結構簡單的GRU被人們提出。劉洋[14]提出將GRU應用于時間序列任務并取得了良好的效果。
以上學者在情感分析問題上已經認識到模型在訓練上存在的時間長,數據量大,上下文信息獲取距離短的局限并做出了改進,但是并沒有突破深度學習的限制。針對上面發現的問題,本文提出了一種混合神經網絡和CRF相結合的情感分析模型。本文提出的模型綜合考慮篇章中句子的上下文語境,在保留語序的同時更快更充分地獲取語義信息。本文模型將一段文本按照句子劃分為不同的區域,利用CNN與Bi-GRU以并行訓練的方式從句子中獲取更多的語義信息和結構特征。同時,采用條件隨機場作為分類器,計算整個文本的情感概率分布,從而達到預測情感類別的目的。
情感分析早在2000年初就已經成為NLP領域的熱門研究領域[15]。情感分析問題是一個多層面的問題,具有一定的復雜性,它包含很多相互關聯的上下文關系。在同一句中,文章中表達的情感類別可能與僅由句子表達的情感類別有很大不同。傳統情感分析的過程如圖1所示。

圖 1 情感分析過程圖Fig. 1 Process diagram of sentiment analysis
情感分析主要應用于對文本評論或觀點的處理,評論文本具有篇幅較短、文本格式不規范等問題。例如其中的標點符號、網絡流行語和用戶昵稱等內容都會給情感分析任務帶來困難。因此,情感分析首先要減少文本的噪音,對其進行預處理。本文采用中國科學院計算技術研究所開發的漢語分詞系統NLPIR對評論文本進行分詞[16],繼而主要針對標點符號和用戶昵稱等字符串進行去除噪聲處理。詞語的向量表示是指從詞語到實數維向量空間的復雜映射。目前,比較常見的單詞向量訓練模型有CBOW模型和Skip-gram模型,這兩個模型在結構上是相似的。Mikolov等[17]針對這兩種詞向量提取的方法進行了深刻的分析,指出了其預測范圍受限的不足。
本文將語言模型和情感分析模型聯合訓練,通過語言模型獲取語義信息,利用混合神經網絡作為語言模型對分詞后的文本進行向量表示和特征提取,對每一個經過混合神經網絡的輸出特征實行打分制。這種方法使訓練模型不再依賴詞向量訓練模型,而是一個端到端的整體過程,是一種數據驅動的方法,具有更高的準確性。
現有文本情感分析研究工作大多存在模型訓練時間長,上下文信息學習不充分的問題,本文提出將混合神經網絡與條件隨機場相結合,首先利用混合神經網絡獲取文本的特征信息,再將其輸入到條件隨機場分類器中。本文模型獲取到的特征更充分,訓練速度也比以往模型更快,具有更好的分類效果。
本文將進行分詞后的句子的離散one-hot表示映射到低維空間形成稠密的詞向量,低維詞向量作為模型的輸入,進行卷積池化后,在輸出端融入低維詞向量經過Bi-GRU神經網絡學習到的結構特征。模型將分別通過混合神經網絡得到的句子的特征表示拼接在一起,對每一個經過混合神經網絡的輸出特征進行打分。針對詞語在混合神經網絡模型中生成的標簽可能存在的非法序列從而導致數據失效的問題,本文在混合神經網絡模型接入CRF層,將得分輸出特征作為 CRF的發射概率,并使用維特比算法獲得概率最高的情緒類別。本文過程的示意圖如圖2所示。

圖 2 基本過程示意Fig. 2 Schematic diagram of basic process
混合神經網絡的構造如圖3所示,本文模型將一段文本按照句子劃分為不同的區域,以每個區域的低維詞向量作為輸入。低維詞向量分別經過兩種神經網絡,經過CNN輸出的句子特征為fc, 經過Bi-GRU輸出的句子特征為fg,將fc與fg拼接起來并經過Softmax函數后的特征向量S′進行打分,作為CRF分類器的輸入。
本文的思路是將一段文本按照句子劃分為不同的區域,將每個句子的低維詞向量作為模型的輸入,通過CNN模型進行卷積池化再輸出。
詞向量映射層:假設區域中詞語的個數為M,每個詞向量有k維特征,則所有詞向量都在區域矩 陣V∈Rk×M中。

圖 3 混合神經網絡結構Fig. 3 Structure diagram of Hybrid neural network
卷積層:每個區域ri可以表示為矩陣,然后使用過濾器D進行卷積以學習Ngram特征。過濾器Fd(1≤d≤D)在每個窗口卷積后獲得映射值,即

常用的激活函數有Relu函數、Tanh函數和Sigmoid函數。由于不同的功能特性,Sigmoid和Tanh函數在接近飽和區域時傾向于梯度消失,從而減慢收斂速度。為了增強網絡適應和加速收斂的能力,該模型應用ReLU激活函數。濾波器逐漸遍歷,可以得到輸出矩陣:

不同區域的文本長度不同,對應的yd的維度也不同。因此,本文將語料庫中CNN輸入最大長度設為N。當輸入長度小于N時,將添加幾個分布均勻的隨機向量U(-0.25, 0.25)。
池化層:本文中Max-pooling操作的優點是Max-pooling可以全局過濾文本特征,減少參數數量,過濾噪聲,減少信息冗余,并有效地減少過度擬合的問題。其次,Max-pooling還可以提取不同區域內的局部依賴關系,保留最顯著的信息。通過pooling操作,每個過濾器可以取一個值,池化層最終產生的文本向量特征為fc,,作為下一層的輸入。
在本文中卷積神經網絡的池化策略為Maxpooling,對特征具有旋轉不變性。然而對于情感分類任務,特征的位置信息至關重要,Max-pooling卻將其丟棄。為了彌補這個不足,本文引入雙向GRU神經網絡(Bi-GRU)作為詞向量的另一種特征提取方式來對CNN的結果進行補充。
Bi-GRU是GRU的改進,它可以在前后方向同時獲取上下文信息,相比GRU能夠獲得更高的準確率。不僅如此,Bi-GRU還具有復雜度低,對字向量依賴性低,響應時間快的優點。在Bi-GRU結構中,在每個訓練序列之前和之后都存在循環神經網絡。在t時刻,Bi-GRU單元激活值ht同時受到t-1時刻激活值ht-1,候選激活值ht和更新門z的控制。其計算方式如式(3)、(4),⊙ 表示元素相乘:

對于序列“我很開心”,使用Bi-GRU進行特征 獲取的具體過程如圖4所示。

圖 4 Bi-GRU獲取特征過程Fig. 4 Process diagram of Bi-GRU obtain feature
在本文中,fc與fg采用 Concatenate方式對句子的特征進行融合處理,Concatenate方法可以將不同的神經網絡結構生成的句向量進行拼接,獲得的特征向量S′用作生成CRF分類器的發射概率的基礎。

S′進行線性變換后,得到對應詞語所屬情感類別的分數k:

式中:U為權值矩陣,b為偏置量。當前詞語所屬情感類別的得分為k1k2···km。k的維度為m,m代表情感的分類數。
將對應詞語所屬情感類別的分數k輸入Softmax函數中,針對文本中的大量詞匯導致的向量維度過高,計算量大的問題,本文采用噪聲對比估計[18]方法對Softmax函數進行最大似然估計,運用基于采樣的原理使模型得到有效訓練,目標是使正樣本概率達到最大值的同時讓負樣本的概率盡可能的小。本文雙向網絡的損失函數定義為

其中文本wt的詞向量表示為vwt。在本文中,從維度為V的負樣本集合N中,收集單個單詞作為負樣例。

則情感類別的分數輸入Softmax函數后得到概率為

式中:yi代表當前序列的情感類別為第i維,yi的默認值為1。當yi不符合條件時,yi默認值為0。pw即為CRF分類器的發射概率。
CRF分類器模型和神經網絡分類器模型各自具有優點和不足。CRF模型需要人工提前對語料信息進行標注,手動設計詞的詞性、程度等特征,而神經網絡模型可以學習訓練數據自動生成特征向量,取得更好的效果[19]。但是,神經網絡模型往往需要更長的訓練時間,且神經網絡模型的有些輸出在命名實體識別上是不合法的,因此有必要使用 CRF隨后將命名實體的規則添加到序列標記過程中。本文根據CRF與神經網絡模型各自的特點進行組合,得到在性能上更具優勢的聯合模型[20]。
CRF模型的學習與預測是在樣本的多個特征上進行的。CRF模型本身可以生成特征向量并進行分類,本文使用混合神經網絡提取的特征作為中間量,替換原公式中的向量值。
CRF分類器模型中的發射概率是指序列中的單詞屬于每個情感分類的概率,即為pw。轉移概率是從標簽類到相鄰標簽類的概率。傳統CRF分類器的發射概率是根據特征模版生成的,但是本文為了獲得更好的上下文信息,使用混合神經網絡自動獲取的特征作為發射概率。本文CRF分類器模型發射概率計算公式為

可以獲得單詞的發射概率乘以轉移概率的概率。計算公式如下:

其中 Φ (ywt-1,ywt) 表示從ywt-1到ywt情感類別標識 概率的查找。CRF模型選擇結果序列中概率最高的類別作為最終標記結果。CRF模型訓練的目標是使預測序列的概率盡量接近目標序列的概率,兩個概率之間的差值稱為損失值,計算公式如下:

式中:m ax(ptw) 為預測序列中最大概率值;ytw為目標序列的概率值。CRF模型的輸出用于通過維特比算法找到具有最高概率的情緒類別,然后判斷 整個章節的情緒。
本文選用NLPCC(natural language processing and Chinese computing),即自然語言處理及中文計算會議中公開的2014年任務2中的中文文本作為數據集,來驗證本文模型的有效性。該數據集以商品的評價為主,文本長度適中。為了更好地對比訓練模型的分類效果,實驗將數據集按照8∶2的比例分為訓練集和測試集。通過進行多次重復實驗,選用實驗的平均值作為最終結果,以此評估模型的性能。數據集的詳細信息如表1所示。

表 1 實驗數據信息Table 1 Experimental data information
由于本文采用的數據集主要是商品評論,評論文本具有篇幅較短、文本格式不規范等問題。例如其中的標點符號、網絡流行語和用戶昵稱等內容都會給情感分析任務帶來困難。為了有效減少噪音,首先需要對文本進行預處理。本文采用中國科學院計算技術研究所開發的漢語分詞系統NLPIR對評論文本進行分詞,繼而主要針對標點符號和用戶昵稱等字符串進行去除噪聲處理。詞語的向量表示是指從詞語到實數維向量空間的復雜映射,本文將進行分詞后的句子的離散onehot表示映射到低維空間形成稠密的詞向量,得到文本的詞向量映射,進而輸入本文模型進行進一步的特征提取和情感分類工作。
本文選擇準確率A、召回率R和F值來當作本文實驗的評價指標。準確率A表示對測試集進行分類后,在某個類別中被正確分類的比例。召回率R代表分類后正確判斷某個類別的個數占其所有正確數目的比例。F值是一個根據準確率A與召回率R得到的加權調和平均數,通常被用來綜合評定模型的性能優劣。每個評價指標的計算方式如下:

表2是根據分類結果建立的判別混淆矩陣,介紹了上述評價指標中各個字母所代表的含義。

表 2 分類判別混淆矩陣Table 2 Classification discrimination confusion matrix
本文實驗運行環境為Win10系統、8 GB內存,本文底層采用TensorFlow架構,使用Keras來搭建深度學習網絡模型,上層采用JetBrains PyCharm軟件。網絡模型所使用的激活函數為ReLU,采用Adam作為梯度更新方法,學習率設為0.05。
由于神經網絡模型的迭代次數對于實驗結果的影響比較大,迭代次數越大,模型的擬合程度越好,進而會導致模型的過擬合問題。因此,本文對迭代次數進行了單因子變量實驗。如圖5所示,當迭代次數為30時,訓練集和測試集的數據上F值都處于一個較高的水平。因此本文實驗迭代次數設為30,同時將Dropout的參數設為0.5以防止過擬合。

圖 5 基于迭代次數的F值的變化趨勢Fig. 5 Trends in F values based on iterations
詞向量維度是實驗的一個重要參數,維度的高低會影響模型中參數的數目。維度過高,容易導致過擬合,達不到預期的效果。維度過低,難以包含所需要的全部信息。本實驗采用單因子變量法確定詞向量維度的最優值,實驗結果如圖6所示,詞向量維度初始值從30開始,并不斷增加。在單一變量的情況下,詞向量維度在80的時候F值達到最優值。因此在神經網絡訓練過程中,選用80作為詞向量維度的設定值。本文模型訓練的參數和函數設置如表3所示。

圖 6 基于詞向量維度的F值的變化趨勢Fig. 6 Trends in F values based on word vector dimensions

表 3 實驗參數設置Table 3 Experimental parameter settings
為了證明本文提出模型的有效性,將本文模型分別與CNN、Bi-GRU、CRF、CNN+Bi-GRU、Bi-GRU+CRF等模型做對比實驗,進行情感分析的性能對比。
CNN:將詞向量作為輸入在CNN中進行分類。
Bi-GRU:將詞向量作為輸入在雙向門控循環單元中進行分類。
CRF:將詞向量輸入到條件隨機場中進行分類。
CNN+Bi-GRU:將CNN與Bi-GRU采用聯合訓練的方式,詞向量分別輸入兩種神經網絡中,得到的輸出進行特征融合,利用Softmax進行分類。
Bi-GRU+CRF:將Bi-GRU模型與CRF模型以鏈式方式進行組合,將訓練好的詞向量作為Bi-GRU模型的輸入,其輸出作為CRF模型的輸入,最終輸出情感分析結果。
C-BG+CRF:本文提出的混合神經網絡與條件隨機場相結合的情感分析模型。
實驗結果如圖7,對比發現,CRF單模型和神經網絡模型相比,其分類的準確率和F值較低,證明了傳統機器學習方法在情感分析中的表現與深度學習確實存在差距。本文模型的收斂速度跟CRF單模型差距不大,且在準確率和F值等指標上均優于其他模型,證明了本文模型的有效性。

圖 7 6種模型F值比較Fig. 7 Comparison of F value in six models
對比實驗的測試結果如表4所示。本文模型與CNN單模型、Bi-GRU單模型和CRF單模型相比在準確率、召回率和F值等指標上均表現出了良好的優越性。實驗說明本文模型與單個模型相比,在情感分析任務上確實具有更好的效果。

表 4 不同模型的測試結果Table 4 Test results of different models
本文模型與CNN+BiGRU模型進行對比,分類效果有所提升。因為本文模型采用CRF作為分類器而不是Softmax函數,對異常標簽的處理具有更好的準確性,可以有效地促進情感分類器性能上的提升。本文模型與BiGRU+CRF模型相比在F值上有所提升,同時收斂速度加快。兩種神經網絡共同訓練得到的特征比單一網絡更加充分,在準確率上有所提升。實驗說明本文模型與融合模型相比,在情感分析任務上確實具有更好的效果。
本文針對篇章級的文本進行了分析,提出一種混合神經網絡和CRF相結合的情感分析模型。將一段文本按照句子劃分為不同的區域,結合了CNN與Bi-GRU兩種神經網絡獲得的語義信息和結構特征。同時,將分別通過神經網絡得到的句子的向量表示拼接在一起,采用條件隨機場模型作為分類器。本文模型充分考慮了上下文信息,使學習到的特征更加豐富。在NLPCC 2014數據集上進行訓練和測試,總體上看,證明了本文的方法能夠有效地對篇章級文本進行情感分類,取得了良好的效果。下一步考慮在詞向量中融入主題詞信息,從而更好地針對篇章中多主題進行文本情感分析任務。