黎潔儀,梁之彥,范紹佳,梁家鴻
(1.廣州市突發(fā)事件預警信息發(fā)布中心,廣東 廣州 511430;2.廣東省環(huán)珠江口氣候環(huán)境與空氣質量變化野外科學觀測研究站,廣東 廣州 510275;3.廣州市氣象臺,廣東 廣州 511430;4.中山大學 大氣科學學院,廣東 廣州 510275)
近年來中國城市化發(fā)展迅速,城市內澇和交通擁堵等“城市病”也隨之而來。特別是降雨造成的交通擁堵、涵洞和道路積水等,嚴重影響了城市的運行,甚至威脅到公眾的人身安全。針對這類“城市病”,及時準確的雨情和內澇災情信息能在城市應急處置和防災救援中發(fā)揮至關重要的作用。但傳統(tǒng)的降雨災情收集往往基于現場調查,而惡劣的天氣非常不利于實時了解現場狀況。
隨著互聯網和社交媒體的發(fā)展,微博、微信等具有廣泛參與性和實時性的社交資訊,在災情提取中表現出良好的應用前景,國外已有在突發(fā)事件、災情收集等方面的應用[1-3],國內也有利用社交媒體進行自然災害應急管理[4]、地震應急[5]、臺風災情[6]、城市內澇[7]、大風[8]等方面的災情挖掘和分析。多方研究表明社交媒體大數據在及時提取和分析災情中具有充分可行性。但如何從海量數據中快速提取對應的信息是災情采集的難點,作為擁有龐大用戶的社交媒體,每天都能產生大量的數據。人工分類存在成本高、效率低的缺陷,而機器學習已實現在文本分類[9-10]、目標識別方面的應用[11-12];基于機器學習如神經網絡、K近鄰、決策樹、支持向量機(support vector machine,SVM)等方法在文檔信息提取和識別上已取得良好的效果,同時有實驗顯示:SVM在文檔分類識別的精度上存在優(yōu)勢[13-17]?;谝陨媳尘?,該文利用微博、微信收集到的帶地理位置信息的社交媒體數據,運用自然語言處理及機器學習技術,設計高效的線上降雨災情檢測系統(tǒng),從而充分利用社交媒體雨情和災情動態(tài)資訊,為自動挖掘第一手降雨情報提供技術支持,以提高大城市降雨災害應急管理和處置的效率。
線上降雨災情檢測的總體流程設計如圖1所示。
圖1 線上降雨災情檢測的總體流程
線上降雨災情檢測的總體流程包括:數據采集和預處理、降雨災情文檔分類模型建模、災情權重分級和熱點分析。
(1)降雨災情提取索引關鍵詞目錄。通過ICTCLAS(中國科學院計算技術研究所開發(fā)的漢語詞法分析系統(tǒng))的語義分析,根據廣州地區(qū)災害性天氣時期社交媒體的高頻詞和關鍵詞,以及本地用語特征,挑選了雨情相關的(雨、大雨、暴雨、冰雹、落狗屎)及積水相關的(水浸、大水、積水、淹、澇、漲水、洪水、水災)索引關鍵詞共13個。
(2)社交媒體數據采集。從新浪微博的開發(fā)者平臺接口獲取位置微博數據,通過自建微信災情上報HTML5頁面獲取微信數據,以匹配到任意索引關鍵詞的文檔信息數據構建成降雨災情檢測基礎信息庫。
(3)數據標注及建模集劃分。從降雨災情檢測基礎信息庫通過人工篩選提取部分文檔信息組成降雨災情文檔分類模型的建模數據,按照雨情信息和其他信息的二分類要求對文檔信息條目進行人工標注。共標注了雨情信息(766條)和其他信息(234條)數據,再按70%為訓練集、30%為測試集的比例從中隨機分割數據構成建模集。
(4)數據預處理。對降雨災情檢測基礎信息庫數據進行去重去噪,包括剔除重復數據、特殊符號及錯別字過多或字數極少的文檔;采用百度停用詞表和ICTCLAS分詞工具進行去停用詞、去特殊字符、分詞等預處理。在文檔預處理中,由于廣州地區(qū)用詞有一定的特色詞匯和易混淆的詞條,如“落湯雞”(粵語的“淋濕”)、“落狗屎”(粵語的“下大雨”)等,為此制定了專用分詞詞庫供文檔預處理使用。專用分詞詞庫的來源為:高頻詞、熱門人名和地名、粵語特色詞匯、指示性災情詞等。部分詞條如圖2所示。
落湯雞淹沒雨水節(jié)氣風雨兼程落狗屎龍吸水周冬雨揮汗如雨落雨大雨點雨神冰雹預警水浸街谷雨暴雨預警雷雨大風預警
(5)降雨災情檢測信息特征向量提取。將預處理后的降雨災情檢測信息表示成能表征文檔語義的詞語序列。對詞語序列進行類別關聯度計算和特征詞提取,得到每個降雨災情檢測信息文檔的特征向量。
(1)文檔類別特征提取。該文將降雨災情檢測信息文檔m表示為m={t1,t2,…,tm},ti表示文檔中的特征詞,利用CHI計算特征詞與類別之間的關聯度,提取出關聯程度高的特征詞作為文檔的特征向量[18]。特征權重則利用TF-IDF計算,其公式為:
(1)
式中,TF-IDF(tk,dj)為特征詞tk在文檔dj中的特征權重值,TFkj為特征詞tk在文檔dj中的詞頻,N為文檔總數,nk為包含tk的文檔數。
(2)降雨災情信息SVM分類器構建。該文選擇SVM算法實現降雨災情文檔信息分類,并以LIBSVM軟件包構建二分類模型,即判斷文檔信息若屬于雨情相關,則為雨情信息文檔,反之,則為其他信息文檔。SVM通過尋找最優(yōu)超平面,并使該平面在分割各類數據時,讓各類數據離超平面的間隔達到最大,以確保其泛化能力達到最好,因此具有很好的分類效果[19-20]。其學習策略是訓練一個超平面,并在處理高維度問題時引入核函數,以適用于文檔分類。其最優(yōu)超平面的求解如下:
(2)
Subject toyi[(wTφ(xi)+b)]≥1-ζi,ζi≥0
(i=1,2,…,l)
(3)
式中,l是數據樣本總數,xi,i=1,2,…,l是數據,y是類別且yi∈(1,-1)。φ(xi)把xi映射到高維空間,同時引入了懲罰因子C和松弛變量ζ,則有決策函數如下:
(4)
式中,K為映射到高維空間的核函數。
同時以精確率P(Precision)、召回率R(Recall)和F1值作為模型評價指標。其中精確率P評價的是某個類別的分類是否有更多的正確數,召回率R評價的是某個類別的數據是否多數被正確分類。對于二類的分類問題,其分類結果如表1所示。
表1 文本二分類結果
則:
(5)
(6)
F1值是精確率P和召回率R的調和平均值,綜合反映整體指標。
(7)
利用建模集對核函數類型t、懲罰因子C、核函數參數g取值進行調試。其中三種核函數t比較結果如圖3所示:可見線性核函數分類效果最優(yōu),其F1值明顯高于多項式核函數、RBF核函數。而多項式核函數的高召回率是因為該模式判定其中一類為無,所以不選用。另外對于SVM來說,通過調整懲罰因子C,可以更有效地解決其在分類中數據集的“偏斜”問題,“偏斜”是指參與分類的兩個類別或多個類別的樣本數據量差異很大。采用了交叉驗證法,得出最優(yōu)的C和g參數組合為(8,0.5)。優(yōu)化后召回率和F1值分別提高了2.08%、0.37%,表明類別內的分類正確性有提高,這在一定程度上提高了模型應對數據集“偏斜”的準確性和適應性。
圖3 三種核函數比較
(1)災情權重分級。基于索引關鍵詞的權重值,計算每個雨情信息文檔的權重等級??紤]社交媒體內容常帶有較濃的人的主觀感受和情感狀態(tài),當人在感受到更危急情況時,會傾向于用更嚴重的描述,或者描述的詞匯量更多。而這些往往表示該地點的雨情或災情更重,因此根據這點把索引關鍵詞賦予不同的權重值,如把“雨”設置為1的權重值,把具有明顯災情指示性的詞語(如大雨、落狗屎、水浸、大水、積水、淹、澇、漲水)設置為2的權重值,把顯示嚴重和緊急災情的詞語(如暴雨、冰雹、洪水、水災)設置為3的權重值。具體如:當雨情信息文檔出現“雨”為關鍵字,如“下雨了,很討厭下雨啊”則該信息點的權重等級為1;當出現“大雨、暴雨”為關鍵字,如“上午落大雨,晚上大暴雨”則該信息點的權重等級為5。
(2)災情熱點分析。分析每個目標雨情信息點及其鄰近位置中的每個雨情信息點的災情權重等級。要成為具有顯著意義的災情信息熱點,該雨情信息點的權重等級應具有高值,且被其他同樣具有高權重等級值的雨情信息點所包圍。
該系統(tǒng)采用B/S的框架結構:包括應用管理層、風險告警層、數據分類層、數據過濾層、數據采集層五個層級。后臺應用程序將文檔信息數據通過采集、過濾、分類、插值等加工處理后存入數據庫中,前臺WEB平臺運用GIS地圖技術展示處理后的降雨災情信息。線上降雨災情檢測系統(tǒng)的總體框架如圖4所示。
圖4 系統(tǒng)總體框架
五個層級的具體功能如下:
(1)應用管理層:提供線上災情查詢和綜合管理功能。其中災情查詢用于實時展示降雨災情情況,將以災情檢測流程處理后的信息以GIS方式直觀地展示出現降雨災情的時間、地點、熱點分析等。系統(tǒng)管理員可通過災情綜合管理對系統(tǒng)和模型的相關參數進行查詢和操作,包括:微博數據管理、微信數據管理、分詞專用詞庫、索引關鍵詞目錄、敏感詞目錄、索引關鍵詞權重值等的查詢和配置。
(2)風險告警層:提供災情預警、告警信息發(fā)送、災情統(tǒng)計、災情庫、災情密度圖等功能。災情預警主要是根據城市網格化管理的要求生成各個網格的告警信息。告警信息發(fā)送用于對網格管理員、值班人員的信息發(fā)送,支持微信、短信等渠道發(fā)送。災情統(tǒng)計可通過區(qū)域緯度統(tǒng)計當前生效的所有降雨災情數據。災情庫將某個時段的降雨災情數據進行匯總形成災情事件庫,并支持外部附件和數據的上傳導入。災情密度圖可查看和統(tǒng)計某個時段內的降雨災情空間密度分布情況。
(3)數據分類層:提供分詞、停用詞過濾、模型分類功能。分詞主要利用ICTCLAS和專用分詞詞庫將文檔信息進行分詞操作。停用詞過濾是剔除停用詞表中的用詞。模型分類是通過SVM最優(yōu)模型對采集到降雨災情檢測基礎信息庫的文檔信息進行分類處理。
(4)數據過濾層:提供關鍵詞過濾、敏感詞過濾。關鍵詞過濾根據索引關鍵詞目錄將與降雨信息或災情狀況無關的文檔信息進行剔除過濾。敏感詞過濾主要針對社交媒體數據來源于用戶的主動上傳,沒有進行嚴格的審核和排除,內容可能存在一些敏感的風險詞匯,可根據用戶設置的敏感詞目錄將包含了當中關鍵字的數據進行剔除。
(5)數據采集層:通過新浪微博開放API接口獲取實時位置微博數據。通過HTTP請求的方式,從微信服務號自建開發(fā)的API接口定時獲取降雨災情上報數據。通過數據庫連接的方式定時獲取相關的氣象數據。
微博數據采集通過API接口實現對某個位置周邊動態(tài)數據的獲取。其流程如圖5所示。先獲取經緯度點數據集,然后啟動線程池,過程中針對多個經緯度點,需采用多線程技術,對每個點啟動一個線程單獨去執(zhí)行,再通過微博應用授權碼accessToken以獲取數據。
圖5 微博數據采集流程
數據過濾均基于可動態(tài)更新的詞目錄。在信息數據入庫時,將預處理后的數據遍歷關鍵詞和敏感詞目錄進行過濾,然后通過逆地址編碼接口獲取該條數據的地理位置信息,最后入庫。
通過災情綜合管理功能模塊配置城市網格管理信息和網格告警的權重等級,包括行政區(qū)域、街道、網格名稱、網格員姓名、網格員聯系方式、網格范圍(經緯度坐標)等信息,同時支持行政區(qū)域、街道或者單個網格的告警閾值設置。當社交媒體數據經過采集、過濾、分類等流程處理后,若信息點的災情權重等級達到網格告警閾值時,則自動生成告警信息,并可選擇向指定人員發(fā)送告警信息,同時將告警動態(tài)展示在線上災情查詢模塊上。
3.3.1 利用QPE及自動站數據訂正
每6分鐘定時獲取最新時次的天氣雷達定量降水估測(QPE)產品資料,通過IDW庫函數將格點形成的QPE產品采用反距離加權方法插值到相應的雨情信息點上。若QPE產品插值后得到的雨情信息點降水量未達到設定的閾值,則認定該雨情信息點為誤報,取消其告警。
每5分鐘獲取最新時次的自動站分鐘數據,并實時計算各站點5分鐘滑動雨量和1小時滑動雨量數據,通過NEAR函數將自動站數據采用距離最近法關聯到相應的雨情信息點上。若自動站附近無雨情信息點,則訂正結束;若有,則判斷該自動站5分鐘滑動雨量和1小時滑動雨量是否達到設定的閾值,如都未達到則認定該雨情信息點為誤報,取消其告警。
3.2.2 災情密度圖
通過災情密度圖,可查看任意時間段內的降雨災情數據在空間范圍上的密度分布情況。首先根據設定時間范圍,搜索出該時間范圍內的分類處理后為雨情信息點的數據。然后再計算出每個雨情信息點的權重等級,其中權重值選取的是該點半徑2.5公里(R)范圍的所有雨情信息點權重等級(W)作為該點的密度權重,計算公式為:
(8)
其中搜索半徑2.5公里范圍的雨情信息點時,需要計算兩個經緯度點之間的球面距離,其算法實現如下:
Double:distance (lat1, lng1, lat2, lng2) {
radLat1=lat1*Math.PI/180.0
radLat2=lat2*Math.PI/180.0
a=radLat1-radLat2
b=lng1* Math.PI/180.0-lng2* Math.PI/180.0
s = 2*Math.asin(Math.sqrt(Math.pow(Math.sin(a/2),2)+Math.cos(radLat1)*Math.cos(radLat2)*Math.pow(Math.sin(b/2),2)))
s=s * EARTH_RADIUS
s=Math.round(s*1000)
Return s
End distance
當完成每個雨情信息點的權重值計算后,通過熱力圖函數將數據插值到地圖上。
利用2017年5月7日廣州多地突發(fā)特大暴雨過程進行應用案例的事后分析。系統(tǒng)首先通過正則表達式的方式將數據的URL地址("http://t.cn(.*?) ")、@人(@(.*?))、話題(#(.*?)#)、特殊圖片(\?\?\?\?+)等特殊符號剔除并進行關鍵詞和敏感詞過濾,再調用高德API接口geocoder獲取對應的地理位置信息后將數據入庫。在當日0時至19時降雨災情檢測基礎信息庫共采集到1 159條文檔數據,進行人工標注后獲得617條雨情信息。在雨情信息當中有124條含水浸、漲水、積水等相關資訊,證明在降雨災情提取上,社交媒體數據能提供如水浸街道、易積水點等災情實況,協助快速發(fā)現降雨造成的次生災害,對災情收集具有參考和實用價值。系統(tǒng)通過專用分詞詞庫和Library.Instance.NLPIR_GetKeyWords函數提取關鍵字,并利用預存模型特征向量計算特征權重,通過svm_scale.main({"-l","0","-u","1","-p",scalePath,featurePath})函數歸一化處理后,再調用svm_predict函數分類,經氣象數據訂正后的自動分類結果與人工標注和災情實況對比分析得出:熱點分析顯示(圖6)共有32個熱點,其分布地點與廣州市三防辦通報的水浸受災區(qū)域吻合(花都、增城、黃埔出現嚴重水浸,白云、天河、番禺多路段出現嚴重積水,多處交通中斷受阻)。系統(tǒng)災情檢測的精確率為79.6%,召回率為96.82%,F1值為87.37%,證明該系統(tǒng)在重大災害性天氣中能實現雨情、災情數據的自動識別和提取,提高社交媒體數據的利用效率,能一定程度上反映出廣州地區(qū)雨情和災情的真實狀態(tài)。
圖6 災情熱點分布
目前傳統(tǒng)的氣象災情收集大多為災情實地調查,在突發(fā)狀況或惡劣天氣下非常不利于及時了解實時災情狀況。而線上降雨災情檢測系統(tǒng)根據氣象災情收集業(yè)務的需要,利用社交媒體大數據檢測降雨雨情、災情的發(fā)生發(fā)展狀態(tài),結合了社交媒體數據優(yōu)勢,同時以SVM機器學習算法解決大量數據處理效率低下的問題。在提取過程中,通過災情熱點分析結合利用氣象雷達、自動站觀測數據進一步提高災情提取的準確度。因為社交媒體數據具有低成本、大數據、即時性的優(yōu)勢,所以結合SVM算法模型建成的線上降雨災情檢測系統(tǒng),能為降雨災情的收集提供有效的實時采集工具。