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