盧曼麗
[摘 要] 本文在分析文本分類算法的一般模型和現(xiàn)有技術(shù)后,針對(duì)傳統(tǒng)神經(jīng)網(wǎng)絡(luò)算法存在的問題,提出了一種引入K-means算法用于訓(xùn)練RBF神經(jīng)網(wǎng)絡(luò)的徑向基函數(shù)中心,改善誤差反向傳播(BP)神經(jīng)網(wǎng)絡(luò)分類算法收斂速度較慢的缺點(diǎn)。實(shí)驗(yàn)結(jié)果表明,改進(jìn)后的RBF網(wǎng)絡(luò)與BP網(wǎng)絡(luò)、RBF網(wǎng)絡(luò)相比,在取得較好分類精度和召回率情況下,具有較高的運(yùn)算速度和較強(qiáng)的非線性映射能力。
[關(guān)鍵詞] 文本分類;RBF神經(jīng)網(wǎng)絡(luò);K-means算法
doi : 10 . 3969 / j . issn . 1673 - 0194 . 2014 . 21. 059
[中圖分類號(hào)] TP31 [文獻(xiàn)標(biāo)識(shí)碼] A [文章編號(hào)] 1673 - 0194(2014)21- 0080- 03
1 引 言
現(xiàn)代社會(huì)信息量呈幾何級(jí)數(shù)增長,為了從海量的數(shù)據(jù)中找到自己需要的信息,提高檢索的效率,信息自動(dòng)分類成為一個(gè)重要的工具。文本分類是信息自動(dòng)分類的一個(gè)重要的研究領(lǐng)域。其目標(biāo)是在分析文本內(nèi)容的基礎(chǔ)上,將一個(gè)或多個(gè)適合的類別分配給文本,用以提高文本檢索、存儲(chǔ)等應(yīng)用的處理效率[1]。目前在文本自動(dòng)分類領(lǐng)域,已有大量傳統(tǒng)的分類方法應(yīng)用其中,但各有其不足之處。如,樸素的貝葉斯方法(Navie Bayers)在數(shù)據(jù)屬性個(gè)數(shù)較多或?qū)傩灾g關(guān)聯(lián)性較大時(shí),文本分類的效率低;決策樹方法對(duì)于處理缺失數(shù)據(jù)時(shí)較困難,會(huì)出現(xiàn)過度擬合問題,數(shù)據(jù)屬性間的相關(guān)性容易被忽略;傳統(tǒng)的支持向量機(jī)方法對(duì)于大規(guī)模訓(xùn)練樣本難以實(shí)施[2];傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)在文本特征維數(shù)過多時(shí)會(huì)導(dǎo)致神經(jīng)網(wǎng)絡(luò)收斂速度較慢[3]。因此,為找到一個(gè)執(zhí)行效率、精確程度和召回率都相對(duì)理想的算法,本文提出一個(gè)結(jié)合K-means算法的神經(jīng)網(wǎng)絡(luò)分類文本算法,改進(jìn)了傳統(tǒng)神經(jīng)網(wǎng)絡(luò)分類算法不易收斂的缺點(diǎn),有了更高的運(yùn)算速度和準(zhǔn)確度。
2 文本分類的流程
文本分類指的是在已有的文本分類類別中,根據(jù)文本的內(nèi)容將文本歸到相關(guān)分類。自動(dòng)文本分類即將大量自然語言的文本按照訓(xùn)練文本進(jìn)行自動(dòng)分門別類,有效地提高信息服務(wù)的質(zhì)量。
一個(gè)典型的文本分類系統(tǒng)的流程是:對(duì)輸入文本進(jìn)行預(yù)處理,然后抽取文本的特征詞條,利用分類中間結(jié)果訓(xùn)練分類器,最后訓(xùn)練分類器對(duì)新的未分類文本分門別類,達(dá)到自動(dòng)分類輸出結(jié)果的目標(biāo)。
訓(xùn)練樣本的處理包含分詞、去停用詞。分詞的目的是將文本分割成一個(gè)個(gè)的詞語,我們采用中國科學(xué)院的漢語詞法分詞系統(tǒng)“ICTCLAS”做分詞處理。分詞完成后要進(jìn)行去停用詞處理,即將對(duì)文本分類沒有貢獻(xiàn)的詞語剔除,如各種標(biāo)點(diǎn)符號(hào)、數(shù)字、字母、“今天,今年”等這樣的詞語,這步操作的目標(biāo)是減少文本特征向量的維數(shù),提高運(yùn)算的效率。實(shí)際操作時(shí)可以使用已有的成熟的幾個(gè)停用詞表進(jìn)行遍歷比對(duì),運(yùn)算的時(shí)間會(huì)有些長。為了提高效率,使用布隆過濾器對(duì)文本操作,結(jié)果表明運(yùn)算時(shí)間大大縮短。文本在經(jīng)過分詞和去停用詞處理后,用向量空間模型來表示,如兩個(gè)文本D1和D2之間的內(nèi)容式中,詞語W在文本di中出現(xiàn)的次數(shù)用N(W,di)來表示;|Dj|是所有的訓(xùn)練文本數(shù);|V|是所有訓(xùn)練文本的總詞數(shù);N(WS,di)是所有詞在所有訓(xùn)練文本中出現(xiàn)頻率之和?;バ畔⒓夹g(shù)的結(jié)果越大,說明詞語W在類別Cj中特征明顯,可以作為類別Cj的特征屬性留在特征集中。
3 改進(jìn)的神經(jīng)網(wǎng)絡(luò)文本分類方法
RBF神經(jīng)網(wǎng)絡(luò)又稱徑向基函數(shù)(Radical Basis Function)神經(jīng)網(wǎng)絡(luò)。徑向基函數(shù)神經(jīng)網(wǎng)絡(luò)是一種高效的前饋式神經(jīng)網(wǎng)絡(luò),由J.Moody和C.Darken在20世紀(jì)80年代末提出。它具有其他前向網(wǎng)絡(luò)所不具有的最佳逼近性能和全局最優(yōu)特性,并且結(jié)構(gòu)簡(jiǎn)單,訓(xùn)練速度快。同時(shí),它也是一種可以廣泛應(yīng)用于模式識(shí)別、自動(dòng)控制、信號(hào)處理等領(lǐng)域的神經(jīng)網(wǎng)絡(luò)模型。
RBF 神經(jīng)網(wǎng)絡(luò)是典型前饋神經(jīng)網(wǎng)絡(luò),由輸入層、隱含層和輸出層三層神經(jīng)元構(gòu)成,如圖1。
第一層為輸入層節(jié)點(diǎn),將輸入信號(hào)傳遞到隱含層;第二層為隱含層節(jié)點(diǎn),激活函數(shù)由徑向基函數(shù)構(gòu)成,如Gauss函數(shù)、反演S型函數(shù)等;第三層為輸出層節(jié)點(diǎn),對(duì)隱含層輸出的單元應(yīng)用線性函數(shù)。其中,第二層隱含層節(jié)點(diǎn)采用了徑向基函數(shù)模擬人類腦皮層中局部調(diào)節(jié)和交疊的感覺域的生物特性[4]。在相同逼近精度指標(biāo)下, RBF 神經(jīng)網(wǎng)絡(luò)具有唯一最佳逼近的特性,無局部最小問題存在,且可以根據(jù)輸入問題決定網(wǎng)絡(luò)結(jié)構(gòu),運(yùn)算速度快。RBF神經(jīng)網(wǎng)絡(luò)算法的基本思想是用徑向基函數(shù)作為隱含層的“基”,構(gòu)成隱含層空間,并通過非線性函數(shù)將輸入節(jié)點(diǎn)的低維空間模型映射為高維空間模型,在高維空間模型中擬合曲線,找到最佳訓(xùn)練數(shù)據(jù)。也就是說,對(duì)于隱含層的輸出加權(quán)求和,使得數(shù)據(jù)在高維空間內(nèi)線性可分,從而極大地提高學(xué)習(xí)速度并避免局部最小問題。當(dāng)訓(xùn)練樣本的輸入數(shù)據(jù)是Xi時(shí),實(shí)際產(chǎn)生的輸出是:Y(Xi)=wjφ(Xi,tj)。其中,假設(shè)輸出層只有一個(gè)隱含單元,訓(xùn)練文本為{Xi,Zi}(i=1,2,…,I),Xi=[Xi1,xi2,…,xij]T為訓(xùn)練樣本的輸入數(shù)據(jù),Zi(i=1,2,…,I)為期望的輸出數(shù)據(jù),實(shí)際輸出是Yi(i=1,2,…,I),第i個(gè)隱含層單元的輸出為徑向基函數(shù)φ(X,tj),徑向基函數(shù)的中心為tj=[tj1,tj2,…,tjm]T(j=1,2,…,J),第i個(gè)隱含層單元與輸出層單元的權(quán)值是wj(j=1,2,…,J)。
隱含層的徑向基函數(shù)采用非線性Gauss函數(shù),如下:
φ(r)=exp
采用Gauss函數(shù)作為“基函數(shù)”任意階導(dǎo)數(shù)均存在,光滑性好,訓(xùn)練樣本輸入的數(shù)據(jù)過多也不會(huì)增加復(fù)雜性。優(yōu)點(diǎn)是表示形式簡(jiǎn)單,解析性好,便于對(duì)結(jié)果進(jìn)行分析。
輸出層對(duì)隱含層輸出的單元應(yīng)用線性函數(shù),增加一個(gè)偏移量wij,可表示為:
fj(x)=wijφi(x)
式中,j=1,2,…,J,表示輸出層神經(jīng)元個(gè)數(shù);H表示隱含層的神經(jīng)元個(gè)數(shù);x表示輸入層數(shù)據(jù);wij表示隱含層第i個(gè)神經(jīng)元和輸出層第j個(gè)神經(jīng)元之間的權(quán)值。
徑向基函數(shù)中心的確定采用K-means算法。K-means算法也稱為K-均值或K-平均算法,是基于劃分的聚類算法中應(yīng)用最廣泛的一種。算法的主要思想是給定要構(gòu)建劃分的數(shù)目k,首先創(chuàng)建一個(gè)初始劃分,然后采用一種迭代的重定位技術(shù),嘗試通過對(duì)象在劃分間移動(dòng)來改進(jìn)劃分。劃分的結(jié)果要讓每個(gè)聚類子集中的記錄最大程度的相似,不同聚類子集的記錄差異度盡可能大。K-means算法的基本思想是假設(shè)對(duì)n個(gè)記錄進(jìn)行聚類,其結(jié)果要求產(chǎn)生k個(gè)聚類子集,算法的基本過程描述如下[5]:
(1)首先隨機(jī)地選擇k個(gè)記錄,每個(gè)記錄作為一個(gè)聚類的質(zhì)心,分別代表將分成的k個(gè)聚類;
(2)將每個(gè)記錄分配到最近的質(zhì)心,形成k個(gè)聚類;
(3)k個(gè)聚類分別重新計(jì)算質(zhì)心;
(4)重復(fù)步驟2、3,直到聚類不再變化為止。
假設(shè)給定Ki={ti1,ti2,…,til},質(zhì)心計(jì)算定義為:
mi=tij (m≤l)
個(gè)體間差異大小選擇歐氏距離(Euclidean距離)作為衡量的依據(jù),它的定義如下:
d(i,j)=i,j∈{1,2,…,n}
這里(Xi1,Xi2,…,Xim)和(Xj1,Xj2,…,Xjm)是兩個(gè)m維的數(shù)據(jù)對(duì)象。
4 3種算法的效率比較
本文采用的語料庫為國家語委提供的現(xiàn)代漢語語料庫。文本分類器對(duì)其中3大類包含3 410 個(gè)文本樣本進(jìn)行分類測(cè)試。首先對(duì)3 410個(gè)文本進(jìn)行信息編碼,得到10 維的文本向量3 410 個(gè),其中訓(xùn)練樣本1 128 個(gè),測(cè)試樣本為其余的2 282個(gè)。實(shí)驗(yàn)環(huán)境為MATLAB 7.0,分別做BP 神經(jīng)網(wǎng)絡(luò)算法實(shí)現(xiàn)、RBF 神經(jīng)網(wǎng)絡(luò)算法實(shí)現(xiàn)和分類算法的核心采用K-means 算法的RBF神經(jīng)網(wǎng)絡(luò)算法實(shí)現(xiàn)。文本分類效率的指標(biāo)有精度、召回率與響應(yīng)時(shí)間,本文將根據(jù)3個(gè)實(shí)驗(yàn)的結(jié)果進(jìn)行上述3個(gè)指標(biāo)的比較。
精度為ri=li/ni,其中所有測(cè)試文本中,屬于第i類的文本個(gè)數(shù)為ni;li是實(shí)驗(yàn)輸出的分類結(jié)果中為第i類且結(jié)果正確的文本個(gè)數(shù)。精度又稱為查準(zhǔn)率。召回率pi=li /mi,其中mi是實(shí)驗(yàn)輸出的分類結(jié)果中為第i類的文檔個(gè)數(shù),li是經(jīng)分類系統(tǒng)輸出分類結(jié)果為第i類且結(jié)果正確的文本個(gè)數(shù)。召回率又稱為查全率??梢钥闯?,查準(zhǔn)率和查全率存在相互制約的情況。使用泛指性較強(qiáng)的查詢語言可以提高查全率,但相應(yīng)的,查準(zhǔn)率下降;使用專業(yè)性較強(qiáng)的查詢語言可以提高查準(zhǔn)率,但同時(shí)查全率下降。
3 410個(gè)10維的特征向量分別應(yīng)用3個(gè)算法做了3個(gè)實(shí)驗(yàn),分類結(jié)果統(tǒng)計(jì)如表1所示。