火善棟
摘 要: 文本分類是文本挖掘的一個重要內容,在很多領域都有廣泛的應用。為了實現中文文本分類問題,先采用分詞技術和TF-IDF算法得到每一篇中文文檔的特征向量,然后采用PB神經網絡構造一個中文文本分類器。實驗證明,采用BP神經網絡進行中文文本分類時,雖然存在學習周期長,收斂速度慢等問題,但其分類速度和分類的正確率還是很高的。因此,采用BP神經網絡進行中文分類是一個比較好的方法。
關鍵詞: 中文文本分類; BP神經網絡; 中文分詞; 文檔特征向量
中圖分類號:TP391 文獻標志碼: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 引言
文本分類是指按照預先定義的主題類別,為文檔集合中的每個文檔確定一個類別,文本分類是文本挖掘的一個重要內容。目前,在國內已經對中文文本分類進行了廣泛研究,并在信息檢索、Web文檔自動分類、數字圖書館、自動文摘、分類新聞組、文本過濾、單詞語義辨析以及文檔的組織和管理等多個領域得到了初步應用。
BP(Back Propagation)神經網絡是1986年由Rumelhart和McCelland為首的科學家小組提出,是一種按誤差逆傳播算法訓練的多層前饋網絡,BP神經網絡在分類問題上有著非常廣泛的應用,是目前應用最廣泛的神經網絡模型之一。BP神經網絡能學習和存貯大量的輸入-輸出模式映射關系,而無需事前揭示描述這種映射關系的數學方程。其學習規則是使用最速下降法,通過反向傳播來不斷調整網絡的權值和閾值,使網絡的誤差平方和最小。BP神經網絡模型拓撲結構包括輸入層(input)、隱層(hide layer)和輸出層(output layer)。
研究文本自動分類的核心問題是如何構造分類函數(分類器),分類函數需要通過某種算法進行學習獲得?,F在比較流行的分類算法有Rocchio算法、樸素貝葉斯分類算法、K-近鄰算法、決策樹算法、神經網絡算法和支持向量機算法等,這些算法各有千秋。當然,這些分類算法同樣適用于中文文本分類算法。出于對中文文本分類算法的興趣,本文采用PB神經網絡算法完整地實現了中文文本的分類。實驗證明,采用該算法進行中文文本分類時,雖然存在學習周期長,收斂速度慢等問題,但其分類結果具有分類速度快、分類正確率高等特點。
用BP神經網絡實現中文文本分類,其過程如圖1所示。該方法主要包括學習和分類兩大部分,所涉及到的主要技術包括中文詞典構建和查找算法、中文文檔分詞算法、TFIDF特征向量權值計算算法和BP神經網絡算法。
1 采用BP神經網絡構建中文文本分類器
1.1 分詞和去掉停用詞
采用最大逆向分詞算法對訓練文檔集中的每一個文檔進行分詞,并根據停用詞表去掉一些常用的停用詞,通過分詞得到所有訓練文檔集的特征詞表Dt(每個特征詞條都不相同)和每個文檔的特征詞空間Dk(每個特征詞可以有多個,k為文檔編號);
1.2 得到BP神經網絡的訓練集(神經元網絡的輸入向量和對應的輸出向量)
根據1.1中的特征詞表Dt和每篇文檔的特征詞空間Dk得到每一篇文檔的文檔特征向量Vk(vk1,vk2,vk3,…,vkn)。該特征向量是一個二維空間向量,k為文檔編號,n為所有訓練文檔特征詞的個數。特征向量中的每一個分量vki的值用其所對應的特征詞在該文檔中出現的次數(詞項頻率tf[3])和所有訓練集文檔中包含該特征詞的文檔數(文檔頻率df[3])來得到,其計算公式為tf*itf,其中itf為逆文檔頻率,由公式itf=log(N/df)計算得出,公式中N為訓練文檔的總篇數;tf采用公式⑴計算得到:
其中的log都是以10為底的對數。
當得到每一個中文文檔的特征詞向量時,再根據該文檔的類型得到其相應的輸出向量Ok(ok1,ok2,ok3……okn)該輸出向量也是一個二維空間向量,k為訓練文檔編號、n為訓練文檔的類別數,該二維向量將對應類別的輸出分量設置為1,其余的分量設置為0。
1.3 訓練BP神經網絡
采用BP神經網絡[1]構建文本分類的神經網絡模型如圖2所示。該神經網絡模型包括三層:一個輸入層,其神經元的個數和訓練文檔特征向量分量的個數相同;一個輸出層,其神經元的個數與訓練文檔的類別數相同;一個隱藏層,其神經元的個數根據經驗和實驗進行選定。
2 BP神經網絡中文文本分類測試
BP神經網絡技術參數:隱藏層神經單元的個數為10個(經驗值),輸出層神經單元的個數為訓練文本的種類個數9,輸入層神經單元的個數為訓練文檔向量的長度59898,學習率為0.3(經驗值),神經網絡神經單元之間的權值為小于0.00001的正的隨機數(本實驗發現,當權值比較大時,其學習的效率非常低,收斂速度非常慢)。
本文選用1744篇共9類(如表2)已分類中文文檔對已經構建好的BP神經網絡進行訓練學習。
測試采用了JAVA。實驗電腦的基本配置為AMD 4核,內存大小為4G;JAVA虛擬機內存大小為1G。在實驗過程中發現,采用BP神經網絡構建中文文本分類器,訓練周期比較漫長,而且占用內存比較大,所以很難對神經網絡的各個參數進行適當的調整。另外,隨著迭代次數的增加,其收斂性速度變得非常緩慢,有時還會出現一些小小的波動。所以本實驗只是將輸出誤差作為結束訓練的一個參考,而是將迭代次數作為最后的訓練結果。圖4是累計迭代次數為5000次,迭代時間為22小時32分,輸出誤差為11.143444的輸出結果示意圖。
采用上述訓練所得的數據,對166個中文文檔(不同于訓練文檔)進行了分類測試,其總的分類時間為45秒,平均正確率為95.5%,分類結果如表3。
3 結束語
從本文給出的實驗數據可以看出,由于沒有采用相關的降維技術對文檔的特征詞進行進一步的篩選,所以訓練文檔向量的長度比較大(59898),這也導致在BP神經網絡的學習階段,訓練周期比較長,占用內存比較大,從而很難采用適當的輸出誤差來結束訓練過程,但是,可以采用迭代次數來結束訓練過程。當選用適當的迭代次數時,采用該分類器進行中文文本分類時,該分類器具有分類速度快,分類正確率高的特點,因此,采用BP神經網絡實現中文文本分類是一個比較好的方法。為了進一步提高BP神經網絡的學習效率和分類結果的正確率,下一步的主要工作是:①優化分詞算法;②優化特征向量的提取和降低特征向量的長度;③對BP神經網絡進行改善和優化。
參考文獻(References):
[1] [美]Mat Buckland著,吳祖增,沙鷹翻譯.游戲編程中的人工智
能技術[M].清華大學出版社,2006.
[2] [美]George E Luger著,郭茂祖等翻譯.人工智能復雜問題求
解的結果和策略(第一版)[J].機械工業出版社,2010.
[3] [美]Christopher D. Manning Prabhakar Raghavan,[德]Hinrich
Schütze著,王斌譯.信息檢索導論(第一版)[M].人民郵電出版社,2010.
[4] 高一凡著.《數據結構》算法實現及其解析[M].西安電子科技
大學出版社,2002.
[5] 程杰著.大話數據結構[M].清華大學出版社,2011.
[6] 葉核亞著.Java程序設計實用教程(第二版)[M].電子工業出版
社,2014.