?

基于深度學習的微博輿情監測模型研究與實現

2023-12-18 18:13成哲丞
計算機時代 2023年11期
關鍵詞:爬蟲輿情注意力

成哲丞

關鍵詞:Java 分布式爬蟲;Elasticsearch;注意力機制;Bi-LSTM;輿情預警

中圖分類號:TP391.1 文獻標識碼:A 文章編號:1006-8228(2023)11-124-03

0 引言

網絡空間不是法外之地,網絡輿情監管和應對是一個非常棘手的問題。目前針對網絡輿情監測的研究主要存在以下問題。

⑴ 針對單一事件:當前對網絡輿情的監測往往都是針對已發生的且有著負面影響的事件,通常研究的輿情事件比較單一[1]。

⑵ 實時性差:由于網絡事件所帶來的海量數據,當前對事件進行輿情監測時不能夠很及時,且往往沒有考慮當數據量大時,系統的運行效率問題[2]。

⑶ 準確率低:當前對網絡輿情事件的預警研究較少,且由于評論數據的多樣性、復雜性,導致輿情預警的準確率不夠高。

針對上訴問題,且為了提升輿情監測系統的性能和準確率,以新浪微博作為數據源,本文在傳統輿情監測系統架構和情感分析方法的基礎上提出了一種基于深度學習的微博輿情監測模型。本模型旨在監測和分析微博熱搜的輿情信息,了解公眾對某個話題或事件的態度和反應,及時對發生負面輿情的事件進行監測。

1 熱搜數據采集與處理

1.1 基于Java 的分布式數據爬取框架

本節針對性地設計實現了一個基于Java 的分布式數據爬取框架,該框架可快速爬取新浪微博熱搜榜的全部評論數據。該框架的結構如圖1 所示。

該框架重要組成部件的相關功能作用如下:

⑴ 爬蟲定時器(SpiderTimer):爬蟲定時器負責定時地調用爬蟲啟動器;

⑵ 爬蟲任務池(SpiderTask Pool):爬蟲任務池負責管理子爬蟲任務的權值,權值越大的子爬蟲任務會被優先相應;

⑶ 爬蟲管理器(SpiderManager):爬蟲管理器會將子爬蟲任務分配給爬蟲線程池。同時爬蟲管理器還會將爬蟲返回的結果交給結果處理器;

⑷ 爬蟲線程池(SpiderThread Pool):爬蟲線程池負責將得到的子爬蟲任務分配給池內空閑的線程,一條線程對應一個爬蟲。

1.2 數據預處理

爬取到的原始評論數據可能存在著沒有結構化,格式不規范等問題。為了之后更好地進行情感分析,提高情感分析模型的準確性,“純凈”的數據集是十分必要的,因此需要對爬取到的原始評論數據進行規范化處理。規范化處理主要包括三個部分:數據清洗、文本分詞和去除停用詞。經過上述規范化處理之后,將會得到“純凈”的標準化數據。

1.3 基于Elasticsearch 的分布式搜索存儲方法

考慮到輿情監測模型的實際需求,基于Elasticsearch[3]的分布式搜索存儲方法會維護一個熱搜哈希表。熱搜哈希表中存儲的是登上過新浪微博熱搜榜的熱搜信息。哈希表的Key 值為熱搜名,Value 值為熱搜的相關信息。熱搜的相關信息包括熱搜名、導語、話題閱讀次數、話題討論次數、媒體報道次數、通用唯一標識符、年齡和情感狀況。

哈希表中的一條數據對應一條熱搜,也對應著Elasticsearch 中的一個索引庫。該方法的存儲邏輯如圖2 所示。

考慮到實際環境下評論總數每天可達數十萬,甚至上百萬條。及時地刪除過時話題的數據,釋放服務器資源是十分必要的。方法的刪除邏輯如圖3 所示。

2 融合改進注意力機制的Bi-LSTM 情感分析方法

2.1 方法原理

為了對用戶評論進行情感分類,本章提出了一種融合改進注意力機制的Bi-LSTM 情感分析方法。該方法會降低熱搜話題自身所帶情感度的影響,更關注用戶自身評論,更精確地分析用戶評論的情感傾向。該方法所用模型的結構圖如圖4 所示。

由圖4 可知,各層的工作內容為詞嵌入層:通過Word2vec 中的Skip-Gram 模型[4]對熱搜話題和評論進行向量化處理;語義特征提取層:通過引入雙向長短期記憶神經網絡(Bi-LSTM)來獲取評論中上下文之間的信息;改進注意力層:通過引入改進注意力機制[5]來降低話題自身所帶情感度的影響。輸出分類層:將上一層的輸出結果進行全連接,再通過Softmax 函數進行情感分類。其中改進注意力機制的工作流程如圖5 所示。

由圖5 可知,先計算計算話題詞(query)與用戶評論詞(key)的相似度。再選擇某種方式將相似度轉換成最終的注意力得分(目的降低話題詞的權重),這里可以選擇將相似度取反的方式。接著通過softmax 函數對注意力分數做一個歸一化,得到每個key-value 的注意力權重,將注意力權重與每個key 對應的value相乘,再求和,就可以得到最后的輸出結果。

2.2 對比實驗結果

本實驗選用了CNN 和Bi-LSTM 兩種當下最為常用的深度學習模型來做對比實驗。實驗數據集選用了CCIR 2020“疫情期間網民情緒識別”評測活動數據集和微博情感分析數據集,并把上述兩個數據集都進行了8:1:1 的劃分。實驗指標選用了準確率(Accuracy)、查準率(Precision)和F1 值(F1-Score)三種。實驗結果對比情況如圖6 所示。

從圖6 實驗結果可以看出,融合改進注意力機制的Bi-LSTM 情感分析方法在公開數據集一和二上的效果都明顯優于CNN 和Bi-LSTM 兩個模型。

3 基于情感分析的輿情預警等級計算方法

基于情感分析的輿情預警等級計算方法[6]先利用用戶評論的情感極性、點贊數和轉發數計算出熱搜話題的情感度。再根據熱搜話題的閱讀量、評論數、熱搜話題情感度和熱搜話題類型來計算話題的輿情預警等級。輿情預警等級計算方法的原理如圖7 所示。

3.1 熱搜話題情感度計算

先計算熱搜話題下所有評論的情感傾向得分之和,其中正向情感得分為1,中性情感得分為0,負向情感得分為-1。再根據得分之和和評論數量計算熱搜話題的平均情感傾向得分Score。為了減小不同話題之間平均情感傾向得分的差異,便于更加直觀的得出熱搜話題的情感度,最后利用Sigmoid 函數將平均情感傾向得分映射到(0,100)區間中,得到熱搜話題的情感度E。熱搜話題情感度的計算公式如下:

3.2 熱搜話題輿情預警等級計算

參考網絡輿情預警等級的劃分,本方法將新浪微博熱搜話題輿情預警等級分為了無風險、低風險、中風險、高風險和緊急預警這五種等級。熱搜話題的情感度是定性的,決定了熱搜話題的情感度好壞情況。熱搜話題情感度[0,50)被認為是負面話題,[ 50,100]被認為是正面話題。而話題閱讀量、話題評論量、媒體報道數、話題類型等數據是定量的,會影響熱搜話題的輿情狀況,但不會改變熱搜話題的情感極性。熱搜話題輿情預警等級計算公式如下:

其中,β1、β2、β3分別是話題閱讀量、話題評論量、媒體報道數各自相較于其他熱搜平均水平的百分比,同時還需對這些百分比設定一個最高值限制。β4表示話題類型的權重值,不同的話題類型設有不同的權值。計算完輿情預警等級分數,就可以將輿情預警等級分數映射到不同的輿情預警等級標簽上。

4 總結

隨著互聯網的普及和社交媒體的興起,網絡輿情監測和管理變得越來越重要。本文提出的基于深度學習的微博輿情監測模型可以實時監測微博上的輿情狀況,了解公眾對某個事件或話題的態度和看法,從而幫助企業、政府等各方面做出更加準確的決策,預防發生輿情危機。

猜你喜歡
爬蟲輿情注意力
利用網絡爬蟲技術驗證房地產灰犀牛之說
讓注意力“飛”回來
基于Python的網絡爬蟲和反爬蟲技術研究
利用爬蟲技術的Geo-Gnutel la VANET流量采集
“揚眼”APP:讓注意力“變現”
大數據環境下基于python的網絡爬蟲技術
A Beautiful Way Of Looking At Things
輿情
輿情
輿情
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合