文本分类大体有两种方法:一种是基于训练集的文本分类方法;另外一种是基于分类词表的文本分类方法。两种方法出自不一样角度的研究者,训练集法更多的来自计算机或人工智能研究领域,而分类表法则更多地来自突出情报领域。本文主要介绍前一种。算法
基于训练集的文本分类是一种典型的有教师的机器学习问题,通常分为训练和分类两个阶段,具体过程以下:网络
训练阶段:机器学习
1) 定义类别集合 ,这些类别但是是层次式的,也能够是并列式的。函数
2) 给出训练文档集合 ,每一个训练文档 被标上所属的类别标识 。学习
3) 统计 中全部文档的特征矢量 ,肯定表明 中每一个类别的特征矢量 。测试
分类阶段:人工智能
1)对于测试文档集合 中的每一个待分类文档 ,计算其特征矢量 与每一个 之间的类似度 。spa
2)选取类似度最大的一个类别 做为 的类别。递归
有时也能够为 指定多个类别,只要 与这些类别之间的类似度超过某个预约的阈值。若是 与全部类别的类似度均低于阈值,那么一般将文档放在一边,有用户来作最终决定。若是这种状况常常发生,则说明须要修改预约义的类别,而后从新进行上述训练与分类工程。文档
从训练集中得出分类模式的方法不少,有基于文本特征向量相关性的方法、基于神经网络技术的方法、基于遗传算法的方法、基于关联的方法、基于EM算法的方法等。
朴素贝叶斯(Naive Bayes)算法的基本思路是计算文本属于类别的几率,文本属于类别的几率等于文本中每一个词属于类别的几率的综合表达式。具体算法步骤以下:
1) 计算特征词属于每一个类别的几率向量( )。
其中, =
2)对于新文本 ,按下面的公式计算该文本属于类 的几率:
其中, , 为类似含义, 为类别总数, 为 为特征词总数。
3)比较新文本属于全部类的几率,将文本分到几率最大的那个类别中。
该算法的思路十分简单,根据算术平均为每类文本集生成一个表明该类的中心向量,而后在新文原本到时,肯定新文本向量,计算该向量与每类中心向量间的距离(类似度),最后断定文本属于与文本距离最近的类,具体步骤以下:
训练阶段:
1)首先定义类别集合 这些类别能够是层次式的,也能够是并列式的;
2)而后给出训练文本集合 ,每一个训练文本都被标上所属的类别标识 ;
3)提取训练文本集合S中全部文本的特征矢量 ,并采用必定的原测来肯定表明C中每一个类别的特征矢量 ;
分类阶段:
1)对于测试文本集合 中的每个待分类文本 ,计算其特征矢量 与每个 之间的类似度 ,能够用前面所提到的余弦法。
2)选取类似度最大的一个类别 做为 的类别。
该算法的基本思路是:在给定新文本后,考虑在训练文本集中与该新文本距离最近(最类似)的K篇文本,根据这K篇文本所属的类别判断新文本所属的类别,具体算法步骤以下:
1)根据特征项集合从新描述训练文本向量;
2)将新文本表示为特征向量;
3)在训练文本集中选出与新文本最类似的K个文本,计算方法仍为余弦法:
其中,K值的肯定目前没有很好的方法,通常采用先定一个初始值,而后根据试验测试的结果调整K值,通常初始值定为几百到数千之间。
4)在新文本的K个邻居中,依次计算每类的权重,计算公式为
其中, 函数,即,若是 属于类 ,那么函数值为1,不然为0。
5)比较类的权重,将文本分到权重最大的那个类别中。
支持向量机(Support Vector Machine,SVM)最初是由Vapnik提出的,是一种相对较新的机器学习方法。支持向量机的基本实现思想是:经过某种事先选择的非线性影射把输入向量x映射到一个高维特征空间Z,在这个空间中构造最优分类超平面。也就是SVM采用输入向量的非线性变换,在特征空间中,在现行决策规则集合上按照正规超平面权值的模构造一个结构,而后选择结构中最好的元素和这个元素中最好的函数,以达到最小化错误率的目标,实现告终构风险最小化原则。具体算法细节将在下一章做详细介绍。
它是采用感知算法进行分类,在此种模型中,分类知识被隐式地存储在链接
的权值上,使用迭代算法来肯定权值向量,当网络输出判别正确时。权值向量保
持不变,不然进行增长或下降的调整,所以也称奖惩法。通常在神经网络分类法中包括两个部分训练部分和测试部分,以样本的特征项构造输入神经元,特征的数量即为输入神经元的数量,至于隐含层数量和该层神经元的数目要视实际而定。在训练部分经过对至关数量的训练样本的训练获得训练样本输入与输出之间的关系即在不断的迭代调整过程当中获得链接权值矩阵。测试部分则是针对用户输入的待测样本的特征获得输出值即该样本的所属的类。
决策树是被普遍使用的概括学习方法之一。决策树是用样本的属性做为根节点,用属性的取值做为分支的树结构。它是利用信息论原理对大量样本的属性进行分析和概括产生的。决策树的根节点是全部样本中信息量最大的属性。树的中间节点是以该节点为根的子树所包含的样本子集中信息量最大的属性。决策树的叶节点是样本的类别值。决策树用于对新样本的分类,即经过决策树对新样本属性值的测试,从树的根节点开始,按照样本属性的取值,逐渐沿着决策树向下,直到树的叶节点,该叶节点表示的类别就是新样本的类别。决策树方法是数据挖掘中很是有效的分类方法,它排除噪音的强壮性以及学习反义表达的能力使其更适合于文本分类[31]。比较著名的决策树算法是ID3算法以及它的后继C4.五、C5等。基本的ID3算法是经过自顶向下构造决策树的。其主算法步骤以下:
1)从训练集中随机选择一个既含正例又含反例的子集(称为“窗口”);
2)用“建树算法”对当前窗口造成一棵决策树;
3)对训练集(窗口除外)中例子用所得决策树进行类别断定,找出错判的例子;
4)若存在错判的例子,把它们插入窗口,重复步骤2),不然结束。
建树算法:
1)对当前例子集合,计算各特征的互信息;
2)选择互信息最大的特征 ;
3)把在 处取值相同的例子归于同一子集, 取几个值就获得几个子集;
4)对既含正例又含反例的子集,递归调用建树算法;
若子集仅含正例或反例,对应分支标上的P或N,返回调用处。
许多研究者研究了将多种分类方法联合成一种分类器的技术,这个过程称为Voting,联合分类基本思想是将一组分类器结合起来,以表决的形式进行模式分类。选举算法能够分为2个类型:Bagging(Bootstrap aggregation)算法和Boosting算法。
Bagging算法:
训练R个分类器fi,分类器之间其余相同就是参数不一样。其中fi是经过从训练集合中(N篇文档)随机取(取后放回)N次文档构成的训练集合训练获得的。
对于新文档d,用这R个分类器去分类,获得的最多的那个类别做为d的最终类别。
Boosting算法:
相似Bagging方法,可是训练是串行进行的,第k个分类器训练时关注对前k-1分类器中错分的文档,即不是随机取,而是加大取这些文档的几率.
本章主要介绍了当前文本分类领域经常使用的几种文本分类算法及其原理,包括贝叶斯算法、向量距离测度算法、决策树算法、KNN算法、支持向量机、神经网络等。其中KNN算法、决策树算法中的ID3算法和支持向量机会在第四章的中文文本分类的实验中获得应用。