成哲丞
關(guān)鍵詞:Java 分布式爬蟲;Elasticsearch;注意力機(jī)制;Bi-LSTM;輿情預(yù)警
中圖分類號(hào):TP391.1 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1006-8228(2023)11-124-03
0 引言
網(wǎng)絡(luò)空間不是法外之地,網(wǎng)絡(luò)輿情監(jiān)管和應(yīng)對(duì)是一個(gè)非常棘手的問題。目前針對(duì)網(wǎng)絡(luò)輿情監(jiān)測(cè)的研究主要存在以下問題。
⑴ 針對(duì)單一事件:當(dāng)前對(duì)網(wǎng)絡(luò)輿情的監(jiān)測(cè)往往都是針對(duì)已發(fā)生的且有著負(fù)面影響的事件,通常研究的輿情事件比較單一[1]。
⑵ 實(shí)時(shí)性差:由于網(wǎng)絡(luò)事件所帶來的海量數(shù)據(jù),當(dāng)前對(duì)事件進(jìn)行輿情監(jiān)測(cè)時(shí)不能夠很及時(shí),且往往沒有考慮當(dāng)數(shù)據(jù)量大時(shí),系統(tǒng)的運(yùn)行效率問題[2]。
⑶ 準(zhǔn)確率低:當(dāng)前對(duì)網(wǎng)絡(luò)輿情事件的預(yù)警研究較少,且由于評(píng)論數(shù)據(jù)的多樣性、復(fù)雜性,導(dǎo)致輿情預(yù)警的準(zhǔn)確率不夠高。
針對(duì)上訴問題,且為了提升輿情監(jiān)測(cè)系統(tǒng)的性能和準(zhǔn)確率,以新浪微博作為數(shù)據(jù)源,本文在傳統(tǒng)輿情監(jiān)測(cè)系統(tǒng)架構(gòu)和情感分析方法的基礎(chǔ)上提出了一種基于深度學(xué)習(xí)的微博輿情監(jiān)測(cè)模型。本模型旨在監(jiān)測(cè)和分析微博熱搜的輿情信息,了解公眾對(duì)某個(gè)話題或事件的態(tài)度和反應(yīng),及時(shí)對(duì)發(fā)生負(fù)面輿情的事件進(jìn)行監(jiān)測(cè)。
1 熱搜數(shù)據(jù)采集與處理
1.1 基于Java 的分布式數(shù)據(jù)爬取框架
本節(jié)針對(duì)性地設(shè)計(jì)實(shí)現(xiàn)了一個(gè)基于Java 的分布式數(shù)據(jù)爬取框架,該框架可快速爬取新浪微博熱搜榜的全部評(píng)論數(shù)據(jù)。該框架的結(jié)構(gòu)如圖1 所示。
該框架重要組成部件的相關(guān)功能作用如下:
⑴ 爬蟲定時(shí)器(SpiderTimer):爬蟲定時(shí)器負(fù)責(zé)定時(shí)地調(diào)用爬蟲啟動(dòng)器;
⑵ 爬蟲任務(wù)池(SpiderTask Pool):爬蟲任務(wù)池負(fù)責(zé)管理子爬蟲任務(wù)的權(quán)值,權(quán)值越大的子爬蟲任務(wù)會(huì)被優(yōu)先相應(yīng);
⑶ 爬蟲管理器(SpiderManager):爬蟲管理器會(huì)將子爬蟲任務(wù)分配給爬蟲線程池。同時(shí)爬蟲管理器還會(huì)將爬蟲返回的結(jié)果交給結(jié)果處理器;
⑷ 爬蟲線程池(SpiderThread Pool):爬蟲線程池負(fù)責(zé)將得到的子爬蟲任務(wù)分配給池內(nèi)空閑的線程,一條線程對(duì)應(yīng)一個(gè)爬蟲。
1.2 數(shù)據(jù)預(yù)處理
爬取到的原始評(píng)論數(shù)據(jù)可能存在著沒有結(jié)構(gòu)化,格式不規(guī)范等問題。為了之后更好地進(jìn)行情感分析,提高情感分析模型的準(zhǔn)確性,“純凈”的數(shù)據(jù)集是十分必要的,因此需要對(duì)爬取到的原始評(píng)論數(shù)據(jù)進(jìn)行規(guī)范化處理。規(guī)范化處理主要包括三個(gè)部分:數(shù)據(jù)清洗、文本分詞和去除停用詞。經(jīng)過上述規(guī)范化處理之后,將會(huì)得到“純凈”的標(biāo)準(zhǔn)化數(shù)據(jù)。
1.3 基于Elasticsearch 的分布式搜索存儲(chǔ)方法
考慮到輿情監(jiān)測(cè)模型的實(shí)際需求,基于Elasticsearch[3]的分布式搜索存儲(chǔ)方法會(huì)維護(hù)一個(gè)熱搜哈希表。熱搜哈希表中存儲(chǔ)的是登上過新浪微博熱搜榜的熱搜信息。哈希表的Key 值為熱搜名,Value 值為熱搜的相關(guān)信息。熱搜的相關(guān)信息包括熱搜名、導(dǎo)語、話題閱讀次數(shù)、話題討論次數(shù)、媒體報(bào)道次數(shù)、通用唯一標(biāo)識(shí)符、年齡和情感狀況。
哈希表中的一條數(shù)據(jù)對(duì)應(yīng)一條熱搜,也對(duì)應(yīng)著Elasticsearch 中的一個(gè)索引庫。該方法的存儲(chǔ)邏輯如圖2 所示。
考慮到實(shí)際環(huán)境下評(píng)論總數(shù)每天可達(dá)數(shù)十萬,甚至上百萬條。及時(shí)地刪除過時(shí)話題的數(shù)據(jù),釋放服務(wù)器資源是十分必要的。方法的刪除邏輯如圖3 所示。
2 融合改進(jìn)注意力機(jī)制的Bi-LSTM 情感分析方法
2.1 方法原理
為了對(duì)用戶評(píng)論進(jìn)行情感分類,本章提出了一種融合改進(jìn)注意力機(jī)制的Bi-LSTM 情感分析方法。該方法會(huì)降低熱搜話題自身所帶情感度的影響,更關(guān)注用戶自身評(píng)論,更精確地分析用戶評(píng)論的情感傾向。該方法所用模型的結(jié)構(gòu)圖如圖4 所示。
由圖4 可知,各層的工作內(nèi)容為詞嵌入層:通過Word2vec 中的Skip-Gram 模型[4]對(duì)熱搜話題和評(píng)論進(jìn)行向量化處理;語義特征提取層:通過引入雙向長短期記憶神經(jīng)網(wǎng)絡(luò)(Bi-LSTM)來獲取評(píng)論中上下文之間的信息;改進(jìn)注意力層:通過引入改進(jìn)注意力機(jī)制[5]來降低話題自身所帶情感度的影響。輸出分類層:將上一層的輸出結(jié)果進(jìn)行全連接,再通過Softmax 函數(shù)進(jìn)行情感分類。其中改進(jìn)注意力機(jī)制的工作流程如圖5 所示。
由圖5 可知,先計(jì)算計(jì)算話題詞(query)與用戶評(píng)論詞(key)的相似度。再選擇某種方式將相似度轉(zhuǎn)換成最終的注意力得分(目的降低話題詞的權(quán)重),這里可以選擇將相似度取反的方式。接著通過softmax 函數(shù)對(duì)注意力分?jǐn)?shù)做一個(gè)歸一化,得到每個(gè)key-value 的注意力權(quán)重,將注意力權(quán)重與每個(gè)key 對(duì)應(yīng)的value相乘,再求和,就可以得到最后的輸出結(jié)果。
2.2 對(duì)比實(shí)驗(yàn)結(jié)果
本實(shí)驗(yàn)選用了CNN 和Bi-LSTM 兩種當(dāng)下最為常用的深度學(xué)習(xí)模型來做對(duì)比實(shí)驗(yàn)。實(shí)驗(yàn)數(shù)據(jù)集選用了CCIR 2020“疫情期間網(wǎng)民情緒識(shí)別”評(píng)測(cè)活動(dòng)數(shù)據(jù)集和微博情感分析數(shù)據(jù)集,并把上述兩個(gè)數(shù)據(jù)集都進(jìn)行了8:1:1 的劃分。實(shí)驗(yàn)指標(biāo)選用了準(zhǔn)確率(Accuracy)、查準(zhǔn)率(Precision)和F1 值(F1-Score)三種。實(shí)驗(yàn)結(jié)果對(duì)比情況如圖6 所示。
從圖6 實(shí)驗(yàn)結(jié)果可以看出,融合改進(jìn)注意力機(jī)制的Bi-LSTM 情感分析方法在公開數(shù)據(jù)集一和二上的效果都明顯優(yōu)于CNN 和Bi-LSTM 兩個(gè)模型。
3 基于情感分析的輿情預(yù)警等級(jí)計(jì)算方法
基于情感分析的輿情預(yù)警等級(jí)計(jì)算方法[6]先利用用戶評(píng)論的情感極性、點(diǎn)贊數(shù)和轉(zhuǎn)發(fā)數(shù)計(jì)算出熱搜話題的情感度。再根據(jù)熱搜話題的閱讀量、評(píng)論數(shù)、熱搜話題情感度和熱搜話題類型來計(jì)算話題的輿情預(yù)警等級(jí)。輿情預(yù)警等級(jí)計(jì)算方法的原理如圖7 所示。
3.1 熱搜話題情感度計(jì)算
先計(jì)算熱搜話題下所有評(píng)論的情感傾向得分之和,其中正向情感得分為1,中性情感得分為0,負(fù)向情感得分為-1。再根據(jù)得分之和和評(píng)論數(shù)量計(jì)算熱搜話題的平均情感傾向得分Score。為了減小不同話題之間平均情感傾向得分的差異,便于更加直觀的得出熱搜話題的情感度,最后利用Sigmoid 函數(shù)將平均情感傾向得分映射到(0,100)區(qū)間中,得到熱搜話題的情感度E。熱搜話題情感度的計(jì)算公式如下:
3.2 熱搜話題輿情預(yù)警等級(jí)計(jì)算
參考網(wǎng)絡(luò)輿情預(yù)警等級(jí)的劃分,本方法將新浪微博熱搜話題輿情預(yù)警等級(jí)分為了無風(fēng)險(xiǎn)、低風(fēng)險(xiǎn)、中風(fēng)險(xiǎn)、高風(fēng)險(xiǎn)和緊急預(yù)警這五種等級(jí)。熱搜話題的情感度是定性的,決定了熱搜話題的情感度好壞情況。熱搜話題情感度[0,50)被認(rèn)為是負(fù)面話題,[ 50,100]被認(rèn)為是正面話題。而話題閱讀量、話題評(píng)論量、媒體報(bào)道數(shù)、話題類型等數(shù)據(jù)是定量的,會(huì)影響熱搜話題的輿情狀況,但不會(huì)改變熱搜話題的情感極性。熱搜話題輿情預(yù)警等級(jí)計(jì)算公式如下:
其中,β1、β2、β3分別是話題閱讀量、話題評(píng)論量、媒體報(bào)道數(shù)各自相較于其他熱搜平均水平的百分比,同時(shí)還需對(duì)這些百分比設(shè)定一個(gè)最高值限制。β4表示話題類型的權(quán)重值,不同的話題類型設(shè)有不同的權(quán)值。計(jì)算完輿情預(yù)警等級(jí)分?jǐn)?shù),就可以將輿情預(yù)警等級(jí)分?jǐn)?shù)映射到不同的輿情預(yù)警等級(jí)標(biāo)簽上。
4 總結(jié)
隨著互聯(lián)網(wǎng)的普及和社交媒體的興起,網(wǎng)絡(luò)輿情監(jiān)測(cè)和管理變得越來越重要。本文提出的基于深度學(xué)習(xí)的微博輿情監(jiān)測(cè)模型可以實(shí)時(shí)監(jiān)測(cè)微博上的輿情狀況,了解公眾對(duì)某個(gè)事件或話題的態(tài)度和看法,從而幫助企業(yè)、政府等各方面做出更加準(zhǔn)確的決策,預(yù)防發(fā)生輿情危機(jī)。