季 陳,葉慧雯,王子民,張秀文,趙子涵,楊玉東,2
(1.南京工業(yè)大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,江蘇 南京 211816;2.淮陰工學(xué)院 電子信息工程學(xué)院,江蘇 淮安 223003)
隨著互聯(lián)網(wǎng)信息技術(shù)的快速發(fā)展,微信、QQ、微博等社交媒體用戶(hù)數(shù)以?xún)|計(jì),通過(guò)社交媒體可以發(fā)表心情、感想和對(duì)各類(lèi)事件的看法等,其內(nèi)容包括新聞資訊、熱點(diǎn)事件、產(chǎn)品評(píng)論、娛樂(lè)八卦等眾多方面,能夠直觀地反映用戶(hù)的情感傾向[1]。近年來(lái),文本情感分析在政府輿情監(jiān)控、企業(yè)管理決策、個(gè)人情緒管理等方面發(fā)揮著重要作用。
隨著情感分析技術(shù)方法、算法和資源的不斷發(fā)展,現(xiàn)有的研究基于不同的監(jiān)督環(huán)境產(chǎn)生了3種主要的方法[2]。基于情感詞典[3]的方法:郗亞輝[4]通過(guò)詞語(yǔ)和詞語(yǔ)之間有情感的交互和上下文的約束等聯(lián)系擴(kuò)展情感詞典以提高文本分析的準(zhǔn)確率;Xu等[5]利用不同情感詞之間的上下級(jí)關(guān)系對(duì)情感詞典進(jìn)行擴(kuò)充達(dá)到提高準(zhǔn)確率的目的?;跈C(jī)器學(xué)習(xí)的方法:Pang等[6]首次在針對(duì)電影評(píng)論的情感分析中使用支持向量機(jī)(Support vector machine,SVM)進(jìn)行情感二分類(lèi),將電影評(píng)論文本分為了積極與消極兩類(lèi);李婷婷等[7]利用文本的詞性、情感程度等,構(gòu)造出了不同的特征,提出了SVM和條件隨機(jī)場(chǎng)相結(jié)合的分類(lèi)模型,提高了文本分類(lèi)的準(zhǔn)確率;針對(duì)情感詞在不同的上下文語(yǔ)境中具有不同含義的問(wèn)題,Cai等[8]在一種三層情感詞典的基礎(chǔ)上將SVM和梯度提升決策樹(shù)(Gradient boosting decision tree,GBDT)結(jié)合形成情感分析混合模型,有效提高了文本情感分析的效果?;谏疃葘W(xué)習(xí)的方法:Kim等[9]最先開(kāi)始使用卷積神經(jīng)網(wǎng)絡(luò)(Convolutional neural network,CNN),用不同的卷積核對(duì)文本不同位置的局部語(yǔ)義進(jìn)行特征提取,改善了文本分類(lèi)的效果,但CNN中的池化操作會(huì)帶來(lái)信息的丟失問(wèn)題;楊玉娟等[10]在word2vec的基礎(chǔ)上引入了術(shù)語(yǔ)頻率-逆文檔頻率算法形成詞向量,同時(shí)在長(zhǎng)短期記憶網(wǎng)絡(luò)(Long short-term memory,LSTM)模型中加入了注意力機(jī)制,提高了文本分析的準(zhǔn)確率。
綜合以上3種文本情感分析方法,基于情感詞典方法依賴(lài)人工構(gòu)建情感詞典,基于機(jī)器學(xué)習(xí)的方法依賴(lài)人工構(gòu)建文本特征,實(shí)時(shí)性較差?;谏疃葘W(xué)習(xí)的方法相比于情感詞典方法和機(jī)器學(xué)習(xí)方法,可以從經(jīng)計(jì)算機(jī)處理過(guò)的文本詞匯中自動(dòng)提取語(yǔ)義特征[11],實(shí)時(shí)性較強(qiáng),但是文本的上下文信息和位置語(yǔ)義信息無(wú)法依靠單一的神經(jīng)網(wǎng)絡(luò)模型進(jìn)行提取。
膠囊網(wǎng)絡(luò)(Capsule network,CapsNet)模型是在卷積神經(jīng)網(wǎng)絡(luò)模型的基礎(chǔ)上進(jìn)行的改進(jìn),用動(dòng)態(tài)路由代替了CNN中的池化操作,解決了池化操作帶來(lái)的信息丟失問(wèn)題,能很好地提取情感詞在全文的位置語(yǔ)義信息;雙向長(zhǎng)短期記憶網(wǎng)絡(luò)(Bi-directional long short-term memory,BiLSTM)模型由兩個(gè)方向相反的LSTM模型上下疊加構(gòu)成,單獨(dú)的LSTM模型只能獲取文本單向的上文或下文信息,本文利用BiLSTM代替LSTM可以更好地捕捉文本雙向的語(yǔ)義依賴(lài)。
綜上,針對(duì)現(xiàn)有文本情感分析方法實(shí)時(shí)性不強(qiáng),不能同時(shí)提取文本上下文信息和局部語(yǔ)義特征等問(wèn)題,本文提出一種改進(jìn)膠囊網(wǎng)絡(luò)的BiLSTMCapsNet混合模型進(jìn)行文本情感分析,這一模型由BiLSTM模型和CapsNet模型組成混合模型,既能利用BiLSTM模型可提取文本上下文信息的優(yōu)勢(shì),又能利用CapsNet模型可提取文本位置語(yǔ)義信息的優(yōu)勢(shì),可以很好地提高文本情感分析的效果。
BiLSTM-CapsNet混合模型主要分為4步:文本預(yù)處理、文本建模、特征提取和情感分類(lèi)。文本預(yù)處理的目的是去除噪聲,只保留具有語(yǔ)義特征的詞語(yǔ);文本建模就是將文本數(shù)據(jù)轉(zhuǎn)化為可以由計(jì)算機(jī)處理的數(shù)值型數(shù)據(jù)的過(guò)程;特征提取使用CapsNet提取局部語(yǔ)義特征,再使用BiLSTM提取上下文特征信息。情感分類(lèi)采用softmax分類(lèi)器進(jìn)行分類(lèi)。基于BiLSTM-CapsNet混合模型的文本情感分類(lèi)如圖1所示。
圖1 基于BiLSTM-CapsNet混合模型的文本情感分類(lèi)
文本數(shù)據(jù)不僅包含了具有語(yǔ)義特征的詞匯還包含了一些影響分類(lèi)效果的噪聲特征,數(shù)據(jù)預(yù)處理的目的在于去除噪聲,保留具有語(yǔ)義特征的詞匯。數(shù)據(jù)預(yù)處理操作步驟如下所示:
(1)過(guò)濾掉文本中的標(biāo)點(diǎn)符號(hào)和特殊字符;(2)使用Jieba等分詞工具進(jìn)行分詞,若是英文這步操作省略;
(3)文本數(shù)據(jù)中含有各種沒(méi)有具體語(yǔ)義的停用詞,將會(huì)影響到分類(lèi)效果,使用哈工大停用詞表去除噪聲數(shù)據(jù);
(4)文本中的標(biāo)簽也需要進(jìn)行處理,將文本型的標(biāo)簽數(shù)據(jù)轉(zhuǎn)化成計(jì)算機(jī)能夠識(shí)別的數(shù)值型數(shù)據(jù)。
社交文本數(shù)據(jù)是高度非結(jié)構(gòu)化的數(shù)據(jù),需要將其轉(zhuǎn)換成結(jié)構(gòu)化的數(shù)值型數(shù)據(jù)進(jìn)行處理。本文選用了word2vec工具,word2vec將每個(gè)詞映射到一個(gè)高維向量中,訓(xùn)練所得的向量可以表示詞對(duì)詞之間的關(guān)系。word2vec主要依賴(lài)其自帶的框架結(jié)構(gòu)將不可計(jì)算的非結(jié)構(gòu)化的文本詞匯轉(zhuǎn)化成可計(jì)算的結(jié)構(gòu)化的高維實(shí)數(shù)向量。
膠囊網(wǎng)絡(luò)模型用于文本分類(lèi)結(jié)構(gòu)圖如圖2所示,主要分為4個(gè)部分:卷積層、主膠囊層、卷積膠囊層和全連接膠囊層。第一部分是一個(gè)標(biāo)準(zhǔn)的卷積層,通過(guò)多個(gè)不同的卷積核在句子的不同位置提取特征。第二部分為主膠囊層,該層是將卷積操作中的標(biāo)量輸出替換為矢量輸出,從而保留了文本的單詞順序和語(yǔ)義信息。第三部分為卷積膠囊層,在這一層中,膠囊通過(guò)與變換矩陣相乘來(lái)計(jì)算子膠囊與父膠囊的關(guān)系,然后根據(jù)路由協(xié)議計(jì)算上層膠囊層。第四部分是全連接膠囊層,膠囊乘上變換矩陣,然后按照路由協(xié)議生成最終的膠囊及其對(duì)每個(gè)類(lèi)的概率。其中Flatten函數(shù)用在卷積層到全連接層的過(guò)渡,把多維的輸入一維化。本文采用了膠囊網(wǎng)絡(luò)的前3層進(jìn)行文本局部語(yǔ)義特征的提取。
圖2 膠囊網(wǎng)絡(luò)用于文本分類(lèi)模型結(jié)構(gòu)圖
假設(shè)數(shù)據(jù)集文本中的一個(gè)詞為w(i),經(jīng)過(guò)word2vec工具轉(zhuǎn)化為詞向量V(w(i))),則詞向量矩陣Sij={V(w(1)),V(w(2)),…,V(w(n))}。膠囊網(wǎng)絡(luò)在卷積層中用濾波器對(duì)詞向量矩陣Sij進(jìn)行卷積操作達(dá)到文本局部語(yǔ)義特征提取的作用,計(jì)算方法如式(1)所示
式中:b0為偏置項(xiàng),Wα為卷積運(yùn)算操作的濾波器,X i:j+K1-1表示濾波器每次移動(dòng)的單詞窗口為X i至X i+K1-1,f()為非線(xiàn)性激活函數(shù)ReLU,若有B個(gè)濾波器,即α=1,2,…,B,則mα i表示膠囊網(wǎng)絡(luò)提取的文本局部語(yǔ)義特征。
LSTM模型適用于處理和預(yù)測(cè)時(shí)間序列中時(shí)間間隔和延遲相對(duì)較長(zhǎng)的事件,提出的目的主要是為了解決循環(huán)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)中存在的梯度消失或者梯度爆炸問(wèn)題,是一種特殊的循環(huán)神經(jīng)網(wǎng)絡(luò),但是LSTM建模存在一個(gè)問(wèn)題,無(wú)法編碼從后向前的文本信息。BiLSTM模型是由兩個(gè)方向相反的LSTM模型上下疊加構(gòu)成,可以更好地捕捉雙向的語(yǔ)義依賴(lài),在更細(xì)粒度的文本分類(lèi)過(guò)程中,BiLSTM模型有更好的表現(xiàn)。BiLSTM模型結(jié)構(gòu)如圖3所示。
圖3 BiLSTM用于文本分類(lèi)模型結(jié)構(gòu)圖
如圖3所示,w(i)表示文本中的詞匯,V(w(i))表示經(jīng)word2vec轉(zhuǎn)化的詞向量,詞向量拼接形成了詞向量矩陣Sij,其中Sij={V(w(1)),V(w(2)),…,V(w(n))},然后利用BiLSTM模型進(jìn)行上下文信息提取,得到BiLSTM的輸出h n,計(jì)算方法如式(2)所示
基于BiLSTM-CapsNet混合模型的文本情感特征提取流程圖如圖4所示。
圖4 文本情感特征提取流程圖
輸入層將文本數(shù)據(jù)集進(jìn)行預(yù)處理后,通過(guò)word2vec將文本中的詞匯轉(zhuǎn)化成詞向量,設(shè)置詞向量維度為100,然后通過(guò)嵌入層將文本詞向量進(jìn)行拼接,形成文檔詞向量矩陣,如式(3)所示
式中:w(n)表示詞語(yǔ),V(w(n))表示詞向量,Sij表示詞向量矩陣,⊕表示拼接操作。
局部語(yǔ)義特征提取是由膠囊網(wǎng)絡(luò)的一層卷積層和兩層膠囊層組成,以嵌入層的詞向量矩陣Sij作為輸入,采用大小為3×100,4×100,5×100的濾波器各128個(gè)進(jìn)行卷積運(yùn)算,通過(guò)卷積操作來(lái)提取各個(gè)位置的局部特征
式中:Oij表示Conv層的輸出。使用動(dòng)態(tài)路由操作代替池化操作,再進(jìn)行兩次膠囊層的特征提取。
式中:gij表示CapsNet的輸出,同時(shí)作為BiLSTM的輸入。隱藏層大小設(shè)置為128,sigmoid作為激活函數(shù),從BiLSTM模型的兩個(gè)方向輸入序列,通過(guò)隱藏層提取文本的上下文信息,如式(6)所示
式中:gijt表示在t時(shí)刻的文檔矩陣,hijt表示在t時(shí)刻BiLSTM的輸出,再使用CapsNet的全連接層進(jìn)行連接,最后通過(guò)softmax函數(shù)進(jìn)行文本情感分類(lèi),如式(7)所示
式中:b i為偏置項(xiàng),Wi表示全連接層到輸出層的權(quán)重系數(shù),dijt表示t時(shí)刻全連接層的輸出向量。
當(dāng)前文本情感分析的主要任務(wù)可分為詞級(jí)別情感分析,句子/文檔級(jí)情感分析和目標(biāo)級(jí)情感分析3類(lèi),本文主要研究是基于句子/文檔級(jí)的情感分析。從粒度上劃分,情感分析又可以分為粗粒度和細(xì)粒度。粗粒度的情感分析就是對(duì)文本的正負(fù)極性進(jìn)行分類(lèi),而細(xì)粒度的情感分析可以根據(jù)要求的不同分成多類(lèi),本文的細(xì)粒度情感分析試驗(yàn)把情感分成了7類(lèi),分別是0:生氣(anger)、1:厭惡(disgust)、2:傷心(sandness)、3:喜歡(like)、4:害怕(fear)、5:驚喜(surprise)、6:開(kāi)心(happiness)。本文試驗(yàn)采用了兩組數(shù)據(jù)集,一組做細(xì)粒度情感分析,另一組做粗粒度情感分析。
細(xì)粒度情感分析試驗(yàn)數(shù)據(jù)集采用的是NLPCC2014微博情緒識(shí)別數(shù)據(jù)集,截取其中部分如表1所示。粗粒度情感分析試驗(yàn)數(shù)據(jù)集為產(chǎn)品評(píng)論數(shù)據(jù)集,截取其中部分如表2所示。
表1 NLPCC2014微博情緒識(shí)別數(shù)據(jù)集樣例
表2 產(chǎn)品評(píng)論數(shù)據(jù)集部分樣例
試驗(yàn)采用了Python作為算法的實(shí)現(xiàn)語(yǔ)言,詞向量分別取200維,文本長(zhǎng)度取固定長(zhǎng)度100,選用Adam作為優(yōu)化函數(shù),具體設(shè)置如表3所示。
表3 模型參數(shù)設(shè)置
為驗(yàn)證本文提出的BiLSTM-CapsNet混合模型的情感分析性能,兩組試驗(yàn)分別對(duì)比了6組模型,其中包括CNN模型、BiLSTM模型、CapsNet模型、CNN+CapsNet模型、CNN+BiLSTM模型和本文提出的BiLSTM-CapsNet模型。從準(zhǔn)確率、精確率、召回率和F1值4個(gè)評(píng)價(jià)標(biāo)準(zhǔn)進(jìn)行比較。
文本情感分類(lèi)常用的評(píng)價(jià)指標(biāo)有精確率(Precision)、召回率(Recall)和F1值。
精確率定義如式(8)
式中:TP為正樣本判斷為正樣本的數(shù)量即正樣本判斷正確的數(shù)量,F(xiàn)P為正樣本判斷為負(fù)樣本的數(shù)量即正樣本判斷錯(cuò)誤的數(shù)量。
召回率定義如式(9)
式中:FN為負(fù)樣本判斷為正樣本的數(shù)量即負(fù)樣本判斷錯(cuò)誤的數(shù)量。
F1值是精確率和召回率的調(diào)和平均值,定義如式(10)
細(xì)粒度情感分析試驗(yàn)采用了NLPCC2014微博情緒識(shí)別數(shù)據(jù)集,試驗(yàn)結(jié)果如表4所示。
由表4可知,在細(xì)粒度情感分析試驗(yàn)中,本文文本情感分析算法模型在召回率和綜合評(píng)價(jià)指標(biāo)F1值方面,相較于單一的CNN、BiLSTM、CapsNet模型和混合的CNN+BiLSTM、CNN+CapsNet模型都達(dá)到了最好的結(jié)果。在準(zhǔn)確率方面,本文文本情感分析算法模型優(yōu)于單一的BiLSTM、CapsNet模型和混合的CNN+BiLSTM、CNN+CapsNet模型,與單一的CNN模型準(zhǔn)確率相當(dāng)。
表4 細(xì)粒度情感分析試驗(yàn)結(jié)果
粗粒度情感分析試驗(yàn)采用了評(píng)論數(shù)據(jù)集,試驗(yàn)結(jié)果如表5所示。
表5 粗粒度情感分析試驗(yàn)結(jié)果
由表5可知在粗粒度情感分析試驗(yàn)中,本文文本情感分析算法模型在準(zhǔn)確率、召回率和綜合評(píng)價(jià)指標(biāo)F1值方面,相較于單一的CNN、BiLSTM、CapsNet模型和混合的CNN+BiLSTM、CNN+CapsNet模型,都達(dá)到了最好的結(jié)果。
本文結(jié)合BiLSTM模型和CapsNet模型各自?xún)?yōu)勢(shì)構(gòu)成的BiLSTM-CapsNet混合模型,既能同時(shí)利用BiLSTM和CapsNet特征提取的優(yōu)勢(shì),又能很好地理解待處理文本的語(yǔ)義。通過(guò)細(xì)粒度情感分析和粗粒度情感分析兩組試驗(yàn),分別對(duì)比了6種模型,驗(yàn)證了本文提出的模型在細(xì)粒度和粗粒度情感分析試驗(yàn)中都具有較明顯的優(yōu)勢(shì),能夠更好地完成文本情感分析的任務(wù)。
本文提出的BiLSTM-CapsNet混合模型在試驗(yàn)中使用的訓(xùn)練時(shí)間資源都高于單一的CNN、BiLSTM和CapsNet模型,與同類(lèi)的CNN+BiLSTM、CNN+CapsNet混合模型相當(dāng),所以如何使用更少的時(shí)間資源進(jìn)一步提高本文模型文本情感分析的準(zhǔn)確率是下一步的工作目標(biāo)。