王汝嬌,姬東鴻
(武漢大學(xué) 計(jì)算機(jī)學(xué)院,武漢 430072)
隨著移動互聯(lián)網(wǎng)和社交網(wǎng)絡(luò)應(yīng)用的飛速發(fā)展,用戶越來越樂于利用微博、微信、Twitter、Facebook等社交軟件在互聯(lián)網(wǎng)中分享和傳播自己對于某件事物的立場和看法,或者在各大電商、APP應(yīng)用等平臺中表達(dá)對某一產(chǎn)品或者服務(wù)的使用感受。如何準(zhǔn)確高效地對這類帶有感情色彩的文本進(jìn)行分析處理、歸納推理已成為當(dāng)前學(xué)界和商界的迫切需求,這就大大地促進(jìn)了文本情感分析技術(shù)的發(fā)展[1]。
文本情感分析依據(jù)其處理的文本粒度不同可以分為:文檔級,句子級,詞語級。文檔級情感分析目的是對文檔表達(dá)的整體情感傾向進(jìn)行判別分類,通常重點(diǎn)關(guān)注話題和與話題相關(guān)的觀點(diǎn)詞和情感詞。句子級情感分析是一個三元分類問題,其重點(diǎn)在于判斷句子是否為主觀句,并在此基礎(chǔ)上判別主觀句的情感傾向是正面、負(fù)面或中立。詞語級情感分析主要包括基于詞典的情感分類方法和基于語料的情感分析方法,前者通過同義、反義以及語義層次來構(gòu)建情感詞,而后者通常人工初始少量情感詞作為種子,然后通過某種統(tǒng)計(jì)方法或者句式分析方法在大規(guī)模語料數(shù)據(jù)中判別其他詞語的情感傾向性。
對Twitter短文本開展情感分析研究,通過判斷Twitter文本作者的情感狀態(tài)是積極的肯定贊賞、中立觀望或者消極的否定批判,獲取Twitter輿論話題的傾向性,把握輿論的走向。但是,Twitter短文本區(qū)別于傳統(tǒng)文本,其長度通常只有1個~100個詞左右,Twitter中包含的信息總量雖然龐大,但是單條Twitter短文本包含的特征少,并且Twitter短文本通常不遵守語法句法特性,組詞造句存在很強(qiáng)的隨意性[2]。因此,Twitter短文本的稀疏性和不規(guī)范性對情感分析帶來了較大的影響和干擾。
本文提出一種基于卷積神經(jīng)網(wǎng)絡(luò)和多特征融合的Twitter情感分類方法。針對Twitter文本獨(dú)特的語言特性,構(gòu)建適用于Twitter文本情感分類的語料特征和詞典特征。然后將Twitter文本詞向量作為卷積神經(jīng)網(wǎng)絡(luò)的輸入,通過訓(xùn)練神經(jīng)網(wǎng)絡(luò)獲取深度詞向量特征。最后,將語料特征、詞典特征和深度詞向量特征進(jìn)行特征融合生成情感特征,使用支持向量機(jī)SVM對積極、中性、消極3類文本進(jìn)行一對一的模型訓(xùn)練和分類,從而實(shí)現(xiàn)Twitter文本的情感分類判別。
情感分析主要任務(wù)是分析文本的主客觀性,然后對主觀性語句的情感傾向以及情感強(qiáng)度進(jìn)行判別分析[3]。目前文本情感分析主要可分為基于情感詞典和基于機(jī)器學(xué)習(xí)兩大類。
1)基于情感詞典方法,該類方法是利用情感詞典、領(lǐng)域詞典等人工編寫的詞典模板來獲取最終的文本情感極性,其中最為關(guān)鍵的是要有一個能準(zhǔn)確評價(jià)情感強(qiáng)度的情感詞典。文獻(xiàn)[4]情感詞典包含2 006個正性詞(Positive Word)和4 783個負(fù)性詞(Negative Word),該詞典不僅包含正常的用詞,還包含了拼寫錯誤、語法變形、俚語以及社交媒體標(biāo)記等。文獻(xiàn)[5]主觀詞典包含2 718個正性詞和4 912個負(fù)性詞并標(biāo)示出了詞性、詞根以及定義了詞語情感極性的強(qiáng)弱。NRC Hashtag詞典和 Sentiment 140詞典[6]這2個詞典是專門針對Twitter文本挖掘創(chuàng)建的,分別用Hashtag和表情符號作為某條Twitter是正面或負(fù)面的信號,共收集了775 000個有情感表達(dá)Hashtag(如難過、生氣、開心等)的Twitter數(shù)據(jù),人工挖掘了與正面情感或負(fù)面情感聯(lián)系緊密的78個種子詞匯,然后計(jì)算詞語偏向正面情感的互信息與偏向負(fù)面情感的互信息的差值作為該詞的情感得分。General Inquirer詞典[7]包含1 914個正性詞和2 293個負(fù)性詞,并依據(jù)每個詞語詞性和強(qiáng)度不同打上不同的標(biāo)簽值。LIWC詞典[8]包含70多個類別的2 300個詞語,該詞典包含影響情感分類判別的介詞、否定詞和表示程度的副詞等。
2)基于機(jī)器學(xué)習(xí)方法,其重點(diǎn)在于選取合適的特征來表征文本,從人工標(biāo)注情感類別的文本中提取特征,用于分類器的訓(xùn)練和構(gòu)建,最終利用機(jī)器學(xué)習(xí)方法獲得文本的情感極性。文獻(xiàn)[9]通過提取文本的詞性、否定詞等特征,使用有監(jiān)督方法進(jìn)行文本情感分類。文獻(xiàn)[10]提出一種基于情感詞圖模型的方法,將PageRank算法引入情感詞權(quán)重中,使用SVM進(jìn)行微博語料的情感分析。文獻(xiàn)[11]通過對微博層次結(jié)構(gòu)的多策略方法的特征進(jìn)行對比分析研究,重點(diǎn)分析了表情符號的規(guī)則方法、情感詞典的規(guī)則方法以及基于SVM的層次結(jié)構(gòu)的多策略方法。文獻(xiàn)[12]提出一種基于Bootstrapping的半監(jiān)督情感分析方法,通過自學(xué)習(xí)來擴(kuò)大情感類別標(biāo)記的規(guī)模,使用迭代學(xué)習(xí)提高SVM情感分類的準(zhǔn)確性。但上述兩大類方法并非完全獨(dú)立,基于情感詞典的機(jī)器學(xué)習(xí)情感分類方法也是研究熱點(diǎn)之一。
Twitter微博屬于短文本,針對其開展的句子級情感傾向性分析的最終目的是將Twitter文本的情感極性分為正向、負(fù)向和中性3大類。目前,國內(nèi)外的研究學(xué)者已經(jīng)在Twitter情感分析領(lǐng)域做出了諸多探索,主要是分析整個句子中的主客觀性,并結(jié)合微博所表現(xiàn)的總體情感傾向性進(jìn)行情感分類。近年來涌現(xiàn)了大量對Twitter文本情感分析的研究,文獻(xiàn)[13]提到了Twitter情感分析面臨的一些困難:數(shù)據(jù)的稀疏性,非標(biāo)準(zhǔn)詞匯的使用,語法缺乏規(guī)范性以及Twitter的多語言特性。研究者設(shè)計(jì)了2種不同的思路解決上述這些困難:一種是基于Twitter本身的內(nèi)容,另一種是使用Twitter的上下文?;趦?nèi)容的模型使用每個Twitter的字符n-gram特征圖表示,語言的獨(dú)立性和語法、句法的錯誤變得不相關(guān),因此分析效果更好。文獻(xiàn)[14]則是構(gòu)建了一個基于Twitter領(lǐng)域的詞法器,然后利用N-gram詞組模型作為情感特征并通過動態(tài)神經(jīng)網(wǎng)絡(luò)DAN2對Twitter消息進(jìn)行分類。文獻(xiàn)[15]針對含有Hashtag的Twitter進(jìn)行分析,提出了Hashtag圖模型,將Hashtags之間的共現(xiàn)關(guān)系和Hashtag的字面意思并入到分類框架中,從而輔助極性判別。針對Twitter文本特性構(gòu)建了一系列文本特征,包括一元詞、二元詞、否定文本個數(shù)、情感詞數(shù)量等,最后采用lib-SVM進(jìn)行情感分類[6]。文獻(xiàn)[16]設(shè)計(jì)了一個Twitter情感分析系統(tǒng),能抓取Twitter中與總統(tǒng)選舉有關(guān)的社會輿論信息并進(jìn)行情感性分析。
上述這類基于淺層機(jī)器學(xué)習(xí)的方法已在情感分類中得到廣泛應(yīng)用,但這類基于傳統(tǒng)機(jī)器學(xué)習(xí)方法較為依賴構(gòu)造分類器的情感詞典特征以及分類器模型的參數(shù)調(diào)優(yōu)。為解決這一問題,目前已有研究學(xué)者將深度學(xué)習(xí)運(yùn)用到自然語言處理領(lǐng)域中,深度學(xué)習(xí)模型能夠更加高效地完成特征提取任務(wù),并且提取出的特征能夠更好地反映出文本語義信息。
深度學(xué)習(xí)作為一種新興的神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)算法,開啟了機(jī)器學(xué)習(xí)二次革命的浪潮。深度學(xué)習(xí)依據(jù)學(xué)習(xí)方法的不同可以分為深層無監(jiān)督學(xué)習(xí)和深層監(jiān)督學(xué)習(xí)。1)深層無監(jiān)督學(xué)習(xí)可以看作是多個淺層無監(jiān)督學(xué)習(xí)器的疊加,輸入是數(shù)據(jù)的原始特征,輸出是數(shù)據(jù)新的表達(dá),模型中的任意一層輸出均可以看作是數(shù)據(jù)的特征表達(dá),代表方法包括限制玻爾茲曼機(jī)Deep Boltzmann Machines、自編碼器Autoencodes等;2)深層監(jiān)督學(xué)習(xí)方法輸入也是數(shù)據(jù)的原始特征,但輸出是數(shù)據(jù)的label標(biāo)簽,與傳統(tǒng)的淺層監(jiān)督方法最大的不同在于深層監(jiān)督學(xué)習(xí)方法在學(xué)習(xí)迭代過程中會生成很多數(shù)據(jù)的中間表達(dá)或者特征,因此深層監(jiān)督學(xué)習(xí)方法中間層的學(xué)習(xí)或者特征提取過程可以看作是一個特征自學(xué)習(xí)或者特征表達(dá)的過程,代表方法包括深信度網(wǎng)絡(luò)(Deep Belief Network,DBN)、深度神經(jīng)網(wǎng)絡(luò)(Deep Neural Network,DNN)、卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)等。
文獻(xiàn)[17]采用卷積神經(jīng)網(wǎng)絡(luò)CNN實(shí)現(xiàn)了一個多層結(jié)構(gòu)的神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)算法,CNN利用空間相對關(guān)系減少參數(shù)數(shù)目,從而提高反向傳播BP算法的訓(xùn)練性能。它的權(quán)值共享網(wǎng)絡(luò)結(jié)構(gòu)使之更類似于生物神經(jīng)網(wǎng)絡(luò),減少了權(quán)值的數(shù)量,降低了網(wǎng)絡(luò)模型的復(fù)雜度。近年來,CNN被用于自然語言處理領(lǐng)域和情感分析問題上并取得了良好的效果[18]。文獻(xiàn)[19]提出了一個可以同時(shí)利用基于特定任務(wù)調(diào)整的詞向量和靜態(tài)的預(yù)訓(xùn)練詞向量的卷積神經(jīng)網(wǎng)絡(luò)模型,用于句子級別的文本分類任務(wù)。文獻(xiàn)[20]改進(jìn)了CNN的結(jié)構(gòu),進(jìn)行了兩次卷積操作,并提出了動態(tài)K-max pooling池化策略,返回每一個feature maps中最大的K個值。文獻(xiàn)[21]受圖像有RGB、CMYK多通道的啟發(fā),將句子視為圖像,將一個d維的詞向量看成一個有d個通道的像素,在卷積層中,每一個卷積核作用于維度為:filter長度與詞向量維度的乘積即P×|V|的region上,為了降低需要學(xué)習(xí)的參數(shù)數(shù)量,將P個詞向量相加,從而將參數(shù)數(shù)量由P×|V|降低為|V|。不同于上述論文中只使用單詞的詞向量表示,文獻(xiàn)[22]同時(shí)使用了字符級的向量,將詞向量和字符向量合并在一起作為其向量表示。文獻(xiàn)[23]針對句子匹配的問題,提出了一種基于CNN的句子建模網(wǎng)絡(luò),模型解決句子輸入長度不一致的方法是規(guī)定最大的可輸入句子長,然后長度不夠的進(jìn)行補(bǔ)0填充。文獻(xiàn)[24]通過選擇使用詞性標(biāo)注、Word embedding等方法增強(qiáng)模型性能,并且在卷積、池化以及句子表征方面進(jìn)行局部相似度計(jì)算來提升性能。文獻(xiàn)[25]提出一種使用Siamese框架的CNN模型,并且采用多粒度的交互特征,一方面提高了模型的分類性能,另一方面增強(qiáng)了模型的魯棒性。文獻(xiàn)[26]構(gòu)建了一個深度卷積神經(jīng)網(wǎng)絡(luò)模型。針對訓(xùn)練集用word2vec訓(xùn)練出每個詞的詞向量,然后把它們輸入CNN中并作為網(wǎng)絡(luò)參數(shù)一起參與迭代訓(xùn)練過程。最后由CNN中最后一層Softmax層進(jìn)行分類輸出情感極性。
此外,深度學(xué)習(xí)中遞歸自編碼方法也廣泛應(yīng)用在情感分析中。文獻(xiàn)[27]提出一種基于遞歸自編碼方法對句子級文本進(jìn)行情感分析,使用了無監(jiān)督RAE方法學(xué)習(xí)句子組合機(jī)構(gòu),采用有監(jiān)督方法訓(xùn)練帶情感標(biāo)簽的數(shù)據(jù)通過分類判別獲取情感極性。文獻(xiàn)[28]設(shè)計(jì)了一種基于RAE的微博情感分析方法,通過將低維實(shí)數(shù)向量表示的文本作為RAE情感極性轉(zhuǎn)移模型的輸入,最終獲得情感分類判別的極性。
然而,單純使用深度學(xué)習(xí)方法處理情感分類問題會忽略現(xiàn)有情感分類領(lǐng)域積累的大量情感詞典、知識庫、人工特征等資源。此外,Twitter文本是一種口語化的非規(guī)范文本,受字?jǐn)?shù)限制,通常就是簡短的一句話,甚至是若干單詞的組合,缺乏必要的上下文語境關(guān)聯(lián),導(dǎo)致單純地使用詞向量模型來表示文本特征效果可能不太理想。現(xiàn)階段情感分類領(lǐng)域積累的大量情感詞典、知識庫、人工特征等資源,其中關(guān)于情感詞、否定詞、標(biāo)點(diǎn)符號等這些短詞精心設(shè)計(jì)的特征在情感分析中也取得不錯的效果。本文將這類特征與深度詞向量特征進(jìn)行融合,以實(shí)現(xiàn)對Twitter短文本的情感分類。如何合理科學(xué)地設(shè)計(jì)深度卷積神經(jīng)網(wǎng)絡(luò),將深度學(xué)習(xí)技術(shù)與已有的情感分類資源進(jìn)行有效融合,提高情感分類準(zhǔn)確性是本文研究的切入點(diǎn)和突破口。
本文提出一種基于卷積神經(jīng)網(wǎng)絡(luò)和特征融合的Twitter情感分類方法,首先預(yù)先對Twitter文本進(jìn)行預(yù)處理,將Twitter文本轉(zhuǎn)化為統(tǒng)一規(guī)則的規(guī)范化文本,并結(jié)合Twitter文本的語言特性,構(gòu)建Twitter文本情感分類的語料特征和詞典特征。然后使用GloVe獲取Twitter文本的詞向量表示,并將文本詞向量特征輸入本文設(shè)計(jì)的卷積神經(jīng)網(wǎng)絡(luò)中,通過網(wǎng)絡(luò)模型訓(xùn)練獲取深度詞向量特征。最終用于情感分類特征為語料特征、詞典特征和深度詞向量進(jìn)行特征融合的結(jié)果,最后將融合特征使用One-Versus-One SVM支持向量機(jī)進(jìn)行3類情感極性的一對一模型訓(xùn)練和分類。
由于Twitter文本并不像傳統(tǒng)媒體發(fā)布的文本那樣規(guī)范正式,這種非正式文本通常很短不超過140字,多數(shù)都是一句話、一個標(biāo)題,所使用的語言有其自己的特色,內(nèi)容包含有創(chuàng)意的拼寫和標(biāo)點(diǎn)、表情符號、俚語、新詞、URL、特定術(shù)語縮寫、用戶名以及Twitter中特有的主題標(biāo)簽#Hashtag等,這些非正式文本給情感分類帶來了極大挑戰(zhàn)。
為了去除不必要的噪聲干擾,本文預(yù)先對Twitter文本進(jìn)行預(yù)處理,具體規(guī)則如表1所示。針對8種非規(guī)范對象進(jìn)行規(guī)范化轉(zhuǎn)換,并在轉(zhuǎn)換后的文本對象后添加對應(yīng)的標(biāo)記,從而將原始Twitter文本轉(zhuǎn)化為統(tǒng)一規(guī)則的規(guī)范化文本。
表1 Twitter文本規(guī)范化預(yù)處理規(guī)則
經(jīng)過規(guī)范化處理后,得到相對規(guī)范化的Twitter文本,在此基礎(chǔ)上提取語料特征、詞典特征以及深度詞向量特征。
Twitter文本受到長度限制,通常內(nèi)容簡單直觀,整體表達(dá)內(nèi)容單一,導(dǎo)致Twitter文本中情感表達(dá)的詞語和短語往往就代表該文本的傾向性。例如:“They may have a SuperBowl in Dallas,but Dallas ain’t winning a SuperBowl.”,其中“SuperBowl”和“Dallas”代表文本的主題內(nèi)容,而“but”和“ain’t”就代表了文本的情感傾向。針對Twitter短文本的獨(dú)特語言特性,本文設(shè)計(jì)了Twitter文本的語料特征和詞典特征用于對其進(jìn)行情感分類。
如表2所示,使用6種語料特征,總計(jì)30維:
1)標(biāo)簽的數(shù)量:該標(biāo)簽使用Twitter詞性標(biāo)注工具包“ark-tweet-nlp”,其中定義了24種標(biāo)簽,包括名詞、表情符號、用戶名等。
2)Hashtag主題標(biāo)簽數(shù)量:Hashtag是Twitter中用來標(biāo)注線索話題的標(biāo)簽,如#NBA Final則代表這條Twitter與NBA籃球總決賽有關(guān)。
3)Twitter中否定上下文的數(shù)量:否定上下文的定義是以否定詞(no、wouldn’t等)開始,以標(biāo)點(diǎn)符號“,”“.”“:”“!”“?”為結(jié)尾。
4)Twitter中純大寫的詞數(shù)量,如GOOD等。
5)Twitter中連續(xù)出現(xiàn)的標(biāo)點(diǎn)符號序列的個數(shù)以及最長序列的長度,如“!!!”“!?”“?!”“??”等。
6)Twitter中是否出現(xiàn)刻意延長詞:如looove、sooo等。
表2 Twitter短文本的語料特征
除語料特征外,還選取了4個情感字典,分別計(jì)算對應(yīng)的4種情感分?jǐn)?shù),得到總計(jì)16維的詞典特征。
對于Liu Bing詞典和MPQA主觀詞典,計(jì)算如下特征:
1)計(jì)算肯定上下文中包含token的正面分?jǐn)?shù);
2)計(jì)算肯定上下文中包含token的負(fù)面分?jǐn)?shù);
3)計(jì)算否定上下文中包含token的正面分?jǐn)?shù);
4)計(jì)算否定上下文中包含token的負(fù)面分?jǐn)?shù)。
否定上下文的定義與語料特征3)中定義一致,除去否定上下文的剩余部分即為肯定上下文。其中,對于Bing Liu’s Lexicons詞典中的情感詞,正面token給予+1的情感分?jǐn)?shù),負(fù)面token給予-1的情感分?jǐn)?shù)。對于MPQA Subjectivity Lexicon詞典中的情感詞,由于該詞典考慮了情感極性的強(qiáng)弱,因此給予弱情感詞的情感分?jǐn)?shù)分別為+1/-1,強(qiáng)情感詞的情感分?jǐn)?shù)分別為+2/-2。
對于NRC Hashtag和Sentiment 140詞典,計(jì)算如下特征:
1)情感分?jǐn)?shù)不為0的token總數(shù);
2)語句中所有token的情感分?jǐn)?shù)之和;
3)語句中token的情感分?jǐn)?shù)最大值;
4)語句中最后一個token的情感分?jǐn)?shù)。
將30維語料特征和16維詞典特征組合在一起獲得本文構(gòu)建的46維特征。
由于該46維的特征維度間差異較大,為避免分類中某一維特征支配整個分類過程對結(jié)果過分干擾,對46維語料特征和詞典特征進(jìn)行線性歸一化,歸一化公式如下:
其中,Featurenorm為某一維特征歸一化后的結(jié)果;Feature為某一維的原始特征;Featuremax和Featuremin分別為某一維原始特征中的最大值和最小值,通過歸一化將46維特征進(jìn)行等比例縮放。
在使用卷積神經(jīng)網(wǎng)絡(luò)處理自然語言問題時(shí),通常以矩陣表示的句子,采用一個低維的實(shí)數(shù)向量來表示詞語以避免數(shù)據(jù)維數(shù)災(zāi)難。Twitter文本情感分析的輸入是短文本,可以看作是一串單詞序列的組合,那么矩陣的每一行對應(yīng)于一個分詞元素或者一個單詞,矩陣中每一行表示一個單詞的向量,這些向量都是word embeddings的形式,例如Word2Vec和GloVe等。這樣就將文本數(shù)據(jù)用低維度實(shí)數(shù)向量表示,然后可作為卷積神經(jīng)網(wǎng)絡(luò)的輸入。
本文采用了斯坦福開源工具GloVe(Global Vector for Word Representation)獲得文本詞向量表示[29]。它提供了一個用大量Twitter語料預(yù)先訓(xùn)練好的詞向量glove.twitter.27B,里面包含有25維、50維、100維以及200維4種不同維度的詞向量。
詞向量可將每一個詞語映射到d維實(shí)數(shù)向量空間上,假如詞向量空間Ω的大小為|Ω|×d,|Ω|是詞表的大小,代表著詞向量中包含的詞語個數(shù),Ω中每一行表示一個單詞的d維的詞向量。例如,輸入的一條Twitter語料E可以單詞序列[e1,e2,…,
e|E|]表示,其中,|E|表示語料E中包含的詞語個數(shù),即給定句子E,包含|E|個詞語ei,1≤i≤|E|。將語料E轉(zhuǎn)換為詞向量矩陣時(shí),?ei∈E,1≤i≤|E|,在Ω中搜索ei的詞向量,若存在則選取它對應(yīng)的實(shí)數(shù)向量θi表示,若不在Ω中則將其向量置為0,即θi=0。通過將各個詞語的詞向量堆放在一起,最終語料E可轉(zhuǎn)換為大小為|E|×d的詞向量S特征矩陣表示,即:
詞向量特征矩陣S的每一行代表輸入的Twitter文本中一個單詞的詞向量。
如圖1所示,本文構(gòu)建的卷積神經(jīng)網(wǎng)絡(luò)模型由卷積層、池化層、全連接層和softmax層組成,每一層的輸出均為下一層的輸入。
圖1 深度詞向量特征提取算法
利用該模型獲取情感分類的深度詞向量特征,卷積神經(jīng)網(wǎng)絡(luò)構(gòu)造方法如下:
1)卷積層
卷積層接收大小為n×d的Twitter短文本的詞向量特征矩陣S,其中S包含n個單詞,詞向量維度為d,矩陣S每一行表示一個單詞的d維詞向量。選取大小為m×d的濾波器F來對特征矩陣S進(jìn)行卷積操作,從而獲得新的特征值ci,其中i表示第i個特征值,則:
ci=(F*S)i=f(w×Si:i+m-1+b)
其中,f是一個非線性卷積核函數(shù),m表示卷積計(jì)算中滑動窗口的大小,w為大小m×d的濾波器F,b是一個偏置項(xiàng),Si:i+m-1表示從S的第i行至第i+m-1行抽取的局部特征矩陣。這個卷積窗口被應(yīng)用到所有可用的局部特征矩陣S1:m,S2:m+1,…,Sn-m+1:n中,最終生成了特征向量C。
C=[c1,c2,…,cn-m+1]
2)池化層
由于每條Twitter文本的單詞長度不確定,詞向量特征矩陣S大小也不確定,最終導(dǎo)致卷積層輸出特征維度不固定,因此需要對獲得的特征向量C進(jìn)行池化操作。
池化操作采用K-Max Pooling方法,對于某個卷積核獲得的若干特征值,只保留其特征值中得分在前K的特征值,并且保留這K個特征在卷積后的先后順序。
當(dāng)K=1時(shí),K-Max Pooling方法與Max Pooling方法一致,即取得最大值。
通過池化Pooling層可以固定全連接層的神經(jīng)元個數(shù),也固定了全連接層輸出特征的長度,自然地解決了Twitter文本情感分析中句子長度不一致干擾特征提取的問題。
3)全連接層
上述過程描述了卷積窗口為m×d的特征提取過程,而在整個卷積神經(jīng)網(wǎng)絡(luò)中使用了多個不同大小卷積核。本文使用了3種不同尺寸的卷積核,分別為m=3,m=4,m=5。每個尺寸卷積核中包含T個濾波器,每個濾波器產(chǎn)生的特征中又池化獲得K個特征。因此,所有特征在全連接層匯聚為最終3×K×T維的深度詞向量特征V:
4)Softmax層
全連接層輸出的特征V利用Softmax輸出情感極性3分類(正面、負(fù)面、中立)判別的結(jié)果,并依據(jù)訓(xùn)練Twitter文本數(shù)據(jù)中的真實(shí)標(biāo)簽,采用反向傳播算法對卷積神經(jīng)網(wǎng)絡(luò)中的參數(shù)進(jìn)行梯度更新:
P(result|V,Wx,bx)=softmaxx(Wx·V+bx)
其中,softmax為分類器,result表示情感極性判別的結(jié)果result∈{+1,0,-1},下標(biāo)x代表第x輪的梯度更新。
5)情感分類模型的訓(xùn)練和判別
當(dāng)整個CNN網(wǎng)絡(luò)梯度更新收斂后,獲得最終用于情感分類的深度詞向量特征。將語料特征、詞典特征和深度詞向量特征組合在一起作為情感分類的特征,并采用支持向量機(jī)SVM對訓(xùn)練和測試樣本進(jìn)行模型訓(xùn)練和分類判別,其中:情感分類特征=[語料特征;詞典特征;深度詞向量特征]。
由于情感分類面對的是一個3類分類的問題,因此本文使用One-Versus-One SVM進(jìn)行分類,在積極、中性、消極中任意2類之間設(shè)計(jì)一個SVM,總計(jì)設(shè)計(jì)3個SVM分類器,當(dāng)對一個未知語句Sample進(jìn)行情感類別分類時(shí),使用3個分類器進(jìn)行分類判決投票,得票最多的情感類別即是該語句的情感類別。具體分類投票算法如下:
S_Negative,S_Neutral,S_Positive為消極、中性、積極3類Twitter情感語句的訓(xùn)練樣本,訓(xùn)練生成3個分類模型:
Model_1=Train(S_Negative,S_Neutral)
Model_2=Train(S_Neutral,S_Positive)
Model_3=Train(S_Positive,S_Negative)
初始化Negative=Neutral=Positive=0,如果Classifier(Model_1,Sample)=Negative,則Negative=Negative+1,否則Neutral=Neutral+1;如果Classifier(Model_2,Sample)=Neutral,則Neutral=Neutral+1,否則Positive=Positive+1;如果Classifier(Model_3,Sample)=Positive,則Positive=Positive+1,否則Negative=Negative+1;最終Sample的情感類別Label為:Label=max(Negative,Neutral,Positive)。
如表3所示,本文選用了SemEval發(fā)布的關(guān)于Twitter情感分析任務(wù)所提供的公開語料數(shù)據(jù)集來驗(yàn)證本文方法的有效性。將SemEval2013、SemEval2014及SemEval2015數(shù)據(jù)集內(nèi)所有Twitter語料合成在一起,去除重復(fù)和標(biāo)注自相矛盾的Twitter短文本,最終獲得9 396條已標(biāo)注情感極性的短文本,其中情感極性判定積極的有3 574條,消極的為1 344條,中性的為4 478條。由于3個類別的樣本數(shù)目存在差異,這種數(shù)量的不平衡性會導(dǎo)致分類器訓(xùn)練的過程中嚴(yán)重偏向訓(xùn)練樣本多的類別,對分類器性能造成較大的損失。因此,本文選取訓(xùn)練集時(shí)保證了3種類別的訓(xùn)練樣本數(shù)量一致。
表3 SemEval語料集合樣例
如表4所示,實(shí)驗(yàn)中隨機(jī)抽取積極、中性、消極樣本各800條,總計(jì)2 400條語料組成訓(xùn)練集;將剩余6 996條語料作為測試語料。其中制作2個測試集:測試集1為全部剩余的6 996條語料均作為測試集。測試集2為在6 996條測試集語料中積極、中性、消極樣本各抽取相同的544條。
表4 實(shí)驗(yàn)數(shù)據(jù)集語料分布
本文選擇精確率P、召回率R以及F值作為評價(jià)指標(biāo)。精確率P表示情感分類后,實(shí)際屬于某個類別的文本數(shù)量與情感分類判斷屬于某個類別的文本數(shù)量的比值:P=a/(a+c)其中,a、b、c和d的定義如表5所示。
表5 情感分類混淆矩陣
召回率R表示情感分類后,情感分類判斷屬于某個類別的文本數(shù)量與實(shí)際屬于某個類別的文本數(shù)量的比值:
R=a/(a+b)
為了綜合考慮精確率和召回率,使用兩者的加權(quán)調(diào)和平均數(shù)F來衡量分類效果:
由于本文設(shè)定的情感類別包括消極、積極和中性3個類別,因此采用了平均精確率av_P、平均召回率av_R、平均av_F值作為最終衡量情感分類方法的性能的評價(jià)指標(biāo),即先對不同類別單獨(dú)計(jì)算P、R和F值,再取算術(shù)平均值。
卷積神經(jīng)網(wǎng)絡(luò)中參數(shù)和函數(shù)設(shè)置如表6所示。使用ReLu作為激活函數(shù),采用Adadelta方法作為梯度更新規(guī)則。而參數(shù)T和d則采用單因子變量法實(shí)驗(yàn)確立最優(yōu)參數(shù)。實(shí)驗(yàn)采用表4中訓(xùn)練集和測試集2種樣本,使用本文方法測試在不同濾波器數(shù)T和詞向量維度d下的av_F值。
表6 實(shí)驗(yàn)參數(shù)設(shè)置
如表7所示,隨著詞向量維度d的增加,情感分類的效果有明顯提升;而當(dāng)濾波器的數(shù)量T增多時(shí),情感分類F值有所提升,但當(dāng)T達(dá)到100個后,對情感分類的提升作用較小。所以,在卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練復(fù)雜度和分類器訓(xùn)練時(shí)間沒有顯著增加的前提下,最終選擇100個濾波器數(shù)量、200維詞向量,深度詞向量特征為3×2×100總計(jì)600維。在此條件下,本文設(shè)計(jì)的情感分類方法準(zhǔn)確性能達(dá)到0.704。
表7 不同濾波器數(shù)T和詞向量維度d下的情感分類結(jié)果
表8給出了本文方法針對測試集2中1 632條Twitter語料的分類結(jié)果,可以看出本文方法訓(xùn)練出來的情感分類器在消極和積極語料中表現(xiàn)較好,F值分別為0.743和0.726,針對中性Twitter語料的F值為0.643。
表8 本文方法的預(yù)測準(zhǔn)確性
為驗(yàn)證本文提出的基于卷積神經(jīng)網(wǎng)絡(luò)和特征融合的Twitter情感分類方法的有效性,將本文方法與N-gram詞袋模型、UNITN模型進(jìn)行對比實(shí)驗(yàn),具體實(shí)驗(yàn)如下:
1)方法1:采用uni-gram特征,使用SVM分類;
2)方法2:采用uni-gram和bi-gram特征,使用SVM分類;
3)方法3:采用uni-gram、bi-gram和tri-gram特征,使用SVM分類;
4)UNITN-CNN:采用word2vec訓(xùn)練的詞向量,并迭代訓(xùn)練,最后使用CNN的Softmax進(jìn)行分類;
5)Corpus-Lexicons-SVM:采用本文提出46維的語料特征和詞典特征,使用One-Versus-One SVM分類;
6)GloVe-CNN-SVM:采用本文提出的深度詞向量特征,使用One-Versus-One SVM分類;
7)本文方法:采用本文提出的語料特征、詞典特征和深度詞向量融合情感特征,使用One-Versus-One SVM分類。
上述7種不同情感分類方法在表4中2個測試集下對比實(shí)驗(yàn)結(jié)果如表9所示。
表9 不同方法的分類準(zhǔn)確性對比
通過對比方法1、方法2和方法3發(fā)現(xiàn):引入bi-gram和tri-gram特征能顯著提升情感分類的準(zhǔn)確性,但是隨著N-gram模型N值變大,會導(dǎo)致模型訓(xùn)練難度增大。
通過對比N-gram詞袋模型和UNITN-CNN發(fā)現(xiàn):卷積神經(jīng)網(wǎng)絡(luò)使用不同尺寸的多個卷積核來學(xué)習(xí)文本詞向量特征,并且通過池化層來固定全連接層的神經(jīng)元個數(shù),降低了輸出特征的維數(shù),避免維數(shù)災(zāi)難的出現(xiàn),并且也一定程度地提升了檢測準(zhǔn)確率。
通過對比UNITN-CNN和本文方法發(fā)現(xiàn):本文方法在采用GloVe詞向量作為原始特征并使用One-Versus-One SVM分類器取代CNN的softmax進(jìn)行模型訓(xùn)練和情感分類時(shí)能夠提高情感分類精確度。
本文設(shè)計(jì)特征融合方法(對比Corpus-Lexicons-SVM、GloVe-CNN-SVM與本文特征融合方法):這種特征融合在保證深度詞向量特征反映文本上下文語義關(guān)系和其中蘊(yùn)含的情感信息表達(dá)的基礎(chǔ)之上,又采用如情感詞得分、延長詞、連續(xù)標(biāo)點(diǎn)等特征增強(qiáng)了對原詞向量的情感信息表達(dá)。實(shí)驗(yàn)結(jié)果證明,將語料特征、詞典特征與深度詞向量特征進(jìn)行特征融合能夠有效地提高情感分類的準(zhǔn)確性。
此外,從SemEval數(shù)據(jù)集中抽選了6條Twitter語句,如表10所示,分別給出了它們采用方法3、UNITN-CNN以及本文方法的情感分類結(jié)果。其中人工標(biāo)記“-1”代表該條語句被標(biāo)記為消極、“0”代表中性、“1”代表積極。
1)樣例1中包含了“great” “awesome”等明顯的正面極性詞,樣例3中出現(xiàn)了“hate” “bad” “no”明顯的負(fù)面極性詞,樣例5為不帶情感色彩的陳述句,所以3種方法都做出了準(zhǔn)確的情感判別。
2)樣例2不是情感詞單獨(dú)起作用,而是通過詞語的序列表達(dá)出邏輯關(guān)系。CNN處理此類樣例時(shí),由于出現(xiàn)了“not” “didn’t”等大量的負(fù)面詞,從而被誤分類為消極的情感傾向。而本文方法中的深度詞向量特征反映了詞語間的序列關(guān)系,“may not”是否定詞,“but”表示轉(zhuǎn)折關(guān)系然后接著“amazing”是正面極性詞,因而被判定為積極的情感傾向。深度詞向量特征與語料特征、詞典特征的融合糾正了僅靠情感詞判別導(dǎo)致的分類錯誤,在考慮詞語的情感極性的同時(shí)也兼顧了詞語序列表達(dá)的邏輯,從而做出正確的分類。
3)樣例4從詞語的極性來說“best”是正向極性詞,詞語序列關(guān)系也沒有出現(xiàn)轉(zhuǎn)折,但該樣例是一種虛擬語氣的表達(dá),其實(shí)表達(dá)的是一種消極的后悔情緒,所以3種方法都將其誤分類為積極的情感傾向。
4)樣例6陳述了他們在雜貨店里自發(fā)的大聲唱歌這樣一個事件,并沒有任何情感傾向性。然而在語句中出現(xiàn)“great”“beautiful”明顯的正向極性詞(實(shí)際為歌詞),因此系統(tǒng)將其誤判為積極的情感傾向。
表10 測試集實(shí)驗(yàn)結(jié)果樣例
綜上所述,對于包含虛擬語氣、反語以及一些既定事實(shí)陳述句的無情感轉(zhuǎn)述容易影響情感分類的準(zhǔn)確性,針對這一類語句的情感分類研究也是后續(xù)研究的重點(diǎn)方向。
本文提出了一種基于卷積神經(jīng)網(wǎng)絡(luò)和多特征融合的Twitter情感分類方法,根據(jù)Twitter文本的獨(dú)特性,構(gòu)建了適用于Twitter文本情感分類的語料特征和詞典特征。在此基礎(chǔ)上,通過卷積神經(jīng)網(wǎng)絡(luò)獲取Twitter文本深度詞向量特征,并將語料特征、詞典特征和深度詞向量特征融合為情感分類特征,最終使用One-Versus-One SVM進(jìn)行分類,實(shí)驗(yàn)結(jié)果顯示本文方法能夠有效地對Twitter文本進(jìn)行情感分類。下一步將針對一些復(fù)雜語法結(jié)構(gòu)的短文本進(jìn)行研究,從而進(jìn)一步提高Twitter文本情感分類的準(zhǔn)確性。
[1] 陸文星,王燕飛.中文文本情感分析研究綜述[J].計(jì)算機(jī)應(yīng)用研究,2012,29(6):2014-2017.
[2] KOULOUMPIS E,WILSON T,MOORE J D.Twitter Sentiment Analysis:The Good the Bad and The Omg![C]//Proceedings of International Conference on Weblogs & Social Media.Berlin,Germany:Springer,2011:538-541.
[3] 趙妍妍,秦 兵,劉 挺.文本情感分析[J].軟件學(xué)報(bào),2010,21(8):1834-1848.
[4] HU Minqing,LIU Bing.Mining and Summarizing Customer Reviews[C]//Proceedings of the 10th ACM International Conference on Knowledge Discovery and Data Mining.New York,USA:ACM Press,2004:168-177.
[5] WILSON T,WIEBE J,HOFFMANN P.Recognizing Contextual Polarity in Phrase-level Sentiment Analysis[J].International Journal of Computer Applications,2005,7(5):347-354.
[6] MOHAMMAD S M,KIRITCHENKO S,ZHU Xiaodan.NRC-Canada:Building the State-of-The-Art in Sentiment Analysis of Tweets[C]//Proceedings of the 7th International Workshop on Semantic Evaluation.Berlin,Germany:Springer,2013:1-9.
[7] The General Inquirer Home Page[EB/OL].(2006-01-31).http://www.wjh.harvard.edu/~inquirer.
[8] Linguistic Inquiry and Word Count[EB/OL].(2016-01-20).http://liwc.wpengine.com.
[9] PANG Bo,LEE L.Opinion Mining and Sentiment Analysis[J].Foundations and Trends in Information Retrieval,2008,2(1-2):1-135.
[10] 黃 挺,姬東鴻.基于圖模型和多分類器的微博情感傾向性分析[J].計(jì)算機(jī)工程,2015,41(4):171-175.
[11] 謝麗星,周 明,孫茂松.基于層次結(jié)構(gòu)的多策略中文微博情感分析和特征抽取[J].中文信息學(xué)報(bào),2012,26(1):73-83.
[12] ZHU Shaojie,XU Bing,ZHENG Dequan,et al.Chinese Microblog Sentiment Analysis Based on Semi-supervised Learning[M].Berlin,Germany:Springer,2013.
[13] AISOPOS F,PAPADAKIS G,VARVARIGOU T.Sentiment Analysis of Social Media Content Using N-Gram Graphs[C]//Proceedings of the 3rd ACM SIGMM International Workshop on Social Media.New York,USA:ACM Press,2011:9-14.
[14] GHIASSI M,SKINNER J,ZIMBRA D.Twitter Brand Sentiment Analysis:A Hybrid System Using N-gram Analysis and Dynamic Artificial Neural Network[J].Expert Systems with Applications,2013,40(16):6266-6282.
[15] JIANG Long,YU Mo,ZHOU Ming,et al.Target-dependent Twitter Sentiment Classification[C]//Proceedings of Annual Meeting of the Association for Computational Linguistics.Oregon,USA:Association for Computational Linguistics,2011:151-160.
[16] WANG Hao,CAN Dogan,KAZEMZADEH A,et al.A System for Real-time Twitter Sentiment Analysis of 2012 U.S.Presidential Election Cycle[C]//Proceedings of ACL 2012 System Demonstrations.Jeju Island,Korea:Associa-tion for Computational Linguistics,2012:115-120.
[17] LECUN Y,KAVUKCUOGLU K,FARABET C C.Con-volutional Networks and Applications in Vision[C]//Proceedings of IEEE International Symposium on Circuits and Systems.Washington D.C.,USA:IEEE Press,2010:253-256.
[18] 吳 軻.基于深度學(xué)習(xí)的中文自然語言處理[D].南京:東南大學(xué),2014.
[19] KIM Y.Convolutional Neural Networks for Sentence Classification[EB/OL].(2014-09-03).https://arxiv.org/abs/1408.5882.
[20] KALCHBRENNER N,GREFENSTETTE E,BLUNSOM P.A Convolutional Neural Network for Modelling Sentences[EB/OL].(2014-09-08).https://arxiv.org/abs/1404.2188.
[21] JOHNSON R,ZHANG T.Effective Use of Word Order for Text Categorization with Convolutional Neural Networks[EB/OL].(2015-03-26).https://arxiv.org/abs/1412.1058.
[22] DOS SANTOS C N,GATTI M.Deep Convolutional Neural Networks for Sentiment Analysis of Short Texts[C]//Proceedings of International Conference on Computational Linguistics.New York,USA:ACM Press,2014:69-78.
[23] HU Baotian,LU Zhengdong,LI Hang,et al.Convolutional Neural Network Architectures for Matching Natural Language Sentences[C]//Proceedings of International Conference on Neural Information Processing Systems.New York,USA:ACM Press,2015:2042-2050.
[24] HE Hua,KEVIN G,LIN Jimmy.Multi-perspective Sentence Similarity Modeling with Convolutional Neural Networks[C]//Proceedings of Conference on Empirical Methods in Natural Language Processing.Berlin,Germany:Springer,2015:1576-1586.
[25] YIN Wenpeng,HINRICH S.Convolutional Neural Network for Paraphrase Identification[C]//Proceedings of International Conference on Neural Information Processing.Berlin,Germany:Springer,2015:901-911.
[26] SEVERYN A,MOSCHITTI A.UNITN:Training Deep Convolutional Neural Network for Twitter Sentiment Classification[C]//Proceedings of the 9th International Workshop on Semantic Evaluation.Berlin,Germany:Springer,2015:464-469.
[27] SOCHER R,PENNINGTON J,HUANG E H,et al.Semi-supervised Recursive Autoencoders for Predicting Sentiment Distributions[C]//Proceedings of Conference on Empirical Methods in Natural Language Processing.New York,USA:ACM Press,2011:151-161.
[28] 梁 軍,柴玉梅,原慧斌,等.基于深度學(xué)習(xí)的微博情感分析[J].中文信息學(xué)報(bào),2014,28(5):155-161.
[29] PENNINGTON J,SOCHER R,MANNING C D.Glove:Global Vectors for Word Representation[C]//Proceedings of Conference on Empirical Methods in Natural Language Processing.Berlin,Germany:Springer,2014:1532-1543.