本發(fā)明屬于計算機應用與自然語言處理結合的技術領域。
背景技術:
短文本分類技術是指對字數(shù)在160字左右,具有稀疏特性的文本進行分類的技術。通常情況下,短文本信息具有實時性強、語言簡潔、噪音多等特點。對于稀疏性極強的短文本,使用傳統(tǒng)文本分類方法,通過計算文檔內(nèi)詞項出現(xiàn)的頻率和文檔間公共詞項的數(shù)量來評判文檔間相似性,其準確率不高。因此,針對短文本獨有的實時性強、語言簡潔、噪音多的特點,提高分類算法的準確率,召回率會有重要的應用。
目前,針對短文本比較常用的分類算法可以分為兩大類:一類是基于某種規(guī)則改進的分類過程;另一類是基于外部語義信息擴充短文本的內(nèi)容,進而提高短文本的分類效果。
基于規(guī)則改進的方法主要是對短文本數(shù)據(jù)集進行處理,借助于特征提取、文本表示、分類器構建等多個環(huán)節(jié)提出的創(chuàng)新改進方法。但是,在短文本分類中,由于數(shù)據(jù)稀疏,基于本地特征的分類器在表達短文本時普遍遇到語義鴻溝的問題,不能有效地區(qū)別不同短文本中的語義信息。
基于語義信息擴充短文本的分類算法主要是借助于文本語境信息或外部語義知識庫,利用某種規(guī)則豐富短文本的表述內(nèi)容。這種算法從一定程度上減輕了數(shù)據(jù)稀疏帶來的影響,但是當訓練數(shù)據(jù)量增大時,輔助數(shù)據(jù)帶來的提高逐漸減弱,分類效果會下降。針對短文本的特征稀疏性,本發(fā)明將維基百科作為外部語義知識庫進行了短文本特征的擴展。
維基百科中存在著大量不斷的增長的概念,這對于短文本的內(nèi)容擴充提供了非常有效的平臺。語義相似度計算是一種基于維基百科文本和鏈接結構信息的語義關系量化模型,該模型通過計算備選擴展特征與主題特征之間的語義相似度,選取相似度較高的特征作為擴展特征,上述過程稱為語義擴展。
維基擴展短文本特征的主要過程如下:(1)將給定的短文本數(shù)據(jù)進行預處理后,得到對應的詞項向量;(2)將向量中的每一個特征詞項(稱為主題特征詞項)都映射到維基百科所對應的主題頁面中,獲取主題頁面內(nèi)摘要段的文本信息,并對獲得的文本信息進行分詞、去噪的預處理,以得到每個主題特征詞項的維基擴展特征向量;(3)通過wla(wikipedialinksandabstract)算法進行語義關系量化計算,即定量描述給定詞項與其備選擴展詞項之間的語義關聯(lián)程度。由于擴展詞表中的備選特征擴展詞項與主題詞項之間的關聯(lián)程度不同,則它們對主體特征語義信息補充的能力就不相同。這樣就定量描述了給定特征詞項與第1.1步得到的備選擴展詞項之間的語義關聯(lián)程度;(4)將該短文本所有主題特征擴展詞項組合、統(tǒng)計,得到的向量即為該短文本基于維基百科文本信息擴展后的特征向量。
在對短文本數(shù)據(jù)集進行處理中,經(jīng)典的文本分類模型有樸素貝葉斯nb(
集成學習算法的基本思路是:在對新的實例信息進行分類的時候,把若干個單獨訓練的分類器集成起來,將這些單個分類器的分類結果以某種權值相結合,作為最終的集成分類結果。由相關資料表明,集成分類器的性能比單個分類器的分類效果更好。
目前,集成學習分類算法主要分為兩類:一種是以bagging算法為代表的并行生成算法,它要求個體分類器之間的依賴關系相對較弱;另一種是以boosting算法為代表的串行生成算法,這種算法個體之間要有較強的依賴關系。boosting算法在實際應用中存在過擬合(overfitting)問題,導致其分類效果弱于單個分類器的分類效果。本發(fā)明采用bagging算法的思想,即:給定一個訓練集和一組弱分類器,對訓練集有放回的抽取m個樣本組成一訓練子集,抽取n次得到n個訓練子集。通過這n個訓練子集訓練n個分類器,即可得到n個預測函數(shù)序列,然后用對樣本集進行預測并通過多數(shù)投票機制得到最后的預測結果。
召回率(recallrate,也叫查全率)是檢索出的相關文檔數(shù)和文檔庫中所有的相關文檔數(shù)的比率,衡量的是檢索系統(tǒng)的查全率;準確率是檢索出的相關文檔數(shù)與檢索出的文檔總數(shù)的比率,衡量的是檢索系統(tǒng)的查準率。普遍表示為:查準率=(檢索出的相關信息量/檢索出的信息總量)*100%。召回率(recall)和準確率(precise)是廣泛用于信息檢索和統(tǒng)計學分類領域的兩個度量值,用來評價結果的質量。f值是查準率(準確率)和查全率(召回率)兩指標的綜合,是一種綜合指標,在評價分類效果優(yōu)劣等方面,比單獨使用準確率或者召回率更具有說服力。在本文中我們使用f1值(即fβ中β=1)作為綜合評價指標。
技術實現(xiàn)要素:
本發(fā)明目的是解決短文本分類準確率低的問題,提供一種bagging_bsj短文本分類方法,以便提高短文本分類的準確率,召回率和f值。
本發(fā)明針對短文本的高稀疏性,實時性和不規(guī)范性等特點,利用維基百科作為知識庫,提出對短文本進行wla語義擴展,在貝葉斯算法,支持向量機算法和j48算法的基礎上,結合bagging集成算法思想,提出了bagging_bsj集成短文本分類算法。將該方法應用于短文本分類中,對短文本進行語義特征擴展,對語義特征擴展后的短文本,利用bagging_bsj算法進行分類,得到了比傳統(tǒng)方法更好的分類準確率,召回率和f值。
本發(fā)明的技術方案
一種bagging_bsj短文本分類方法,該方法主要包括如下關鍵步驟:
第1、基于維基特征的wla短文本語義特征擴展;
第1.1、特征抽取。對于給定特征詞項,通過消除歧義、重定向技術將該特征詞項映射到對應的維基百科頁面中,提取頁面文本信息,并對這些文本信息進行分詞,除停用詞等去噪處理,得到一組由詞項組成的特征向量,該特征向量中的元素為特征詞項的備選擴展詞項;
第1.2、語義關系量化。通過我們提出的wla(wikipedialinksandabstract)算法進行語義關系計算,定量描述給定特征詞項與第1.1步得到的備選擴展詞項之間的語義關聯(lián)程度;
第1.3、特征擴展集合構建。經(jīng)過相關特征抽取、詞項語義關系量化之后,為每一個給定的特征詞項構建相應特征擴展詞項向量ct{(c1,r1),(c2,r2),…,(ck,rk)},其中ci、i=1,2,…,k,是與主題特征詞項t相關的備選擴展詞項,ri、i=1,2,…,k,表示ci與t之間的語義相似度,將這些詞項向量作為下面短文本分類時的樣本。
第2、基于集成思想的bagging_bsj短文本分類算法;
第2.1、訓練集s={(x1,y1),(x2,y2),…,(xm,yn)}中含有m篇文章n種類別,其中xi為訓練樣本,yj為xi所對應的類別標簽;
第2.2、利用有放回的抽樣技術從訓練集s中分別抽取z1個、z2個、z3個訓練樣本子集,每個子集中均含有g個樣本;
第2.3、分別用樸素貝葉斯為基分類器的bagging分類器對前z1個子集進行訓練,訓練出的模型記為
第2.4、分類過程是將2.3訓練得到的分類模型hi、i=1,2,…,z1+z2+z3,均作用于待分類樣本(即新樣本數(shù)據(jù)),并借助于投票算法對分類結果進行集成處理,從而判斷出新樣本類別;即:
其中,第1.2步語義關系量化中所述的wla(語義相關度)算法公式推導如下:
首先,考慮到兩個詞項對應的維基百科主題頁面摘要段來計算兩個詞條的語義相關度,公式如下:
其中,a,b是兩個候選主題,n1,n2分別是單詞組t1,t2的單詞數(shù)量,q是兩個單詞組的公共詞的個數(shù),max(n1,n2)/min(n1,n2)是調和參數(shù),t1wi是單詞組t1中第i個公共詞的權重,其中tfi是第i個詞在文檔中出現(xiàn)的頻率,計算公式如下:
其中,v表示t1、t2中公共詞頻總數(shù)。
其次,考慮使用詞項所指向的維基百科主題頁面中的鏈入和鏈出信息來計算語義相關度,其中,davidmilne所提出的鏈入計算方法如下:
由于維基百科主題頁面還有鏈出結構,所以將鏈出結構也考慮其中,最后使用鏈接結構計算語義相關度的公式如下
siml(a,b)=βsimout(a,b)+(1-β)simin(a,b)
a,b是兩個候選主題,a,b是對應的主題頁面的鏈入數(shù)量,w是維基百科主題頁面數(shù)量,simout(a,b)是通過主題頁面鏈出計算的語義相關度,其計算方法和simin(a,b)相同,綜上所屬,得出wla的計算公式如下:
wlasim(a,b)=αsimα(a,b)+(1-α)siml(a,b)
在本發(fā)明中,α,β分別代表詞項對應維基百科的文本信息和鏈接結構的權值,分別取α=0.7,β=0.3即,
sim=0.7*simα(a,b)+0.3*siml(a,b)
其中siml=0.7*simin+0.3*simout。
第1.3步所述特征擴展集合構建方法過程如下:
如圖1所示,經(jīng)過相關特征抽取、詞項間語義關系量化之后,為每個給定的主題特征詞項構建相應的特征擴展詞項向量ct{(c1,r1),(c2,r2),…,(ck,rk)},其中ci(i=1,2,…,k)是與主題特征詞項t相關的備選擴展詞項,ri(i=1,2,…,k)表示ci與t之間的語義相似度??紤]備選擴展詞項出現(xiàn)頻率的問題,本發(fā)明利用如下公式將備選擴展詞項與主題特征詞項之間的語義相似度及其出現(xiàn)頻率進行綜合。
ri表示備選擴展詞項與主題特征詞項t之間的語義相似度,k表示主題特征詞項t所對應的備選擴展詞項向量中元素的個數(shù),ni表示ti出現(xiàn)的頻率。其中ct中元素的次序按照ri的大小排列。
bagging_bsj算法描述如下:
根據(jù)以上算法,bagging_bsj算法流程圖如圖2所示。實線連接的部分表示分類器的訓練過程,虛線連接的部分表示測試過程。在訓練分類器時,首先通過有放回的采樣技術抽取z1+z2+z3個訓練樣本子集,然后以樸素貝葉斯為基分類器的bagging分類器對前z1個子集進行訓練,訓練出的模型記為
本發(fā)明的優(yōu)點和積極效果
本發(fā)明應用于短文本分類中,對短文本進行wla語義擴展,進行相關特征抽取,對語義關系量化處理,構建特征擴展集合,并基于bagging集成算法思想,結合樸素貝葉斯算法,支持向量機算法和j48算法,克服三種算法的缺陷,提出bagging_bsj算法??梢愿玫膶Χ涛谋具M行特征擴展和分類。理論以及實驗表明,該方法比傳統(tǒng)樸素貝葉斯算法等在許多方面都有更好的效率,如準確率,召回率和f值等。
本發(fā)明提出的bagging_bsj方法可應用在短文本分類的各個方面,如qq消息,微信,短信,微博等。本發(fā)明可有效彌補短文本特征稀疏、語義匱乏等缺陷,而且為輿情分析、社交即時消息處理等領域提供了借鑒手段,具有算法步驟清晰,對短文本分類效率高等優(yōu)點,因而具有很強的實際應用價值。
附圖說明
圖1是維基擴展短文本特征詞項表模型圖。
圖2是本發(fā)明bagging_bsj算法流程圖。
圖3是詞項對應的維基百科主題頁面圖。
圖4是多種分類算法對相同數(shù)據(jù)進行分類時間花費圖。
圖5是多種分類算法在不同數(shù)據(jù)集上的分類準確率圖。
圖6是多種分類算法在不同數(shù)據(jù)集上的分類召回率圖。
圖7是多種分類算法在不同數(shù)據(jù)集上的分類f值圖。
圖8是多種分類算法在不同數(shù)據(jù)集上的分類時間消耗圖。
具體實施方式
實施例一、短文本wla語義擴展及bagging_bsj分類
對短文本進行基于維基的wla語義特征擴展,并用bagging_bsj算法進行分類,具體步驟如下:
1、對短文本進行wla語義擴展
(1)給定詞項book,找到它所對應的主題頁面,如圖3所示。利用lucence分詞工具進行預處理之后,得到一組備選擴展詞項{write,printing,illustration,sheet,text,e-book,page,paper,ink,parchment,material,book,leaf},即為詞項book基于維基百科的簡單特征擴展詞項表。
(2)采用提出的基于維基百科的語義相似度算法wla進行計算,利用如下公式:
wlasim(a,b)=αsima(a,b)+(1-α)siml(a,b)
分別取α=0.7,β=0.3,得
sim=0.3*siml+0.7*simt
其中siml=0.7*simin+0.3*simout
計算主題特征詞項book與備選擴展詞項中各備選擴展特征詞項之間的語義相關性,得到結果如下:
{(write,0.74),(printing,0.73),(illustration,0.78),(sheet,0.79),(text,0.88),(book,1),(e-book,0.828),(page,0.876),(paper,0.86)}。
(3)特征擴展詞項表構建
選擇排名最高的五個特征詞項作為詞項book的特征擴展詞項,即{book,text,page,paper,
e-book},對這五個詞項重復進行(1)和(2)兩個步驟,得到維基擴展向量為:{e-book,information,source,physical,database,document,material,newspaper,digital…}
最終可得語義擴展后的詞項向量為:
{(information,0.82),(database,0.798),(book,0.796)…}
2、對wla語義擴展后的詞項進行bagging_bsj分類
利用weka挖掘工具,用本發(fā)明提出的bagging_bsj分類算法模型對上述得到的詞項進行分類,其中,取z1=z2=z3=15,g=1000。
從圖4中,可得出結論:本發(fā)明提出的bagging_bsj算法比svm和nb所需時間略多,但又遠小于j48算法。是由于j48分類模型在對每一組實驗數(shù)據(jù)進行分類時,都需要重新訓練模型。
對不同類型短文本進行分類,包括以下三種數(shù)據(jù)類型。未經(jīng)處理的短文本原數(shù)據(jù),由維基擴展后的短文本和本方法提出的wla語義擴展后的短文本。分別用nb,svm,j48以及本發(fā)明方法bagging_bsj算法進行分類,得出結果如圖5,圖6,圖7和圖8所示。
從圖5中,可得出結論:各數(shù)據(jù)集在不同的分類器上的分類準確率都呈現(xiàn)出較一致的趨勢,維基擴展和wla語義擴展后數(shù)據(jù)集的分類準確率(94.6%),遠高于不進行特征擴展的短文本分類。而由維基擴展后的短文本分類的準確率,略低于由wla語義擴展后的短文本分類準確率。
從圖6中,可得出結論:本發(fā)明算法bagging_bsj的召回率(93.3%)表現(xiàn)最好,其他分類器在wla語義擴展后的短文本分類上的召回率最高,在未擴展的原數(shù)據(jù)集上的分類召回率最低。而bagging_bsj分類器雖然在維基擴展數(shù)據(jù)集和wla語義擴展數(shù)據(jù)集上的分類召回率相等,但遠高于在原數(shù)據(jù)集上的召回率。
從圖7中,可得出結論:綜合考慮分類準確率和召回率,即f值。擴展后的短文本分類比未擴展的短文本原數(shù)據(jù)分類表現(xiàn)了較好的f值(94.1%)。相比于原數(shù)據(jù)和維基擴展數(shù)據(jù),本發(fā)明提出的wla語義擴展后的短文本分類的效果最好。
從圖8中,可得出結論:基于短文本原數(shù)據(jù)分類的時間花費最少,本發(fā)明提出的基于wla語義擴展的分類處理時間略高于原數(shù)據(jù)的分類處理時間,但低于維基百科簡單擴展短文本分類的時間消耗。
綜合圖5,圖6,圖7和圖8,得出結論:相對于其他分類方法,本發(fā)明提出的基于wla語義特征擴展后的短文本bagging_bsj分類方法在準確率,召回率,f值等指標中均表現(xiàn)出較好的性能。有效的解決了傳統(tǒng)文本分類模型應用于短文本分類時準確率低、召回率低等問題,同時也縮短了短文本分類的時間花費。