摘要:信息過濾是海量信息檢索的重要手段之一,中文網絡文本過濾系統在我國更具有明顯的應用價值。該文介紹實現的一個中文網絡文本過濾系統;該系統包括中文預處理、特征項選擇、權重計算和分類等功能模塊,可以方便地實現對中文網絡文本的過濾功能。同時對系統采用的文本過濾算法的性能進行了測試。該系統具有一定的可擴充性和通用性。
關鍵詞:文本過濾;中文;向量空間模型;分類
中圖分類號:TP391文獻標識碼:A文章編號:1009-3044(2008)26-1704-03
A Chinese Network Text Filtering System
GE Liang1, ZHAO Jian-guo2
(1.Anhui Grain Wholesale and Trade Market, Hefei 230001, China;2.Infomation Technology Dept,Huishang Bank,Hefei 230001,China)
Abstract: Information filtering is one of the most important methods in large scale information searching. A Chinese text filtering system has a high application value especially in Chinese Environment. This paper proposed an actual Chinese text filtering system. It had functions including Chinese text pre-procession, Feature selection, Weights calculation and Classification; at the same time, the text filtering algorithms used in this paper was tested. The proposed system has some good features such as expansion and universal.
Key words: text filtering; chinese; vector space Model; classification
1 引言
隨著互聯網的快速發展,網絡上的信息量以極高的速度在不斷增長。為了能夠方便地找到所需要的信息,信息過濾已成為網上信息檢索領域重要的研究課題之一。由于網絡上的信息主要是文本形式,因此文本過濾是信息過濾研究目前的主要方向;進一步,在我國,中文是主要的信息載體,因此,中文文本過濾系統的設計更具有明顯的現實意義。
信息過濾就是根據用戶的信息需求,在大量動態產生的信息流中選擇信息并呈現給用戶。目前,文本過濾主要面向英文載體,已有許多面向英文的文本過濾技術與系統被提出[1-2]。從采用的過濾技術來看,早期的文本過濾技術主要是單純的關鍵字匹配以及基于詞頻的統計方法。這種過濾方法具有簡單適用、不受文本所屬領域限制、文本過濾的質量比較穩定等優點;但由于沒有理解文本的內容而無法判斷文本含義,因此過濾的準確率比較低。后來,研究者將注意力集中在理解式自動過濾系統的研究上,同時,語料庫、語言學的發展也為理解式過濾系統的研究提供了新的機會。但是,由于自然語言理解技術是理解式信息處理的關鍵,而采用何種手段進行語法、語義分析,用怎樣的模型表示篇幅內容等一系列問題還沒有徹底解決,這些有待解決的難題還制約著理解式信息過濾方法的發展。
中文不同于英文,中文在形式、結構等方面都具有完全不同的特性。因此,英文文本的過濾技術不能直接應用到中文文本上。隨著Internet的迅速發展及需求的不斷增加,網上中文信息以前所未有的速度遞增,中國上網人數也在急劇增加;所有這些都為中文文本過濾提出了更高更新的要求。就面向中文的文本過濾系統而已,我國的研究還在初級階段[3-5]。研究人員提出了一些如中文文本過濾的信息分流機制、基于范例的中文文本過濾模型等重要的方法和思想,也開發了一些實驗系統原型并在不同領域達到了不同的過濾精度。但是,面向英文的種種過濾算法是否適合中文文本過濾,還有待于實驗的檢驗,有的需要改進,有的可能還要另辟蹊徑。因此,中文網絡文本過濾系統的設計與實現是必要的。
本文設計并實現了一個中文網絡短文本過濾系統,并測試了各種算法的效率。系統可以很方便地實現擴展。
本文下面的內容安排如下:第2節介紹系統框架,包括各個組件的組合、接口和實現;第3節介紹系統中采用的具體算法以及測試結果;最后,在第4節給出總結與后續工作。
2 中文網絡文本過濾系統框架
本系統在Windows下的Microsoft Visual C++ 6.0上使用C++語言開發完成。系統首先接受訓練集并進行訓練,然后對流入的大規模網絡文本進行分類,同時進行反饋處理,最后評測過濾效率。為了方便擴展性,各個組件之間采取了松耦合的方式進行連接,每個組件的接口也都盡量設計成與其它類無關。當然,文本過濾系統是一個緊密聯系的系統,比如權重計算就需要用到特征項選擇器得到的統計知識。
2.1 系統框架結構
中文文本過濾系統在文本表示模型基礎上,對文本進行預處理和分詞、選擇特征項、計算權值,應用分類算法進行匹配,最后進行用戶反饋。從技術角度,文本過濾的設計流程分為三段:訓練文本集的訓練、測試文本的過濾和用戶的反饋。如圖1所示。
設計的中文文本過濾系統大致工作流程可描述如下:
首先,用戶提交需求(訓練文本集),經過預處理后再形成文本表示;在用戶模板庫中進行訓練,然后將模板傳輸給過濾引擎。
然后,過濾引擎從測試文本庫中提取文本,也經過相關處理后形成文本表示,使用匹配模塊匹配測試文本和模板,將過濾結果顯示給用戶并存儲過濾后的文本。
最后,用戶接收到過濾引擎輸出的結果,將反饋結果輸入引擎;引擎根據反饋結果修改需求,提升過濾性能。
系統主要包括以下幾個模塊:
1)文本表示模塊。負責用戶模板和文本的表示和預處理。
2)訓練庫模塊。負責將訓練集中所有文本訓練,得到用戶模板。主要工作包括:對文本進行分詞處理,處理未登錄詞,去停用詞,降維。選擇特征項,計算特征項權值,將文本表示成向量。得到詞頻等統計信息。
3)過濾引擎模塊。負責根據用戶模板過濾測試文本。主要工作包括:調用前兩個模塊將測試文本表示成向量。匹配用戶模板和測試文本向量,輸出匹配結果,進行反饋并輸出評測結果。
2.2 系統采用的主要方法
1)文本表示模型:六十年代中期以來,人們提出了大量文本表示模型。當前應用的最主要的四個模型是:布爾模型、概率模型、向量空間模型和潛在語義索引模型。不同的模型有不同的理論基礎和性能特性,在效率和計算復雜性上也有所區別。
本文在文本表示時采用了向量空間模型(VSM: Vector Space Model)。VSM的優點在于它把文檔內容簡化為特征項及其權重的向量表示,這樣就可以把對文檔內容的處理簡化為向量空間中向量的運算,從而使問題的繁雜性大為降低。
2)中文分詞:要將中文文本表示成特征向量形式,就必須對文本進行分詞處理。分詞的功能即將連續的文字切分成符合語義的詞的序列。
分詞操作在英文文本處理中比較簡單,因為英文中詞與詞之間都有空格隔開,計算機只需讀取空格符就可實現分詞。而在中文中,字是最小的語言單位,字組成詞,詞才是中文里面的最小語義單位,一般來說只有詞才傳達一定的意義。在中文文本中,字與字、詞與詞之間是連續的,它們之間沒有自然的分隔符;這就導致不能像處理英文文本那樣很容易地獲得詞的序列。讓計算機能夠像人一樣對中文進行斷句、斷詞,就成了中文文本處理里面一個重要的問題。
現有的分詞算法可分為三大類:基于字符串匹配的分詞方法、基于理解的分詞方法和基于統計的分詞方法。由于中文分詞系統是中文信息處理的基礎性工程,在信息處理應用領域里沒有必要也不可能為每個系統都重新建立一個分詞系統;那樣,不僅要重復耗費大量的人工和精力,而且建立的分詞系統性能并不一定比現有的強。
在本文研究的中文網絡文本過濾系統中,直接采用了中科院計算所開發的漢語詞法分析系統ICTCLAS(Institute of Computing Technology ,Chinese Lexical Analysis System) 。
3)特征項選擇與權重計算:特征抽取是文本信息過濾中最關鍵的問題之一,因為文本表示、匹配等后續過程都是基于從文本信息提取出來的特征信息集合。
特征項抽取方法很多。例如,基于Zipf規則的特征項抽取方法(TF: Term Frequency)、基于文檔頻率的特征項抽取方法(DF: Document Frequency)、信息增益方法(IG: Information Gain)、互信息量方法(MI: Mutual Information)、交叉熵方法(CE: Cross Entropy)等等。
文本經過特征項的抽取后,需要計算特征項的權重。特征項權重的高低,反映了其在文本中的重要程度以及對區分文本內容上的貢獻能力。所以,不同的加權策略能夠使特征項在不同程度上表現文本內容。對特征項權重計算,常用的有TF*IDF特征項權重計算方法、熵概念的權重(Entropy weighting)等?;赥F*IDF思想的權重計算方法有:
① TFIDF加權
② FC加權
其中s為特征向量維數。
③ LTC加權
在本文的系統中,我們實現了這些典型的方法以供選擇。
4)文本分類算法:文本過濾本質上是一個分類過程。和在其它研究領域所使用的分類器相同,用于文本過濾的分類器的目的也是實現從特征空間到類別空間的映射。在文本過濾領域,一個比較明顯的特點是待分類樣本維數高,類別可能比較多,而且噪聲大;所以,分類器的設計必須要充分考慮到這些特點,以達到較好效果。
目前的過濾系統一般都要經過特征提取、文本表示、過濾模型訓練和自適應過濾幾個步驟。其中,訓練與過濾算法的設計是一個關鍵問題,現在多采用了基于向量空間模型的分類算法,如決策樹, k-NN(K近鄰),Naive Bayes(樸素貝葉斯),NNet(神經網絡方法),中心向量分類器和SVM(支持向量機算法)等。
在本文的系統中,我們實現了K-NN分類器和NB分類器。其中:
KNN分類器實際使用時簡單、效果好,適用于各種邊界條件不明顯的環境,但計算量較大。
NB分類器分類準確率高,但條件要求比較嚴格,適用于先驗概率及類條件概率密度函數是已知的情況。
3 中文網絡文本過濾系統的測試與分析
3.1 文本過濾的評價指標
對文本過濾的評價指標,我們借鑒了文本檢索中常用的指標,如查準率(P),查全率(R)和F1評估值。對每個文本類,這些指標的定義如下:
R=a/(a+c);
P=a/(a+b);
F1=2*R*P/(R+P)。
其中,a為正確地分入該類的文檔數量,b為錯誤地劃入該類的文檔數量,c為錯誤地劃出該類的文檔數量。
3.2 測試環境
系統測試環境為:
CPU:Intel酷睿2雙核T5450。
內存:2G DDR2。
操作系統:Windows XP SP2。
網絡文本共分為4個類:moshou(魔獸論壇類)、nba(NBA籃球論壇類)、soldier(士兵論壇類)和wuxia(武器論壇)。
訓練文本集的4個類中都有100個文本,測試文本集共有2990個文本。文本都抓取自網絡論壇。文本長度從1K到50K。
選擇F1評測值作為效率的評價,因為它同時考慮了查全率和查準率。
3.3 測試結果
我們以基于K-NN的和基于樸素貝葉斯分類器(NB)的中文網絡文本過濾為例,來考察所提系統的文本過濾結果。表1、2分別給出了實驗測試中得到的相應F1值。
從表1、2可以看出:
1)對于中文網絡文本,較好的特征項選擇算法是交叉熵算法,無論使用何種權重計算函數和分類算法,系統分類效率總能在90%以上。較差的特征項選擇算法為信息增益方法,會對系統引入很大的誤差。
2)權重計算算法對系統效率的影響不是很大。
3)對于分類算法,在實際評測中,KNN分類器的效率優于NB分類器。
總之,對于中文網絡短文本的過濾,采用交叉熵算法來選擇特征項、使用KNN分類器進行分類的組合方式,既能取得不錯的系統效率,時間開銷又最小,是最合適的組合。
4 結束語
隨著互聯網絡的快速發展,網絡上的信息量以極高的速度增長。為了能夠方便地找到需要的信息,信息過濾成為重要的研究課題。本文實現了一個中文網絡短文本過濾系統,并測試了各種算法的效率。實驗結果表明,KNN分類器以其簡單、高效性而在網絡文本過濾中具有很好的應用價值。同時,該系統可以很方便地實現擴展。
目前的系統架構仍然存在一些問題,例如存在冗余計算的問題。因此,系統的重構將是我們主要的一個后續工作。
參考文獻:
[1] Sebastiani F. Machine learning in automated text categorization[J]. ACM Computing Surveys (CSUR), 2002,34(1):1-47.
[2] Hynek J,Jezek K, Rohlik O. Short Document Categorization-Itemsets Method[J]. Proceedings of PKDD,2000:14-19.
[3] 宋東風.短文本數據的自動分類[J].電腦與信息技術,2007,15(1):36-38,57.
[4] 萬國根.面向信息內容安全的文本過濾和分類系統研究與實現[J].計算機科學,2005,32(7):159-161.
[5] 王永恒.大規模文本數據庫中的短文分類方法[J].計算機工程與應用,2006,42(22):5-7.