林 偉
(西南政法大學(xué)刑事偵查學(xué)院, 重慶 401120)
據(jù)第48次《中國(guó)互聯(lián)網(wǎng)絡(luò)發(fā)展?fàn)顩r統(tǒng)計(jì)報(bào)告》顯示,截至 2021年6月,我國(guó)網(wǎng)民規(guī)模為10.11億,互聯(lián)網(wǎng)普及率達(dá)71.6%[1]。隨著互聯(lián)網(wǎng)的不斷普及,人們對(duì)現(xiàn)實(shí)生活中的突發(fā)性事件的關(guān)注度往往會(huì)通過(guò)網(wǎng)絡(luò)發(fā)表情感鮮明的言論并相互影響滲透,以新浪微博為代表的中文微博社交平臺(tái)是用戶(hù)關(guān)注、追蹤、評(píng)論熱點(diǎn)話題的重要平臺(tái)。然而,微博在為人們獲取信息提供便利的同時(shí),也成為負(fù)面信息快速傳播的溫床。特別是2019年出現(xiàn)新冠肺炎(COVID- 19)疫情以來(lái),某些不法分子利用微博平臺(tái)發(fā)布、傳播涉疫相關(guān)虛假信息,助推網(wǎng)絡(luò)輿情惡化[2]。為此,通過(guò)微博情感分析掌握網(wǎng)絡(luò)空間輿情動(dòng)態(tài)具有重要的現(xiàn)實(shí)及理論意義。
目前情感分類(lèi)方法主要有3大類(lèi)。一是基于情感詞典的情感分類(lèi)方法。該方法主要是通過(guò)構(gòu)建好的情感詞典來(lái)計(jì)算文本的情感值,進(jìn)而根據(jù)一定的閾值判別該文本的情感傾向。目前常見(jiàn)的英文情感詞典有SentiWordNet、General Inquirer等[3]。在中文情感詞典構(gòu)建方面,萬(wàn)琪等[4]針對(duì)中文微博表達(dá)口語(yǔ)化、不規(guī)范等問(wèn)題提出了一種基于CRF的職合抽取模型,并驗(yàn)證了該模型在微博文本的新詞探測(cè)方面有較好的效果;趙妍妍等[5]采用文本統(tǒng)計(jì)的方法構(gòu)建了大規(guī)模微博情感分類(lèi)詞典,取得了較好的實(shí)驗(yàn)結(jié)果;二是基于機(jī)器學(xué)習(xí)的情感分類(lèi)方法。情感詞典方法的局限性在于維護(hù)詞典的成本太大,特別是類(lèi)似微博這樣的短文本,表達(dá)的不規(guī)范也給詞典的構(gòu)建帶來(lái)較大的困難。因此,有學(xué)者將傳統(tǒng)的機(jī)器學(xué)習(xí)方法應(yīng)用到文本情感分類(lèi)中,并取得不錯(cuò)的效果。劉志明等[6]使用3種特征選擇方法(信息增益、CHI統(tǒng)計(jì)、文檔頻率)和3種機(jī)器學(xué)習(xí)算法(貝葉斯、支持向量機(jī)、N-Gram)在中文微博上進(jìn)行比較實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果表明,基于支持向量機(jī)和信息增益的微博情感分類(lèi)效果較好。張璞等[7]提出一種融合情感詞典和機(jī)器學(xué)習(xí)的文本情感分類(lèi)方法,該方法以機(jī)器學(xué)習(xí)為基礎(chǔ),采用互信息占比對(duì)分類(lèi)概率進(jìn)行加權(quán)計(jì)算,實(shí)驗(yàn)結(jié)果表明該方法能夠有效提高文本情感分類(lèi)的性能;三是基于深度學(xué)習(xí)的情感分類(lèi)方法?;谏疃葘W(xué)習(xí)方法由于能夠克服傳統(tǒng)機(jī)器學(xué)習(xí)方法在時(shí)間序列上信息表達(dá)不足,其應(yīng)用從最開(kāi)始的圖像領(lǐng)域漸漸推廣到情感分析領(lǐng)域。深度學(xué)習(xí)中常用的情感分類(lèi)模型有人工神經(jīng)網(wǎng)絡(luò)(Artificial Neural Network,ANN)、卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks, CNN)、循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network, RNN)、長(zhǎng)短期記憶網(wǎng)絡(luò)(Long-Short Term Memory,LSTM)和注意力機(jī)制等。TENG F等[8]提出了一種基于長(zhǎng)短期記憶網(wǎng)絡(luò)的多維主題分類(lèi)模型,將該模型與遞歸神經(jīng)網(wǎng)絡(luò)在中文微博數(shù)據(jù)集進(jìn)行比較實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果表明文中提出的模型效果較好。馮興杰等[9]提出基于卷積神經(jīng)網(wǎng)絡(luò)和注意力模型相結(jié)合的文本情感分析方法,并與傳統(tǒng)的機(jī)器學(xué)習(xí)方法和單純的卷積神經(jīng)網(wǎng)絡(luò)方法進(jìn)行比較實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果表明文中提出的模型效果較好。
通過(guò)文獻(xiàn)梳理發(fā)現(xiàn),長(zhǎng)短期記憶網(wǎng)絡(luò)因具有記憶能力,在文本情感分類(lèi)中取得了不錯(cuò)的效果。然而,LSTM模型的參數(shù)設(shè)置直接影響到模型的預(yù)測(cè)結(jié)果,目前LSTM參數(shù)選取研究多是采用遍歷網(wǎng)格搜索算法,存在開(kāi)銷(xiāo)大的缺點(diǎn)[10]。因此,本文的主要工作如下:
(1)利用詞嵌入技術(shù)將微博樣本從高維向量化嵌入到低維向量空間;
(2)采用TF*IDF提取微博樣本的積極情感與消極情感的特征詞,并進(jìn)一步用詞云分別展示其詞語(yǔ)分布;
(3)采用粒子群算法優(yōu)化LSTM網(wǎng)絡(luò)參數(shù),給出一種PSO- LSTM模型,并在涉新冠肺炎疫情相關(guān)微博數(shù)據(jù)集上進(jìn)行了模型的比較實(shí)驗(yàn)。
微博文本具有長(zhǎng)度短(一般不超200字)、表達(dá)不規(guī)范(口語(yǔ)化、用戶(hù)昵稱(chēng))、非結(jié)構(gòu)化等特點(diǎn),給微博文本情感分類(lèi)帶來(lái)較大的噪聲干擾。在對(duì)微博文本情感分類(lèi)之前要用自然語(yǔ)言的相關(guān)技術(shù)對(duì)數(shù)據(jù)集進(jìn)行預(yù)處理操作。主要步驟有:一是數(shù)據(jù)清洗。微博樣本常包含有數(shù)字、字母、URL、特殊字符、重復(fù)值等噪聲數(shù)據(jù),要將這些噪聲數(shù)據(jù)進(jìn)行去除操作;二是切詞分詞。為有效提取微博樣本的特征,通常采用切詞分詞算法(如jieba分詞等)對(duì)其進(jìn)行切詞分詞操作;三是去除停用詞、標(biāo)點(diǎn)符號(hào)。停用詞、標(biāo)點(diǎn)符號(hào)一般沒(méi)有實(shí)際意義,且會(huì)因出現(xiàn)頻率較高影響微博特征的有效提取,需進(jìn)一步采用常用的停用詞庫(kù)(百度停用詞庫(kù)、哈工大停用詞庫(kù)、搜狗停用詞庫(kù))對(duì)微博樣本中的停用詞進(jìn)行去除操作。
微博是非結(jié)構(gòu)化的字符文本,需要通過(guò)向量空間模型轉(zhuǎn)化為計(jì)算機(jī)可以處理的形式。文本向量空間模型表示方法主要有獨(dú)熱編碼(One Hot Encoding)和詞嵌入(Word Embedding)。
1.2.1 獨(dú)熱編碼
獨(dú)熱編碼是將詞轉(zhuǎn)換成詞表表示的一個(gè)高維向量,每個(gè)詞在詞表中出現(xiàn)的位置記為1,其余位置均記為0。如,短文本:“我愛(ài)中國(guó)”,通過(guò)分詞可表示為序列[“我”“愛(ài)”“中國(guó)”],假設(shè)詞表長(zhǎng)度為3,即只有這3個(gè)詞,則“我”“愛(ài)”“中國(guó)”的獨(dú)立編碼分別為[100][010][001]。這種編碼方式雖然便于計(jì)算,但詞與詞之間彼此獨(dú)立,缺乏上下文關(guān)聯(lián),會(huì)丟失文本的語(yǔ)義及詞序信息。同時(shí),還容易因單詞數(shù)量太多,特別是短文本易導(dǎo)致數(shù)據(jù)的高度稀疏,出現(xiàn)“維數(shù)災(zāi)難”[11]。
1.2.2 詞嵌入
詞嵌入是指將詞匯從高維向量化嵌入到低維向量空間,單詞向量的每個(gè)分量用實(shí)數(shù)表示[12]。詞嵌入具有能夠有效考慮文檔中的某個(gè)詞與其他詞的關(guān)系及相關(guān)語(yǔ)義信息等,在文檔表示中廣泛使用。詞嵌入應(yīng)用比較廣泛的是谷歌提出的Word2Vec,其基本思想是句子中相近的詞是有聯(lián)系的,可以通過(guò)當(dāng)前的詞預(yù)測(cè)相近的詞。Word2Vec主要有Skip-gram和CBOW兩種模型,Skip-gram使用中心詞來(lái)預(yù)測(cè)周?chē)脑~,CBOW則是使用周?chē)脑~預(yù)測(cè)中心詞。Skip-gram模型比CBOW 模型語(yǔ)義準(zhǔn)確率更高[13]。因此,本文采用Skip-gram模型來(lái)訓(xùn)練詞向量,該模型的結(jié)構(gòu)如圖1所示。在單詞總量為T(mén)的文本序列中,給定任意一個(gè)單詞w(t),當(dāng)訓(xùn)練文本窗口大小為m時(shí),Skip-gram的目標(biāo)是最大化生成w(t)背景詞的概率為:
(1)
上式最大似然估計(jì)等價(jià)于最小化以下?lián)p失函數(shù):
(2)
其中,P(w(t+j)|w(t))利用softmax函數(shù)定義為:
(3)
2.1 長(zhǎng)短記憶神經(jīng)網(wǎng)絡(luò)(LSTM)
圖2 LSTM神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
ft=σ(wf[ht-1,xt]+bf)
(4)
it=σ(wi[ht-1,xt]+bi)
(5)
(6)
(7)
ot=σ(wo[ht-1,xt]+bo
(8)
ht=ot×tanh (ct)
(9)
2.2 粒子群算法
粒子群算法(Particle Swarm Optimization,PSO)是一種模擬鳥(niǎo)群捕食行為的隨機(jī)搜索群智能優(yōu)化算法,算法將待優(yōu)化問(wèn)題的解抽象為粒子,每個(gè)粒子根據(jù)適應(yīng)函數(shù)確定適應(yīng)值[15]。粒子在限定空間飛行的過(guò)程中,向局部最優(yōu)與全局最優(yōu)點(diǎn)移動(dòng)來(lái)實(shí)現(xiàn)最優(yōu)位置的選取,以實(shí)現(xiàn)該粒子在粒子群中的運(yùn)動(dòng)方向最優(yōu)。粒子群算法基本過(guò)程是:在N維空間中隨機(jī)初始化M個(gè)粒子,粒子i的位置表示為:Xi=(xi1,xi2,…,xiN),飛行速度表示為:Vi=(vi1,vi2,…,viN)。粒子i通過(guò)由適應(yīng)度函數(shù)決定的適應(yīng)值來(lái)不斷迭代找到最優(yōu)解,同時(shí)通過(guò)跟蹤自己目前的最好位置pbesti和粒子群全局最優(yōu)位置gbesti來(lái)更新自己。找到pbesti和gbesti后,根據(jù)公式(10)和(11)來(lái)分別改變自己的速度與位置。
(10)
(11)
其中,n=1,2,…,N為搜索空間的維數(shù),i=1,2,…M搜索的粒子數(shù),Vin為粒子i在第k次迭代中的速度,rand()為分布在[0,1]之間的隨機(jī)數(shù),Xin為粒子的當(dāng)前位置,c1,c2是學(xué)習(xí)因子,ω為慣性因子。
LSTM模型的預(yù)測(cè)精度同參數(shù)數(shù)據(jù)時(shí)間窗步長(zhǎng)(look_back,lb)、網(wǎng)絡(luò)隱藏層 (lstm_nets,ls)、訓(xùn)練次數(shù)(epochs,ep)、(dropout,dp)的取值密切相關(guān)[10]。因此,本研究采用粒子群算法在搜索空間內(nèi)對(duì)這4個(gè)參數(shù)進(jìn)行優(yōu)化,以確定最佳參數(shù)組合,并使用交叉熵?fù)p失函數(shù)作為自適應(yīng)函數(shù),在文本情感分類(lèi)中交叉熵?fù)p失函數(shù)定義為:
(12)
其中,i=1,2,…N為訓(xùn)練樣本數(shù),k=1,2,…K為情感類(lèi)別數(shù),yi為真實(shí)值,i為預(yù)測(cè)值。交叉熵?fù)p失度量了真實(shí)值和預(yù)測(cè)值之間的不一致程度,其值越小,模型的效果越好,模型優(yōu)化的最終目標(biāo)就對(duì)參數(shù)值的調(diào)優(yōu),使得交叉熵?fù)p失最小[16]。
建立粒子群優(yōu)化的LSTM中文本微博情感分類(lèi)模型,具體流程如圖3所示。根據(jù)粒子群算法和LSTM算法的基本思想,基于粒子群優(yōu)化的LSTM微博情感分類(lèi)算法思路如下。
圖3 基于粒子群優(yōu)化的LSTM模型
(1)采用1.1和1.2介紹的相關(guān)預(yù)處理技術(shù)將微博樣本表示為詞向量空間模型;
(2)將數(shù)據(jù)時(shí)間窗步長(zhǎng)(look_back,lb)、網(wǎng)絡(luò)隱藏層 (lstm_nets,ls)、訓(xùn)練次數(shù)(epochs,ep)、丟棄率(dropout,dp)作為優(yōu)化對(duì)象。初始化粒子群和相關(guān)參數(shù)(具體值見(jiàn)實(shí)驗(yàn)),初始化P個(gè)粒子的位置編碼Xi,速度Vi;
(3)根據(jù)公式(12)計(jì)算每個(gè)粒子的適應(yīng)度值fi,產(chǎn)生pbesti和gbesti;
(4)用每個(gè)粒子的適應(yīng)度值fi與個(gè)體極值比較pbesti,若fi>pbesti,則pbesti的值更新為fi;
(5)用每個(gè)粒子的適應(yīng)度值fi與全局極值比較gbesti,若fi>gbesti,則gbesti的值更新為fi;
(6)根據(jù)公式(10)和(11)更新所有粒子的速度和位置;
(7)若滿(mǎn)足終止條件,返回最優(yōu)超參數(shù)取值;否則,重復(fù)步驟(3)至(6);
(8)根據(jù)返回的最優(yōu)參數(shù)訓(xùn)練LSTM模型;
(9)用測(cè)試微博集在訓(xùn)練出的模型上進(jìn)行測(cè)試,并采用評(píng)價(jià)函數(shù)評(píng)估模型性能。
實(shí)驗(yàn)環(huán)境:CPU Intel(R) Core(TM) i7- 8565U,內(nèi)存16 GB,操作系統(tǒng)為Windows 10,使用Python 3.8.8,具體環(huán)境如表1所示。
表1 實(shí)驗(yàn)環(huán)境
實(shí)驗(yàn)數(shù)據(jù)集來(lái)源分別為新浪微博平臺(tái)抓取和筆者收集的涉及新冠肺炎疫情微博數(shù)據(jù),并進(jìn)行了人工標(biāo)注,實(shí)驗(yàn)數(shù)據(jù)的樣本結(jié)構(gòu)如表2所示。
表2 微博樣本結(jié)構(gòu)
通常采用精確率(Precision)、召回率(Recall)、F1值和準(zhǔn)確率(Accuracy)評(píng)價(jià)微博情感分類(lèi)的性能,混淆矩陣如表3所示[17]。
表3 混淆矩陣
(13)
(14)
(15)
(16)
3.4.1 微博數(shù)據(jù)集分析
(1)數(shù)據(jù)長(zhǎng)度分析
微博數(shù)據(jù)樣本的長(zhǎng)度統(tǒng)計(jì)分析如圖4所示,選取標(biāo)準(zhǔn)化長(zhǎng)度為220時(shí)可以涵蓋 94.66%的樣本。
圖4 微博數(shù)據(jù)樣本長(zhǎng)度統(tǒng)計(jì)
(2)微博情感分析
為驗(yàn)證微博數(shù)據(jù)集標(biāo)記的可靠性,本研究采用TF*IDF提取微博樣本的積極情感與消極情感的特征詞,并進(jìn)一步用詞云分別展示其詞語(yǔ)分布。具體分析為:如圖5(a)所示,積極情感主要包括“醫(yī)護(hù)人員”“平安”“前線”“健康”等正面主題詞,內(nèi)容主要涉及對(duì)大家健康的祝福、對(duì)前線醫(yī)護(hù)人員的支持等,多有“平安”“健康”等能夠帶來(lái)積極正面影響的詞語(yǔ),如圖5(b)所示,消極情感主要包括“肺炎”“野味”“悲傷”“嚴(yán)重”等相對(duì)負(fù)面主題詞,表現(xiàn)為對(duì)疫情呈現(xiàn)悲觀態(tài)度,在一定程度上會(huì)煽動(dòng)人們的情緒,帶來(lái)消極負(fù)面的影響。
圖5 不同微博情感詞云分布
3.4.2 模型比較實(shí)驗(yàn)分析
粒子群算法的參數(shù)設(shè)置為:慣性因子ω的值初始化為0.5,學(xué)習(xí)因子c1,c2的值初始化為2,粒子數(shù)為20[10]。本研究將網(wǎng)絡(luò)隱層數(shù)、時(shí)間窗步長(zhǎng)、訓(xùn)練次數(shù)、dropout 4個(gè)參數(shù)的上界組合設(shè)為[10,1,10,0.2],上界組合設(shè)為[160,16,320,0.5]。采用PSO- LSTM算法在上述搜索空間最終確定優(yōu)化參數(shù)[101,12,90,0.35]作為L(zhǎng)STM的參數(shù)輸入。將微博樣本集劃分為80%訓(xùn)練集和20%測(cè)試集,使用貝葉斯、支持向量機(jī)、RNN、LSTM、PSO- LSTM進(jìn)行比對(duì)實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果如表4所示。從表中可以看出RNN、LSTM、PSO- LSTM對(duì)微博情感分類(lèi)的Precision、Recall、F1-score相對(duì)于傳統(tǒng)的機(jī)器學(xué)習(xí)算法貝葉斯、支持向量機(jī)都有所提升。說(shuō)明基于深度學(xué)習(xí)的微博情感分類(lèi)更能有效提取微博樣本的特征,從而提高模型的性能。從F值上看,PSO- LSTM算法因采用粒子群算對(duì)LSTM的參數(shù)進(jìn)行了調(diào)優(yōu)達(dá)到了89%,較 RNN和LSTM算法分別提高了5%和4%,達(dá)到上述5種算法中最好效果。
表4 模型情感分類(lèi)對(duì)比實(shí)驗(yàn)結(jié)果統(tǒng)計(jì)
(2)LSTM和PSO- LSTM的ROC曲線如圖6(a)所示,從ROC曲線來(lái)看,兩種模型都遠(yuǎn)離基準(zhǔn)線,曲線的面積分別為0.929和0.958,說(shuō)明LSTM和PSO- LSTM對(duì)于微博情感分類(lèi)的性能都較優(yōu),但整體而言PSO- LSTM的效果更好。從P- R曲線來(lái)看,隨著查全率R的增加,LSTM模型的查全率下降速度明顯快于PSO- LSTM模型,預(yù)測(cè)的總正確率0.853也低于PSO- LSTM模型的總正確率0.888,進(jìn)一步說(shuō)明了PSO- LSTM模型較LSTM在微博情感分類(lèi)有更好的表現(xiàn)。
圖6 PSO- LSTM、LSTM的ROC和P- R曲線
基于深度學(xué)習(xí)的微博情感分類(lèi)是網(wǎng)絡(luò)輿情監(jiān)控的重要方法,其中LSTM因具有記憶能力,在文本情感分類(lèi)中取得了不錯(cuò)的效果。本文首先將收集的涉新冠肺炎疫情的微博數(shù)據(jù)集進(jìn)行數(shù)據(jù)清洗、切詞分詞、去除停用詞等預(yù)處理操作,并利用詞嵌入技術(shù)將微博樣本從高維向量化嵌入到低維向量空間;然后采用TF*IDF提取微博樣本的積極情感與消極情感的特征詞,并進(jìn)一步用詞云分別展示其詞語(yǔ)分布;最后采用粒子群算法優(yōu)化LSTM網(wǎng)絡(luò)參數(shù),給出一種PSO- LSTM模型,并在數(shù)據(jù)集上進(jìn)行了模型的比較實(shí)驗(yàn)。實(shí)驗(yàn)結(jié)果表明,PSO- LSTM能有效提高微博情感分類(lèi)的性能。
中國(guó)人民公安大學(xué)學(xué)報(bào)(自然科學(xué)版)2022年1期