馬燕妮 盧鐵領



收稿日期:2023-06-19
基金項目:2021年寧夏醫科大學理學院科研項目(nylxy20210016);寧夏醫科大學校級科研項目(XM2023226)
DOI:10.19850/j.cnki.2096-4706.2023.22.005
摘? 要:嚴格把控輿情方向,監測網民動態和大眾感情傾向是對輿情發展控制的有力手段,也是對大數據輿論信息檢測的關鍵所在。文章針對微博熱點搜索、搜狗網頁提供的微信公眾號熱點和百度資訊的熱點新聞爬取并預測輿論傾向,利用可視化界面展示分析后的結果。首先通過爬蟲獲取每日熱點信息,文本預處理后存入數據庫;然后利用LDA主題模型提取熱點事件,使用卷積神經網絡分析情感傾向(正面、中性和負面);最后采用Django框架展示頁面,進行相關統計研究和數據的可視化展示,通過可視化界面展示分析后得到的熱點事件和輿論傾向。
關鍵詞:輿情分析;LDA主題模型;卷積神經網絡;情感傾向性分析;網絡爬蟲
中圖分類號:TP311? 文獻標識碼:A? 文章編號:2096-4706(2023)22-0020-06
Design and Implementation of an Intelligent Platform for Network Public Opinion Analysis Based on LDA
MA Yanni, LU Tieling
(Ningxia Medical University, Yinchuan? 750004, China)
Abstract: Strictly controlling the direction of public opinion, monitoring the dynamics of Internet users and the emotional tendency of the public are powerful means to control the development of public opinion, and are also the key to the detection of big data public opinion information. This paper crawls and predicts the trend of public opinion for the hot search of Weibo, the hot news of WeChat public account provided by Sogou website and the hot news of Baidu News, and use the visual interface to display the analysis results. Firstly, the daily hot information is obtained by crawler, and the text is pre-processed and stored in the database. Then the LDA topic model is used to extract hot events, and the convolutional neural network is used to analyze the emotional tendency (positive, neutral and negative). Finally, the Django framework display page is used for relevant statistical research and visual display of data, and the hot events and public opinion trends obtained after analysis are displayed through the visual interface.
Keywords: public opinion analysis; LDA topic model; Convolutional Neural Networks; analysis of emotional tendency; Web crawler
0? 引? 言
網絡文化、微博生態以及各類網絡平臺的發展已經成為大眾發表言論,表達情緒和獲取新消息的重要渠道,各類新消息在微博、微信公眾號和百度資訊網頁新聞等網絡平臺快速傳播,網民在讀取到消息的同時也會針對當次發生的事件發表自己的言論并轉發在自己的社交平臺,致使事件發酵并擴大,極有可能給社會造成不同程度的負面影響。準確把握社會輿論的發展傾向,營造一個和諧、文明、公正、法制、美麗、安全的網絡世界對社會的發展至關重要。
本文旨在對微博、微信公眾號及百度資訊網頁的每日熱點新聞進行爬取,對爬取到的數據進行文本預處理(去除廣告、降噪和重復數據),使用卷積神經網絡(CNN)對爬取到的輿論信息進行情感傾向性分析(分為正面、中性和負面三種),最后通過可視化界面將相關統計研究的每日熱點事件和事件的輿論傾向進行展示。
1? 輿情分析智能平臺的構建
1.1? 爬取數據
平臺的微博數據來源于每日百度實時熱點的獲?。刻炫廊∏叭龡l熱點),將獲取到熱點事件的關鍵詞作為當日的熱點新聞存入MySQL數據庫,根據日期將每天的熱點新聞存儲并分類(即使用日期作為主鍵進行數據的存儲),依次拿到微博進行搜索,爬取搜索到的相關信息并記錄,此時存儲數據就使用URL作為網頁的主鍵[1-3]。平臺的微信公眾號數據來源于搜狗網頁下的微信公眾號搜索;百度資訊網頁的數據來源于百度資訊里的相關熱點數據。
1.2? 文本分類
數據預處理是文本分類必不可少的一部分。首先對文本進行分詞、去停用詞及降噪,其次進行文本特征的提取、特征的選擇以及分類模型的選擇,最后預測出文本所表達的情感。
微博短文本的特殊性決定了爬取到微博文本數據的預處理工作比微信公眾號和百度資訊數據的預處理工作更加煩瑣,微博文本數據中一些特殊的符號也需要進行特別的“關照”,常用符號有://、@、##、V。
1)符號//:是每位微博用戶自己的評論,它可以有效地區分不同人之間的評論內容,可作為分隔符表示不同的內容。
2)符號@:是云傳話的標志,俗稱隔空喊話,@某某某就是提示這句話要傳遞給某某某這個人或者是這個組織(即提醒),@可以出現在文章開頭、中間或者末尾。例如:有你真好[筆芯]@某某某。
3)符號##:兩個#之間是話題,指后面的文本是針對這個話題產生的,點擊也可進入到這個話題的界面。比如:#快樂大本營# 李維嘉吃桌子巧克力,這巧克力像到懷疑自己可能有對假眼睛!
4)符號V:是新浪微博對用戶身份認證,俗稱官方的。
中文分詞借助jieba分詞技術,分詞后使用哈工大停用詞表去除停用詞,然后使用TF-IDF算法計算主題詞的權重(即評估主題詞的重要性),選取權重大的詞作為特征詞,最終進行特征的提取。分類模型使用卷積神經網絡(CNN)最終輸出情感分類的結果(正面、中性及負面)。
1.3? 可視化展示
對文本情感傾向的預測和主題詞的生成需要使用Django框架進行可視化的展示。Django使用ORM(Object Relational Mapping)模型,也稱為對象關系映射,可用于實現不同類型系統數據之間的轉換[4]。即ORM模型是個“翻譯器”,能夠使兩種不同語言的人更好的交流。在本文中,ORM模型的使用讓數據庫里的數據轉化成Django中的類對象,方便之后的測試與使用。針對“華為正式發布鴻蒙手機操作系統”熱點,本輿情分析智能平臺界面中爬取信息的信息匯總界面如圖1所示。
1.4? 數據庫設計
本文提出的輿情分析智能平臺中爬取到的數據使用MySQL數據庫存儲,建立了4個存儲表:time表、opinion_data表、analysis_data表及word_cloud表。time表存儲從百度時事熱點里獲取到的熱點信息以及對應的時間;opinion_data表用于存儲在微博、微信公眾號以及百度資訊網頁爬取的數據;analysis_data表存儲經過分析后的數據輿情信息;word_cloud是存儲詞云相關信息的表,通過TF-IDF選取出10個頻率最高的詞作為詞云展示。
2? 網絡輿情分析過程
本文所述網絡輿情分析的研究主要分為兩步驟:一是在百度實時熱點頁面獲取每天熱點的前三條,以時間為主鍵,存入數據庫,然后依次拿到微博進行搜索,爬取搜索到的數據再存入數據庫,同時爬取搜狗界面提供的微信公眾號的熱點和百度資訊網頁的每日熱點新聞;二是通過對爬取到數據的處理,使用卷積神經網絡(CNN)進行情感傾向性判斷的實驗,得出情感分類結果,利用LDA主題提取模型得到隱含主題,更加直觀的顯示出輿論信息。智能平臺結構流程圖如圖2所示。
2.1? TF-IDF的詞頻分析
TF-IDF(術語頻率-逆文檔頻率)的詞頻分析用來進行詞云展示和詞頻度的統計[5]。它雖然不具有提取特征詞的功能,但是它可以通過計算權重,測試單詞在句子或文本中的重要程度,實現對特征詞的評估,從而獲得可以代表文本特征的詞。同時,這種方法也可去除文本中經常出現的但又不重要的詞,或是偶爾出現一次,但卻與分類無益的單詞。本文中,使用TF-IDF方法計算詞的權重,按照降序方法提取特征詞,最終實現詞云展示和詞頻度的統計。
TF(Term Frequency)表示特征出現在單個文檔中的頻率。其中TFi, j是關鍵詞i在文檔j中出現的頻率,Ni, j是指關鍵詞i在文檔j中出現的次數,K是文章中詞的個數。式(1)是TF的計算公式:
(1)
IDF(即Inverse Document Frequency),表示逆文檔頻率。| D |是語料庫中文檔的總數,| dj ∈ D:ti ∈ dj |是出現詞語i的文檔的總數。例:語料庫里有40篇文檔,其中的20篇有同樣的固定單詞i,單詞i的頻率就是40/20,即1/2,逆文檔頻率就是1/2的倒數。式(2)是IDF的計算公式:
(2)
2.2? 基于CNN的情感傾向性分析
將整理好的數據集讀入txt(文本進入CNN的格式要求)文件中,使用CNN提取特征[6,7]。使用CNN進行文本情感傾向性分析的時候,文本必須是已經做好預處理工作。進入CNN后進行文本特征的提取,在提取的時候可以使用多個卷積層,一個卷積核只能提取一個特征,第一次卷積提一個低程度的特征,第二次就會加強,主次類推,但次數過多也會過猶不及,這個過程也叫特征降噪或特征濃縮,目的是得到一個可靠的特征進行文本情感分類的判別。CNN分類器如圖3所示。
1)輸入層:將已經做好預處理的數據訓練成詞向量依次排列成矩陣的形式輸入到網絡中。
2)卷積層:對已經輸入到網絡的數據進行特征提取,然后做情感傾向性判別。卷積之后通過激活函數進行特征的提取,激活后的值就可以作為卷積層的輸出。
3)池化層:與卷積層類似,也叫下采樣,也是對特征的壓縮,即整體濃縮。池化層并非是CNN的必要網絡層,在一些新設計的CNN中,很多并未使用。
4)全連接層:對提取到的特征進行分類得出最后結果并輸出,在這里我們就能看到文本的情感傾向性判別的結果了。
2.3? 基于LDA的主題提取
LDA(Latent Dirichlet Allocation)模型其實是一種生成概率的模型,通過文檔和單詞在句子中的離散程度來抽取文檔中蘊含的主題模型,生成集各種意見與觀點為一體的主題詞,進而能挖掘出文本中隱藏的觀點[8]。在LDA中,主題分布和詞分布都是不確定的,它為主題分布和詞分布分別加了兩個Dirichlet先驗,Dirichlet的概率密度函數為式(3)和式(4)所示。由此可得,Dirichlet分布是多項式分布的共軛分布[9,10]。
(3)
(4)
在使用LDA主題提取模型時,每篇文檔中每個詞的生成是需要使用兩次Dirichlet分布:第一次是從doc-topic中得到所有詞的topic;第二次是從topic-word中生成N個word。LDA主題提取生成模型的結構圖如圖4所示。
2.4? 詞云表示
使用TF-IDF算法計算主題詞權重后生成一個單詞表,把每條數據文本做成一個單詞表,從這個單詞表中選取10個詞進行相關的詞云表示,通過詞云的方式展現出來。最后導入LDA包,獲得到所爬取數據的隱含主題,選擇生成主題的個數,進而挖掘出文本的隱含含義。
3? 實驗結果與分析
3.1? 實驗環境
本文提出的輿情分析智能平臺搭建在Windows 10操作系統中,使用Python開發語言,在Fensorflow平臺實現。
3.2? 數據集的獲取與介紹
本文實驗數據來自自己爬取的微博情感數據,將此數據作為情感標注語料,由11名作者做情感交叉標注,對于有異議的數據再進行二次標注。本文手動收取原始數據10 000多條,經過去重、無情感的轉發以及廣告,可作為模型訓練的數據由4 811條,其中積極情感1 348條,消極情感1 606條,中性情感1 855條。選取3 500條作為訓練集,500條作為測試集,剩余的118條作為驗證集。
3.3? TF-IDF詞頻度分析及詞云展示
詞頻度的分析能夠體現出一個熱點的精華;詞云的展示能夠體現出每天熱點呼聲最高的詞。通過詞頻度的分析和詞云的展示能夠快速正確的掌握輿情的傾向和大眾的意向。
本文采用TF-IDF算法針對每條熱點信息,分別從微博和微信公眾號兩個不同的來源選取出5個關鍵詞進行詞頻度的分析,可以直觀地了解到在微博和微信公眾號兩個信息不同來源的地方,針對同一條熱點信息的敏感詞和情感傾向,有利于做情感的進一步分析和捕捉工作。本網絡輿情分析智能平臺不僅能以柱狀圖進行展示,還可以以折線圖和數據視圖進行展示,當光標定位在某個詞時,可以顯示出這個詞的具體詞頻。針對“華為正式發布鴻蒙手機操作系統”熱點信息,微博、微信公眾號、TF-IDF分析與網頁TF-IDF分析折線圖和數據視圖如圖5所示。
從TF-IDF詞頻度的分析可以看出,微博更注重于事件的本身,而微信公眾號里則是添加了一些對事件的分析。
詞云的展示,可以直觀看到每日熱點熱議,即呼聲最高的詞。詞云展示的詞是通過TF-IDF算法從每日熱點的文本集合中選取10個詞進行展示。微博、微信公眾號和網頁分析的詞云展示如圖6所示。
3.4? 基于CNN情感傾向性分析實驗結果
將收集標注好的數據集經過處理后依次排列成文本矩陣的形式輸入到CNN網絡中,訓練出情感分類模型。再訓練模型時,將數據集劃分為訓練集、測試集和驗證集,按照7:1.5:1.5的比例劃分,隨機打亂并保證訓練集、測試集和驗證集中包含每一類情感,保證數據的正常運行和模型的準確性。情感標注數據一共722條,其中積極情感197條,中性情感285條,消極情感240條。微博、微信公眾號和網頁情感傾向性分類的餅狀圖如圖7所示。
3.5? 基于LDA主題提取實驗結果
LDA主題提取實驗的訓練過程:
1)按照先驗概率p(di)選擇一篇文檔di。
2)重新掃描語料庫,從Dirichlet分布α中取樣生成文檔di的主題分布θi,主題分布θi由超參數為α的Dirichlet分布生成。
3)從主題的多項分布θi中取樣生成文檔di第j個詞的主題zi, j。
4)從Dirichlet分布β中取樣生成主題zi, j對應的詞語分布Φzi, j,詞語分布Φzi, j由參數為β的Dirichlet分布生成。
5)從詞語的多項式分布Φzi, j中采樣最終生成詞語wi, j。
微博、微信公眾號和網頁LDA權重比分析如圖8所示。在LDA權重比分析中,也可以切換為折線圖和數據視圖的展示LDA權重比分析結果。
4? 結? 論
本實驗通過爬取微博、微信公眾號和網頁信息,處理后進行情感傾向性分析與輿論傾向展示,清晰直觀的體現輿情熱點,為輿情監測提供有力手段。
參考文獻:
[1] 潘曉英,陳柳,余慧敏,等.主題爬蟲技術研究綜述 [J].計算機應用研究,2020,37(4):961-965+972.
[2] 雍龍泉,賈偉,張建科.基于爬蟲技術與智能算法的網絡輿情監測 [J].智能計算機與應用,2021,11(4):35-38.
[3] 趙宸,劉建華.基于Django的分布式爬蟲框架設計與實現 [J].計算機與數字工程,2020,48(10):2495-2498.
[4] AMIR J R,SEYED HASSAN M H. Lightweight formalization and validation of ORM models [J].Journal of Logical and Algebraic Methods in Programming,2015,84(4):534-549.
[5] 李昌兵,趙玲,李曉光,等.基于TF-IDF加權的卷積神經網絡文本情感分類模型[J/OL].重慶理工大學學報:自然科學,2021:1-6[2023-04-19].http://kns.cnki.net/kcms/detail/50.1205.
T.20210425.1252.002.html.
[6] KIM Y. Convolutional Neural Networks for Sentence Classification [J/OL].[2023-04-18].https://arxiv.org/pdf/1408.5882.pdf.
[7] 徐凱旋,李憲,潘亞磊.基于雙向編碼轉換器和文本卷積神經網絡的微博評論情感分類 [J].復雜系統與復雜性科學,2021,18(2):89-94.
[8] 錢旦敏,鄭建明.基于LDA主題模型的信息服務文獻主題提取與演變研究 [J].數字圖書館論壇,2019(10):16-22.
[9] BLEI D M,NG A Y,JORDAN M I. Latent Dirichlet Allocation [J].Journal of Machine Learning Research,2003(3):993-1022.
[10] 王靜茹,陳震.基于隱含狄利克雷分布的文本主題提取對比研究 [J].情報科學,2018,36(1):102-107.
作者簡介:馬燕妮(1994.01—),女,回族,寧夏銀
川人,助教,碩士研究生,主要研究方向:自然語言處理。