本發(fā)明屬于數(shù)據(jù)挖掘技術(shù)領(lǐng)域,特別涉及一種基于改進(jìn)的SVM中文文本分類方法。
背景技術(shù):
文本分類方法是一種有指導(dǎo)的分類方法,它用一個(gè)已標(biāo)好類別的文本數(shù)據(jù)集(即訓(xùn)練集)來訓(xùn)練分類器,然后用訓(xùn)練好的分類器對未標(biāo)識類別的文本進(jìn)行分類,現(xiàn)有的分類方法及缺陷是:
(1)貝葉斯方法和K鄰近算法等傳統(tǒng)的機(jī)器學(xué)習(xí)方法都是基于經(jīng)驗(yàn)風(fēng)險(xiǎn)最小化而實(shí)現(xiàn),推廣性能不夠理想;
(2)傳統(tǒng)的支持向量機(jī)(SVM,Support Vector Machine)方法是基于結(jié)構(gòu)風(fēng)險(xiǎn)最小化原理的一種新的模式識別方法,具有小樣本,良好的推廣性能,全局最優(yōu)等特點(diǎn),但是在現(xiàn)實(shí)操作中,普遍存在樣本不平衡的分類問題,此時(shí),傳統(tǒng)的支持向量機(jī)方法會存在較高的誤判率,有待改進(jìn)。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的,在于提供一種基于改進(jìn)的SVM中文文本分類方法,其可提高文本分類精度。
為了達(dá)成上述目的,本發(fā)明的解決方案是:
一種基于改進(jìn)的SVM中文文本分類方法,包括如下步驟:
步驟1,對中文文本預(yù)處理,得到特征項(xiàng)集合;
步驟2,對特征項(xiàng)集合進(jìn)行特征選擇,得到精簡后的特征項(xiàng)集合;
步驟3,對精簡后的特征項(xiàng)集合計(jì)算權(quán)重;
步驟4,構(gòu)建文本向量,將文本中的每個(gè)關(guān)鍵詞語作為向量空間中的一個(gè)維度,而維度上的值是該關(guān)鍵詞語的權(quán)重;
步驟5,采用加權(quán)支持向量機(jī)構(gòu)建分類器;
步驟6,對待分類文本采用步驟1-4進(jìn)行處理,得到文本向量,將文本向量輸入步驟5構(gòu)建的分類器,得到分類結(jié)果。
上述步驟1中,對中文文本預(yù)處理包括中文分詞和去停用詞兩個(gè)過程。
上述步驟2的具體內(nèi)容是:構(gòu)造一個(gè)評估函數(shù)對特征項(xiàng)集合中的所有特征項(xiàng)進(jìn)行評估,然后按照評估值降序排序,根據(jù)設(shè)定的閾值或特征項(xiàng)數(shù)目的要求選擇前面的那些特征項(xiàng),得到精簡后的特征項(xiàng)集合。
上述評估函數(shù)采用開方檢驗(yàn)函數(shù),假設(shè)特征項(xiàng)t和類別Ci之間符合一階自由度的x2分布,其計(jì)算公式如下:
其中,N為所有的文本數(shù),A為包含特征項(xiàng)t且屬于類別Ci的文本數(shù)目,B為包含特征項(xiàng)t且不屬于類別Ci的文本數(shù)目,C為不包含特征項(xiàng)t且屬于類別Ci的文本數(shù)目,D為不包含特征項(xiàng)t且不屬于類別Ci的文本數(shù)目;
然后,將每個(gè)特征項(xiàng)t的x2統(tǒng)計(jì)值從大到小排個(gè)序,選取前若干個(gè)作為精簡后的特征項(xiàng)集合。
上述步驟3中,采用反比文檔頻率進(jìn)行權(quán)重計(jì)算,權(quán)重IDF的計(jì)算公式是:
IDF=log(Dall/Dt)
其中,Dall為文章總數(shù),Dt為該詞出現(xiàn)的文章數(shù)量。
上述步驟5的詳細(xì)內(nèi)容是:
設(shè)有訓(xùn)練樣本集表示為其中,i=1,2,…,m,yi∈{0,1,2,3,4,5,6,7,8,9},表示第i個(gè)文本的向量,yi為分類標(biāo)記;基于加權(quán)支持向量機(jī)的文本分類模型表示如下:
其中,ζi≥0,i=1,2,…,l,l表示樣本個(gè)數(shù),為核函數(shù);Si>0表示樣本重要性權(quán)值,如果0<Si<1表示樣本不重要;Si=1表示一般重要;如果Si>1表示很重要;樣本類別權(quán)值為σ≥1,屬于相同類別的樣本具有相同的類別權(quán)值;
對權(quán)重IDF值的計(jì)算公式構(gòu)造拉格朗日函數(shù)如下:
其中,αi,βi為拉格朗日乘子,i=1,2,…,l;
最終得到最優(yōu)分類器:
其中,為徑向基核函數(shù)。
采用上述方案后,本發(fā)明通過在傳統(tǒng)基于向量機(jī)的文本分類方法上增加了加權(quán)步驟,能夠有效改善目前多類中文文本分類中樣本不平衡的情況,將改進(jìn)后的加權(quán)支持向量機(jī)文本分類方法應(yīng)用于企事業(yè)單位的日常文件分類中,提高了分類精度,確保某些重要類別文件(如財(cái)務(wù)類別文件)不外泄,在一定程度上保障了數(shù)據(jù)安全。
附圖說明
圖1是本發(fā)明訓(xùn)練階段的流程圖;
圖2是本發(fā)明分類階段的流程圖。
具體實(shí)施方式
以下將結(jié)合附圖,對本發(fā)明的技術(shù)方案進(jìn)行詳細(xì)說明。
本發(fā)明提供一種基于改進(jìn)的SVM中文文本分類方法,文本分類是將文本文檔與規(guī)定好的類別進(jìn)行匹配的過程,包含有訓(xùn)練和分類兩個(gè)階段,其中,訓(xùn)練階段的流程圖如圖1所示,分類階段的流程圖如圖2所示,這兩個(gè)階段的處理除了最后一步不相同,其它的處理步驟完全相同,最后一個(gè)步驟,在訓(xùn)練階段是分類算法利用輸入的數(shù)據(jù)進(jìn)行分類器的構(gòu)建,在分類階段是利用訓(xùn)練好的分類器進(jìn)行分類處理;所述分類方法包括如下步驟:
(一)訓(xùn)練階段
步驟1,中文文本預(yù)處理,包括中文分詞和去停用詞兩個(gè)過程。
中文分詞,指的是對一個(gè)用漢語表達(dá)的語句,分析其包含的有意義的詞或詞組,最后把這些詞從中文語句中提取出來,這樣原來的中文語句變成一個(gè)個(gè)單獨(dú)的詞;
去停用詞,一般是指去除文本中出現(xiàn)頻率很高,但實(shí)際意義又不大的詞,如常見的“的”、“在”、“和”、“接著”之類,還有一些是使用過于頻繁的單詞,如“我”、“就”、“啊”和“吧”等等,以及各種的標(biāo)點(diǎn)符號,避免分詞后有過多的干擾。
該步驟可以使用中科院的ICTCLAS(Institute of Computing Technology,Chinese Lexical Analysis System)分詞系統(tǒng),ICTCLAS分詞系統(tǒng)充分利用了詞典匹配、統(tǒng)計(jì)分析這兩種分詞方法的優(yōu)點(diǎn),既能發(fā)揮詞典匹配法分詞速度快、效率高的特點(diǎn),又能利用統(tǒng)計(jì)分析法結(jié)合上下文識別新詞、消除歧義的優(yōu)點(diǎn)。
步驟2,特征選擇
文本預(yù)處理后以特征項(xiàng)集合的形式存在,此時(shí)特征項(xiàng)集合中的特征項(xiàng)數(shù)量非常的多,需要對特征項(xiàng)集合進(jìn)行降維處理,即特征選擇。通過構(gòu)造一個(gè)評估函數(shù)(本實(shí)施例采用開方檢驗(yàn)函數(shù))對特征項(xiàng)集合中的所有特征項(xiàng)進(jìn)行評估,然后按照評估值降序排序,根據(jù)設(shè)定的閾值或特征項(xiàng)數(shù)目的要求選擇前面的那些特征項(xiàng)。
開方檢驗(yàn):假設(shè)特征項(xiàng)t和類別Ci之間符合一階自由度的x2分布,特征項(xiàng)t對于類別Ci的x2統(tǒng)計(jì)值越高,特征項(xiàng)t和類別Ci的相關(guān)性越強(qiáng),類別區(qū)分度越大,反之的類別區(qū)分度越小,其計(jì)算公式如下:
其中,N為所有的文本數(shù),A為包含特征項(xiàng)t且屬于類別Ci的文本數(shù)目,B為包含特征項(xiàng)t且不屬于類別Ci的文本數(shù)目,C為不包含特征項(xiàng)t且屬于類別Ci的文本數(shù)目,D為不包含特征項(xiàng)t且不屬于類別Ci的文本數(shù)目。
然后,將每個(gè)特征項(xiàng)t的x2統(tǒng)計(jì)值從大到小排個(gè)序,選取前若干個(gè)作為精簡后的特征項(xiàng)集合。
步驟3,權(quán)重計(jì)算
本發(fā)明采用反比文檔頻率(inverse document frequency,IDF)來進(jìn)行權(quán)重計(jì)算,某一特定詞的IDF值,是一個(gè)詞普遍重要性的度量,用總文件數(shù)除以包含該詞的文章數(shù)量,再將得到的商取對數(shù)(log)。IDF值的計(jì)算公式是:
IDF=log(Dall/Dt)
其中,Dall為文章總數(shù),Dt為該詞出現(xiàn)的文章數(shù)量。
步驟4,文本表示
為了便于計(jì)算機(jī)處理文本,采用向量空間模型將文本表示成計(jì)算機(jī)方便處理的形式。在文本向量空間中,每個(gè)關(guān)鍵詞語即為向量空間中的一個(gè)維度,而維度上的值是該關(guān)鍵詞語的權(quán)重,權(quán)重代表了該關(guān)鍵詞語的重要程度。
步驟5,構(gòu)建分類器
本發(fā)明中采用改進(jìn)后的支持向量機(jī)方法——加權(quán)支持向量機(jī)作為構(gòu)建分類器的方法,用于解決樣本不平衡情形下的分類問題。除了各類別樣本數(shù)量的懸殊,類別的重要程度不同也會導(dǎo)致樣本的不平衡。例如:針對公司單位的文本的分類問題,“財(cái)務(wù)文件”的重要程度顯然比“運(yùn)動會文件”重要程度高。在保證分類精度的同時(shí),應(yīng)盡量避免對重要類別的誤判。
步驟如下:
①加權(quán)支持向量機(jī)給訓(xùn)練樣本加以類別權(quán)值,體現(xiàn)不同類別的重要性。通過增加重要文件類別權(quán)重,可以有效地減少該類別中被錯(cuò)分的樣本數(shù)。
②另外,考慮到每個(gè)文本的重要程度也不盡相同,即它們對分類的貢獻(xiàn)也不相同,通過給個(gè)文本加以樣本權(quán)重,提高了每個(gè)文本被正確分類可能性,減少了重要文本被誤分類的可能性,從而提高了分類精度。
具體算法及推導(dǎo)如下:
設(shè)有訓(xùn)練樣本集表示為其中,i=1,2,…,m,yi∈{0,1,2,3,4,5,6,7,8,9},表示第i個(gè)文本的向量,yi為分類標(biāo)記(本實(shí)施例中類別個(gè)數(shù)為10),例如yi=1表示第i個(gè)文本屬于第2個(gè)類別?;诩訖?quán)支持向量機(jī)的文本分類模型表示如下:
其中,ζi≥0,i=1,2,…,l,l表示樣本個(gè)數(shù),為核函數(shù)。Si>0表示樣本重要性權(quán)值,如果0<Si<1表示樣本不重要;Si=1表示一般重要;如果Si>1表示很重要。樣本類別權(quán)值為σ≥1,屬于相同類別的樣本具有相同的類別權(quán)值。加權(quán)支持向量機(jī)與標(biāo)準(zhǔn)支持向量機(jī)相比,最突出的優(yōu)點(diǎn)是它模糊化了對樣本錯(cuò)分的懲罰,即對每個(gè)樣本的松弛變量乘以樣本對應(yīng)的重要性權(quán)值和類別權(quán)值。
對IDF值的計(jì)算公式構(gòu)造拉格朗日函數(shù)如下:
其中,αi,βi為拉格朗日乘子,i=1,2,…,l。
最終得到最優(yōu)分類器:
其中,為徑向基核函數(shù)。
(二)分類階段
對一個(gè)待分類的文本,首先利用訓(xùn)練階段中的步驟1-4對文本進(jìn)行處理,得到一個(gè)相應(yīng)的文本向量X,然后將X輸入到步驟5所構(gòu)建的分類器f()中,就能得到X所對應(yīng)的分類結(jié)果f(X),從而得到文本的類別。
以上實(shí)施例僅為說明本發(fā)明的技術(shù)思想,不能以此限定本發(fā)明的保護(hù)范圍,凡是按照本發(fā)明提出的技術(shù)思想,在技術(shù)方案基礎(chǔ)上所做的任何改動,均落入本發(fā)明保護(hù)范圍之內(nèi)。