摘录自文本分类与聚类(text categorization and clustering)
文本分类过程可以分为手工分类和自动分类。前者最著名的实例是yahoo的网页分类系统,由专家定义了分类系统,然后人工将网页分类。这种方法需要大量人力,现实中已经很少采用。自动文本分类(automatic text categorization)算法大致可以分为两类:知识工程(knowledge engineering)方法和机器学习(machine learning)方法。知识工程方法指的是由专家为每个类别定义一些规矩,这些规矩代表了这个类别的特点,主动把符合规矩的文档划分到相应的种别中。这方面最有名的体系是CONSTRUE。上个世纪90年代之后,机器学习方法成为主导。机器学习方法与知识工程方法相比,能够到达类似的准确度,但是减少了大批的人工参与。下面介绍基于机器学习的文本分类。
文本分类的步骤
典型的文本分类过程可以分为三个步骤:
- 文本表现(Text Representation):这一过程的目标是把文本表示成分类器能够处理的形式。最常用的方法是向量空间模型,即把文本集表示成词-文档矩阵,矩阵中每个元素代表了一个词在相应文档中的权重。选取哪些词来代表一个文本,这个过程称为特征选择(feature selection)。常见的特征选择方法有文档频率、信息增益、互信息、期望交叉熵(Expected Cross Entropy)等等,[Yang & Pedersen , 1997 ]对这几种方法做了比较。为了降低分类过程中的计算量,经常还需要进行降维处理,比如LSI。
- 分类器构建(Classifier Construction):这一步骤的目标是选择或设计构建分类器的方法。没有一种通用的方法可以适用所有情形。不同的方法有各自的优缺点和适用条件,要依据问题的特色来选择一个分类器。我们会在后面专门讲述常用的方法。选定方法之后,在训练集上为每个类别构建分类器,然后把分类器利用于测试集上,得到分类结果。
- 效果评估(Classifier Evaluation):在分类过程完成之后,需要对分类结果进行评估。评估过程运用于测试集(而不是训练集)上的文本分类结果,常用的评估尺度由IR范畴继承而来,包括查全率、查准率、F1值等等。对于某一类别i,查全率ri=li/ni,其中ni为所有测试文档中,属于第i类的文档个数;li是经分类系统输出分类结果为第i类且结果准确的文档个数。查准率pi=li/mi,其中mi是经分类体系输出分类结果为第i类的文档个数,li是经分类系统输出分类结果为第i类且结果准确的文档个数。F1值为查全率和查准率的调和平均值(harmonic mean,根据[1],F-measure is the weighted harmonic mean of precision and recall, the traditional F- measure or balanced F-score is known as the F1 measure, because recall and precision are evenly weighted)。 相对于最简略的练习集-测试集评估办法而言,还有一种称为k-fold cross validation的方式,即把所有标志的数据划分成k个子集,对于每个子集,把这个子集当作训练集,把其余子集作为测试集;这样执行k次,取各次评估成果的均值作为最后的评估结果。
常见的文本分类方法
Rocchio方法
每一类断定一个中心点(centroid),计算待分类的文档与各类代表元间的间隔,并作为判定是否属于该类的判据。Rocchio方法最早由[Hull, 1994]引进文本分类范畴,后来又有很多文章进行了改良。Rocchio方法的特点是容易实现,效力高。毛病是受文本集散布的影响,比如计算出的中心点可能落在相应的类别之外[Sebastiani, 2002]。
朴素贝叶斯(naive bayes)方法
将概率论模型应用于文档自动分类,是一种简单有效的分类方法。应用贝叶斯公式,通过先验概率和类别的条件概率来估量文档对某一类别的后验概率,以此实现对此文档所属类别的断定。[Lewis, 1998]介绍了朴素贝叶斯方法的发展和各种变体及特点。
K近邻(K-Nearest Neightbers, KNN)方法
从训练集中找出与待分类文档最近的k个邻居(文档),根据这k个邻居的类别来判定待分类文档的类别。KNN方法的长处是不需要特征选取和训练,很轻易处理类别数目多的情形,缺陷之一是空间复杂度高。KNN方法得到的分类器是非线性分类器。此方法最早由[Yang & Chute,1994]提出。
支持向量机(SVM)方法
对于某个类别,找出一个分类面,使得这个类别的正例和反例落在这个分类面的两侧,而且这个分类面满足:到最近的正例和反例的间隔相等,而且是所有分类面中与正例(或反例)距离最大的一个分类面。SVM方法最早由[Joachims,1998]引进到文本分类中。SVM方法的长处是应用很少的练习集;毛病是太依附于分类面邻近的正例和反例的地位,具有较大的偏执
常用的软件
Weka
Weka是一个开源的机器学习软件,集成了数据预处置、机器学习算法、可视化功效,实现了大部分常见的机器学习算法,包含分类。Weka是国外有名教材《Data Mining: Practical Machine Learning Tools and Techniques (Second Edition)》所采取的试验平台。
Yale
与Weka相竞争的另一个开源的机器学习软件是Yale,自称实现了Weka的所有算法,兼容Weka的数据格式。现在其开源版本已经更名为RapidMiner。
Bow
与Weka和Yale不同,Bow是专门为文本处理设计的开源包。Bow包括三个部分:Rainbow(文本分类)、Arrow(文本检索)和Crossbow(文本聚类)。
常用语料库
文本分类常用的数据集有REUTERS,20NEWSGROUP,OHSUMED等语料库。