張永瑞,張岳軍,田瑞敏,王 林
(1.山西省氣象災(zāi)害防御技術(shù)中心,山西 太原 030002;2.山西省氣象科學(xué)研究所,山西 太原 030002)
山西是中國冰雹災(zāi)害較重的省份之一,幾乎每年各地都有不同程度的冰雹災(zāi)害發(fā)生。據(jù)統(tǒng)計,1949—2000 年,一年中遭受雹災(zāi)在30 個以上縣(市、區(qū)),且平均2.4 年有一年遭受嚴重雹災(zāi)[1]。冰雹具有局地性強、歷時短、發(fā)生區(qū)域廣等特征。許多冰雹信息受到時間、地域等諸多因素的限制而沒有記錄[2]。
微博是基于用戶關(guān)系的社交媒體平臺,用戶通過PC、手機等多種移動終端接入,以文字、圖片、視頻等多媒體形式,實現(xiàn)信息的即時分享、傳播互動。用戶數(shù)上截至2020-03,微博月活躍用戶達5.5 億,日活躍用戶達2.4 億。是目前最受歡迎的社交媒體平臺之一,包含了大量的信息。
氣象臺站信息雖然準(zhǔn)確,但是臺站分布太少,不能反映更大范圍的情況,利用網(wǎng)絡(luò)信息的提取可以在廣闊的范圍內(nèi)獲取這方面的信息。
本文將基于新浪微博的冰雹信息,比較多種文本分類方法,研究最佳的方法,提取2010—2019 年冰雹的實況信息,并與觀測資料比較,分析其實用性。
本文采用山西109個氣象臺站2010-02—2020-12的冰雹信息以及新浪微博地址為山西省共轄的11個地級市2010-02—2019-12 以“冰雹”為關(guān)鍵詞的所有微博信息。
2.2.1 網(wǎng)絡(luò)爬蟲
目前,從新浪微博上下載用戶數(shù)據(jù)主要途徑有2 個:第一種是通過新浪API 接口,但是有較大限制,需要被下載方授權(quán)許可,授權(quán)有效期為24 h。除了這些限制外,新浪API 針對一個用戶在使用一個應(yīng)用的請求次數(shù)上還有限制,對于測試授權(quán)來說,單個用戶每個應(yīng)用每小時只能請求150次,不能滿足本文研究需求。本文采用第二種途徑,通過網(wǎng)絡(luò)爬蟲(又被稱為網(wǎng)頁蜘蛛、網(wǎng)絡(luò)機器人),是一種按照一定的規(guī)則,自動地抓取萬維網(wǎng)信息的程序或者腳本[3-5]。
2.2.2 分詞器及文本分類的特征選擇
“結(jié)巴”分詞是一個Python 中文分詞組件,可以對中文文本進行分詞、詞性標(biāo)注、關(guān)鍵詞抽取等功能,并且支持自定義詞典。
如果把所有的分詞都作為文本特征,則經(jīng)過分詞處理后的文本類樣本的特征維度將是巨大的,同時由于分類能力很弱的分詞的使用會松動訓(xùn)練出優(yōu)良分類器的根基,因此有必要在對分詞分類貢獻率分析的基礎(chǔ)上進行分詞選擇,即特征選擇?;舅枷胧鞘褂迷u估函數(shù)對分詞集的每個分詞進行評估,然后按照評估得分的大小對分詞進行排序,并選取前n個分詞作特征,形成對“文本”類樣本的描述向量。
本文使用類別信息的評估函數(shù)有文檔頻率(DF)、詞頻-逆向文檔頻率(TF-IDF)、信息增益(IG)、互信息(MI)、卡方檢驗(CHI)、類間詞頻方差(DAC)[6]。
2.2.3 計算機學(xué)習(xí)
本文采用 Python 中的機器學(xué)習(xí)模塊Scikit-Learn 中的SVM 支持向量機、NB 樸素貝葉斯分類器、KNN K 近鄰分類器、DT 決策樹以及Google 公司2018-10-11 發(fā)布的BERT模型進行分類器的訓(xùn)練與測試。
2.2.4 分類性能的評價指標(biāo)
本文采用分類性能評估指標(biāo)為:準(zhǔn)確率(Precision)、召回率(Recal1)和綜合考慮準(zhǔn)確率與召回率的F1 測度值(F.measure)。
模擬登錄新浪微博,關(guān)鍵詞為“冰雹”,地址分別為“太原”“大同”等山西11 個地市,時間為2010-01-01T01:00—2019-12-23T15:00,由于每一次搜索,微博只提供50 頁的數(shù)據(jù),所以為了避免遺漏,每一次搜索的時間間隔為24 h,使用requests 庫,加載網(wǎng)頁的HTML,利用正則表達式提取HTML 的每一條微博的博主姓名、發(fā)表內(nèi)容和發(fā)表時間。共爬取了33 979 條山西關(guān)于“冰雹”的微博。
隨機抽取3 696 條微博信息作為樣本,分為2 類:①博主第一視角第一時間發(fā)現(xiàn)冰雹所發(fā)表的微博;②聽聞他人說、回憶、不確定信息、新聞報道、天氣預(yù)警預(yù)報信息等。其中,第一類有2 061 條,第二類有1 635 條。分別隨機抽取樣本60%、20%、20%,為機器分類樣本集、驗證集和測試集。
對發(fā)表內(nèi)容去重、去標(biāo)點,利用python 中文分詞器JIEBA 分詞器分詞,遍歷所用微博內(nèi)容,識別一元詞到五元詞組,如微博“下大雨了,還夾著冰雹,玉米粒似的”,分為{下,大雨,了,還,夾著,冰雹,玉米,粒,似的,下大雨,大雨了,還夾著,夾著冰雹,玉米粒,粒似的,下大雨了,還夾著冰雹,玉米粒似的},并分別統(tǒng)計各個詞在爬取微博中的出現(xiàn)頻率。刪除掉停用詞“的”“了”等和出現(xiàn)頻率5 次及以下、帶數(shù)字、特殊符號的詞組后,共獲得49 899個詞組。用7 種評估函數(shù)對特征向量重新排序,根據(jù)分數(shù)大小排出6 種詞組順序。
比較文檔頻率(DF)、詞頻-逆向文件頻率(TF-IDF)、信息增益(IG)、互信息(MI)、卡方檢驗(CHI)、類間詞頻方差(DAC)在SVM 支持向量機、NB 樸素貝葉斯分類器、KNN K 近鄰分類器不同維度模型得分。其中,特征詞MI 函數(shù)分類排序在NB 分類器取得的模型分數(shù)較高。MI函數(shù)排序在樸素貝葉斯分類器,在5206 特征維度模型分數(shù)(Model Score)為0.81。
利用Sklearn 中決策樹的Grid Search CV 參數(shù)調(diào)優(yōu),訓(xùn)練集分成5 等份相互驗證。比較文檔頻率(DF)、詞頻-逆向文件頻率(TF-IDF)、信息增益(IG)、互信息(MI)、卡方檢驗(CHI)、類間詞頻方差(DAC)在DT 決策樹驗證集模型得分。MI 函數(shù)排序在DT 分類器,在1000 特征維度模型分數(shù)較高為0.761,其中參數(shù)為:{不純度計算方法(criterion): gini, 決策樹深度(max_depth): None,節(jié)點劃分最小不純度(min_impurity_decrease):0.0,葉子結(jié)點的最小樣本數(shù)(min_samples_leaf): 3}。
把訓(xùn)練集調(diào)入 BERT 模型, 分別調(diào)節(jié)參數(shù)train_batch_size為8和16,num_train_epochs為3、4,learn_rate為1.00E-5、2.00E-5、3.00E-5、4.00E-5。在train_batch_size為 8,num_train_epochs 為 3,learn_rate 為 2e-5 驗證集模型準(zhǔn)確率最高為0.801。
特征詞MI 函數(shù)分類排序在NB 分類器5206 特征詞訓(xùn)練的模型、特征詞MI 函數(shù)分類排序在DT 分類器1000 特征詞訓(xùn)練的模型以及最佳驗證集參數(shù)參數(shù):{不純度計算方法(criterion):gini,決策樹深度(max_depth):None,節(jié)點劃分最小不純度(min_impurity_decrease):0.0,葉子結(jié)點的最小樣本數(shù)(min_samples_leaf):3}的BERT 的訓(xùn)練模型在測試集測試,比較各模型的準(zhǔn)確率(Precision)、召回率(Recal1)和F1 測度值(F.measure),最終MI 函數(shù)分類排序在NB 樸素貝葉斯分類器訓(xùn)練的模型表現(xiàn)最好,準(zhǔn)確率(Precision)為0.84,召回率(Recall)為0.8,F(xiàn)1 測度值為0.83。
冰雹實況信息包括降雹的時間、地點及冰雹大小,由于微博的短文本居多和內(nèi)容隨意性強的特點,這些要素有時會有一定的缺失。為將這三要素從降雹事件類中提取出來,本文從已標(biāo)注的微博數(shù)據(jù)中歸納出該三要素常用的表達規(guī)則,通過模板匹配法提取冰雹實況信息。時間為博主發(fā)微博時間,地區(qū)已經(jīng)確定,具體地址遍歷該地區(qū)鄉(xiāng)鎮(zhèn)街道,并提取。比如“太原”則遍歷太原市現(xiàn)轄的六區(qū)、三縣、一個市,及其縣市區(qū)內(nèi)的街道鄉(xiāng)鎮(zhèn),有相同地址名稱則提取。冰雹大小的提取主要基于2 個規(guī)則:①關(guān)于直徑的描述,為{直徑|最大直徑|空}+{多達|可達|有|達到|空}+數(shù)字+{厘米|毫米|cm|mm};②關(guān)于比喻的描述,{有|如|像|比|跟|大如|空}+比喻對象+{那么大|似的|般|般大|般大小|大|還大|一樣|一樣大小|大小|狀||小一些|空},比喻對象有[玉米]、[黃豆]、[乒乓球]、[棒球]、[西瓜]、[湯圓]、[雞蛋]、[鹽粒]、[豆粒]、[花生粒]、[彈珠]、[杏核]、[鵪鶉蛋]等30 個詞語,比如“有玉米粒那么大”“如鵪鶉蛋般大小”等。
為了提高準(zhǔn)確性,特征詞MI 函數(shù)分類排序在NB 分類器5206 特征詞訓(xùn)練的模型,在同一天符合一類數(shù)量在3 條以上記錄為該地區(qū)為降雹日。對比山西109 站2010-02—2019-12 降雹數(shù)據(jù)。機器分類精準(zhǔn)率(precision)為0.93,說明通過微博爬取的降雹事件是有參考性的,可以彌補一些地區(qū)降雹未被氣象臺站記錄的問題。查全率(recall)為0.87,說明微博博主并不能完全記錄下降雹事件,氣象臺站對冰雹事件記錄得更全面,在降雹事件中通過微博博主的信息是不能替代氣象臺站工作的。
本文基于新浪微博的冰雹信息,比較多種文本分類方法,發(fā)現(xiàn)互信息(MI)函數(shù)分類排序在樸素貝葉斯(NB)分類器訓(xùn)練的模型在對冰雹降雹事件識別準(zhǔn)確率較高,利用冰雹大小的規(guī)則提取出冰雹的時間、地點、大小,與氣象臺站觀測資料對比,通過微博提取冰雹實況信息雖然不能替代氣象臺站的工作,但是有一定參考性。