孫 悅,李 晶,吳鐵峰,張 磊
(佳木斯大學 信息電子技術學院,黑龍江 佳木斯 154007)
情感分類(sentiment analysis,SA)是指對帶有感情色彩的主觀性文本進行分析、處理、歸納和判斷的過程[1]。隨著互聯(lián)網(wǎng)的發(fā)展,電子商務網(wǎng)站的評價系統(tǒng)成為了客戶分享見解、提出意見的重要平臺,其中所蘊含的信息亟待有效的方法進行挖掘處理[2]。傳統(tǒng)的情感分類技術主要分為兩類:基于規(guī)則的方法和基于統(tǒng)計的方法[3]。前者主要利用情感詞來判斷上下文的語義信息,需要用人工的知識來編寫詞典和模板對文本中的情感傾向性進行分析[4]。后者是從機器學習入手,利用人力去標注訓練語料,從而進行特征提取和統(tǒng)計模型構建,自動化地實現(xiàn)情感極性的判定[5]。
現(xiàn)有研究中產(chǎn)品特征的分類方法大多利用情感詞或者是特征評價詞來判斷客戶對產(chǎn)品的情感傾向。張慶慶等[6]用句法關系與SVM結合的方法做情感分類;王勇等[7]使用極性詞典的方法進行情感分類;梁軍等[8]利用深度學習來做中文文本微博情感分析,采用LSTM遞歸網(wǎng)絡發(fā)現(xiàn)特征并根據(jù)前后詞語的關聯(lián)性引入情感極性轉(zhuǎn)移模型進行情感分析并取得不錯效果。
文中使用句子級別的情感分類方法,通過利用上下文語義信息,避免了詞級別分類所帶來的分類不準確問題;提出了詞嵌入和多通道卷積神經(jīng)網(wǎng)絡(word embedding and multi-channel convolution neural network,WMCNN)模型應用于商品短評論的情感分類任務中。首先按照高斯分布隨機初始化詞向量,然后將其訓練好并進行組合,最后將其作為卷積神經(jīng)網(wǎng)絡的輸入特征,并作為網(wǎng)絡參數(shù)一起參與迭代訓練過程。此外,在使用相同數(shù)據(jù)集的基礎上,引入幾組機器學習模型來進行比對。
卷積神經(jīng)網(wǎng)絡是近年興起的機器學習的一個研究領域,它的概念最初由Hinton等[9]在2006年提出,是利用多層神經(jīng)網(wǎng)絡去模擬人腦對信號的分析,從而提取有效特征。卷積神經(jīng)網(wǎng)絡被提出以來在計算機視覺[10]、語音識別[11]和自然語言處理[12]等領域取得了卓越的效果。卷積神經(jīng)網(wǎng)絡的卷積層能很好地提取數(shù)據(jù)的局部特征,通過池化層又能夠在局部特征中進一步提取最具有代表性的特征[13]。為實現(xiàn)評論短文本中的特征信息得到有效的挖掘和表達,文中引入了卷積神經(jīng)網(wǎng)絡模型來解決短文本評論的情感分類問題。
基于卷積神經(jīng)網(wǎng)絡的短評語情感分類模型的流程模型結構如圖1所示,具體包括預處理、卷積層、池化層和輸出層,它們之間的關系為底層服務上層。
圖1表示W(wǎng)MCNN模型的結構,首先將訓練集進行預處理得到訓練集和測試集。訓練集通過多通道卷積操作、最大池化操作后經(jīng)由Softmax分類器進行分類訓練。測試集同樣進行多通道卷積操作、最大池化操作,最后使用Softmax分類器得到分類結果。
圖1 模型結構
卷積神經(jīng)網(wǎng)絡通常處理二維矩陣,因此需將文本處理成二維矩陣的數(shù)據(jù)作為模型的輸入數(shù)據(jù)。在實驗中定義的第一個網(wǎng)絡層是嵌入層,這一層的作用是將詞匯索引映射到低維度的詞向量進行表示。模型首先從短評語訓練集中提取出每條評論的特征矩陣,即對進行過預處理的數(shù)據(jù)進行jieba分詞處理,這時將每個句子L:{x1,x2,…,xn}劃分成了n個詞x1,x2,…,xn。獲取L中每個詞xi的詞表達,其中xi∈Rk,是指這條評論中第i個詞所對應的k尺寸詞向量,所以將xi表示為Rk×1空間中的向量Xi:
Xi=(yi1,yi2,…,yik)
(1)
將L中所有的詞語的詞表達按照詞序列的方式從上至下排列:
x1:n=x1⊕x2⊕…⊕xn
(2)
卷積神經(jīng)網(wǎng)絡的輸入即為n個k維向量組合而成的n×k的二維矩陣。假設數(shù)據(jù)集中的長度最長的評論的詞語個數(shù)為n,對于長度小于n的樣本,進行補零處理。具體的評論L被轉(zhuǎn)換為Rn×k的特征矩陣為:
(3)
在卷積神經(jīng)網(wǎng)絡中,卷積層的主要作用是通過窗口的滑動來提取輸入層輸入的數(shù)據(jù)的局部特征。在該實驗中,選取大小為h×k維的卷積核在文本矩陣中滑動來獲取短評語中的卷積特征。其中h為窗口大小,k為詞向量維度,不同的卷積核能夠得到圖像不同映射下的特征。模型在實驗中會設置多個卷積核是為了能夠更加全面地獲取評論短語表達中的特征,從而降低特征提取過程中的偶然性。為考慮實驗整體的訓練效果,實驗選擇了三組卷積核。其中卷積操作中的濾波器大小w∈Rh×k:
(4)
這個是指對窗口大小為h的k維詞向量進行卷積操作,則輸出特征為:
yi=f(w·xi:i+h-1+b)
(5)
其中,b為偏置;f為激活函數(shù)。
為了加快訓練的收斂速度,實驗中采用了ReLu函數(shù)作為激活函數(shù):
f(x)=max(0,x)
(6)
濾波器會被應用在一個句子中每一個可能窗口里的單詞即輸入文本的矩陣{x1:h,x2:h+1,···,xn-h+1:n}產(chǎn)生一個特征圖:
y=[c1,c1,…,cn-h+1]
(7)
池化層一般都直接放在卷積層后面,是為了簡化從卷積層輸出的信息并且輸出一個更緊湊的特征映射。池化層是對輸入的特征圖進行壓縮,一方面使特征圖變小,簡化網(wǎng)絡計算復雜度;一方面進行特征壓縮,提取主要特征。
實驗利用最大池化操作來進行特征篩選,對特征圖y進行池化操作所篩選出的特征值y'可表示為:
(8)
假設每組卷積核的數(shù)量均為s,則最大池化層的輸出為:
(9)
最后一層采用全連接方式,將池化層的輸出作為全連接層的輸入,通過Softmax分類器來完成對情感類別概率的預測從而映射出正負情感。為了防止過擬合,在全連接層的訓練中引入Droupout方法,即每次迭代的過程中都隨機放棄一部分訓練好的參數(shù)。
池化層得到n個訓練數(shù)據(jù){(x1,y1)(x2,y2)…(xn,yn)},其中xi是文本特征向量,yj是文本類別。用假設函數(shù)針對每個類別yj估算其概率g(p=yj:xi)。文中進行的是短文本二分類,其假設函數(shù)如下:
(10)
為了計算模型的準確性,對模型進行概率誤差計算,其損失函數(shù)表達式如下:
(11)
現(xiàn)行的模型訓練方法依然是使用梯度下降法,實驗采用mini-batch梯度下降的方法來進行訓練。該方法是每次只選擇一小部分樣本參與權值更新的計算,這樣在保證尋求最優(yōu)解的同時還能兼顧收斂速度。
數(shù)據(jù)預處理階段的主要目的有兩個。一個是過濾掉垃圾評論,另一個是將評論分句變?yōu)槎涛谋镜脑u論。刪除的評語包括默認的“好評”、隨意輸入的字符以及“贊”、“不錯”、“還行”等過短的評語。同時對長評論做分句處理,然后進行詞向量訓練。
實驗開始之前需要對模型的參數(shù)進行確定。具體包括以下幾個參數(shù):
(1)卷積核尺寸:考慮到上下文語境的影響,卷積核的寬度保持不變,設置三個窗口大小分別為3、4、5的不同卷積核進一步減少特征提取時出現(xiàn)的偶然性。
(2)Dropout比例:按照一定概率來“禁用”一些神經(jīng)元的發(fā)放。是為了防止過擬合,實驗中設置為0.5。
(3)批量值:對數(shù)據(jù)集進行批次迭代操作,實驗中采用多次迭代交叉驗證結果,每10次保存一次結果,并取10次結果的平均值。
網(wǎng)上評論短語分類的評價標準以準確率(Accuracy)為測試指標,具體計算方法如下:
(12)
其中,True(xi)為類別為xi的并且分類正確的短評語數(shù)量;Doc(xi)為類別為xi的總短評語數(shù)量;TP、TN為正確分類的正向短評語和負向短評語;FP、FN為錯誤分類的正向短評語和負向短評語。
TensorFlow允許在訓練和評估階段來跟蹤和可視化各種參數(shù)。圖2和圖3分別為本次實驗的訓練精度和測試精度。結果表明,訓練集準確率與測試集準確率基本相同,證明該模型沒有過擬合現(xiàn)象。
圖2 訓練集準確率
圖3 測試集準確率
為了測試模型的效果,一般選取幾種其他方法應用在相同的數(shù)據(jù)集上查看對應效果。該實驗采用10折交叉驗證法,結果如表1所示??梢钥闯觯瑢嶒炈鶓玫哪P蛯Χ淘u語文本的分類結果有了提升,說明該模型能提高短評語文本情感分類的效果。
另外選取其中一折的實驗結果,如圖4所示。
圖4 準確率對比曲線
方法12345678910平均值SVM87.2585.7486.6585.8686.1586.7386.3485.9086.7985.9986.34CNN87.6289.4188.3989.2489.1588.7989.2488.9989.4589.0288.93CNN+Skip-gram90.2691.7891.6991.3690.5391.8290.7991.2490.4691.1791.12WMCNN91.6491.0891.3791.3290.8190.8491.2591.4991.5691.1491.26
可以看出,深度學習方法的實驗效果比基于特征的SVM的傳統(tǒng)機器學習效果好。沒有加入模型和任何處理的卷積神經(jīng)網(wǎng)絡方法在情感分類效果上不是特別理想。而CNN+Skip-gram和文中使用的CNN+rand效果基本相同,可以看出準確率基本相同,但CNN+rand的收斂速度更快。由此可見,在樣本較少的實驗中,CNN+Skip-gram容易在類別分析上出現(xiàn)分類誤差,對于情感詞會出現(xiàn)不能識別的問題。所以在小樣本的短評語文本數(shù)據(jù)集上CNN+rand取得了較好結果。
針對網(wǎng)上評論的情感分類問題進行了研究,提出了基于卷積神經(jīng)網(wǎng)絡的網(wǎng)上評論短文本情感分類模型,該模型不僅能挖掘更多的文本特征,同時相對于其他算法在準確率上也略有提高。文中的創(chuàng)新點在于采用了句子級別的情感分類,在考慮借助上下文語境的基礎上消除了對情感詞典的依賴。由于文中主要針對單標簽標注的特征提取,在多標簽分類方法中并未涉入研究,因此今后的工作將深入研究卷積神經(jīng)網(wǎng)絡的模型結構,以期在多標簽分類模式下數(shù)據(jù)量較大的數(shù)據(jù)集也能得到效果較好的情感分類,從而使神經(jīng)網(wǎng)絡模型能夠更加適用于情感分類的問題。