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