張 昱,羅年學(xué)
(武漢大學(xué) 測繪學(xué)院,湖北 武漢 430079)
突發(fā)事件是指突然發(fā)生,可能會導(dǎo)致嚴(yán)重的經(jīng)濟(jì)損失、社會危害的風(fēng)險事件。目前我國應(yīng)急體系中,突發(fā)事件災(zāi)情獲取通常采取政府部門采集、層層上報的方法,雖然數(shù)據(jù)更為專業(yè)、準(zhǔn)確,卻有中間層級過多,反應(yīng)較慢的問題[1],需要監(jiān)測互聯(lián)網(wǎng)突發(fā)事件進(jìn)行信息補(bǔ)充。獲取、分析主流新聞網(wǎng)站、社交網(wǎng)絡(luò)數(shù)據(jù),可以快速捕獲大部分的突發(fā)事件,適應(yīng)當(dāng)前應(yīng)急體系建設(shè)需求。
在中文互聯(lián)網(wǎng)文本的監(jiān)測與分析中,白曉雷等[2]使用支持向量機(jī)模型構(gòu)建二分類或多分類問題,對網(wǎng)絡(luò)反諷文本、輿情文本情緒進(jìn)行識別;夏彥等[3]將規(guī)則對比與統(tǒng)計相結(jié)合,對新聞的正文內(nèi)容進(jìn)行突發(fā)事件關(guān)鍵詞識別;Sakaki等[4]對Twitter上的有關(guān)地震的推文進(jìn)行分析,使用支持向量機(jī)進(jìn)行事件檢測,并基于卡爾曼濾波估計地震發(fā)生位置;姚占雷等[5]研究者從情報學(xué)角度切入,利用詞間距策略構(gòu)建了突發(fā)事件識別模型。目前關(guān)于突發(fā)事件文本挖掘的研究主要集中在突發(fā)事件文本的初始識別和具體事件內(nèi)容的信息提取兩方面,突發(fā)事件的分類作為數(shù)據(jù)獲取與深入挖掘的中間環(huán)節(jié)獲得較少的關(guān)注度。筆者研究以互聯(lián)網(wǎng)為平臺,選取多源數(shù)據(jù)內(nèi)容,將突發(fā)事件新聞?wù)Z料完成分類分析,實現(xiàn)突發(fā)事件的監(jiān)測,為應(yīng)急決策情報體系服務(wù)。
機(jī)器學(xué)習(xí)是采用數(shù)值建模的計算方法,自動獲取知識的學(xué)習(xí)過程,可以用于預(yù)測問題,即基于給定的輸入變量預(yù)測輸出變量,其基本思想是基于訓(xùn)練樣本屬性信息得到分類或者決策函數(shù),估計測試樣本屬性信息。為探究更適合突發(fā)事件監(jiān)測的自動分類模型,筆者使用了樸素貝葉斯、BP(back propagation)神經(jīng)網(wǎng)絡(luò)、支持向量機(jī)和隨機(jī)梯度下降-支持向量機(jī)分別對語料進(jìn)行分類。
根據(jù)突發(fā)事件的基本類型,利用計算機(jī)遵循某種分類法則,按照其語義特征對文本進(jìn)行有監(jiān)督分類,實現(xiàn)突發(fā)事件自動分類處理。文中基于機(jī)器學(xué)習(xí)方法的中文文本自動分類主要有8個步驟:①垃圾文本過濾。剔除互聯(lián)網(wǎng)文本尤其是社交媒體和論壇類短文本數(shù)據(jù)中可能出現(xiàn)純符號文本、重復(fù)文本。②文本標(biāo)注。為文本類型進(jìn)行手工標(biāo)注,用于有監(jiān)督學(xué)習(xí)的訓(xùn)練模型構(gòu)建和精度評價的計算。③中文分詞。利用結(jié)巴分詞將語句切分成詞為文本表示模型做準(zhǔn)備。④文本預(yù)處理。將臨時停用詞閾值設(shè)為0.5,即若超過50%的文檔出現(xiàn)了某詞,則將此詞設(shè)為臨時停用詞,不作為向量空間的特征項,在一定程度上控制了過擬合現(xiàn)象發(fā)生的幾率。⑤劃分?jǐn)?shù)據(jù)集。將數(shù)據(jù)劃分為訓(xùn)練集和測試集。⑥特征提取。使用TF-IDF(term frequency-inverse document frequency)模型進(jìn)行詞權(quán)重計算表示文本特征,構(gòu)建向量空間模型。⑦分類建模。使用依據(jù)已有訓(xùn)練集構(gòu)筑的分類模型,經(jīng)過機(jī)器學(xué)習(xí)算法,對待分類文本的類別進(jìn)行預(yù)測,實現(xiàn)自動分類。⑧精度評價。檢查測試集的分類預(yù)測結(jié)果,使用混淆矩陣評價分類模型精度。突發(fā)事件的機(jī)器學(xué)習(xí)自動分類流程如圖1所示。
圖1 突發(fā)事件的機(jī)器學(xué)習(xí)自動分類流程圖
(1)樸素貝葉斯。樸素貝葉斯分類(naive bayes classification,NBC)是基于概率統(tǒng)計理論,建立在特征項之間相互獨立假設(shè)上的一種貝葉斯學(xué)習(xí)方法。樸素貝葉斯分類可以處理多類問題,常用于文本分類問題,基本思想是根據(jù)訓(xùn)練集文檔的特征項(詞)和類別之間的條件概率,預(yù)測新樣本的類別。
按照貝葉斯公式,已知樣本為y類的概率是p(y)、樣本某特征x出現(xiàn)的概率是p(x),對于該確定樣本特征x,此樣本屬于y類別的概率為:
(1)
(2)BP神經(jīng)網(wǎng)絡(luò)。BP神經(jīng)網(wǎng)絡(luò)是一種多層前饋網(wǎng)絡(luò),其具有單向傳播、誤差逆?zhèn)鞑サ奶攸c[6]。多層感知機(jī)BP神經(jīng)網(wǎng)絡(luò)如圖2所示,多層感知機(jī)BP神經(jīng)網(wǎng)絡(luò)由輸入層、隱含層和輸出層構(gòu)成,經(jīng)測試選擇2層隱含層,各層內(nèi)部神經(jīng)元無連接,層與層之間的節(jié)點相連通,根據(jù)輸入向量和目標(biāo)輸出向量計算目標(biāo)值與實際值的平方誤差,根據(jù)閾值完成迭代和權(quán)值調(diào)整。
圖2 多層感知機(jī)BP神經(jīng)網(wǎng)絡(luò)
(3)支持向量機(jī)。支持向量機(jī)(support vector machine,SVM)算法對于解決高維問題有明顯優(yōu)勢,并且對樣本稀疏性不敏感,而文本分類有著稀疏、高維、特征關(guān)聯(lián)度較高的特點,因此SVM非常適合處理文本分類問題。支持向量機(jī)的基本核心思想是:①求解最優(yōu)分類面(邊界)以優(yōu)化泛化能力;②使用松弛變量引入軟間隔處理線性不可分問題;③構(gòu)造核函數(shù)向高維隱式映射來處理非線性問題。文中用到的多分類支持向量機(jī)模型中,在求解目標(biāo)函數(shù)時用來計算樣本預(yù)測值與真實值的差,稱為損失函數(shù),其為鉸鏈損失函數(shù),可用式(1)表示,其中C為正則化參數(shù),n為樣本個數(shù);β為系數(shù)向量,y為類標(biāo)記。
C×max(0,1-yi(βxi))]
(2)
(4)隨機(jī)梯度下降-支持向量機(jī)。在本文研究中隨機(jī)梯度下降(stochastic gradient descent,SGD)算法,在信息冗余時表現(xiàn)更佳,相較于非隨機(jī)算法能夠更有效利用信息[7]。對于支持向量機(jī)的隨機(jī)梯度下降算法中,對于每個實例求解方程對于β的偏導(dǎo),有
(3)
再利用迭代策略,設(shè)置一定步長,迭代時隨機(jī)選取樣本計算梯度,即以梯度的無偏估計代替精確值,向負(fù)梯度方向搜索可以得到單調(diào)遞減的序列,直到下降到極小值,計算得到全局最優(yōu)解。其代碼如下所示,其中C為正則化參數(shù),η為學(xué)習(xí)速率,β初始化為系數(shù)的隨機(jī)值向量。
input:random parameter βoutput:optimal parameters βfor i in alldata: for instance in range X_length:xi= X[random index]yi= y[random index]if 1-yi(βxi)≤0: gradient=βelse: gradient=β-C×yixiβ=β-η×gradient
突發(fā)事件基本類型為實際救援的相關(guān)部門權(quán)責(zé)分配提供參考,突發(fā)事件的具體種類則在具體災(zāi)害應(yīng)對策略中提供基本方向,如“地震”災(zāi)害和“泥石流”災(zāi)害有著不同的應(yīng)對措施,為構(gòu)建突發(fā)事件分類模型,需要建立突發(fā)事件語料訓(xùn)練集。
筆者對突發(fā)事件監(jiān)測信息的研究范圍確定在中國境內(nèi)事件,突發(fā)事件文本數(shù)據(jù)來源于網(wǎng)絡(luò),通過八爪魚爬蟲選擇有一定熱度的突發(fā)事件早期網(wǎng)絡(luò)公開信息共5 821條,其中3 766條來自于微博、195條來自于微信、其余1 860條來自于其他新聞門戶網(wǎng)站,文章作者一般為媒體、記者或者當(dāng)?shù)卣?,相比網(wǎng)民個人主體用戶具有較好信息可信度。同時使用Scrapy框架獲取新浪新聞和新浪微博,并人工篩選出財經(jīng)、體育、教育、娛樂、生活等表意明確為非突發(fā)事件的語料400條。為保證新聞?wù)Z料信息涵蓋全面以及進(jìn)一步分類,本文選取的數(shù)據(jù)集語料涵蓋了4大基本類型中常見的30種突發(fā)事件,并予以人工標(biāo)注,每種突發(fā)事件新聞?wù)Z料樣本不少于2條。突發(fā)事件分類構(gòu)建標(biāo)準(zhǔn)如表1所示。
表1 突發(fā)事件分類構(gòu)建標(biāo)準(zhǔn)
筆者利用jieba分詞詞性標(biāo)注模塊,得到分詞后每個中文詞匯的詞性,并且挑選出地名(詞性為ns)詞匯,對比各省市的標(biāo)準(zhǔn)行政區(qū)劃名稱,抽取文本中出現(xiàn)的第一個行政區(qū)劃地名信息作為該突發(fā)事件的發(fā)生地點,使用高德地圖API(application program interface)完成地理編碼。我國2020年6月至11月主要報道的突發(fā)事件監(jiān)測信息樣本信息如表2所示,分類地理分布如圖3所示,可以看出東部地區(qū)發(fā)生較多引起輿情關(guān)注的突發(fā)事件,可能與人口密度相關(guān)。使用Scikit-learn框架中的LDA(latent dirichlet allocation)主題模型,完成對監(jiān)測信息數(shù)據(jù)的主題提取,主題模型如表3所示,可以看出該段時間內(nèi)重要的主題和各類事件比例符合實際情況。
表2 突發(fā)事件監(jiān)測信息樣本信息
圖3 全國突發(fā)事件分類地理分布圖
(1)分類實驗分析。在本文試驗中,筆者選擇了4種模型進(jìn)行分類測試。為測試出更優(yōu)的突發(fā)事件分類方案,筆者對分類器的精度進(jìn)行比較,并在輸入相同向量模型的情況下單獨計算各分類模型訓(xùn)練模型和預(yù)測分類函數(shù)程序運(yùn)行所需CPU(central processing unit)時間。從構(gòu)建的突發(fā)事件數(shù)據(jù)集中隨機(jī)抽取若干條突發(fā)事件新聞,不再用于本次模型訓(xùn)練,作為本次測試樣本,使用樸素貝葉斯、BP神經(jīng)網(wǎng)絡(luò)、支持向量機(jī)和SGD支持向量機(jī)對突發(fā)事件測試語料進(jìn)行分類對比,再針對模型分類結(jié)果的混淆矩陣進(jìn)行對比評估。其中使用BP神經(jīng)網(wǎng)絡(luò)模型時對其參數(shù)進(jìn)行調(diào)試,使用適用于大數(shù)據(jù)集的基于隨機(jī)梯度下降的優(yōu)化算法作為優(yōu)化權(quán)重的求解器,確定使用2個隱藏層、第一、二層分為7個和9個隱藏單元下的模型即達(dá)到較好效果。支持向量機(jī)與SGD支持向量機(jī)均使用線性核策略和鉸鏈損失函數(shù)求解目標(biāo)函數(shù)。
表3 突發(fā)事件監(jiān)測信息主題模型
(2)分類算法精度評定?;煜仃囀菣C(jī)器學(xué)習(xí)領(lǐng)域中統(tǒng)計分類的一種可視化工具,包含由某種分類器完成的實際和預(yù)測分類的信息,通常使用矩陣中的數(shù)據(jù)來評價這種分類器的性能。混淆矩陣第一列表示實際類別,第一行表示預(yù)測類別,對角線上的數(shù)字表示分類正確的數(shù)量,非對角線則表示錯誤分類,混淆矩陣精度評定指標(biāo)如圖4所示。
圖4 混淆矩陣精度評定指標(biāo)
文中選擇其中的召回率(recall)和精確度(precision)作為評價的主要指標(biāo)。召回率是從樣本的實際分類角度出發(fā),是指被模型正確預(yù)測的概率,精確度是從樣本的預(yù)測分類角度出發(fā),指被預(yù)測為正的樣本中實際為正的樣本比例。精確度和召回率的取值范圍都介于0與1之間,一般情況下,兩者的大小和模型分類效果的好壞成正相關(guān)。召回率和精確度兩個指標(biāo)在很多情況下是相互制約的,為了綜合評價召回率和精確度,引入信息檢索領(lǐng)域的一常用綜合評定指標(biāo)F-Score,用于計算召回率和精確度的加權(quán)調(diào)和平均,其中最常見的參數(shù)α為1,即F1-Score。
(4)
式中:P為精確度;R為召回率。
測試分類結(jié)果如表5所示。從表5可知,4種模型對于整體精確度、召回率和F1-score有明顯分層差異,支持向量機(jī)的分類效果最優(yōu),隨機(jī)梯度下降(SGD)-支持向量機(jī)與之相近,BP神經(jīng)網(wǎng)絡(luò)次之、樸素貝葉斯表現(xiàn)較差。圖5的混淆矩陣顯示兩種分類方法對角線上均有預(yù)測正確的數(shù)值,都未出現(xiàn)過擬合現(xiàn)象。4種分類器對于事故災(zāi)難和公共衛(wèi)生事件的識別均可以較好識別,差異主要出現(xiàn)在對非突發(fā)事件語料的分類識別中,此處語料的種類較為繁雜、離散型強(qiáng),而樸素貝葉斯對于此處的離散性較為敏感。由于突發(fā)事件分類同時具有突發(fā)事件類間重疊和非突發(fā)事件類內(nèi)離散兩種屬性,基于支持向量機(jī)的模型對于此類數(shù)據(jù)有著較為彈性的解決方案,在此處其優(yōu)勢得到了體現(xiàn),并在各分類中均具有最佳表現(xiàn)。對比計算時間,使用隨機(jī)梯度下降的線性核支持向量機(jī)損失了0.2%精確度。
圖5 突發(fā)事件類型分類效果混淆矩陣界面圖
表5 使用突發(fā)事件新聞測試分類效果
同時,模型訓(xùn)練時間和預(yù)測時間下降了91.63%和91.11%。雖然BP神經(jīng)網(wǎng)絡(luò)總體表現(xiàn)較為優(yōu)異,但在同樣運(yùn)算環(huán)境下,僅2層隱藏層在計算時間上已經(jīng)表現(xiàn)出明顯的運(yùn)算速度劣勢。在小范圍計算中,線性核支持向量機(jī)表現(xiàn)最佳,考慮到實際應(yīng)用的大規(guī)模數(shù)據(jù)運(yùn)算和有限的精確度損失前提下,SGD支持向量機(jī)求解此類問題較優(yōu)。
針對互聯(lián)網(wǎng)文本數(shù)據(jù)突發(fā)事件監(jiān)測信息分類的快速響應(yīng)情境,筆者對比樸素貝葉斯、BP神經(jīng)網(wǎng)絡(luò)、支持向量機(jī)和隨機(jī)梯度下降支持向量機(jī)的分類效果,提出在突發(fā)事件監(jiān)測信息識別分類中隨機(jī)梯度下降支持向量機(jī)模型的使用可以在保證精度的同時快速完成分類。