翟學(xué)明,魏巍
(華北電力大學(xué) 控制與計算機工程學(xué)院,河北 保定 071003)
人的發(fā)展與溝通密不可分。有研究表明,人類的理性學(xué)習(xí)依賴于情緒[1]。隨著互聯(lián)網(wǎng)的興起,人們開始習(xí)慣在網(wǎng)上交流,發(fā)表自己對某件事情的看法,網(wǎng)絡(luò)的保護讓人們更加真實地表達自己的情感。因此,分析這些包含用戶情感信息的觀點對于輿情監(jiān)控、營銷策略等方面具有非常良好的效果。情感分析,又名意見挖掘、觀點分析等,它是通過計算機來幫助人們訪問和組織在線意見,分析、處理、總結(jié)和推理主觀文本的過程[2]。
在情感分析研究中最重要的就是情感分類技術(shù)。情感分類主要是針對文本中表達的情感進行識別和分類,如積極、消極等,進而得到潛在的信息。目前研究較多的情感分類技術(shù)主要分為以下3種:第1種是基于情感詞典的方法[3]?;谇楦性~典的方法主要是將文檔中的句子,找出不同詞性的詞并計算其相應(yīng)得分。這種方法過于依賴情感詞典,具有嚴重的領(lǐng)域特征,效果并不理想[4];第2種是基于人工提取特征分類的方法?;谌斯ぬ崛√卣鞣诸惖姆椒ㄊ且环N傳統(tǒng)機器學(xué)習(xí)的方法,該方法需要大量已經(jīng)被事先標注好的數(shù)據(jù),然后再利用支持向量機[5]、樸素貝葉斯、條件隨機場等機器學(xué)習(xí)算法進行情感分類。其中,條件隨機場是一種判別式概率學(xué)習(xí)模型,在序列標注、命名實體識別、中文分詞等方面都具有很好的效果;第3種方法,即基于深度學(xué)習(xí)的方法[6]。深度學(xué)習(xí)模型在不需要人工標注的前提下,能夠充分挖掘文本的情感信息,得到良好的分類效果。
卷積神經(jīng)網(wǎng)絡(luò)(CNN)最初廣泛應(yīng)用于數(shù)字圖像處理領(lǐng)域,并迅速應(yīng)用于情感分析。Collobert等[7]首次提出將CNN用于解決NLP詞性標注等問題。Kim[8]提出將CNN應(yīng)用于情感分析任務(wù)并取得了良好的效果。隨著CNN在情感分類上的廣泛應(yīng)用,其缺陷也越來越明顯。CNN只能挖掘文本的局部信息,對于長距離依賴的捕捉效果有所欠缺。而循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)彌補了這方面的不足[9]。RNN相較于CNN具有記憶功能,能夠?qū)崿F(xiàn)在序列化數(shù)據(jù)中捕捉動態(tài)信息,在情感分類任務(wù)中取得了良好的效果。Tang等[10]對篇章級文本進行建模,提出了一種層次化RNN模型。RNN雖然適用于上下文處理,但在處理長距離依賴問題的情況下,會產(chǎn)生梯度爆炸的情況。針對此問題,Hochreiter等[11]提出了LSTM模型,對RNN的內(nèi)部構(gòu)造進行了優(yōu)化。Zhu等[12]利用LSTM對文本進行建模,將其劃分為詞序列,進而進行情感分類。傳統(tǒng)的LSTM只能有效地使用上文信息,忽略了向下的信息,這在一定程度上影響了情感分類的準確性。白靜等[13]利用了Bi-LSTM進行建模,將詞向量分別通過Bi-LSTM與CNN,最后再融合注意力機制,取得了更好的效果,但也存在計算復(fù)雜度過大的不足。為了減少計算量,結(jié)構(gòu)簡單的GRU被人們提出。劉洋[14]提出將GRU應(yīng)用于時間序列任務(wù)并取得了良好的效果。
以上學(xué)者在情感分析問題上已經(jīng)認識到模型在訓(xùn)練上存在的時間長,數(shù)據(jù)量大,上下文信息獲取距離短的局限并做出了改進,但是并沒有突破深度學(xué)習(xí)的限制。針對上面發(fā)現(xiàn)的問題,本文提出了一種混合神經(jīng)網(wǎng)絡(luò)和CRF相結(jié)合的情感分析模型。本文提出的模型綜合考慮篇章中句子的上下文語境,在保留語序的同時更快更充分地獲取語義信息。本文模型將一段文本按照句子劃分為不同的區(qū)域,利用CNN與Bi-GRU以并行訓(xùn)練的方式從句子中獲取更多的語義信息和結(jié)構(gòu)特征。同時,采用條件隨機場作為分類器,計算整個文本的情感概率分布,從而達到預(yù)測情感類別的目的。
情感分析早在2000年初就已經(jīng)成為NLP領(lǐng)域的熱門研究領(lǐng)域[15]。情感分析問題是一個多層面的問題,具有一定的復(fù)雜性,它包含很多相互關(guān)聯(lián)的上下文關(guān)系。在同一句中,文章中表達的情感類別可能與僅由句子表達的情感類別有很大不同。傳統(tǒng)情感分析的過程如圖1所示。
圖 1 情感分析過程圖Fig. 1 Process diagram of sentiment analysis
情感分析主要應(yīng)用于對文本評論或觀點的處理,評論文本具有篇幅較短、文本格式不規(guī)范等問題。例如其中的標點符號、網(wǎng)絡(luò)流行語和用戶昵稱等內(nèi)容都會給情感分析任務(wù)帶來困難。因此,情感分析首先要減少文本的噪音,對其進行預(yù)處理。本文采用中國科學(xué)院計算技術(shù)研究所開發(fā)的漢語分詞系統(tǒng)NLPIR對評論文本進行分詞[16],繼而主要針對標點符號和用戶昵稱等字符串進行去除噪聲處理。詞語的向量表示是指從詞語到實數(shù)維向量空間的復(fù)雜映射。目前,比較常見的單詞向量訓(xùn)練模型有CBOW模型和Skip-gram模型,這兩個模型在結(jié)構(gòu)上是相似的。Mikolov等[17]針對這兩種詞向量提取的方法進行了深刻的分析,指出了其預(yù)測范圍受限的不足。
本文將語言模型和情感分析模型聯(lián)合訓(xùn)練,通過語言模型獲取語義信息,利用混合神經(jīng)網(wǎng)絡(luò)作為語言模型對分詞后的文本進行向量表示和特征提取,對每一個經(jīng)過混合神經(jīng)網(wǎng)絡(luò)的輸出特征實行打分制。這種方法使訓(xùn)練模型不再依賴詞向量訓(xùn)練模型,而是一個端到端的整體過程,是一種數(shù)據(jù)驅(qū)動的方法,具有更高的準確性。
現(xiàn)有文本情感分析研究工作大多存在模型訓(xùn)練時間長,上下文信息學(xué)習(xí)不充分的問題,本文提出將混合神經(jīng)網(wǎng)絡(luò)與條件隨機場相結(jié)合,首先利用混合神經(jīng)網(wǎng)絡(luò)獲取文本的特征信息,再將其輸入到條件隨機場分類器中。本文模型獲取到的特征更充分,訓(xùn)練速度也比以往模型更快,具有更好的分類效果。
本文將進行分詞后的句子的離散one-hot表示映射到低維空間形成稠密的詞向量,低維詞向量作為模型的輸入,進行卷積池化后,在輸出端融入低維詞向量經(jīng)過Bi-GRU神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)到的結(jié)構(gòu)特征。模型將分別通過混合神經(jīng)網(wǎng)絡(luò)得到的句子的特征表示拼接在一起,對每一個經(jīng)過混合神經(jīng)網(wǎng)絡(luò)的輸出特征進行打分。針對詞語在混合神經(jīng)網(wǎng)絡(luò)模型中生成的標簽可能存在的非法序列從而導(dǎo)致數(shù)據(jù)失效的問題,本文在混合神經(jīng)網(wǎng)絡(luò)模型接入CRF層,將得分輸出特征作為 CRF的發(fā)射概率,并使用維特比算法獲得概率最高的情緒類別。本文過程的示意圖如圖2所示。
圖 2 基本過程示意Fig. 2 Schematic diagram of basic process
混合神經(jīng)網(wǎng)絡(luò)的構(gòu)造如圖3所示,本文模型將一段文本按照句子劃分為不同的區(qū)域,以每個區(qū)域的低維詞向量作為輸入。低維詞向量分別經(jīng)過兩種神經(jīng)網(wǎng)絡(luò),經(jīng)過CNN輸出的句子特征為fc, 經(jīng)過Bi-GRU輸出的句子特征為fg,將fc與fg拼接起來并經(jīng)過Softmax函數(shù)后的特征向量S′進行打分,作為CRF分類器的輸入。
本文的思路是將一段文本按照句子劃分為不同的區(qū)域,將每個句子的低維詞向量作為模型的輸入,通過CNN模型進行卷積池化再輸出。
詞向量映射層:假設(shè)區(qū)域中詞語的個數(shù)為M,每個詞向量有k維特征,則所有詞向量都在區(qū)域矩 陣V∈Rk×M中。
圖 3 混合神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)Fig. 3 Structure diagram of Hybrid neural network
卷積層:每個區(qū)域ri可以表示為矩陣,然后使用過濾器D進行卷積以學(xué)習(xí)Ngram特征。過濾器Fd(1≤d≤D)在每個窗口卷積后獲得映射值,即
常用的激活函數(shù)有Relu函數(shù)、Tanh函數(shù)和Sigmoid函數(shù)。由于不同的功能特性,Sigmoid和Tanh函數(shù)在接近飽和區(qū)域時傾向于梯度消失,從而減慢收斂速度。為了增強網(wǎng)絡(luò)適應(yīng)和加速收斂的能力,該模型應(yīng)用ReLU激活函數(shù)。濾波器逐漸遍歷,可以得到輸出矩陣:
不同區(qū)域的文本長度不同,對應(yīng)的yd的維度也不同。因此,本文將語料庫中CNN輸入最大長度設(shè)為N。當輸入長度小于N時,將添加幾個分布均勻的隨機向量U(-0.25, 0.25)。
池化層:本文中Max-pooling操作的優(yōu)點是Max-pooling可以全局過濾文本特征,減少參數(shù)數(shù)量,過濾噪聲,減少信息冗余,并有效地減少過度擬合的問題。其次,Max-pooling還可以提取不同區(qū)域內(nèi)的局部依賴關(guān)系,保留最顯著的信息。通過pooling操作,每個過濾器可以取一個值,池化層最終產(chǎn)生的文本向量特征為fc,,作為下一層的輸入。
在本文中卷積神經(jīng)網(wǎng)絡(luò)的池化策略為Maxpooling,對特征具有旋轉(zhuǎn)不變性。然而對于情感分類任務(wù),特征的位置信息至關(guān)重要,Max-pooling卻將其丟棄。為了彌補這個不足,本文引入雙向GRU神經(jīng)網(wǎng)絡(luò)(Bi-GRU)作為詞向量的另一種特征提取方式來對CNN的結(jié)果進行補充。
Bi-GRU是GRU的改進,它可以在前后方向同時獲取上下文信息,相比GRU能夠獲得更高的準確率。不僅如此,Bi-GRU還具有復(fù)雜度低,對字向量依賴性低,響應(yīng)時間快的優(yōu)點。在Bi-GRU結(jié)構(gòu)中,在每個訓(xùn)練序列之前和之后都存在循環(huán)神經(jīng)網(wǎng)絡(luò)。在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方法可以將不同的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)生成的句向量進行拼接,獲得的特征向量S′用作生成CRF分類器的發(fā)射概率的基礎(chǔ)。
S′進行線性變換后,得到對應(yīng)詞語所屬情感類別的分數(shù)k:
式中:U為權(quán)值矩陣,b為偏置量。當前詞語所屬情感類別的得分為k1k2···km。k的維度為m,m代表情感的分類數(shù)。
將對應(yīng)詞語所屬情感類別的分數(shù)k輸入Softmax函數(shù)中,針對文本中的大量詞匯導(dǎo)致的向量維度過高,計算量大的問題,本文采用噪聲對比估計[18]方法對Softmax函數(shù)進行最大似然估計,運用基于采樣的原理使模型得到有效訓(xùn)練,目標是使正樣本概率達到最大值的同時讓負樣本的概率盡可能的小。本文雙向網(wǎng)絡(luò)的損失函數(shù)定義為
其中文本wt的詞向量表示為vwt。在本文中,從維度為V的負樣本集合N中,收集單個單詞作為負樣例。
則情感類別的分數(shù)輸入Softmax函數(shù)后得到概率為
式中:yi代表當前序列的情感類別為第i維,yi的默認值為1。當yi不符合條件時,yi默認值為0。pw即為CRF分類器的發(fā)射概率。
CRF分類器模型和神經(jīng)網(wǎng)絡(luò)分類器模型各自具有優(yōu)點和不足。CRF模型需要人工提前對語料信息進行標注,手動設(shè)計詞的詞性、程度等特征,而神經(jīng)網(wǎng)絡(luò)模型可以學(xué)習(xí)訓(xùn)練數(shù)據(jù)自動生成特征向量,取得更好的效果[19]。但是,神經(jīng)網(wǎng)絡(luò)模型往往需要更長的訓(xùn)練時間,且神經(jīng)網(wǎng)絡(luò)模型的有些輸出在命名實體識別上是不合法的,因此有必要使用 CRF隨后將命名實體的規(guī)則添加到序列標記過程中。本文根據(jù)CRF與神經(jīng)網(wǎng)絡(luò)模型各自的特點進行組合,得到在性能上更具優(yōu)勢的聯(lián)合模型[20]。
CRF模型的學(xué)習(xí)與預(yù)測是在樣本的多個特征上進行的。CRF模型本身可以生成特征向量并進行分類,本文使用混合神經(jīng)網(wǎng)絡(luò)提取的特征作為中間量,替換原公式中的向量值。
CRF分類器模型中的發(fā)射概率是指序列中的單詞屬于每個情感分類的概率,即為pw。轉(zhuǎn)移概率是從標簽類到相鄰標簽類的概率。傳統(tǒng)CRF分類器的發(fā)射概率是根據(jù)特征模版生成的,但是本文為了獲得更好的上下文信息,使用混合神經(jīng)網(wǎng)絡(luò)自動獲取的特征作為發(fā)射概率。本文CRF分類器模型發(fā)射概率計算公式為
可以獲得單詞的發(fā)射概率乘以轉(zhuǎn)移概率的概率。計算公式如下:
其中 Φ (ywt-1,ywt) 表示從ywt-1到y(tǒng)wt情感類別標識 概率的查找。CRF模型選擇結(jié)果序列中概率最高的類別作為最終標記結(jié)果。CRF模型訓(xùn)練的目標是使預(yù)測序列的概率盡量接近目標序列的概率,兩個概率之間的差值稱為損失值,計算公式如下:
式中:m ax(ptw) 為預(yù)測序列中最大概率值;ytw為目標序列的概率值。CRF模型的輸出用于通過維特比算法找到具有最高概率的情緒類別,然后判斷 整個章節(jié)的情緒。
本文選用NLPCC(natural language processing and Chinese computing),即自然語言處理及中文計算會議中公開的2014年任務(wù)2中的中文文本作為數(shù)據(jù)集,來驗證本文模型的有效性。該數(shù)據(jù)集以商品的評價為主,文本長度適中。為了更好地對比訓(xùn)練模型的分類效果,實驗將數(shù)據(jù)集按照8∶2的比例分為訓(xùn)練集和測試集。通過進行多次重復(fù)實驗,選用實驗的平均值作為最終結(jié)果,以此評估模型的性能。數(shù)據(jù)集的詳細信息如表1所示。
表 1 實驗數(shù)據(jù)信息Table 1 Experimental data information
由于本文采用的數(shù)據(jù)集主要是商品評論,評論文本具有篇幅較短、文本格式不規(guī)范等問題。例如其中的標點符號、網(wǎng)絡(luò)流行語和用戶昵稱等內(nèi)容都會給情感分析任務(wù)帶來困難。為了有效減少噪音,首先需要對文本進行預(yù)處理。本文采用中國科學(xué)院計算技術(shù)研究所開發(fā)的漢語分詞系統(tǒng)NLPIR對評論文本進行分詞,繼而主要針對標點符號和用戶昵稱等字符串進行去除噪聲處理。詞語的向量表示是指從詞語到實數(shù)維向量空間的復(fù)雜映射,本文將進行分詞后的句子的離散onehot表示映射到低維空間形成稠密的詞向量,得到文本的詞向量映射,進而輸入本文模型進行進一步的特征提取和情感分類工作。
本文選擇準確率A、召回率R和F值來當作本文實驗的評價指標。準確率A表示對測試集進行分類后,在某個類別中被正確分類的比例。召回率R代表分類后正確判斷某個類別的個數(shù)占其所有正確數(shù)目的比例。F值是一個根據(jù)準確率A與召回率R得到的加權(quán)調(diào)和平均數(shù),通常被用來綜合評定模型的性能優(yōu)劣。每個評價指標的計算方式如下:
表2是根據(jù)分類結(jié)果建立的判別混淆矩陣,介紹了上述評價指標中各個字母所代表的含義。
表 2 分類判別混淆矩陣Table 2 Classification discrimination confusion matrix
本文實驗運行環(huán)境為Win10系統(tǒng)、8 GB內(nèi)存,本文底層采用TensorFlow架構(gòu),使用Keras來搭建深度學(xué)習(xí)網(wǎng)絡(luò)模型,上層采用JetBrains PyCharm軟件。網(wǎng)絡(luò)模型所使用的激活函數(shù)為ReLU,采用Adam作為梯度更新方法,學(xué)習(xí)率設(shè)為0.05。
由于神經(jīng)網(wǎng)絡(luò)模型的迭代次數(shù)對于實驗結(jié)果的影響比較大,迭代次數(shù)越大,模型的擬合程度越好,進而會導(dǎo)致模型的過擬合問題。因此,本文對迭代次數(shù)進行了單因子變量實驗。如圖5所示,當?shù)螖?shù)為30時,訓(xùn)練集和測試集的數(shù)據(jù)上F值都處于一個較高的水平。因此本文實驗迭代次數(shù)設(shè)為30,同時將Dropout的參數(shù)設(shè)為0.5以防止過擬合。
圖 5 基于迭代次數(shù)的F值的變化趨勢Fig. 5 Trends in F values based on iterations
詞向量維度是實驗的一個重要參數(shù),維度的高低會影響模型中參數(shù)的數(shù)目。維度過高,容易導(dǎo)致過擬合,達不到預(yù)期的效果。維度過低,難以包含所需要的全部信息。本實驗采用單因子變量法確定詞向量維度的最優(yōu)值,實驗結(jié)果如圖6所示,詞向量維度初始值從30開始,并不斷增加。在單一變量的情況下,詞向量維度在80的時候F值達到最優(yōu)值。因此在神經(jīng)網(wǎng)絡(luò)訓(xùn)練過程中,選用80作為詞向量維度的設(shè)定值。本文模型訓(xùn)練的參數(shù)和函數(shù)設(shè)置如表3所示。
圖 6 基于詞向量維度的F值的變化趨勢Fig. 6 Trends in F values based on word vector dimensions
表 3 實驗參數(shù)設(shè)置Table 3 Experimental parameter settings
為了證明本文提出模型的有效性,將本文模型分別與CNN、Bi-GRU、CRF、CNN+Bi-GRU、Bi-GRU+CRF等模型做對比實驗,進行情感分析的性能對比。
CNN:將詞向量作為輸入在CNN中進行分類。
Bi-GRU:將詞向量作為輸入在雙向門控循環(huán)單元中進行分類。
CRF:將詞向量輸入到條件隨機場中進行分類。
CNN+Bi-GRU:將CNN與Bi-GRU采用聯(lián)合訓(xùn)練的方式,詞向量分別輸入兩種神經(jīng)網(wǎng)絡(luò)中,得到的輸出進行特征融合,利用Softmax進行分類。
Bi-GRU+CRF:將Bi-GRU模型與CRF模型以鏈式方式進行組合,將訓(xùn)練好的詞向量作為Bi-GRU模型的輸入,其輸出作為CRF模型的輸入,最終輸出情感分析結(jié)果。
C-BG+CRF:本文提出的混合神經(jīng)網(wǎng)絡(luò)與條件隨機場相結(jié)合的情感分析模型。
實驗結(jié)果如圖7,對比發(fā)現(xiàn),CRF單模型和神經(jīng)網(wǎng)絡(luò)模型相比,其分類的準確率和F值較低,證明了傳統(tǒng)機器學(xué)習(xí)方法在情感分析中的表現(xiàn)與深度學(xué)習(xí)確實存在差距。本文模型的收斂速度跟CRF單模型差距不大,且在準確率和F值等指標上均優(yōu)于其他模型,證明了本文模型的有效性。
圖 7 6種模型F值比較Fig. 7 Comparison of F value in six models
對比實驗的測試結(jié)果如表4所示。本文模型與CNN單模型、Bi-GRU單模型和CRF單模型相比在準確率、召回率和F值等指標上均表現(xiàn)出了良好的優(yōu)越性。實驗說明本文模型與單個模型相比,在情感分析任務(wù)上確實具有更好的效果。
表 4 不同模型的測試結(jié)果Table 4 Test results of different models
本文模型與CNN+BiGRU模型進行對比,分類效果有所提升。因為本文模型采用CRF作為分類器而不是Softmax函數(shù),對異常標簽的處理具有更好的準確性,可以有效地促進情感分類器性能上的提升。本文模型與BiGRU+CRF模型相比在F值上有所提升,同時收斂速度加快。兩種神經(jīng)網(wǎng)絡(luò)共同訓(xùn)練得到的特征比單一網(wǎng)絡(luò)更加充分,在準確率上有所提升。實驗說明本文模型與融合模型相比,在情感分析任務(wù)上確實具有更好的效果。
本文針對篇章級的文本進行了分析,提出一種混合神經(jīng)網(wǎng)絡(luò)和CRF相結(jié)合的情感分析模型。將一段文本按照句子劃分為不同的區(qū)域,結(jié)合了CNN與Bi-GRU兩種神經(jīng)網(wǎng)絡(luò)獲得的語義信息和結(jié)構(gòu)特征。同時,將分別通過神經(jīng)網(wǎng)絡(luò)得到的句子的向量表示拼接在一起,采用條件隨機場模型作為分類器。本文模型充分考慮了上下文信息,使學(xué)習(xí)到的特征更加豐富。在NLPCC 2014數(shù)據(jù)集上進行訓(xùn)練和測試,總體上看,證明了本文的方法能夠有效地對篇章級文本進行情感分類,取得了良好的效果。下一步考慮在詞向量中融入主題詞信息,從而更好地針對篇章中多主題進行文本情感分析任務(wù)。