閆家滕,欒翠菊
(上海海事大學信息工程學院,上海 201306)
隨著手機時代的快速發展,微博用戶的數量也在不斷增加,微博在人們的生活中扮演著越來越重要的角色,逐漸地成為了人們的一種生活方式,我們可以通過微博快速獲得生活中的各種信息。微博意圖分類逐漸成為中文文本分類的一個新的研究方向。
地震是地球上的主要自然災害之一,在中國近代也有數個地震對多個地區造成了嚴重的破壞。但是遺憾的是地震是一件不可預見的災難,哪怕現在快速發展的科技也不能有效的預測地震發生時間和地點。我們對地震能做的是災難發生時的及時救助和震后重建的積極幫助。而我們就是希望通過微博意圖分類技術對地震救助和震后重建提供有效的幫助。
Krll和Strohmaier[2]等人首先提出了一個新的概念:Intent Analysis,即意圖分析。在文章中,他們認為意圖分析和情感分析具有一定的相似性,并把意圖分類看成一個多分類的問題。之后Hollerit和Krll等人又針對微博上的消費意圖進行了實驗探究。利用SVM和Nave Bayes等分類算法進行消費意圖分類,實驗準確度達到57%以上[13]。
本文研究微博意圖分類在地震事件應急中的應用。當地震發生時,微博上會有很多人發布關于地震的信息,我們把有用的信息大致分為四類:在地震發生后想要為地震中受到傷害的人提供幫助、遭受了地震的侵害尋求幫助、為地震受害人員鼓舞和祈福、與地震相關的快訊。通過文本分類的方法對地震供需信息進行意圖分類,把微博地震信息[1]進行過濾和分類,既能夠為需要幫助的受災人群更快地得到幫助也能為想要提供幫助的人們提供高效的幫助渠道同時我們可以及時了解地震快訊,關注地震救援和震后重建工作并且把我們對受災人群的關注和祈福傳遞給災區人民。
本文研究主要內容分為兩個部分:地震相關的微博數據的獲取和中文文本的預處理、基于三種分類算法模型相結合的文本分類。
首先通過編寫頁面解析程序實現cookie模擬登錄、自動加載等功能,獲取2015年至2017年所有地震相關的微博文本,為了讓最終得到的分類器具有更廣泛的適用性,我們除了獲取微博數據之外,還進一步爬取了相關論壇和網站的一些地震相關信息,以此增加最終結果的適用性。然后通過人工標注和分類獲得文章需要的文本數據,接著對文本數據進行去重和分詞得到最終的實驗數據。進一步通過數據挖掘工具WEKA的TextDirectoryLoader進行文本格式轉換得到WEKA可以識別的arff格式文本。通過調用WEKA接口分別運用三種經典的分類算法來實現微博意圖分類,將實驗結果進行比較,選擇一種最優的分類算法[14]。
系統框架圖如圖1所示。下面兩節將詳細描述文本分類具體過程。

圖1 基于WEKA的微博文本分類流程圖
(1)微博數據集的獲取
雖然現階段有很多關于微博文本數據的研究[1],但是到目前為止沒有合適的地震相關的微博文本語料集[3]。微博數據爬取方案有兩種,通過微博提供的API接口獲取或者通過頁面解析程序獲取。API接口數據獲取方案比較簡單,但每次只能獲取有限的微博數據而且也沒有標簽。頁面解析程序方案可以實現將頁面顯示的所有內容爬取保存,但實現起來有較多的困難。本文采用頁面解析程序方案爬取與地震相關的微博內容。
通過在頁面解析程序來爬取微博文本,經過去重后得到實驗數據,分別為2015年12月到2017年12月之間與地震相關的微博文本。對得到的數據集進行人工標注,將描述在地震發生后想要為地震中受到傷害的人提供幫助的微博數據標為offer,將描述遭受了地震的侵害尋求幫助的微博數據標為ask,將描述為地震受害人員鼓舞和祈福的微博數據標為clifford,將描述與地震相關的新聞的微博數據標為news。示例數據如表1所示:

表1 示例數據表
(2)數據預處理
數據預處理[4]主要包括四個部分:中文文本分詞、數據格式轉換、空間向量轉換、特征選擇。
①中文文本分詞
本文采用中國科學院計算技術研究所提供的NL?PIR漢語分詞系統并根據本次實驗中微博數據的特點建立用戶詞典進行中文分詞。而本文主要使用的就是中文分詞功能,同時去掉微博文本中“@用戶名”及特殊符號標識等這樣的內容。
②格式轉換
因為本文實驗部分使用的是WEKA接口實現分類,所以我們需要將分詞后的文本數據轉成arff格式的數據集。本文采用的方法是通過WEKA控制臺進行文本格式轉換。在進行格式轉換之前,我們先將微博文本數據按照TextDirectoryLoader轉換器所要求形式布局:

+-示例+-類別1|+文件1.txt|+文件2.txt+-類別2|+文件1.txt|+文件2.txt|...
然后通過WEKA控制臺相應的代碼指令將分詞后的文本數據轉成arff格式的數據集。
③空間向量轉換
通過WEKA數據挖掘工具帶有StringToWordVect?er功能將分詞后的微博文本轉換成空間向量模型,權重計算采用TFIDF算法[5]。
④特征選擇
特征選擇的目的就是選出對分類最有幫助的特征項,是文本分類的一個關鍵步驟。在大量的文本特征中選擇出對文本類別信息相關性最大的特征子集,根本上講就是一個維數歸約的過程。因此如何選出對文本分類最有幫助的特征就非常重要了,特征選擇有多種方法。本文采用信息增益的方法進行特征選擇。信息增益本質上指某特征出現或者不出現時對文本分類信息量,信息量的多少用熵來衡量。如公式(1-3)[4]:

H(D,tj)表示有tj的所有數據集的分類信息熵,同理H(D,tˉj)表示不含有tj的所有數據集的分類信息熵。
本文分別運用三種經典的分類算法進行文本分類的實驗探究:決策樹、支持向量機、和樸素貝葉斯多項式模型。
(1)決策樹分類器
決策樹(DT)分類器[7]是一顆將內部節點標注為特征的樹,樹的條邊的值標注為特征的權重,樹的葉節點標注為類別。在DT中文本的類別是通過從樹根依次向下根據文本滿足的條件直到樹的節點為止,分類文本的類別就是樹的葉子的類別。大多數DT分類器使用的是二值文本表示,所以DT可以看成是二叉樹。
(2)Na?ve Bayes分類器
Na?ve Bayes分類器是基于樸素貝葉斯定理的分類算法,如公式(4)[8]:

在已知數據集的類別的條件概率稱為后驗概率,可以通過計算數據集類別的先驗概率和數據集類別條件下文檔出現的條件概率,然后基于假設:d中的特征ti是相互獨立的。一般情況下,P(t|c)表示c類別中出現t詞中的文檔頻率,但是由于這樣做會丟失詞在文檔中的出現頻次,所以多項式模型認為P(t|c)為詞t在c類別中出現的詞頻比例。如公式(5)[9]:

(3)SVM分類器
SVM分類算法[11]是基于統計學的文本分類算法,是針對小數量集的時候表現優異的分類器。基本思想是使用非線性映射算法將低維線性不可分轉化高維線性可分,能夠通過最大化間隔的方法最好地區分最優分類面。SVM分類器分類效率比較高,對稀疏數據不敏感,從特性上講比較適合基于微博數據的文本分類研究。
評估標準:文本分類結果是通過準確率P、召回率R和F1值進行評估的,準確率指的是每個類預測的分類結果為真的數目中確實為真的文本數目所占的比例,召回率指的是分類結果確實為真的文本數目中預測出來的文本數目所占的比例,而F1值可以看成是對準確率P和召回率R的綜合度量值。F1值越高代表實驗分類結果準確率越高。
本文通過Eclipse開發工具調用WEKA提供的特征選擇、分類器和評估等算法的編程接口API實現分類實驗。選用決策樹算法、SVM分類算法和樸素貝葉斯多項式分類算法以特征數1300作為分類基礎對地震數據進行意圖分類研究,不同的分類算法在不同的特征數的條件下得到的分類結果也是不同的。以下是不同分類算法分類性能評估表:

圖2 分類性能評估表
我們最終得出使用支持向量機分類器進行的實驗結果準確率最高如下表所示:

表2 實驗結果
為了讓最終得到的分類器具有更廣泛的適用性,我們除了獲取微博數據之外,還進一步爬取了相關論壇和網站的一些地震相關信息,以此增加最終分類器的適用性。
本文通過文本分類技術對微博地震數據進行意圖分類探究微博意圖分類在地震事件應急中的應用,實現對有效的微博數據的意圖分類研究,得到在相同微博短文本數據集的基礎上,采用支持向量機分類算法創建的分類器分類結果準確率最高。