蔡智仲 曾小雨 丘新龍 宋仁敏



摘要:該文利用Python的網絡爬蟲技術所采集到的災害數據,通過災害主題挖掘模型來達到將信息正確篩選和提取,并將其內容可視化,最后推薦用戶,為用戶提供時效性、準確性、多樣性的災害可視化系統。
關鍵詞:數據采集;災情分析;推薦;可視化
中圖分類號:TP311? ? ? 文獻標識碼:A
文章編號:1009-3044(2022)15-0013-02
災害給國家和人民帶來巨大損失,因此防災減災成為人們關注的重點,諸如對于災情的發生,如何獲取相關數據,通過大數據分析進行篩選正確的內容,實現數據內容的可視化,最終精準效率進行防災減災推薦(如投放至相關部門與用戶手中)成為關注的熱點。目前最受關注的全球疫情數據來源之一——美國約翰斯·霍普金斯大學疫情可視化地圖,它的數據已經成為國際公認的最新數據權威來源,定期被世界各地的新聞機構和政府機構所采用,網站的每天的點擊量超過10億次。又如對于最近的溫嶺槽罐車爆炸事故,如能在最快時間讓政府相關部門和公眾了解事故,就有可能更大程度減少人民的傷亡等。通過Python的爬蟲技術采集數據后分析數據,并且將數據進行可視化推薦給用戶,讓用戶能更加直觀了解形勢,成為本課題的研究價值和意義[1]。
1 問題分析
1.1 災情數據采集
基于 python 的網絡爬蟲技術,同時利用多種爬蟲技術進行數據采集,如:分布式網絡爬蟲,Scrapy爬蟲等,以完善數據樣本。災情數據的收集儲存主 依托于大數據的存儲和檢索系統,一種是 No-SQL,另一種大數據管理工具是 Hadoop,使用 Spark 進行操作[2]。
1.2 災情數據分析
主要有兩個方面組成的,一是對災害主題挖掘模型,有 LDA 模型和 TFIDF 模型等,其次是災害主題分類算法,有樸素葉貝斯算法,KNN算法等。災情內容的分析利用了聚類分析、傾向性等方法。傾向性分析中從自然語言和機器學習的角度進行研究。聚類分析通過話題的檢測技術對話題進行組織和歸類[3]。
KNN算法:其核心思維是,如果特征空間中距離我們最近的k個樣本中大部分都屬于某個類別,那么這個樣本也屬于這個類別,并且具有該類別樣本的特征利用測量出來的不同特征值之間的距離進行分類這就是KNN算法。它的基本思路是:假設一個樣本在特征空間中高端k個最相似(也就是特征空間中最相近)的樣本中的大部分屬于某一個類別,則此樣本也屬于這個類別。K的大小通常是小于等于20的整數。KNN算法中,所選擇好的鄰居都是已經正確分類的對象。這個方法在定類決策上僅僅依據最接近的一個或者幾個樣本的類別來決定待分樣本的類別屬性[4]。
K-近鄰法可以表示為:設有 N 個已知樣本分屬于 c 個類 ω i,i=1,…,c,考 查新樣本 x 在這些樣本中的前 k 個近鄰,設其中有 ki 個屬于 ω i 類,則 ω i 類的判別函數就是(公式1)
1.3 災情數據內容可視化(數圖共意的災害新聞)
災害風險的視覺化是一個從語言與話語的結合到視覺修辭的反應的連續過程。一方面,將RST理論用于災害新聞的數據分析,在視覺修辭下將數據修辭和視覺描繪形象化。另一方面,使用可視化工具來將模型進行數據的轉換。例如,一個稱為可視化的視覺診斷系統被用來可視化分類器的敏感性和特異性之間的權衡。在這組工具中,我們使用黃色磚塊的rocauc類來可視化分類器的敏感性和特異性之間的權衡[5]。
1.4 信息個性化智能投遞
實現精準的個性化服務,先是建立用戶模型,對用戶畫像進行改進,利用現有推薦算法作為召回操作并添加召回方法,利用優化算法和特征提取方法對模型進行優化,再利用機器學習算法的邏輯回歸模型估算點擊率,最后使用用戶繪圖,將圖像與召回數據相結合,采用模型進行預判。使用開源工具將用戶模型加載到引擎中,并對信息進行優化,使結果更加方便用戶,如圖1所示。
2實施方案
2.1網絡數據采集
首先需要通過爬蟲的技術在公開的網站上進行爬蟲例如:騰訊新聞網、丁香園等,通過對網站發出請求,會得到一系列的數據,當中的數據有很多是對接下來的操作是沒有用的,因此需要進行一定的篩選,保留下所需要的內容[6]。
2.1.1 數據存儲
對于數據的存儲,我們采用的是MYSQL數據庫。在存儲之前,將數據進行分類,分為歷史數據以及詳細數據兩個大項,在兩個表中會有例如在本次的災害中的傷亡情況、人口失蹤情況等的數據項,通過每次的數據更新我們能夠實時采到當天的我們采集到當天的數據,并且存放在了數據庫中[7]。
2.1.2 數據分析利用
通過對數據的存儲后,不難發現在這些數據中都是有可以規劃的,通過對這幾項的數據進行內容規劃,能夠將這些數據進行可視化的利用。例如將各類數據的增長情況通過曲線圖、餅狀圖、折線圖等等來顯示[8]。
2.2 數據可視化
2.2.1數據可視化的概述
數據可視化即利用計算機圖形學和圖像處理等技術,將數據庫中的每一個數據項作為圖元素表示,將數據的各個屬性以多維數據的形式表示,從而將數據以形象化的視圖展現出來轉換為我們能夠一目了然的可視化的線條變化趨勢和圖像,清晰有效傳達信息,讓人們直觀獲取數據,了解數據,給人們提供一個直觀的、便捷的、交互的可視化環境,大幅度地提高人們對數據的感知和理解[9]。
2.2.2數據可視化工具
現今有許許多多的數據可視化工具,例如:Google Chart、Sigma、ECharts、Vega等,這些工具大體都可以分為三類,一類是面向用戶的可視化系統,一類是面向開發者的可視化庫。
本文使用的是ECharts的數據可視化工具,ECharts是國內一款優良的可視化圖表控件,由Baidu前端數據可視化團隊研發,它與大多數瀏覽器兼容,而且依賴于底部的輕量級的Canvas類庫,供給形象,生動,可互動,可高度個性化定制的可視化的數據圖表[10]。8039FACF-0513-41CA-B3B3-E2FAF4178601
2.2.3 數據展現和分析
通過數據可視化工具ECharts對Python爬取過來的數據進行展現和分析,本文利用ECharts繪制了中國地圖和折線圖進行數據的展現。
獲取全國地圖數據的主要代碼如下:
def get_c2_data():
sql = "select province,sum(confirm) from details " \
"where update_time=(select update_time from details " \
"order by update_time desc limit 1) " \
"group by province"
res = query(sql)
return res
通過觀察全國地圖分布顏色,當全國各地范圍內出現災情時,顏色越深則說明該地區發生的情況越不樂觀;通過全國累計趨勢圖能夠反映每天災情傷亡情況,能夠清晰地看出災情的走向,給人更加直觀的感受;通過全國新增趨勢圖可以直觀發現在該次的災情中每天帶來的人員傷亡情況,側面也能夠反映出災情的嚴重程度。
當以上步驟完成后,我們會利用web工具將上面的內容進行整合,利用HTML和CSS技術呈現給用戶。
3 結語
最后通過對數據的內容爬取以及數據的分析最終得出的呈現是有參考價值但是不能完全表現出每時每刻的變化。通過對這些數據的每次更新和我們可以實時發現在國內外不同時刻發生的各種大小事情,能夠讓信息更加便捷到達每個用戶的手中,每一個人都能夠知道當前的形勢。通過對這些數據的分析、可視化,能夠讓人們的生活更加的便捷。此外,在數據分析研究這類數據能夠提取出各個地區的情況,能夠快速掌握各個地區的災情程度,了解其狀況,以便各個地區做出合理、有效的措施以便減少人員傷亡以及財產損失。
參考文獻:
[1] 張偉.5G可視化數據新聞帶來融媒體傳播革命[J].中國傳媒科技,2019(12):52-53.
[2] 楊凱.基于Hadoop平臺的個性化新聞推薦系統的設計與實現[D].北京:北京交通大學,2019.
[3] 楊林.基于標記模板的分布式網絡爬蟲系統的設計與實現[D].武漢:華中科技大學,2019.
[4] 劉麗群,劉麗華.情感與主題建模:自然災害輿情研究社會計算模型新探[J].現代傳播(中國傳媒大學學報),2018,40(7):39-45.
[5] 杜臻.基于特征提取和異常分類的網絡流量異常檢測方法[D].南京:南京郵電大學,2019.
[6] 韓雪華,王卷樂,卜坤,等.基于Web文本的災害事件信息獲取進展[J].地球信息科學學報,2018,20(8):1037-1046.
[7] 于韜,李偉,代麗偉.基于Python的新浪新聞爬蟲系統的設計與實現[J].電子技術與軟件工程,2018(9):188,242.
[8] 田江.基于Python的新聞個性化推薦系統優化與實現[D].景德鎮:景德鎮陶瓷大學,2018.
[9] 高巍,孫盼盼,李大舟.基于Python爬蟲的電影數據可視化分析[J].沈陽化工大學學報,2020.
[10] 王子毅,張春海.基于ECharts的數據可視化分析組件設計實現[J].微型機與應用,2016,35(14):46-48,51.
【通聯編輯:光文玲】8039FACF-0513-41CA-B3B3-E2FAF4178601