防控疫情,聚類算法如何幫我們發現疫情中的熱點事件

疫情防控的關鍵階段,各種信息漫天飛,有利的、不利的,真實的、虛假的,我們需要努力分辨。霧裡看花,我們需要借一雙“慧眼”,“慧眼”就是以算法驅動的熱點事件跟蹤系統。

最近,筆者參與了一個企業輿情分析系統的建設,親身體驗了疫情檢測系統建設的全部過程,包括系統架構、算法設計、代碼實現、系統運行等步驟。現在,向大家分享該系統設計、實現的簡單經驗。

企業的需求是這樣的

企業希望利用該系統掌握企業輿情,並滿足企業相關人員,快速定位信息,反饋熱點問題,實現與客戶和大眾的密切溝通。同時,滿足企業對網絡熱點事件和熱點專題發展趨勢的追蹤等需求。

系統設計需要的數據來源、數據存儲、數據計算

  1. 信息的來源。目前頭條、微信等社交媒介是主流媒體,短視頻、直播形式非常火熱,微博、門戶媒體、各種論壇次之。由於網絡媒體輿論信息的產生和傳播具有自由、傳播快、傳播面廣、裂變迅速等特點,單一分析幾個媒體不能獲取全面有效的信息,所以要全面覆蓋分析各種媒體的信息。經過分析比較,我們選擇了100多個媒介作為數據源。
  2. 數據存儲。由於數據來源比較廣泛,且數據量較大,所以要選擇選擇存儲功能強大的雲數據庫。我們選擇的是HBase,HBase是基於 Hadoop 的分佈式數據庫,支持海量的PB級的大數據存儲,適用於高吞吐的隨機讀寫的場景。
  3. 數據計算。數據來源比較廣泛,並且數據量較大,計算起來需要強大的算力,所以我們也選擇雲計算的方式計算。具體的計算框架選擇 Hadoop 計算框架。通過MapReduce編程,收集數據,處理數據。

系統編程需要的算法

算法就是計算的過程,該計算過程取某個值或值的集合作為輸入併產生某個值或者值的集合作為輸出,從這種角度理解,算法就是把輸入轉化為輸出的一個計算步驟的序列。

實現輿情監測的算法是這樣的,通過網絡蜘蛛對互聯網海量信息自動抓取,然後進行數據分析處理,輸出網絡輿情的狀況,公司相關人員作出反饋。

具體來講,輿情采集就是使用,例如關鍵詞查詢,還有錨文件的處理,正文的抽取,頁面解析等,將數據進行採集,然後存儲到數據庫裡面。

輿情的分析就是對採集的數據進行處理。數據分析包括熱點發現、情緒分析、以及趨勢分析等等,經過分析計算後形成輿情報告。


防控疫情,聚類算法如何幫我們發現疫情中的熱點事件

輿情繫統的執行模型

上述的過程只是宏觀的簡單的環節,具體的實現過程要更加複雜。比如蜘蛛抓取環節,可能需要建立一個統一的解析模板,爬蟲還需要進行監控。數據還需要進行清洗、去重等等。

熱點發現、情緒分析、輿情趨勢是如何通過算法實現的

熱點發現算法。熱點發現算法本質上是數據挖掘上的聚類算法。通過將預處理後的文本信息,歸入不同的話題,並根據需要建立新話題,話題聚類的質量與算法本身和算法中設置的參數閾值密切相關。常用的聚類算法有Single pass算法、KNN聚合分類算法、支持向量機算法、K-means算法、SOM神經網絡聚類算法。以上算法都有各自的優缺點,需要綜合使用,揚長避短。


防控疫情,聚類算法如何幫我們發現疫情中的熱點事件

熱點發現算法


情緒分析算法。情緒分析是計算實現的難點,也是自然語言處理領域的一個研究熱點。情緒分析旨在通過上下文的理解,並對語義中的情緒進行建模判斷,從而確定是正面情緒還是負面情緒。情緒分析一般有兩種方法實現,一種基於機器學習的方法,另一種是基於字典的方法。


防控疫情,聚類算法如何幫我們發現疫情中的熱點事件

情緒分析算法

  • 基於機器學習的方法包括:樸素貝葉斯算法(Naive Bayes, NB)是一種基於貝葉斯定理的簡單概率分類器,適用於輸入維數較高的情況;最大熵原理算法(Max Entropy)或多項Logit模型算法通常用作樸素貝葉斯方法的替代方案;支持向量機(SVM)算法的本質是找到一個超平面,儘可能地將文檔向量從一個類分離到另一個類。
  • 基於字典的方法(Lexicon-based approaches )是一種典型的無監督方法,通過情緒詞彙的查獲得文本所表達的情感。

趨勢預測分析方法。趨勢預測分析法亦稱為時間序列預測分析法,是根據熱點事件發展的連續性原理,應用數理統計方法將過去的歷史資料按時間順序排列,然後再運用一定的數字模型來預計、推測預測的方法。用傳統辦法基於一組熱點數據按照時間進行比較排序比較容易實現,如果用機器學習算法做時間序列預測,處理的數據會變得很複雜。

防控疫情,聚類算法如何幫我們發現疫情中的熱點事件

趨勢預測算法

上面我們總結了以輿情監控系統的實現思路、架構和具體用到的算法,這是我參與建設的輿情分析系統一點總結,現在分享給大家,若讀者有所收穫,將不勝欣慰。


分享到:


相關文章: