何鴻業,鄭 瑾,張祖平
(中南大學 信息科學與工程學院,長沙 410083)
在互聯網信息中,文本信息占很大的比重,如何對大量文本進行規整分析一直是自然語言處理的研究熱點,而文本情感分析是其中一個重要任務。隨著社交網絡的發展,網站評論區、微博等平臺成為互聯網用戶信息的重要載體,這類平臺上的文本通常具有篇幅短、表達不規范等特點,這也給文本情感分析帶來了巨大的挑戰。如何從這類文本中捕獲到用戶的情感傾向信息,對于輿情監控有著重要的研究意義。
傳統的情感分析任務通常使用基于詞典的方法或基于機器學習方法來完成[1]。前者主要依賴于詞典數據集,通過點互信息量(Pointwise Mutual Information,PMI)[2]等方法來判斷新詞的情感傾向,進而對文本整體進行情感分析。后者通常使用詞袋(Bag of Words,BOW)模型等將文本表示成定長向量,并使用監督學習的方法對文本情感進行分類,基于機器學習的情感分析一直是研究的主流。近年來,隨著詞向量工具Word2Vec的公布,相關研究增多,文本可以有效地以低維且連續的形式進行表示[3-4],這也成為在自然語言處理(Natural Language Processing,NLP)領域引入深度學習技術的基礎,其中卷積神經網絡(Convolutional Neural Network,CNN)在情感分析和文本分類領域有著很好的應用[5-6]。在目前文本卷積神經網絡中,單詞通常使用詞向量來表示,文本則根據其中單詞對應的詞向量來構建矩陣表達,最終模型的分類能力與使用的詞向量的質量有直接聯系,如果作為輸入的原始詞向量表示存在語義上的噪音,網絡擬合后的分類效果會變差。
為提高輸入文本表示的質量,本文構建結合詞性特征的文本卷積神經網絡模型WP-CNN。首先在詞向量表示基礎上引入詞性(Part of Speech,POS)特征組合的方法,對原始文本進行詞性標注與拼接,通過詞性特征進行詞義消歧以改進詞向量的訓練;然后引入原始文本詞向量表示和詞性拼接表示雙通道輸入策略,豐富網絡的輸入特征,避免網絡訓練由于輸入噪音造成的過擬合現象。
情感分析的目標在于挖掘文本中觀點的傾向與態度,文獻[7]提出使用機器學習的方法來處理篇章級別的情感分析任務,將文本的傾向判斷視為一種文本情感分類情形,并使用支持向量機(Support Vector Machine,SVM)、邏輯斯蒂回歸(Logistic Regression,LR)等機器學習分類算法來進行情感分析。早期一般通過計算文本中詞的TF-IDF權重,并使用詞袋模型來表示文本,這是一種高維稀疏的文本表示方式,當文本集過大時,會存在維度災難的問題,并且無法捕獲深層語義。文獻[8]通過使用隱含語義分析(Latent Semantic Indexing,LSI)對原始文本表示進行特征降維以應對維度災難。針對深層語義捕獲的問題,文獻[9]使用隱含Dirichlet分布(Latent Dirichlet Allocation,LDA)對文本進行主題建模以更好地判斷文本情感極性。文獻[10]則利用二元文法(Bigram)來捕獲更多的上下文信息來改善情感分類的效果。
詞向量研究的深入為情感分析以及其他NLP問題提供了新的思路。文獻[11]提出的神經網絡語言模型為詞向量的研究奠定了基礎,而之后由文獻[3-4]提出的CBOW和SkipGram模型,極大地提高了詞向量模型訓練的效率,使單詞能夠被高效地映射到低維連續的向量空間上,從根本上解決文本表示的維度災難等問題。文獻[12]基于詞向量提出了句向量模型DM與DBOW,在情感分類上獲得了很好的效果。另外,詞向量低維連續的特性使其成為在NLP任務中進入深度學習的基礎。文獻[5]建立了經典的文本卷積神經網絡模型,在此基礎上,文本卷積神經網絡的諸多改進模型被廣泛應用到情感分析任務中:文獻[13]對卷積神經網絡應用于情感分析任務的調參進行了詳細分析;文獻[14]利用結合注意力模型(Attention Model)的文本卷積神經網絡來完成對文本中特定目標的情感分析。
盡管文本卷積神經網絡在情感分析任務上獲得了很好的效果,但是文獻[15]指出,詞向量的訓練通常以詞為單位,無法捕獲一詞多義等現象,且訓練對文本噪音十分敏感。文本卷積神經網絡分類效果與文本詞向量直接聯系,如果作為輸入的詞向量語義表達存在語義上的噪音,網絡訓練容易造成過擬合。
WP-CNN模型的介紹分為3個部分:第1部分為結合詞性拼接改進的文本表示方法;第2部分為雙通道卷積神經網絡結構;第3部分為模型訓練的介紹。
本節將詳細介紹如何使用詞性特征來改進詞向量訓練,并展示基于詞性拼接的文本矩陣表達方式。
2.1.1 基于詞性特征的詞義消歧
詞向量訓練能將文本中的詞映射為低維連續的向量,很好地解決了傳統詞袋模型對單詞進行獨熱編碼帶來的數據稀疏性與維度災難。但是,傳統的詞向量模型并不能捕捉上下文關系,因此,對于一詞多義不敏感。一詞多義在中英文語境下皆有存在,如以下例句所示,英文單詞“works”和中文詞語“制服”在各自2種語境下分別呈現出不同的詞義,然而,詞向量模型在訓練時無法區分單詞不同語境下的歧義,因此,會給后續模型的輸入帶來噪音。
The works(名詞,意為藝術作品) of this artist are very amazing.
He works(動詞,意為工作勞動) hard in the factory.
那位民警制服(動詞,意為使屈服)了一個狡猾的罪犯。
在這兒上班的人必須穿上規定的制服(名詞,意為統一的服飾)。
可以利用單詞的詞性來區分某些一詞多義的情形,本文利用詞性標注技術獲取單詞的詞性并將其與單詞拼接,構成“單詞-詞性對”(Word-POS),例如(works,verb)、(works,noun)、(制服,動詞)和(制服,名詞),進而將文本轉化為Word-POS序列作為SkipGram等詞向量訓練模型的輸入。拼接詞性后的單詞被訓練為Word-POS向量,相對于原始詞向量能達到詞義消歧的作用。
2.1.2 文本矩陣表示
對于卷積神經網絡,文本需要以矩陣的形式作為輸入。給定一篇長度為l的文本W={x1,x2,…,xl},首先通過詞性標注獲取每個詞的詞性P={p1,p2,…,pl},然后將文本拼接為Word-POS序列WP={(x1,p1),(x2,p2),…,(xl,pl)}。通過預訓練的Word-POS向量模型映射后,每個Word-POS單位都會被轉化為n維的Word-POS向量wpk,文本被轉化為l×n維的矩陣表示。結合詞性特征的文本表示的具體流程如圖1所示。
本文對文獻[5]提出的經典文本卷積神經網絡模型進行改進,提出一種結合詞性特征的文本卷積神經網絡WP-CNN,將基于原始詞向量構造的文本矩陣和上節展示的Word-POS表達矩陣相結合,形成網絡的雙通道輸入。整體神經網絡結構如圖2所示。

圖2 結合詞性特征的雙通道文本卷積神經網絡
2.2.1 雙通道輸入
在文本集合數據不充足或者由于原始文本不規范導致詞性標注不準確時,訓練出Word-POS向量也會不精準。使用存在噪音的Word-POS矩陣輸入會給網絡訓練帶來過擬合現象。為了避免這種情況,本文模型采取雙通道輸入策略,保留原始文本詞向量矩陣的輸入,將文本Word-POS矩陣作為卷積神經網絡第2個通道的輸入,輸入分別表示為S1=[x1,x2,…,xl]和S2=[wp1,wp2,…,wpl],其中,l為文本中單詞數量,S1為詞向量矩陣,xk為文本中第k個詞的詞向量,S2為詞性拼接向量矩陣,wpk為文本中第k個Word-POS單位的向量表示。
2.2.2 卷積操作
在卷積神經網絡中,卷積核的作用在于通過窗口滑動來提取輸入數據上的局部特征,而在文本卷積神經網絡中,通常選取h×n維大小的卷積核在文本矩陣相鄰的詞上進行滑動以獲取卷積特征,其中,n為詞向量維度,h代表窗口在多少個相鄰詞上滑動。卷積核設置為這種大小的目的是在文本的多元文法上提取上下文特征。而為了盡可能地捕獲更多的上下文信息,文本卷積神經網絡通常會使用多組高度設定不同的卷積核來在文本矩陣上滑動。但是,卷積核組的增加相應地會給網絡訓練帶來更多的消耗,并且過多地引入卷積核組,網絡分類效果后續的提升并不明顯。考慮到網絡整體的訓練效率,本文選擇3組卷積核,分別為unigram卷積核(h=1)、bigram卷積核(h=2)與trigram卷積核(h=3)。為展示卷積核在數個鄰近單詞上進行特征提取的操作過程,本文將鄰近位置上的單詞以及Word-POS的向量拼接分別定義為S1,i:j=[xi,xi+1,…,xj]和S2,i:j=[wpi,wpi+1,…,wpj],當卷積核高度指定為h時,每次卷積滑動提取的特征值表示為:
ci=f(W1·S1,i:(i+h)+W2·S2,i:(i+h)+b)
(1)
其中,W1、W2分別代表卷積核在2個通道上的權重,b是偏置項,f(·)為網絡中的非線性激活函數,此處選取了Relu函數,如式(2)所示。
f(x)=max(0,x)
(2)
當卷積核在長度為l的文本上滑動完畢后,根據卷積核高度h的大小,共可提取l-h+1個卷積特征,原始文本將被映射到一個特征向量上,表示為:
c=[c1,c2,…,cl-h+1]
(3)
2.2.3 池化操作
池化層負責對卷積層獲得的特征進行二次篩選,在提取重要特征的同時提高整體網絡的訓練效率。如上節所述,卷積核在輸入數據上滑動會提取一組局部特征,池化層的作用就是篩選出這其中最重要的特征。常見的池化方法有最大池化(max pooling)與平均池化(average pooling)。本文模型使用最大池化進行特征篩選,當確定卷積核高度h時,在經過卷積核操作得到的特征向量c上,池化層篩選出的特征值c′可以表示為:
c′=max(c1,c2,…,cl-h+1)
(4)
(5)
池化層的輸出將作為最后全連接層的輸入,通過softmax完成情感傾向的預測。p(yk)為文本在第k種情感傾向上的輸出,代表了文本歸為第k種情感傾向的概率,p(yk)通過softmax歸一化后表示為:
(6)
其中,si與bi分別為全連接層的對應輸出為yi的參數與偏置,n為輸出類別的總數。指定輸入文本表示為Xi,其真實情感標簽為yi,網絡參數的集合為θ。為方便目標函數的表示,本文將整體網絡前向傳播后輸出類別為yi的概率簡寫為P(yi|Xi,θ)=p(yi),那么網絡訓練的目標函數可以表示為:
(7)
其中,D為訓練文本集的大小。模型訓練采用隨機梯度下降(Stochastic Gradient Descent,SGD)算法來最小化目標函數,每輪訓練迭代通過反向傳播來更新網絡中的各個參數,直到模型達到擬合。
本文使用譚松波整理的中文酒店評論情感分析語料ChnSentiCorp-Htl-unba-10000,這是一個不平衡語料集合,含有10 000篇從攜程網等網站上采集整理的酒店評論數據,其中正向評價文本7 000篇,負向評價文本3 000篇。此外,為驗證WP-CNN在中英文上的泛用性,本文還在文獻[16]整理的英文影評語料上進行了實驗,語料含義正負向英文影評各5 331篇,是一個平衡數據集。對于2組語料集的實驗,實驗各自抽取了90%的文本用作網絡的訓練集,10%的文本用作測試集。
對于2個數據集,本文分別去掉了文本中的特殊符號,針對中文酒店評論語料,使用中文分詞工具jieba進行了分詞處理。此外,為構造用于訓練Word-POS向量的詞性拼接語料,需要對文本進行詞性標注,其中,本文使用jieba工具中的詞性標注功能來獲取中文語料詞性特征,同時使用自然語言處理工具nltk來完成英文詞性標注。
為避免外部數據引入對實驗的影響,本文只使用原始語料來進行相關向量訓練。其中:詞向量的訓練使用未拼接的語料庫;Word-POS向量的訓練使用經過詞性特征拼接后的語料庫。本文詞向量的訓練使用了Word2Vec工具,此工具包含SkipGram和CBOW方法的實現。針對文本的原始表示,實驗同時使用了SkipGram和CBOW方法來訓練詞向量來初始化后續用于對比的基準文本卷積神經網絡。而對于Word-POS向量,本文統一使用SkipGram方法進行訓練。詞向量/Word-POS向量訓練相關參數如下:向量的維度100維;上下文窗口大小為10;向量訓練迭代次數為10次。
本文的網絡結構使用了tensorflow庫來進行搭建,相關參數描述如下:輸入的通道數為2,分別對應文本詞向量矩陣和Word-POS矩陣,每輪輸入的樣本數量(batch-size)為64;選取了3種窗口大小的卷積核,分別為1×100(unigram卷積核)、2×100(bigram卷積核)和3×100(trigram卷積核),其中100為詞/Word-POS向量的維度,每組卷積核的數量各為64;為防止過擬合,網絡在softmax層使用了dropout機制,全連接層的節點會進行隨機失活,失活率設置為0.5。
文本情感分類可以視為一種文本分類任務,本文使用準確率Precision、召回率Recall以及F1值F1-Score作為分類評估標準。準確率定義為正確分類為指定類別的文本數量與分類到了指定類別的全部文本數量的比值;召回率定義為正確分類為指定類別的文本數量與全部指定類別文本數量的比值;F1值是準確率和召回率的調和均值,能對準確率和召回率進行綜合評估。設TP為正確分類到正類的文檔數,TN為正確分類到負類的文檔數,FP為誤分類到正類的負類文本數量,FN為誤分類到負類的正類文本數量,則對于正類,各評估標準可被表示為:
(8)
(9)
(10)
本文用來評估的準確率和召回率分別為正類與負類的準確率均值和召回率均值,而F1值則使用平均準確率和平均召回率通過式(10)計算獲得。
3.5.1 對比模型介紹
為比較各種模型在2組數據集上的表現以驗證WP-CNN在情感分析任務中的有效性,本文選取了若干傳統機器學習和基準文本卷積神經網絡模型與本文提出的模型進行了對比。對于傳統機器學習,使用詞袋模型對文本進行表示,并選用SVM和LR2種算法進行情感分類。根據詞向量初始化方式的不同,選擇多種用于對比基準文本卷積神經網絡,分別為詞向量隨機初始化并在網絡訓練過程中通過反向傳播動態調整的Rand-CNN、詞向量分別通過CBOW模型和SkipGram模型初始化的CBOW-CNN和SkipGram-CNN。此外,為分析雙通道輸入對實驗結果的影響,本文使用了2種WP-CNN模型進行對比,分別為去除了原始詞向量矩陣輸入,文本只以Word-POS矩陣作為單通道輸入的WP-CNN1;文本同時使用詞向量矩陣和Word-POS矩陣作為雙通道輸入的WP-CNN2。
3.5.2 實驗結果分析
表1和表2展示了使用各個模型在數據集上擬合后獲得的分類效果。從中可以看出:使用隨機初始化輸入的Rand-CNN相對于傳統機器學習方法并沒有顯著的提高,在英文數據集上效果甚至差于SVM,F1值僅為0.759 7;Rand-CNN在學習分類網絡參數的同時還要對原始詞向量進行調整,在訓練數據不充足的情況下,訓練詞向量質量較差;相比之下,使用預訓練詞向量初始化輸入的CBOW-CNN和SkipGram-CNN模型相對于Rand-CNN和有明顯的提升,這證實了文本卷積神經網絡的分類效果與輸入表達方式有直接關系,網絡對于輸入的噪音相當敏感。

表1 中文酒店數據情感分析結果

表2 英文影評數據情感分析結果
通過對比發現,結合詞性特征的WP-CNN在各項評估指標上要明顯優于其他模型。在中文酒店評論集上,相對于效果最佳的基準模型SkipGram-CNN,單通道的WP-CNN1與雙通道的WP-CNN2在F1值上分別提升了0.019 7與0.025 9;而在英文影評數據上F1值分別提升了0.021 9與0.032 8。實驗結果證實了通過結合詞性特征來對詞向量訓練進行詞義消歧可以改善文本卷積神經網絡的輸入表達,進而得到更佳的分類能力。同時,基于雙通道的WP-CNN2在情感分析效果上要好于單通道WP-CNN1,在2個數據集上,前者F1值分別高于后者0.006 2和0.010 9,這也驗證結合原始詞向量的雙通道輸入能提高網絡分類能力,這點在文本相對更不規范的英文影評情感數據集上表現的更明顯。
3.5.3 迭代結果分析
圖3和圖4分別展示了在2組情感分析實驗中各網絡前50輪迭代的分類準確率。從中可以看出:2種WP-CNN每輪迭代效果都要優于各基準文本卷積神經網絡,從第5輪迭代開始其分類準確率就明顯高于其他網絡模型;2組實驗中Rand-CNN由于需要動態調整詞向量,每輪迭代的分類準確率都是最低的。

圖3 中文酒店數據集實驗前50輪迭代結果

圖4 英文影評數據集實驗前50輪迭代結果
通過觀察可發現,WP-CNN1收斂需要的迭代次數基本和CBOW-CNN和SkipGram-CNN保持一致。相對地,由于WP-CNN2擁有更多的輸入特征,因此隨著迭代次數的增加,其能體現出比WP-CNN1更好的分類效果,這種趨勢也證實了雙通道輸入策略能夠為網絡訓練帶來更大的提升空間,網絡不會由于單一通道的輸入噪音過早地陷入過擬合。
本文在經典文本卷積神經網絡的基礎上引入了詞性拼接強化策略,對網絡的輸入文本進行詞義消歧,進而構建一種結合詞性特征的文本卷積神經網絡模型WP-CNN,并將其應用到文本情感分析任務中。通過詞性拼接捕獲一詞多義現象,WP-CNN可以改善文本詞向量的訓練,為文本卷積神經網絡提供質量更優的輸入,并且其使用結合原始詞向量和Word-POS向量的雙通道輸入,能夠有效地解決因輸入噪音過多造成的網絡訓練過擬合問題。在基于中文酒店評論與英文影評數據的情感分析實驗中,WP-CNN模型的分類準確率、召回率和F1值明顯高于傳統機器學習方法和基準文本卷積神經網絡模型,其有效性得到了驗證。在后續工作中,將把WP-CNN應用到其他NLP任務中評估其效果,并做進一步優化。