閆家滕,欒翠菊
(上海海事大學(xué)信息工程學(xué)院,上海 201306)
隨著手機(jī)時(shí)代的快速發(fā)展,微博用戶的數(shù)量也在不斷增加,微博在人們的生活中扮演著越來(lái)越重要的角色,逐漸地成為了人們的一種生活方式,我們可以通過(guò)微博快速獲得生活中的各種信息。微博意圖分類逐漸成為中文文本分類的一個(gè)新的研究方向。
地震是地球上的主要自然災(zāi)害之一,在中國(guó)近代也有數(shù)個(gè)地震對(duì)多個(gè)地區(qū)造成了嚴(yán)重的破壞。但是遺憾的是地震是一件不可預(yù)見的災(zāi)難,哪怕現(xiàn)在快速發(fā)展的科技也不能有效的預(yù)測(cè)地震發(fā)生時(shí)間和地點(diǎn)。我們對(duì)地震能做的是災(zāi)難發(fā)生時(shí)的及時(shí)救助和震后重建的積極幫助。而我們就是希望通過(guò)微博意圖分類技術(shù)對(duì)地震救助和震后重建提供有效的幫助。
Krll和Strohmaier[2]等人首先提出了一個(gè)新的概念:Intent Analysis,即意圖分析。在文章中,他們認(rèn)為意圖分析和情感分析具有一定的相似性,并把意圖分類看成一個(gè)多分類的問(wèn)題。之后Hollerit和Krll等人又針對(duì)微博上的消費(fèi)意圖進(jìn)行了實(shí)驗(yàn)探究。利用SVM和Nave Bayes等分類算法進(jìn)行消費(fèi)意圖分類,實(shí)驗(yàn)準(zhǔn)確度達(dá)到57%以上[13]。
本文研究微博意圖分類在地震事件應(yīng)急中的應(yīng)用。當(dāng)?shù)卣鸢l(fā)生時(shí),微博上會(huì)有很多人發(fā)布關(guān)于地震的信息,我們把有用的信息大致分為四類:在地震發(fā)生后想要為地震中受到傷害的人提供幫助、遭受了地震的侵害尋求幫助、為地震受害人員鼓舞和祈福、與地震相關(guān)的快訊。通過(guò)文本分類的方法對(duì)地震供需信息進(jìn)行意圖分類,把微博地震信息[1]進(jìn)行過(guò)濾和分類,既能夠?yàn)樾枰獛椭氖転?zāi)人群更快地得到幫助也能為想要提供幫助的人們提供高效的幫助渠道同時(shí)我們可以及時(shí)了解地震快訊,關(guān)注地震救援和震后重建工作并且把我們對(duì)受災(zāi)人群的關(guān)注和祈福傳遞給災(zāi)區(qū)人民。
本文研究主要內(nèi)容分為兩個(gè)部分:地震相關(guān)的微博數(shù)據(jù)的獲取和中文文本的預(yù)處理、基于三種分類算法模型相結(jié)合的文本分類。
首先通過(guò)編寫頁(yè)面解析程序?qū)崿F(xiàn)cookie模擬登錄、自動(dòng)加載等功能,獲取2015年至2017年所有地震相關(guān)的微博文本,為了讓最終得到的分類器具有更廣泛的適用性,我們除了獲取微博數(shù)據(jù)之外,還進(jìn)一步爬取了相關(guān)論壇和網(wǎng)站的一些地震相關(guān)信息,以此增加最終結(jié)果的適用性。然后通過(guò)人工標(biāo)注和分類獲得文章需要的文本數(shù)據(jù),接著對(duì)文本數(shù)據(jù)進(jìn)行去重和分詞得到最終的實(shí)驗(yàn)數(shù)據(jù)。進(jìn)一步通過(guò)數(shù)據(jù)挖掘工具WEKA的TextDirectoryLoader進(jìn)行文本格式轉(zhuǎn)換得到WEKA可以識(shí)別的arff格式文本。通過(guò)調(diào)用WEKA接口分別運(yùn)用三種經(jīng)典的分類算法來(lái)實(shí)現(xiàn)微博意圖分類,將實(shí)驗(yàn)結(jié)果進(jìn)行比較,選擇一種最優(yōu)的分類算法[14]。
系統(tǒng)框架圖如圖1所示。下面兩節(jié)將詳細(xì)描述文本分類具體過(guò)程。
圖1 基于WEKA的微博文本分類流程圖
(1)微博數(shù)據(jù)集的獲取
雖然現(xiàn)階段有很多關(guān)于微博文本數(shù)據(jù)的研究[1],但是到目前為止沒(méi)有合適的地震相關(guān)的微博文本語(yǔ)料集[3]。微博數(shù)據(jù)爬取方案有兩種,通過(guò)微博提供的API接口獲取或者通過(guò)頁(yè)面解析程序獲取。API接口數(shù)據(jù)獲取方案比較簡(jiǎn)單,但每次只能獲取有限的微博數(shù)據(jù)而且也沒(méi)有標(biāo)簽。頁(yè)面解析程序方案可以實(shí)現(xiàn)將頁(yè)面顯示的所有內(nèi)容爬取保存,但實(shí)現(xiàn)起來(lái)有較多的困難。本文采用頁(yè)面解析程序方案爬取與地震相關(guān)的微博內(nèi)容。
通過(guò)在頁(yè)面解析程序來(lái)爬取微博文本,經(jīng)過(guò)去重后得到實(shí)驗(yàn)數(shù)據(jù),分別為2015年12月到2017年12月之間與地震相關(guān)的微博文本。對(duì)得到的數(shù)據(jù)集進(jìn)行人工標(biāo)注,將描述在地震發(fā)生后想要為地震中受到傷害的人提供幫助的微博數(shù)據(jù)標(biāo)為offer,將描述遭受了地震的侵害尋求幫助的微博數(shù)據(jù)標(biāo)為ask,將描述為地震受害人員鼓舞和祈福的微博數(shù)據(jù)標(biāo)為clifford,將描述與地震相關(guān)的新聞的微博數(shù)據(jù)標(biāo)為news。示例數(shù)據(jù)如表1所示:
表1 示例數(shù)據(jù)表
(2)數(shù)據(jù)預(yù)處理
數(shù)據(jù)預(yù)處理[4]主要包括四個(gè)部分:中文文本分詞、數(shù)據(jù)格式轉(zhuǎn)換、空間向量轉(zhuǎn)換、特征選擇。
①中文文本分詞
本文采用中國(guó)科學(xué)院計(jì)算技術(shù)研究所提供的NL?PIR漢語(yǔ)分詞系統(tǒng)并根據(jù)本次實(shí)驗(yàn)中微博數(shù)據(jù)的特點(diǎn)建立用戶詞典進(jìn)行中文分詞。而本文主要使用的就是中文分詞功能,同時(shí)去掉微博文本中“@用戶名”及特殊符號(hào)標(biāo)識(shí)等這樣的內(nèi)容。
②格式轉(zhuǎn)換
因?yàn)楸疚膶?shí)驗(yàn)部分使用的是WEKA接口實(shí)現(xiàn)分類,所以我們需要將分詞后的文本數(shù)據(jù)轉(zhuǎn)成arff格式的數(shù)據(jù)集。本文采用的方法是通過(guò)WEKA控制臺(tái)進(jìn)行文本格式轉(zhuǎn)換。在進(jìn)行格式轉(zhuǎn)換之前,我們先將微博文本數(shù)據(jù)按照TextDirectoryLoader轉(zhuǎn)換器所要求形式布局:
+-示例+-類別1|+文件1.txt|+文件2.txt+-類別2|+文件1.txt|+文件2.txt|...
然后通過(guò)WEKA控制臺(tái)相應(yīng)的代碼指令將分詞后的文本數(shù)據(jù)轉(zhuǎn)成arff格式的數(shù)據(jù)集。
③空間向量轉(zhuǎn)換
通過(guò)WEKA數(shù)據(jù)挖掘工具帶有StringToWordVect?er功能將分詞后的微博文本轉(zhuǎn)換成空間向量模型,權(quán)重計(jì)算采用TFIDF算法[5]。
④特征選擇
特征選擇的目的就是選出對(duì)分類最有幫助的特征項(xiàng),是文本分類的一個(gè)關(guān)鍵步驟。在大量的文本特征中選擇出對(duì)文本類別信息相關(guān)性最大的特征子集,根本上講就是一個(gè)維數(shù)歸約的過(guò)程。因此如何選出對(duì)文本分類最有幫助的特征就非常重要了,特征選擇有多種方法。本文采用信息增益的方法進(jìn)行特征選擇。信息增益本質(zhì)上指某特征出現(xiàn)或者不出現(xiàn)時(shí)對(duì)文本分類信息量,信息量的多少用熵來(lái)衡量。如公式(1-3)[4]:
H(D,tj)表示有tj的所有數(shù)據(jù)集的分類信息熵,同理H(D,tˉj)表示不含有tj的所有數(shù)據(jù)集的分類信息熵。
本文分別運(yùn)用三種經(jīng)典的分類算法進(jìn)行文本分類的實(shí)驗(yàn)探究:決策樹、支持向量機(jī)、和樸素貝葉斯多項(xiàng)式模型。
(1)決策樹分類器
決策樹(DT)分類器[7]是一顆將內(nèi)部節(jié)點(diǎn)標(biāo)注為特征的樹,樹的條邊的值標(biāo)注為特征的權(quán)重,樹的葉節(jié)點(diǎn)標(biāo)注為類別。在DT中文本的類別是通過(guò)從樹根依次向下根據(jù)文本滿足的條件直到樹的節(jié)點(diǎn)為止,分類文本的類別就是樹的葉子的類別。大多數(shù)DT分類器使用的是二值文本表示,所以DT可以看成是二叉樹。
(2)Na?ve Bayes分類器
Na?ve Bayes分類器是基于樸素貝葉斯定理的分類算法,如公式(4)[8]:
在已知數(shù)據(jù)集的類別的條件概率稱為后驗(yàn)概率,可以通過(guò)計(jì)算數(shù)據(jù)集類別的先驗(yàn)概率和數(shù)據(jù)集類別條件下文檔出現(xiàn)的條件概率,然后基于假設(shè):d中的特征ti是相互獨(dú)立的。一般情況下,P(t|c)表示c類別中出現(xiàn)t詞中的文檔頻率,但是由于這樣做會(huì)丟失詞在文檔中的出現(xiàn)頻次,所以多項(xiàng)式模型認(rèn)為P(t|c)為詞t在c類別中出現(xiàn)的詞頻比例。如公式(5)[9]:
(3)SVM分類器
SVM分類算法[11]是基于統(tǒng)計(jì)學(xué)的文本分類算法,是針對(duì)小數(shù)量集的時(shí)候表現(xiàn)優(yōu)異的分類器。基本思想是使用非線性映射算法將低維線性不可分轉(zhuǎn)化高維線性可分,能夠通過(guò)最大化間隔的方法最好地區(qū)分最優(yōu)分類面。SVM分類器分類效率比較高,對(duì)稀疏數(shù)據(jù)不敏感,從特性上講比較適合基于微博數(shù)據(jù)的文本分類研究。
評(píng)估標(biāo)準(zhǔn):文本分類結(jié)果是通過(guò)準(zhǔn)確率P、召回率R和F1值進(jìn)行評(píng)估的,準(zhǔn)確率指的是每個(gè)類預(yù)測(cè)的分類結(jié)果為真的數(shù)目中確實(shí)為真的文本數(shù)目所占的比例,召回率指的是分類結(jié)果確實(shí)為真的文本數(shù)目中預(yù)測(cè)出來(lái)的文本數(shù)目所占的比例,而F1值可以看成是對(duì)準(zhǔn)確率P和召回率R的綜合度量值。F1值越高代表實(shí)驗(yàn)分類結(jié)果準(zhǔn)確率越高。
本文通過(guò)Eclipse開發(fā)工具調(diào)用WEKA提供的特征選擇、分類器和評(píng)估等算法的編程接口API實(shí)現(xiàn)分類實(shí)驗(yàn)。選用決策樹算法、SVM分類算法和樸素貝葉斯多項(xiàng)式分類算法以特征數(shù)1300作為分類基礎(chǔ)對(duì)地震數(shù)據(jù)進(jìn)行意圖分類研究,不同的分類算法在不同的特征數(shù)的條件下得到的分類結(jié)果也是不同的。以下是不同分類算法分類性能評(píng)估表:
圖2 分類性能評(píng)估表
我們最終得出使用支持向量機(jī)分類器進(jìn)行的實(shí)驗(yàn)結(jié)果準(zhǔn)確率最高如下表所示:
表2 實(shí)驗(yàn)結(jié)果
為了讓最終得到的分類器具有更廣泛的適用性,我們除了獲取微博數(shù)據(jù)之外,還進(jìn)一步爬取了相關(guān)論壇和網(wǎng)站的一些地震相關(guān)信息,以此增加最終分類器的適用性。
本文通過(guò)文本分類技術(shù)對(duì)微博地震數(shù)據(jù)進(jìn)行意圖分類探究微博意圖分類在地震事件應(yīng)急中的應(yīng)用,實(shí)現(xiàn)對(duì)有效的微博數(shù)據(jù)的意圖分類研究,得到在相同微博短文本數(shù)據(jù)集的基礎(chǔ)上,采用支持向量機(jī)分類算法創(chuàng)建的分類器分類結(jié)果準(zhǔn)確率最高。