◆蔡洪民 王慶香 郭偉匡
(廣州中醫藥大學醫學信息工程學院(信息中心) 廣東 510006)
基于機器學習的校園微博輿情監控系統的研究
◆蔡洪民 王慶香 郭偉匡
(廣州中醫藥大學醫學信息工程學院(信息中心) 廣東 510006)
新媒體時代風起云涌,由于具有文字短小、傳播力大等特點,微博已經成為我國網民主要的上網行為之一。然而,微博上一些負面輿情信息給社會和個人帶來巨大危害,越來越受到各級部門重視。為了保障校園網絡的公共安全,本文設計實現了一個基于新浪微博的校園網輿情監控系統,它通過關鍵字匹配和樸素貝葉斯算法相結合的方法實現了微博內容的分類,然后進一步基于聚類算法實現了微博內容的熱點發現,最后結合輿情數據庫實現了微博輿情預警。實驗結果表明,系統穩定、高效,加強了校園公共安全。
中文分詞;樸素貝葉斯;K均值聚類
據《中國互聯網絡發展狀況統計報告》顯示,截至2016年12月,我國網民規模達7.31億,互聯網普及率達到53.2%。互聯網已經在人民生活中扮演了一個無法替代的角色。然而,我們也看到各種網絡安全問題充斥于互聯網環境中,比如網絡負面輿情信息。論壇、微博、IM軟件、QQ群、微信朋友圈等平臺在成為網民表達個人觀點、抒發個人情緒的同時,也成為小部分惡意分子煽風點火、刺激網民負面情緒的重要工具[1]。網絡輿情已經成為關乎社會安全穩定的一個重要因素。對于高校而言,高校大學生思想尚未完全成熟,波動大,容易受到網絡負面輿情信息影響。校園網作為高校學生日常學習生活的重要平臺,其安全性不言而喻。因此必須對高校學生上網行為進行監控,輔之以教育引導[2]。
微博近年來由國外模式演變而來,它集成了手機短信、博客及社交網站的優點,是一個基于用戶關系的信息分享、傳播及獲取平臺。由于具有文字短小、傳播力大等特點,微博迅速成為廣大網民獲取信息的重要途徑,對熱點事件的形成和傳播更是起到了超越傳統媒體的趨勢。通過對近幾年發生的諸如演藝明星吸毒被抓事件、趙薇電影涉臺獨演員事件、王寶強離婚等事件的觀察,可以發現微博已經成為不少社會熱點事件的源頭所在[3]。同時,微博內容少、口語化等特點往往會造成信息的無組織現象,從而導致難以分類監控[4]。因此,如何實現從微博大數據中發現熱點話題、追蹤其發展態勢并有效引導是微博信息傳播中亟待解決的問題。
微博的飛速發展引起了中外學者的注意,美國的謝爾·以色列所著《微博力》已翻譯成中文出版。國內對于微博輿情的研究較多,杜松源從情報學的角度,借助信息傳播經典理論,結合近期微博輿情案例進行深度挖掘,對微博輿情的成因、特點等進行剖析,總結出微博輿情擴散的一般路徑[5];單月光提出包括特征提取、文本表示、文本聚類和觀點挖掘的文本聚類模型,從而抽取出熱點話題[6];碩士陳彥舟和曹金璇基于微博大數據進行挖掘、分析,實現對輿情熱點話題的發現及追蹤[7]、對微博的社會網絡分析。基于Hadoop的微博輿情監控系統,將開源網絡爬蟲Nutch應用到基于微博的公安輿情監控系統中,并對Nutch進行了二次開發,增加虛擬登錄的功能使其實現對微博平臺的信息爬取。碩士張華在其碩士論文中,對BP神經網絡的網絡結構進行改進。并用遺傳模擬退火算法(GSA)對 BP神經網絡的網絡參數進行優化,在用四種輿情預測模型進行輿情預測對比實驗。實驗結果表明,用GSA優化的改進BP神經網絡的輿情預測模型能夠取得較好的預測效果。碩士張華研究的高校微博輿情監控系統對于高校公共安全具有重大意義,且將成為未來高校信息公開監控和輿情管理工作的重要工具。
本文基于網絡爬蟲技術、中文分詞技術、樸素貝葉斯算法以及Kmeans聚類算法,實現一個校園網新浪微博輿情監控系統。實驗結果表明它能夠發現微博熱點,能夠結合輿情特征庫對校園微博輿情進行有效識別并預警。
1.1 Jieba中文分詞
中文分詞是自然語言處理中最基本、最底層的模塊,分詞精度對后續模塊影響很大。比較著名的分詞系統有北京理工大學張華平博士開發的 ICTCLAS系統、哈爾濱大學的語言云系統等。jieba分詞系統是基于Python的分詞組件,它占用資源較小,對常識類文檔的分詞精度較高。
本文使用網絡爬蟲技術[9]來獲取微博內容后,為了實現對微博內容的結構化表示,使用 jieba分詞系統對微博內容進行中文分詞[10]。
1.2 基于Scikit-Learn庫的樸素貝葉斯分類算法和Kmeans聚類算法
Scikit-Learn是一個用于機器學習的Python庫,它包括了數據預處理、數據降維、分類、聚類、回歸等內容。
(1)樸素貝葉斯分類基于貝葉期定理,樸素貝葉斯分類器基于一個簡單的假定:給定目標值時屬性之間相互條件獨立。樸素貝葉斯分類的定義如下:
①設 x ={a1,a2,…am }為待分類項,而每個a為x的一個特征屬性。
②有類別集合C ={y1,y2,...,yn}。
③計算P(y1|x), P(y2|x)…,P(yn|x)。
④如果P(yk|x)=max{ P(y1|x), P(y2|x)…,P(yn|x)},則x∈yk。
樸素貝葉斯算法實現簡單、效率高,且分類效果好,目前在文本分類中應用較多。本文研究過程中文本分類部分就是使用Scikit-Learn庫中的樸素貝葉斯算法實現的。
(2)Mini Batch K-Means算法是K-Means算法的變種,采用小批量的數據子集減小計算時間,同時仍試圖優化目標函數。小批量 k-均值產生的結果,一般只略差于標準算法。該算法的迭代步驟有兩步:
①從數據集中隨機抽取一些數據形成小批量,把他們分配給最近的質心。
②更新質心。
本文微博熱點發現中的子類進一步劃分部分就是使用Scikit-Learn庫中的Mini Batch K-means聚類算法實現的。
本文研究以高校大學生微博用戶群體為研究對象,運用微博信息采集、微博內容中文分詞、微博內容向量化、樸素貝葉斯分類、聚類等技術,結合微博熱點話題的特點和傳播模式,匹配輿情特征庫,從而實現了對微博輿情信息的預警和微博熱點話題的發現。
2.1 系統設計
根據需求分析與系統設計,本文研究的總體框架分為微博數據采集模塊、微博數據存儲模塊、Jieba中文分詞模塊、詞頻統計模塊、微博內容文本分類模塊、微博熱點發現模塊、輿情監控報警模塊等部分,具體如圖1所示:

圖1 系統總體框架
其中:
(1)微博數據采集模塊使用模擬登錄的方式,利用網絡爬蟲技術獲取微博內容及評論。
(2)數據存儲模塊用于將微博內容及其評論保存在 SQLite數據庫中,本文設計weibo表存儲抓取的微博內容,具體設計字段如表1所示:

表1 weibo表
(3)Jieba中文分詞模塊用于對微博內容的結構化表示。
(4)詞頻統計模塊用于計算文本的權重向量:本文研究過程中使用TF-IDF權重策略過濾掉常見的詞語,保留重要的詞語,從而生成微博內容的向量空間模型[11]。
(5)文本分類模塊使用樸素貝葉斯算法對微博內容的向量空間模型進行處理,從而對微博內容進行分類預測。
(6)微博熱點發現模塊在使用關鍵字匹配技術對微博內容初步分類的基礎上進一步基于Mini Batch Kmeans聚類算法進行二次分類,再結合回復數、評論數計算得出一定時間段內的微博熱點。
(7)輿情監控報警模塊結合敏感詞數據庫、微博熱點實現對微博輿情的預警,一旦檢測到敏感信息,就會以聲音和發送郵件兩種方式發出警報。
2.2 系統實現
本系統基于Python語言開發實現,編程環境為Anaconda,數據庫為SQLite。整個系統流程分為使用網絡爬蟲技術爬取新浪微博內容、使用關鍵字匹配技術進行微博內容初步分類[12]、使用Jieba中文分詞系統對微博內容進行中文分詞、使用TF-IDF算法對微博內容進行詞頻統計、使用樸素貝葉斯算法進行分類預測、使用Mini Batch Kmeans聚類算法進行二次分類、結合輿情數據庫實現微博輿情預警等一系列過程。具體實現流程如圖2所示。
本系統在某大學校園網進行測試,將系統部署在一臺服務器上。系統運行后,首先基于模擬登錄的方式使用網絡爬蟲技術在微博上爬取所關注微博的內容,內容保存在SQLite數據庫中,然后進行微博內容熱點發現和輿情監控。經過半年多的運行觀測與數據分析,它能夠對新浪微博內容進行爬取、保存和分類。圖3顯示了系統對微博內容進行分類預測情況。

圖2 微博監控系統流程圖

圖3 本系統在某校園網運行測試圖
之后本文使用Mini Batch Kmeans算法對各類別進一步劃分子類,對子類中的大類進行熱點計算,計算結果得出一段時間內微博的熱點信息。圖4和圖5顯示了系統對微博熱點信息的熱點發現。最后結合輿情數據庫實現了對新浪微博的輿情監控。
經過實驗測試,得到了以下結果:
(1)本文研發的系統能夠通過模擬登錄的方式登錄新浪微博,在輸入關注的微博ID后,能夠使用基于Python的網絡爬蟲技術獲得所有微博內容及其評論。
(2)能夠使用Jieba中文分詞系統對微博內容進行分詞,并存入SQLite數據庫。

圖4 本系統微博熱點發現統計

圖5 本系統微博熱點發現內容
(3)能夠基于關鍵字匹配方法對微博進行預分類,能夠對中文分詞后的微博內容及其評論進行向量化,能夠基于樸素貝葉斯分類方法進一步分類預測,并根據預測結果調整類別。
(4)對各個子類別使用Mini Batch Kmeans聚類方法進行進一步分類,能夠對其中最大的子類利用計算方法計算出一定時期內的微博熱點,并予以呈現。
(5)由于新浪微博本身已具有對重要輿情的過濾功能,在校園網實際環境中長達數月的監控中未發現反動類輿情出現。
眾所周知,微博等新媒體平臺的負面輿情信息已經危及大學生的心理健康甚至高校校園的安全穩定,高校網絡輿情形勢日趨嚴峻。本文基于機器學習方法實現了新浪微博輿情監控系統的建立,實驗表明本系統能夠對新浪微博內容進行分類、熱點發現和輿情監控預警,從而為加強校園公共安全提供一種解決方案。
由于微博本身的短文本等特點,本方研究過程中對新浪微博的分類方面存在分類不準確的情況。另外,微博內容不僅有文字還有圖片等內容,而本文研究尚未涉及這些內容,這將是我們下一步的工作。
[1]劉穎,李欲曉.網絡輿情傳播特征分析[J].北京郵電大學學報( 社會科學版) ,2011.
[2]張思行.高校網絡輿情的話題演變過程研究[J].北京郵電大學學報(社會科學版),2011.
[3]趙璐.網絡輿情監控系統關鍵技術研究[D].西安:西安電子科技大學,2014.
[4]丁菊玲,勒中堅.基于觀點樹的網絡輿情危機預警方法[J].計算機應用研究,2011.
[5]杜松源.基于微博的網絡輿情信息擴散及其預警機制研究[D].綿陽:西南科技大學,2015.
[6]單月光.基于微博的網絡輿情關鍵技術的研究與實現[D].成都:電子科技大學,2013.
[7]陳彥舟,曹金璇.基于Hadoop的微博輿情監控系統[J].計算機系統應用,2013.
[8]張東霞.基于高校學生微博的網絡熱點發現及輿情分析研究[D].廣州:華南理工大學,2013.
[9]程志強.基于新浪微博主題的用戶影響力研究[D].沈陽:東北大學,2013.
[10]陳險峰.微博輿情分析系統的設計與實現[D].廣州:華南理工大學,2015.
[11]何佳,周長勝, 石顯鋒.網絡輿情監控系統的實現方法[J].鄭州大學學報( 理學版) ,2010.
[12] 江黎黎.網絡輿情突發事件的處置機制研究[J].杭州電子科技大學學報( 社會科學版) ,2010.