文本分类与聚类(text categorization and clustering)
1. 概述
廣義的分類(classification或者categorization)有兩種含義:一種含義是有指導(dǎo)的學(xué)習(xí)(supervised learning)過程,另一種是無指導(dǎo)的學(xué)習(xí)(unsupervised learning)過程。通常前者稱為分類,后者稱為聚類(clustering),后文中提到的分類都是指有指導(dǎo)的學(xué)習(xí)過程。
給定分類體系,將文本集中的每個(gè)文本分到某個(gè)或者某幾個(gè)類別中,這個(gè)過程稱為文本分類(text categorization)。將文本集合分組成多個(gè)類或簇,使得在同一個(gè)簇中的文本內(nèi)容具有較高的相似度,而不同簇中的文本內(nèi)容差別較大,這個(gè)過程稱為文本聚類(text clustering)。
[Berry, 2003]詳細(xì)描述了文本挖掘技術(shù)。[Sebastiani, 2002]提供了對(duì)文本分類的綜述。[Xu & Wunsch, 2005]對(duì)聚類算法做了全面的描述,[He, 1999]則重點(diǎn)講述了聚類算法在IR中的應(yīng)用。
2. 文本分類
文本分類過程可以分為手工分類和自動(dòng)分類。前者最著名的實(shí)例是yahoo的網(wǎng)頁(yè)分類體系,是由專家定義了分類體系,然后人工將網(wǎng)頁(yè)分類。這種方法需要大量人力,現(xiàn)實(shí)中已經(jīng)采用的很少了。自動(dòng)文本分類(automatic text categorization)算法大致可以分為兩類:知識(shí)工程(knowledge engineering)方法和機(jī)器學(xué)習(xí)(machine learning)方法。知識(shí)工程方法指的是由專家為每個(gè)類別定義一些規(guī)則,這些規(guī)則代表了這個(gè)類別的特征,自動(dòng)把符合規(guī)則的文檔劃分到相應(yīng)的類別中。這方面最著名的系統(tǒng)是CONSTRUE。上個(gè)世紀(jì)90年代之后,機(jī)器學(xué)習(xí)方法成為主導(dǎo)。機(jī)器學(xué)習(xí)方法與知識(shí)工程方法相比,能夠達(dá)到相似的精確度,但是減少了大量的人工參與。我們下面主要介紹基于機(jī)器學(xué)習(xí)方法的文本分類。
2.1 文本分類的步驟
典型的文本分類過程可以分為三個(gè)步驟:
1. 文本表示(Text Representation)
這一過程的目的是把文本表示成分類器能夠處理的形式。最常用的方法是向量空間模型,即把文本集表示成詞-文檔矩陣,矩陣中每個(gè)元素代表了一個(gè)詞在相應(yīng)文檔中的權(quán)重。選取哪些詞來代表一個(gè)文本,這個(gè)過程稱為特征選擇。常見的特征選擇方法有文檔頻率、信息增益、互信息、期望交叉熵等等,[Yang & Pedersen , 1997 ]對(duì)這幾種方法做了比較。為了降低分類過程中的計(jì)算量,常常還需要進(jìn)行降維處理,比如LSI。
2. 分類器構(gòu)建(Classifier Construction)
這一步驟的目的是選擇或設(shè)計(jì)構(gòu)建分類器的方法。沒有一種通用的方法可以適用所有情況。不同的方法有各自的優(yōu)缺點(diǎn)和適用條件,要根據(jù)問題的特點(diǎn)來選擇一個(gè)分類器。我們會(huì)在后面專門講述常用的方法。選定方法之后,在訓(xùn)練集上為每個(gè)類別構(gòu)建分類器,然后把分類器應(yīng)用于測(cè)試集上,得到分類結(jié)果。
3. 效果評(píng)估(Classifier Evaluation)
在分類過程完成之后,需要對(duì)分類效果進(jìn)行評(píng)估。評(píng)估過程應(yīng)用于測(cè)試集(而不是訓(xùn)練集)上的文本分類結(jié)果,常用的評(píng)估標(biāo)準(zhǔn)由IR領(lǐng)域繼承而來,包括查全率、查準(zhǔn)率、F1值等等。對(duì)于某一類別i,查全率ri=li/ni,其中ni為所有測(cè)試文檔中,屬于第i類的文檔個(gè)數(shù);li是經(jīng)分類系統(tǒng)輸出分類結(jié)果為第i類且結(jié)果正確的文檔個(gè)數(shù)。查準(zhǔn)率pi=li/mi,其中mi是經(jīng)分類系統(tǒng)輸出分類結(jié)果為第i類的文檔個(gè)數(shù),li是經(jīng)分類系統(tǒng)輸出分類結(jié)果為第i類且結(jié)果正確的文檔個(gè)數(shù)。F1值為查全率和查準(zhǔn)率的調(diào)和平均數(shù),即:。
相對(duì)于最簡(jiǎn)單的訓(xùn)練集-測(cè)試集評(píng)估方法而言,還有一種稱為k-fold cross validation的方法,即把所有標(biāo)記的數(shù)據(jù)劃分成k個(gè)子集,對(duì)于每個(gè)子集,把這個(gè)子集當(dāng)作訓(xùn)練集,把其余子集作為測(cè)試集;這樣執(zhí)行k次,取各次評(píng)估結(jié)果的平均值作為最后的評(píng)估結(jié)果。
2.2 常見的文本分類方法
1. Rocchio方法
每一類確定一個(gè)中心點(diǎn)(centroid),計(jì)算待分類的文檔與各類代表元間的距離,并作為判定是否屬于該類的判據(jù)。Rocchio方法最早由[Hull, 1994]引入文本分類領(lǐng)域,后來又有很多文章進(jìn)行了改進(jìn)。Rocchio方法的特點(diǎn)是容易實(shí)現(xiàn),效率高。缺點(diǎn)是受文本集分布的影響,比如計(jì)算出的中心點(diǎn)可能落在相應(yīng)的類別之外[Sebastiani, 2002]。
2. 樸素貝葉斯(na?ve bayes)方法
將概率論模型應(yīng)用于文檔自動(dòng)分類,是一種簡(jiǎn)單有效的分類方法。使用貝葉斯公式,通過先驗(yàn)概率和類別的條件概率來估計(jì)文檔對(duì)某一類別的后驗(yàn)概率,以此實(shí)現(xiàn)對(duì)此文檔所屬類別的判斷。[Lewis, 1998]介紹了樸素貝葉斯方法的發(fā)展和各種變體及特點(diǎn)。
3. K近鄰(K-Nearest Neightbers, KNN)方法
從訓(xùn)練集中找出與待分類文檔最近的k個(gè)鄰居(文檔),根據(jù)這k個(gè)鄰居的類別來決定待分類文檔的類別。KNN方法的優(yōu)點(diǎn)是不需要特征選取和訓(xùn)練,很容易處理類別數(shù)目多的情況,缺點(diǎn)之一是空間復(fù)雜度高。KNN方法得到的分類器是非線性分類器。此方法最早由[Yang & Chute, 1994]提出。
4. 支持向量機(jī)(SVM)方法
對(duì)于某個(gè)類別,找出一個(gè)分類面,使得這個(gè)類別的正例和反例落在這個(gè)分類面的兩側(cè),而且這個(gè)分類面滿足:到最近的正例和反例的距離相等,而且是所有分類面中與正例(或反例)距離最大的一個(gè)分類面。SVM方法最早由[Joachims, 1998]引入到文本分類中。SVM方法的優(yōu)點(diǎn)是使用很少的訓(xùn)練集,計(jì)算量小;缺點(diǎn)是太依賴于分類面附近的正例和反例的位置,具有較大的偏執(zhí)。
其他常用的方法還包括決策樹方法和神經(jīng)網(wǎng)絡(luò)方法,詳見文獻(xiàn)[Sebastiani, 2002]。
2.3 常用源碼和數(shù)據(jù)集
Weka是一個(gè)開源的機(jī)器學(xué)習(xí)軟件,集成了數(shù)據(jù)預(yù)處理、機(jī)器學(xué)習(xí)算法、可視化功能,實(shí)現(xiàn)了大部分常見的機(jī)器學(xué)習(xí)算法,包括分類。Weka是國(guó)外著名教材《Data Mining: Practical Machine Learning Tools and Techniques (Second Edition)》所采用的實(shí)驗(yàn)平臺(tái)。
與Weka相競(jìng)爭(zhēng)的另一個(gè)開源的機(jī)器學(xué)習(xí)軟件是Yale,自稱實(shí)現(xiàn)了Weka的所有算法,兼容Weka的數(shù)據(jù)格式。現(xiàn)在已經(jīng)商業(yè)化。
與Weka和Yale不同,Bow是專門為文本處理設(shè)計(jì)的開源包。Bow包含三個(gè)部分:Rainbow(文本分類)、Arrow(文本檢索)和Crossbow(文本聚類)。
文本分類常用的數(shù)據(jù)集有REUTERS,20NEWSGROUP,OHSUMED等語(yǔ)料庫(kù)。
3. 文本聚類
文本聚類有很多應(yīng)用,比如提高IR系統(tǒng)的查全率,導(dǎo)航/組織電子資源,等等。www.vivisimo.com是一個(gè)成熟的文本聚類系統(tǒng)。
根據(jù)聚成的簇的特點(diǎn),聚類技術(shù)通常分為層次聚類(hierarchical clustering)和劃分聚類(partitional clustering)。前者比較典型的例子是凝聚層次聚類算法,后者的典型例子是k-means算法。近年來出現(xiàn)了一些新的聚類算法,它們基于不同的理論或技術(shù),比如圖論,模糊集理論,神經(jīng)網(wǎng)絡(luò)以及核技術(shù)(kernel techniques)等等。
3.1 文本聚類的步驟
與文本分類類似,文本聚類過程可以分為3個(gè)步驟:
1. 文本表示(Text Representation)
把文檔表示成聚類算法可以處理的形式。所采用的技術(shù)請(qǐng)參見文本分類部分。
2. 聚類算法選擇或設(shè)計(jì)(Clustering Algorithms)
算法的選擇,往往伴隨著相似度計(jì)算方法的選擇。在文本挖掘中,最常用的相似度計(jì)算方法是余弦相似度。聚類算法有很多種,但是沒有一個(gè)通用的算法可以解決所有的聚類問題。因此,需要認(rèn)真研究要解決的問題的特點(diǎn),以選擇合適的算法。后面會(huì)有對(duì)各種文本聚類算法的介紹。
3. 聚類評(píng)估(Clustering Evaluation)
因?yàn)闆]有訓(xùn)練文檔集合,所以評(píng)測(cè)聚類效果是比較困難的。 常用的方法是: 選擇人工已經(jīng)分好類或者做好標(biāo)記的文檔集合作為測(cè)試集合,聚類結(jié)束后,將聚類結(jié)果與已有的人工分類結(jié)果進(jìn)行比較。常用評(píng)測(cè)指標(biāo)也是查全率、查準(zhǔn)率及F1值。
3.2 常見的文本聚類算法
1.層次聚類方法
層次聚類可以分為兩種:凝聚(agglomerative)層次聚類和劃分(divisive)層次聚類。凝聚方法把每個(gè)文本作為一個(gè)初始簇,經(jīng)過不斷的合并過程,最后成為一個(gè)簇。劃分方法的過程正好與之相反。劃分方法在現(xiàn)實(shí)中采用較少,有關(guān)論述請(qǐng)見[Kaufman & Rousseeuw, 1990]。層次聚類可以得到層次化的聚類結(jié)果,但是計(jì)算復(fù)雜度比較高,不能處理大量的文檔。近年來出現(xiàn)了新的層次聚類算法,包括CURE[Guha, Rastogi & Shim, 1998], ROCK[Guha, Rastogi & Shim, 2000], Chameleon[Karypis, Han & V. Kumar, 1999]和BIRCH[Zhang, Ramakrishnan & Livny, 1996]。
2.劃分方法
k-means算法是最常見的劃分方法。給定簇的個(gè)數(shù)k,選定k個(gè)文本分別作為k個(gè)初始簇,將其他的文本加入最近的簇中,并更新簇的中心點(diǎn),然后再根據(jù)新的中心點(diǎn)對(duì)文本重新劃分;當(dāng)簇不再變化時(shí)或經(jīng)過一定次數(shù)的迭代之后,算法停止。k-means算法復(fù)雜度低,而且容易實(shí)現(xiàn),但是對(duì)例外和噪聲文本比較敏感。另外一個(gè)問題是,沒有一個(gè)好的辦法確定k的取值。相關(guān)文獻(xiàn)參見[Forgy, 1965][Xu & Wunsch, 2005]。
3.基于密度的方法
為了發(fā)現(xiàn)任意形狀的聚類結(jié)果,提出了基于密度的方法。這類方法將簇看作是數(shù)據(jù)空間中被低密度區(qū)域分割開的高密度區(qū)域。常見的基于密度的方法有DBSCAN, OPTICS, DENCLUE等等,參考文獻(xiàn)見[Han & Kamber, 2006]。
4.神經(jīng)網(wǎng)絡(luò)方法
神經(jīng)網(wǎng)絡(luò)方法將每個(gè)簇描述為一個(gè)標(biāo)本,標(biāo)本作為聚類的"原型",不一定對(duì)應(yīng)一個(gè)特定的數(shù)據(jù),根據(jù)某些距離度量,新的對(duì)象被分配到與其最相似的簇中。比較著名的神經(jīng)網(wǎng)絡(luò)聚類算法有:競(jìng)爭(zhēng)學(xué)習(xí)(competitive learing)和自組織特征映射(self-organizing map)[Kohonen, 1990]。神經(jīng)網(wǎng)絡(luò)的聚類方法需要較長(zhǎng)的處理時(shí)間和復(fù)雜的數(shù)據(jù)復(fù)雜性,所以不適用于大型數(shù)據(jù)的聚類。
其他常見的方法包括基于圖論的聚類算法[Jain & Dubes, 1988]、基于核的聚類算法[Müller, Mika, R?tsch, et. al, 2001]、模糊聚類算法[H?ppner, Klawonn & Kruse, 1999],等等。
3.3 常用的源碼包和數(shù)據(jù)集
前面介紹的Weka、Yale、Bow這三個(gè)工具已經(jīng)包含了常用的聚類算法,下面再介紹幾個(gè)專門的聚類軟件:
Scipy: http://www.scipy.org/
The open source clustering softwares: http://bonsai.ims.u-tokyo.ac.jp/~mdehoon/software/cluster/software.htm
MICMOD: http://www-math.univ-fcomte.fr/mixmod/index.php
The Semantic Indexing Project: http://www.knowledgesearch.org/
JUNG: http://jung.sourceforge.net/
CompLearn: http://complearn.org/
目前還沒有專門為文本聚類設(shè)計(jì)的數(shù)據(jù)集,一般可以采用文本分類的數(shù)據(jù)集(前面有介紹)。
轉(zhuǎn)自:http://fusion.grids.cn/wiki/pages/viewpage.action?pageId=1033
參考文獻(xiàn)
[Berry, 2003]Michael W. Berry, "Survey of Text Mining:Clustering, Classification, and Retrieval", Springer, 2003
[Forgy, 1965] E. Forgy, "Cluster analysis of multivariate data: Efficiency vs. interpretability of classifications," Biometrics, vol. 21, 1965.
[Guha, Rastogi & Shim, 1998] S. Guha, R. Rastogi, and K. Shim, "CURE: An efficient clustering algorithm for large databases," in Proc. ACM SIGMOD Int. Conf. Management of Data, 1998, pp. 73-84.
[Guha, Rastogi & Shim, 2000]S. Guha, R. Rastogi, and K. Shim, "ROCK: A robust clustering algorithm for categorical attributes," Inf. Syst., vol. 25, no. 5, pp. 345-366, 2000.
[Han & Kamber, 2006] J Han, M Kamber, "Data Mining: Concepts and Techniques", version 2, 2006
[He, 1999] Q He,A review of clustering algorithms as applied in IR, Univ. Illinois at Urbana-Champaign, Tech. Rep. 1999
[H?ppner, Klawonn & Kruse, 1999] F. H?ppner, F. Klawonn, and R. Kruse, Fuzzy Cluster Analysis: Methods for Classification, Data Analysis, and Image Recognition. New York: Wiley, 1999.
[Hull, 1994] D. HULL, Improving text retrieval for the routing problem using latent semantic indexing. In Proceedings of SIGIR-94, 17th ACM International Conference on Research and Development in Information Retrieval (Dublin, Ireland, 1994), 282-289.
[Jain & Dubes, 1988] A. Jain and R. Dubes,? Algorithms for Clustering Data. Englewood Cliffs, NJ: Prentice-Hall, 1988.
[Joachims, 1998] T. Joachims, Text categorization with support vector machines: learning with many relevant features. In Proceedings of ECML-98, 10th European Conference on Machine Learning (Chemnitz, Germany, 1998), 137-142.
[Karypis, Han & V. Kumar, 1999] G. Karypis, E. Han, and V. Kumar, "Chameleon: Hierarchical clustering using dynamic modeling," IEEE Computer, vol. 32, no. 8, pp. 68-75, Aug. 1999.
[Kaufman & Rousseeuw, 1990]L. Kaufman and P. Rousseeuw, Finding Groups in Data: An Introductionto Cluster Analysis: Wiley, 1990.
[Kohonen, 1990]T. Kohonen, "The self-organizing map," Proc. IEEE, vol. 78, no. 9, pp. 1464-1480, Sep. 1990.
[Lewis, 1998] D.D.Lewis,? Naive (Bayes) at forty: The independence assumption in information retrieval. In Proceedings of ECML-98, 10th European Conference on Machine Learning,1998
[Müller, Mika, R?tsch, et. al, 2001]K. Müller, S. Mika, G. R?tsch, K. Tsuda, and B. Sch?lkopf, "An introduction to kernel-based learning algorithms," IEEE Trans. Neural Netw.,vol. 12, no. 2, pp. 181-201, Mar. 2001.
[Sebastiani, 2002] F Sebastiani, "Machine learning in automated text categorization", ACM Computing Surveys (CSUR), 2002
[Steinbach, Karypis & Kumar, 2000]M Steinbach, G Karypis, V Kumar, "A comparison of document clustering techniques",? KDD Workshop on Text Mining, 2000
[Xu & Wunsch, 2005] R Xu, D Wunsch, Survey of clustering algorithms,? IEEE Transactions on Neural Networks, 2005
[Yang & Chute, 1994] Y. Yang, C. G. Chute. An example-based mapping method for text categorization and retrieval. ACM Trans. Inform. Syst. 12, 3, 252-277.
[Yang & Pedersen , 1997 ] Y. Yang, J.O.Pedersen. A Comparative Study on Feature Selection in Text Categorization Proceedings of the Fourteenth International Conference on Machine Learning (ICML'97), 1997.
[Zhang, Ramakrishnan & Livny, 1996]T. Zhang, R. Ramakrishnan, and M. Livny, "BIRCH: An efficient data clustering method for very large databases," in Proc. ACM SIGMOD Conf. Management of Data, 1996, pp. 103-114.
?
總結(jié)
以上是生活随笔為你收集整理的文本分类与聚类(text categorization and clustering)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 盖茨十条职场箴言
- 下一篇: weka源码编译步骤