火善棟
摘 要: 文本分類是文本挖掘的一個(gè)重要內(nèi)容,在很多領(lǐng)域都有廣泛的應(yīng)用。為了實(shí)現(xiàn)中文文本分類問題,先采用分詞技術(shù)和TF-IDF算法得到每一篇中文文檔的特征向量,然后采用PB神經(jīng)網(wǎng)絡(luò)構(gòu)造一個(gè)中文文本分類器。實(shí)驗(yàn)證明,采用BP神經(jīng)網(wǎng)絡(luò)進(jìn)行中文文本分類時(shí),雖然存在學(xué)習(xí)周期長,收斂速度慢等問題,但其分類速度和分類的正確率還是很高的。因此,采用BP神經(jīng)網(wǎng)絡(luò)進(jìn)行中文分類是一個(gè)比較好的方法。
關(guān)鍵詞: 中文文本分類; BP神經(jīng)網(wǎng)絡(luò); 中文分詞; 文檔特征向量
中圖分類號:TP391 文獻(xiàn)標(biāo)志碼:A 文章編號:1006-8228(2015)11-58-04
Abstract: Text classification is an important part of text mining, and it has been widely used in many fields. In order to realize the Chinese text classification, the feature vector of each document is obtained by using the word segmentation technique and TF-IDF algorithm, and then a Chinese text classifier is constructed by BP neural network. Experiment results show that using BP neural network to Chinese text categorization, although there are problems such as a long learning period, slow convergence and so on, the classification speed and classification accuracy rate is quite high. Therefore, using BP neural network to classify Chinese is a good way.
Key words: Chinese text classification; BP neural network; Chinese word segmentation; document feature vector
0 引言
文本分類是指按照預(yù)先定義的主題類別,為文檔集合中的每個(gè)文檔確定一個(gè)類別,文本分類是文本挖掘的一個(gè)重要內(nèi)容。目前,在國內(nèi)已經(jīng)對中文文本分類進(jìn)行了廣泛研究,并在信息檢索、Web文檔自動分類、數(shù)字圖書館、自動文摘、分類新聞組、文本過濾、單詞語義辨析以及文檔的組織和管理等多個(gè)領(lǐng)域得到了初步應(yīng)用。
BP(Back Propagation)神經(jīng)網(wǎng)絡(luò)是1986年由Rumelhart和McCelland為首的科學(xué)家小組提出,是一種按誤差逆?zhèn)鞑ニ惴ㄓ?xùn)練的多層前饋網(wǎng)絡(luò),BP神經(jīng)網(wǎng)絡(luò)在分類問題上有著非常廣泛的應(yīng)用,是目前應(yīng)用最廣泛的神經(jīng)網(wǎng)絡(luò)模型之一。BP神經(jīng)網(wǎng)絡(luò)能學(xué)習(xí)和存貯大量的輸入-輸出模式映射關(guān)系,而無需事前揭示描述這種映射關(guān)系的數(shù)學(xué)方程。其學(xué)習(xí)規(guī)則是使用最速下降法,通過反向傳播來不斷調(diào)整網(wǎng)絡(luò)的權(quán)值和閾值,使網(wǎng)絡(luò)的誤差平方和最小。BP神經(jīng)網(wǎng)絡(luò)模型拓?fù)浣Y(jié)構(gòu)包括輸入層(input)、隱層(hide layer)和輸出層(output layer)。
研究文本自動分類的核心問題是如何構(gòu)造分類函數(shù)(分類器),分類函數(shù)需要通過某種算法進(jìn)行學(xué)習(xí)獲得?,F(xiàn)在比較流行的分類算法有Rocchio算法、樸素貝葉斯分類算法、K-近鄰算法、決策樹算法、神經(jīng)網(wǎng)絡(luò)算法和支持向量機(jī)算法等,這些算法各有千秋。當(dāng)然,這些分類算法同樣適用于中文文本分類算法。出于對中文文本分類算法的興趣,本文采用PB神經(jīng)網(wǎng)絡(luò)算法完整地實(shí)現(xiàn)了中文文本的分類。實(shí)驗(yàn)證明,采用該算法進(jìn)行中文文本分類時(shí),雖然存在學(xué)習(xí)周期長,收斂速度慢等問題,但其分類結(jié)果具有分類速度快、分類正確率高等特點(diǎn)。
用BP神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)中文文本分類,其過程如圖1所示。該方法主要包括學(xué)習(xí)和分類兩大部分,所涉及到的主要技術(shù)包括中文詞典構(gòu)建和查找算法、中文文檔分詞算法、TFIDF特征向量權(quán)值計(jì)算算法和BP神經(jīng)網(wǎng)絡(luò)算法。
1 采用BP神經(jīng)網(wǎng)絡(luò)構(gòu)建中文文本分類器
1.1 分詞和去掉停用詞
采用最大逆向分詞算法對訓(xùn)練文檔集中的每一個(gè)文檔進(jìn)行分詞,并根據(jù)停用詞表去掉一些常用的停用詞,通過分詞得到所有訓(xùn)練文檔集的特征詞表Dt(每個(gè)特征詞條都不相同)和每個(gè)文檔的特征詞空間Dk(每個(gè)特征詞可以有多個(gè),k為文檔編號);
1.2 得到BP神經(jīng)網(wǎng)絡(luò)的訓(xùn)練集(神經(jīng)元網(wǎng)絡(luò)的輸入向量和對應(yīng)的輸出向量)
根據(jù)1.1中的特征詞表Dt和每篇文檔的特征詞空間Dk得到每一篇文檔的文檔特征向量Vk(vk1,vk2,vk3,…,vkn)。該特征向量是一個(gè)二維空間向量,k為文檔編號,n為所有訓(xùn)練文檔特征詞的個(gè)數(shù)。特征向量中的每一個(gè)分量vki的值用其所對應(yīng)的特征詞在該文檔中出現(xiàn)的次數(shù)(詞項(xiàng)頻率tf[3])和所有訓(xùn)練集文檔中包含該特征詞的文檔數(shù)(文檔頻率df[3])來得到,其計(jì)算公式為tf*itf,其中itf為逆文檔頻率,由公式itf=log(N/df)計(jì)算得出,公式中N為訓(xùn)練文檔的總篇數(shù);tf采用公式⑴計(jì)算得到:
其中的log都是以10為底的對數(shù)。
當(dāng)?shù)玫矫恳粋€(gè)中文文檔的特征詞向量時(shí),再根據(jù)該文檔的類型得到其相應(yīng)的輸出向量Ok(ok1,ok2,ok3……okn)該輸出向量也是一個(gè)二維空間向量,k為訓(xùn)練文檔編號、n為訓(xùn)練文檔的類別數(shù),該二維向量將對應(yīng)類別的輸出分量設(shè)置為1,其余的分量設(shè)置為0。
1.3 訓(xùn)練BP神經(jīng)網(wǎng)絡(luò)
采用BP神經(jīng)網(wǎng)絡(luò)[1]構(gòu)建文本分類的神經(jīng)網(wǎng)絡(luò)模型如圖2所示。該神經(jīng)網(wǎng)絡(luò)模型包括三層:一個(gè)輸入層,其神經(jīng)元的個(gè)數(shù)和訓(xùn)練文檔特征向量分量的個(gè)數(shù)相同;一個(gè)輸出層,其神經(jīng)元的個(gè)數(shù)與訓(xùn)練文檔的類別數(shù)相同;一個(gè)隱藏層,其神經(jīng)元的個(gè)數(shù)根據(jù)經(jīng)驗(yàn)和實(shí)驗(yàn)進(jìn)行選定。
2 BP神經(jīng)網(wǎng)絡(luò)中文文本分類測試
BP神經(jīng)網(wǎng)絡(luò)技術(shù)參數(shù):隱藏層神經(jīng)單元的個(gè)數(shù)為10個(gè)(經(jīng)驗(yàn)值),輸出層神經(jīng)單元的個(gè)數(shù)為訓(xùn)練文本的種類個(gè)數(shù)9,輸入層神經(jīng)單元的個(gè)數(shù)為訓(xùn)練文檔向量的長度59898,學(xué)習(xí)率為0.3(經(jīng)驗(yàn)值),神經(jīng)網(wǎng)絡(luò)神經(jīng)單元之間的權(quán)值為小于0.00001的正的隨機(jī)數(shù)(本實(shí)驗(yàn)發(fā)現(xiàn),當(dāng)權(quán)值比較大時(shí),其學(xué)習(xí)的效率非常低,收斂速度非常慢)。
本文選用1744篇共9類(如表2)已分類中文文檔對已經(jīng)構(gòu)建好的BP神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練學(xué)習(xí)。
測試采用了JAVA。實(shí)驗(yàn)電腦的基本配置為AMD 4核,內(nèi)存大小為4G;JAVA虛擬機(jī)內(nèi)存大小為1G。在實(shí)驗(yàn)過程中發(fā)現(xiàn),采用BP神經(jīng)網(wǎng)絡(luò)構(gòu)建中文文本分類器,訓(xùn)練周期比較漫長,而且占用內(nèi)存比較大,所以很難對神經(jīng)網(wǎng)絡(luò)的各個(gè)參數(shù)進(jìn)行適當(dāng)?shù)恼{(diào)整。另外,隨著迭代次數(shù)的增加,其收斂性速度變得非常緩慢,有時(shí)還會出現(xiàn)一些小小的波動。所以本實(shí)驗(yàn)只是將輸出誤差作為結(jié)束訓(xùn)練的一個(gè)參考,而是將迭代次數(shù)作為最后的訓(xùn)練結(jié)果。圖4是累計(jì)迭代次數(shù)為5000次,迭代時(shí)間為22小時(shí)32分,輸出誤差為11.143444的輸出結(jié)果示意圖。
采用上述訓(xùn)練所得的數(shù)據(jù),對166個(gè)中文文檔(不同于訓(xùn)練文檔)進(jìn)行了分類測試,其總的分類時(shí)間為45秒,平均正確率為95.5%,分類結(jié)果如表3。
3 結(jié)束語
從本文給出的實(shí)驗(yàn)數(shù)據(jù)可以看出,由于沒有采用相關(guān)的降維技術(shù)對文檔的特征詞進(jìn)行進(jìn)一步的篩選,所以訓(xùn)練文檔向量的長度比較大(59898),這也導(dǎo)致在BP神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)階段,訓(xùn)練周期比較長,占用內(nèi)存比較大,從而很難采用適當(dāng)?shù)妮敵稣`差來結(jié)束訓(xùn)練過程,但是,可以采用迭代次數(shù)來結(jié)束訓(xùn)練過程。當(dāng)選用適當(dāng)?shù)牡螖?shù)時(shí),采用該分類器進(jìn)行中文文本分類時(shí),該分類器具有分類速度快,分類正確率高的特點(diǎn),因此,采用BP神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)中文文本分類是一個(gè)比較好的方法。為了進(jìn)一步提高BP神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)效率和分類結(jié)果的正確率,下一步的主要工作是:①優(yōu)化分詞算法;②優(yōu)化特征向量的提取和降低特征向量的長度;③對BP神經(jīng)網(wǎng)絡(luò)進(jìn)行改善和優(yōu)化。
參考文獻(xiàn)(References):
[1] [美]Mat Buckland著,吳祖增,沙鷹翻譯.游戲編程中的人工智
能技術(shù)[M].清華大學(xué)出版社,2006.
[2] [美]George E Luger著,郭茂祖等翻譯.人工智能復(fù)雜問題求
解的結(jié)果和策略(第一版)[J].機(jī)械工業(yè)出版社,2010.
[3] [美]Christopher D. Manning Prabhakar Raghavan,[德]Hinrich
Schütze著,王斌譯.信息檢索導(dǎo)論(第一版)[M].人民郵電出版社,2010.
[4] 高一凡著.《數(shù)據(jù)結(jié)構(gòu)》算法實(shí)現(xiàn)及其解析[M].西安電子科技
大學(xué)出版社,2002.
[5] 程杰著.大話數(shù)據(jù)結(jié)構(gòu)[M].清華大學(xué)出版社,2011.
[6] 葉核亞著.Java程序設(shè)計(jì)實(shí)用教程(第二版)[M].電子工業(yè)出版
社,2014.