姬思陽(yáng),侯開虎
(昆明理工大學(xué)機(jī)電工程學(xué)院,云南昆明 650500)
情感分析被定義為尋找持有者對(duì)特定實(shí)體意見(jiàn)的任務(wù)[1]。Liu[2]提出情感分析的意見(jiàn)或評(píng)論可以由(o,h,t,ɑ,p)五元組組成,其中o是意見(jiàn),h是意見(jiàn)持有者,t是意見(jiàn)o由h表達(dá)的時(shí)間,ɑ是意見(jiàn)o的主題方向,p是意見(jiàn)o關(guān)于方面ɑ的極性方向?,F(xiàn)代社會(huì)中,情感分析(SA)已經(jīng)成為NLP 中運(yùn)用較廣泛的一個(gè)分支,對(duì)餐飲[3]、旅店[4]、旅游[5]、購(gòu)物[6]、社交媒體[7]等方面具有非常大的作用。決策者通過(guò)收集用戶購(gòu)買和使用產(chǎn)品之后的評(píng)論來(lái)改進(jìn)自己的產(chǎn)品,以此增加整個(gè)企業(yè)的效益[8]。而在推特、微博等社交媒體中,人們也在表達(dá)自己的情感[9]。
本文提出一種句子級(jí)情感分析方法,對(duì)社交媒體推特上積極和消極兩種情感表達(dá)進(jìn)行識(shí)別。同時(shí),提出一種新型的基于LSTM 的句子分類器,因?yàn)樯窠?jīng)網(wǎng)絡(luò)在句子分類方面有著很強(qiáng)的學(xué)習(xí)能力,能夠得到一個(gè)效果較好的分類器。
針對(duì)句型分類任務(wù),本文用一個(gè)單獨(dú)的推特?cái)?shù)據(jù)集訓(xùn)練一個(gè)分類器,利用基于規(guī)則的手段獲得所需句型數(shù)據(jù)集。Xia 等[10]證實(shí)了根據(jù)一定規(guī)則劃分句型是可行且高效的。針對(duì)情感分析任務(wù),使用另一個(gè)獨(dú)立情感數(shù)據(jù)集,避免了使用訓(xùn)練分類器時(shí)的數(shù)據(jù)集而造成數(shù)據(jù)擬合,影響整個(gè)情感分析研究的有效性。
實(shí)驗(yàn)中,使用詞包(BoW)和詞頻—逆向文件頻率(TFIDF)兩種詞向量生成方式,體現(xiàn)所提出的句型分類器在不同詞向量下均能提高整體的情感分類準(zhǔn)確度,證明了該方法的魯棒性。
綜上所述,本文主要研究包括:①創(chuàng)建句型分類數(shù)據(jù)集,并訓(xùn)練基于長(zhǎng)短期記憶學(xué)習(xí)(LSTM)神經(jīng)網(wǎng)絡(luò)的句型分類器;②融合句型分類器和傳統(tǒng)情感分析模型,針對(duì)不同句型使用不同的N-gram 特征提取方式,獲得完善的數(shù)據(jù)對(duì)比結(jié)果。
神經(jīng)網(wǎng)絡(luò)的運(yùn)用,推動(dòng)了情感分析任務(wù)的快速發(fā)展。蘇靈松等[11]提出利用CNN 和LSTM 網(wǎng)絡(luò)提高情感分析精度,但針對(duì)長(zhǎng)序列文本無(wú)法獲得較好的依賴關(guān)系;司新紅等[12]提出添加注意力機(jī)制的CNN,并結(jié)合BiLSTM 提高情感分析準(zhǔn)確性;劉曉彤等[13]總結(jié)方法并研究了深度學(xué)習(xí)和單一機(jī)器學(xué)習(xí)在情感分析中的優(yōu)缺點(diǎn)。
Saif 等[14]提出一種SentiCircle 的動(dòng)態(tài)詞匯表示,他們認(rèn)為詞匯的情感表達(dá)應(yīng)該是動(dòng)態(tài)的,不同的詞匯在不同的語(yǔ)境中表達(dá)的情感也是不同的,創(chuàng)新性地將術(shù)語(yǔ)情感描繪為一個(gè)極坐標(biāo)形式,極大提高了極性分類精度;Araque 等[15]采用機(jī)器學(xué)習(xí)和傳統(tǒng)人工提取特征相結(jié)合的方法,將詞嵌入和線性機(jī)器學(xué)習(xí)方法相結(jié)合開發(fā)一個(gè)情感分類系統(tǒng);Chen 等[16]使用分布式算法,提出一個(gè)具有條件隨機(jī)域的雙向長(zhǎng)短期記憶學(xué)習(xí)(BiLSTM-CRF),根據(jù)句子中目標(biāo)個(gè)數(shù)進(jìn)行分類,每種類型的句子被傳入一個(gè)獨(dú)特的一維卷積神經(jīng)網(wǎng)絡(luò)(1D_CNN)作為情感分析的分類器,他們所提出的方法在基線方法中表現(xiàn)最好,也證明了分而治之對(duì)情感分析有作用;Tripathy 等[17]在電影評(píng)論數(shù)據(jù)中對(duì)N-gram 做了全面分析和評(píng)價(jià),在各種機(jī)器學(xué)習(xí)方法中,同時(shí)使用Unigram 和Bi-gram 能夠提高分類精度,隨著N 值增加,分類精度會(huì)越來(lái)越低。隨后有學(xué)者證明N-gram 的取值不僅與N值有關(guān),還與文本領(lǐng)域以及文本大小有關(guān)。因此,有必要針對(duì)自己的數(shù)據(jù)集具體分析N-gram 的取值。
除對(duì)神經(jīng)網(wǎng)絡(luò)的運(yùn)用和N-gram 的選取外,否定句和對(duì)比句等特殊句型的處理也會(huì)增加整個(gè)極性分類的性能。Cambria 等[18]提出5 個(gè)影響極性分類的處理方法,分別是共指消解、否定處理、回指消解、命名實(shí)體和詞義消歧。對(duì)于句子級(jí)文本而言,最重要的是否定處理。
以上方法未明確針對(duì)句子類型不同,特征提取方式對(duì)情感分析的影響。本文通過(guò)訓(xùn)練基于LSTM 的句子類型分類器并融合一般的情感極性分類算法,研究和分析了使用句型分類器的情感分類精度。
LSTM[19]是循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)[20]的改進(jìn)版。RNN 對(duì)于短序列的特征提取效果很好,但是當(dāng)一個(gè)序列的關(guān)聯(lián)程度較長(zhǎng)時(shí),RNN 在反向傳播中會(huì)出現(xiàn)梯度消失的問(wèn)題。而LSTM 由于其優(yōu)秀的長(zhǎng)序列特征識(shí)別,在NLP 中運(yùn)用十分廣泛,其整體結(jié)構(gòu)類似于RNN 的結(jié)構(gòu),但是每一個(gè)中間層是以門結(jié)構(gòu)為基礎(chǔ),分為輸入門、輸出門和遺忘門。其中,遺忘門計(jì)算公式如式(1)所示。
其中,σ是sigmoid 函數(shù),取值范圍為(0,1),ht-1是上一個(gè)神經(jīng)元的輸出,xt為此神經(jīng)元的輸入,Wf和bf是遺忘門的權(quán)重和偏置值。輸入門公式如式(2)和式(3)所示。
其中,it決定了更新傳入的數(shù)據(jù),而表示創(chuàng)建一個(gè)新的候選值向量,Wi、Wc、bi、bc分別是每一條數(shù)據(jù)傳輸?shù)臋?quán)重和偏置值,tanh 表示一個(gè)tanh 的計(jì)算。利用輸入門所計(jì)算的值去更新整個(gè)數(shù)據(jù),以此確定還有哪些數(shù)據(jù)需要保留、哪些數(shù)據(jù)需要拋棄,如式(4)所示。
Ct表示經(jīng)過(guò)本個(gè)神經(jīng)元保留下來(lái)的信息,Ct-1是上一個(gè)狀態(tài)下所保留的信息。最后輸出門計(jì)算如式(5)和式(6)所示。
ot表示該神經(jīng)元輸入的哪些部分需要輸出,ht表示最終輸出結(jié)果。
整個(gè)數(shù)據(jù)集構(gòu)成如圖1 所示。
Fig.1 Number of special and non-special sentence types圖1 特殊句型和非特殊句型數(shù)量
可以看出,特殊句型占全部句子的1/3 左右,說(shuō)明在平時(shí)的tweet 中,有很大一部分句子包括否定和對(duì)比。對(duì)數(shù)據(jù)集按照4∶1 的比例分為訓(xùn)練集和測(cè)試級(jí)。第一層為輸入層,詞嵌入的長(zhǎng)度為300 維,第二層是LSTM 層,共有128 個(gè)單元組成,之后接256 維的全連接層,最后是一個(gè)Softmax分類層,dropout 為0.5,總共包括420k 個(gè)參數(shù)??傮w結(jié)構(gòu)如圖2 所示。
Fig.2 Overall structure of sentence classification圖2 句型分類器整體結(jié)構(gòu)
在LSTM 分類器訓(xùn)練完成后,將分類器與特征提取模塊相結(jié)合,整體框架如圖3 所示。
Fig.3 Overall model framework using sentence classification圖3 使用句型分類器整體模型框架
文本傳入到句型分類器中,將預(yù)測(cè)為特殊句型(否定句和對(duì)比句)的tweet 標(biāo)記為N,將非特殊句型標(biāo)記為T。經(jīng)過(guò)對(duì)句型的分類之后將所有數(shù)據(jù)轉(zhuǎn)化為特征向量,應(yīng)用兩種不同的特征向量生成模型BoW 和TF-IDF。在特征提取過(guò)程中,對(duì)標(biāo)記為T 和標(biāo)記為N 的tweet 使用不同的Ngram,以此說(shuō)明N-gram 的選擇與句子類型有關(guān)系。特征提取之后分別選擇隨機(jī)梯度下降(SGD)、多項(xiàng)式NB 和邏輯回歸3 種機(jī)器學(xué)習(xí)分類算法分析情感極性。最終精確值取分類之后的加權(quán)和,定義如式(7)所示。
其中,wT和wN表示分類為標(biāo)記T 和分類為標(biāo)記N 的權(quán)重比例,ɑT和ɑN分別是分類為T 時(shí)的測(cè)試精確值和分類為N 的測(cè)試精確值。
本次實(shí)驗(yàn)使用BoW 和TF-IDF 兩種提取特征向量的算法。
Bag of Words(BoW)又稱為詞袋模型,指將所有存在的詞匯或短語(yǔ)匯總到一起,就像是一袋詞匯一樣。
詞頻—逆向文件頻率(TF-IDF)是一種統(tǒng)計(jì)方法,用于評(píng)估一個(gè)詞或詞對(duì)對(duì)于一個(gè)文本集或一個(gè)語(yǔ)料庫(kù)中其中一個(gè)文本的重要程度,詞的重要性與其在文本中出現(xiàn)的次數(shù)成正比,但是與其在整個(gè)語(yǔ)料庫(kù)中出現(xiàn)的頻率成反比。簡(jiǎn)單而言,即如果一個(gè)單詞在一個(gè)文本中出現(xiàn)的頻率(TF)高,并且這個(gè)詞在其他文本中出現(xiàn)的頻率很少,則認(rèn)為這樣的一個(gè)詞具有很高的識(shí)別度,能夠用來(lái)區(qū)分其他文本,其計(jì)算公式如(8)所示。
其表示詞在文本中出現(xiàn)的頻率(詞頻),每個(gè)文本單詞總和可以用W表示,W={w1,w2,…,wi-1,wi,…,wk-1,wk},語(yǔ)料庫(kù)中的文本總數(shù)由D表示,D={d1,d2,…,dj-1,dj,…,dk-1,dk},ni,j表示該詞wk在文本dj中出現(xiàn)的次數(shù)。∑knk,j表示文本dj中每個(gè)詞出現(xiàn)的次數(shù)總和。
式(10)表示逆向文檔頻率(IDF),其中 |D|為語(yǔ)料庫(kù)中的文本總數(shù),|{j:wi∈dj} |表示包含詞語(yǔ)wi的文本總數(shù),為了使公式有意義,需要在分母上加一個(gè)小整數(shù)如式(11)所示。
可以看出,含有wi的文本數(shù)越少,IDF的值就會(huì)越大,說(shuō)明此單詞有著很好的類別區(qū)分能力。
收集推特中的情感數(shù)據(jù)集192k 條,每條數(shù)據(jù)包含tweet內(nèi)容和對(duì)應(yīng)的情感標(biāo)簽,“-1”表示消極,“0”表示中性,“1”表示積極,本次實(shí)驗(yàn)只考慮極性分類,因此首先從數(shù)據(jù)集中提取表示積極和消極情緒的tweet。此外,還需先去掉重復(fù)內(nèi)容和存在空值的tweet,最終得到極性分類的數(shù)據(jù)集。其中,包含70k 個(gè)表示積極的tweet 內(nèi)容,將其標(biāo)記為“P”,35k 個(gè)表示消極的tweet 內(nèi)容,標(biāo)記為“N”,數(shù)據(jù)集的預(yù)處理與訓(xùn)練LSTM 分類器時(shí)相同。以4∶1 的比例將數(shù)據(jù)集分為訓(xùn)練集和測(cè)試集,分別包含有84k 和21k 條tweet。
為了比較分類器使用與否對(duì)極性分類的影響,對(duì)不使用分類器和使用分類器所得的結(jié)果作比較,其中不使用LSTM 分類器的正常模型前綴為Nor,而使用句型分類器的模型前綴為Cls。使用不同特征提取模型的命名規(guī)則,如:Nor_Unigram 表示正常情感分析下,使用Unigram 進(jìn)行特征提取,Cla_Unigram 表示本次實(shí)驗(yàn)所提出的利用句型分類器下,使用Unigram 進(jìn)行特征提取,其余標(biāo)題相似。使用BoW和TF-IDF 提取詞向量時(shí),選擇特征提取方法N-gram 的值分別為:Unigram、Bi-gram、Tri-gram、Unigram+Bi-gram、Unigram+Bi-gram+Tri-gram 共5 種取值。之后選擇SGD、邏輯回歸和多項(xiàng)式NB 作為分類器。在分類之后對(duì)含有否定意義和對(duì)比意義的特殊句型使用Unigram+Tri-gram 的特征提取方法。實(shí)驗(yàn)結(jié)果如表1 和表2 所示。
Table 1 Sentiment classification results of feature vector extracted by BoW表1 利用BoW 提取特征向量的情感分類結(jié)果
Table 2 Sentiment classification results of feature vector extracted by TF-IDF表2 利用TF-IDF 提取特征向量的情感分類結(jié)果
從表1 可以看出,利用BoW 提取模型特征向量時(shí),在使用LSTM 句型分類器之后,使用SGD 分類器整體的分類精度有所提高。在使用LR 作為分類算法時(shí),發(fā)現(xiàn)采用Unigram 對(duì)非特殊句型進(jìn)行特征向量提取獲得了最好的精度,但在比較每一種N-gram 時(shí)發(fā)現(xiàn),大部分使用句型分類器的精度要高于不使用句型分類器的結(jié)果,只有最后一行使用句型分類器和Unigram+Bi-gram+Tri-gram 的分類精度要低于不使用句型分類器和Unigram+Bi-gram+Tri-gram,主要原因在于特殊句型特征提取使用的是Bi-gram+Tri-gram。而對(duì)于整體數(shù)據(jù)提取特征,除Bi-gram+Tri-gram 外,還有Unigram 特征提取更豐富。但是本文目的是使用最少的資源提高整體分類精度,整個(gè)數(shù)據(jù)集使用3 種N-gram 帶來(lái)的計(jì)算量非常巨大。在使用NB 作為分類器時(shí),可以看到最好的分類精度是使用句型分類器的Tri-gram 特征提取。橫向?qū)Ρ葧r(shí),使用句型分類器整體精度均高于不使用分類器的精度。整體而言,在使用句型分類器和Tri-gram 特征提取的NB 分類器獲得了最佳性能,但是如果在考慮到計(jì)算成本后,使用句型分類器和Uni-gram 特征提取的LR 最具有競(jìng)爭(zhēng)性。
由表2 可以看出,將TF-IDF 作為特征向量的生成算法,使用SGD 分類算法時(shí),使用LSTM 句型分類器的整體精度均高于不使用句型分類器模型,并且使用Tri-gram 獲得了最高的分類精度。而使用LR 作為分類器時(shí),使用LSTM句型分類器先對(duì)句子分類獲得的準(zhǔn)確度整體要高于不提前分離句型的準(zhǔn)確度。而將NB 作為分類器時(shí),使用LSTM句型分類器和Tri-gram 獲得了最高的準(zhǔn)確度。在相同的N-gram 下,使用LSTM 句型分類器和Uni-gram、Tri-gram 進(jìn)行特征提取的精確度高于不提前使用分類器的精度。整體看來(lái),使用LSTM 句型分類器和Tri-gram 特征提取的組合獲得了最高的分類精度。
綜上所述,結(jié)合不同的詞向量生成算法、不同的Ngram 值以及不同的分類器可以得出,最佳的分類精度取自利用BoW 生成詞向量并使用句型分類器和Tri-gram 特征提取的NB 分類器。而利用TF-IDF 生成詞向量并使用句型分類器和Uni-gram 特征提取的LR 最具有競(jìng)爭(zhēng)性。利用Bow 模型生成詞向量在預(yù)測(cè)Tweet 的情感效果要好于使用TF-IDF,而實(shí)驗(yàn)證明所提出的LSTM 句型分類器對(duì)情感分析具有促進(jìn)作用。
情感分析作為NLP 的一個(gè)重要子任務(wù),運(yùn)用廣泛,大量學(xué)者致力于研究其高效的分類算法。本文針對(duì)Tweets 建立了一個(gè)情感分析新模型,利用分而治之的思想,首先針對(duì)按照句子類型分類得到的分類結(jié)果,使用不同的N-gram特征提取,最終達(dá)到提高分類精度、降低運(yùn)算量的效果。由于還沒(méi)有相關(guān)數(shù)據(jù)集能夠用來(lái)訓(xùn)練句型分類器,首先根據(jù)一個(gè)情感數(shù)據(jù)集創(chuàng)建了一個(gè)用于句型分類的數(shù)據(jù)集,得到一個(gè)高分類精度的LSTM 句型分類器;之后利用LSTM 句型分類器進(jìn)行實(shí)驗(yàn),最終得到在推特情感分析中使用BoW生成詞向量要優(yōu)于使用TF-IDF,在使用句型分類器后,能夠在減少計(jì)算消耗的情況下提高整體分類精度。使用Trigram 和NB 分類器獲得了最好的分類性能,但是在損失精度較少的情況下,使用Uni-gram 特征提取的LR 分類器能夠極大降低詞向量的生成數(shù)量和計(jì)算量,能夠成為不錯(cuò)的選擇方案。未來(lái)工作中,首先需要調(diào)整整個(gè)模型的參數(shù)設(shè)置,以此提高整體計(jì)算精度;其次,本次實(shí)驗(yàn)僅取否定意義的句子和對(duì)比意義的句子,今后將增加更多的分類句型,并將整個(gè)模型擴(kuò)展到其余非英語(yǔ)語(yǔ)言使用上。