文本分类算法综述

文本分类算法综述文本分类大致有两种方法:一种是基于训练集的文本分类方法;另一种是基于分类词表的文本分类方法。两种方法出自不同角度的研究者,训练集法更多的来自计算机或人工智能研究领域,而分类表法则更多地来自突出情报领域。本文主要介绍前一种。基于训练集的文本分类是一种典型的有教师的机器学习问题,一般分为训练和分类两个阶段,具体过程如下:训练阶段:1)             定义类别集合 ,这些类别可是是层次式的,…

大家好,又见面了,我是你们的朋友全栈君。

文本分类大致有两种方法:一种是基于训练集的文本分类方法;另一种是基于分类词表的文本分类方法。两种方法出自不同角度的研究者,训练集法更多的来自计算机或人工智能研究领域,而分类表法则更多地来自突出情报领域。本文主要介绍前一种。

基于训练集的文本分类是一种典型的有教师的机器学习问题,一般分为训练和分类两个阶段,具体过程如下:

训练阶段:

1)              定义类别集合 ,这些类别可是是层次式的,也可以是并列式的。

2)              给出训练文档集合 ,每个训练文档 被标上所属的类别标识 

3)              统计 中所有文档的特征矢量 ,确定代表 中每个类别的特征矢量 

分类阶段:

1)对于测试文档集合 中的每个待分类文档 ,计算其特征矢量 与每个 之间的相似度 

2)选取相似度最大的一个类别 作为 的类别。

有时也可以为 指定多个类别,只要 与这些类别之间的相似度超过某个预定的阈值。如果 与所有类别的相似度均低于阈值,那么通常将文档放在一边,有用户来做最终决定。如果这种情况经常发生,则说明需要修改预定义的类别,然后重新进行上述训练与分类工程。

从训练集中得出分类模式的方法很多,有基于文本特征向量相关性的方法、基于神经网络技术的方法、基于遗传算法的方法、基于关联的方法、基于EM算法的方法等。

§3.1朴素贝叶斯算法

    朴素贝叶斯(Naive Bayes)算法的基本思路是计算文本属于类别的概率,文本属于类别的概率等于文本中每个词属于类别的概率的综合表达式。具体算法步骤如下:

1)    计算特征词属于每个类别的概率向量( )。

其中, =

   2)对于新文本 ,按下面的公式计算该文本属于类 的概率:

   

  其中,  为相似含义, 为类别总数,  为特征词总数。

3)比较新文本属于所有类的概率,将文本分到概率最大的那个类别中。

§3.2 向量空间距离测度分类算法

    该算法的思路十分简单,根据算术平均为每类文本集生成一个代表该类的中心向量,然后在新文本来到时,确定新文本向量,计算该向量与每类中心向量间的距离(相似度),最后判定文本属于与文本距离最近的类,具体步骤如下:

    训练阶段:

1)首先定义类别集合 这些类别可以是层次式的,也可以是并列式的;

2)然后给出训练文本集合 ,每个训练文本都被标上所属的类别标识 

3)提取训练文本集合S中所有文本的特征矢量 ,并采用一定的原测来确定代表C中每个类别的特征矢量 

分类阶段:

1)对于测试文本集合 中的每一个待分类文本 ,计算其特征矢量 与每一个 之间的相似度 ,可以用前面所提到的余弦法。

2)选取相似度最大的一个类别 作为 的类别。

§3.3 K最邻近分类算法

该算法的基本思路是:在给定新文本后,考虑在训练文本集中与该新文本距离最近(最相似)的K篇文本,根据这K篇文本所属的类别判断新文本所属的类别,具体算法步骤如下:

1)根据特征项集合重新描述训练文本向量;

2)将新文本表示为特征向量;

3)在训练文本集中选出与新文本最相似的K个文本,计算方法仍为余弦法:

其中,K值的确定目前没有很好的方法,一般采用先定一个初始值,然后根据试验测试的结果调整K值,一般初始值定为几百到数千之间。

4)在新文本的K个邻居中,依次计算每类的权重,计算公式为

其中, 函数,即,如果 属于类 ,那么函数值为1,否则为0。

5)比较类的权重,将文本分到权重最大的那个类别中。

§3.4支持向量机

支持向量机(Support Vector Machine,SVM)最初是由Vapnik提出的,是一种相对较新的机器学习方法。支持向量机的基本实现思想是:通过某种事先选择的非线性影射把输入向量x映射到一个高维特征空间Z,在这个空间中构造最优分类超平面。也就是SVM采用输入向量的非线性变换,在特征空间中,在现行决策规则集合上按照正规超平面权值的模构造一个结构,然后选择结构中最好的元素和这个元素中最好的函数,以达到最小化错误率的目标,实现了结构风险最小化原则。具体算法细节将在下一章作详细介绍。

§3.5神经网络算法

它是采用感知算法进行分类,在此种模型中,分类知识被隐式地存储在连接

的权值上,使用迭代算法来确定权值向量,当网络输出判别正确时。权值向量保

持不变,否则进行增加或降低的调整,因此也称奖惩法。一般在神经网络分类法中包括两个部分训练部分和测试部分,以样本的特征项构造输入神经元,特征的数量即为输入神经元的数量,至于隐含层数量和该层神经元的数目要视实际而定。在训练部分通过对相当数量的训练样本的训练得到训练样本输入与输出之间的关系即在不断的迭代调整过程中得到连接权值矩阵。测试部分则是针对用户输入的待测样本的特征得到输出值即该样本的所属的类。

 §3.6决策树分类算法

决策树是被广泛使用的归纳学习方法之一。决策树是用样本的属性作为根节点,用属性的取值作为分支的树结构。它是利用信息论原理对大量样本的属性进行分析和归纳产生的。决策树的根节点是所有样本中信息量最大的属性。树的中间节点是以该节点为根的子树所包含的样本子集中信息量最大的属性。决策树的叶节点是样本的类别值。决策树用于对新样本的分类,即通过决策树对新样本属性值的测试,从树的根节点开始,按照样本属性的取值,逐渐沿着决策树向下,直到树的叶节点,该叶节点表示的类别就是新样本的类别。决策树方法是数据挖掘中非常有效的分类方法,它排除噪音的强壮性以及学习反义表达的能力使其更适合于文本分类[31]。比较著名的决策树算法是ID3算法以及它的后继C4.5、C5等。基本的ID3算法是通过自顶向下构造决策树的。其主算法步骤如下:

1)从训练集中随机选择一个既含正例又含反例的子集(称为“窗口”);

2)用“建树算法”对当前窗口形成一棵决策树;

3)对训练集(窗口除外)中例子用所得决策树进行类别判定,找出错判的例子;

4)若存在错判的例子,把它们插入窗口,重复步骤2),否则结束。

建树算法:

1)对当前例子集合,计算各特征的互信息;

2)选择互信息最大的特征 

3)把在 处取值相同的例子归于同一子集, 取几个值就得到几个子集;

4)对既含正例又含反例的子集,递归调用建树算法;

若子集仅含正例或反例,对应分支标上的P或N,返回调用处。

§3.7其它的分类算法

 

许多研究者研究了将多种分类方法联合成一种分类器的技术,这个过程称为Voting,联合分类基本思想是将一组分类器结合起来,以表决的形式进行模式分类。选举算法可以分为2个类型:Bagging(Bootstrap aggregation)算法和Boosting算法。

Bagging算法:

训练R个分类器fi,分类器之间其他相同就是参数不同。其中fi是通过从训练集合中(N篇文档)随机取(取后放回)N次文档构成的训练集合训练得到的。

对于新文档d,用这R个分类器去分类,得到的最多的那个类别作为d的最终类别。

Boosting算法:

类似Bagging方法,但是训练是串行进行的,第k个分类器训练时关注对前k-1分类器中错分的文档,即不是随机取,而是加大取这些文档的概率.

§3.8 小结

本章主要介绍了当前文本分类领域常用的几种文本分类算法及其原理,包括贝叶斯算法、向量距离测度算法、决策树算法、KNN算法、支持向量机、神经网络等。其中KNN算法、决策树算法中的ID3算法和支持向量机会在第四章的中文文本分类的实验中得到应用。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/133214.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • elasticsearch集群搭建对服务器硬件_elasticsearch开发

    elasticsearch集群搭建对服务器硬件_elasticsearch开发elasticsearchARM架构集群搭建一、搭建环境搭建服务器IP环境es版本号路径20.10.0.xxCentOSLinuxrelease7.9.2009(AltArch)elasticsearch-7.13.1-aarch64./data/elsticsearch/*20.10.0.xxCentOSLinuxrelease7.9.2009(AltArch)elasticsearch-7.13.1-aarch64/data/elstics

    2022年10月13日
  • strictmode android,(十三)Android 性能优化 StrictMode

    strictmode android,(十三)Android 性能优化 StrictMode小酌鸡汤富贵必从勤苦得,男儿须读五车书。StrictMode能检测什么呢?StrictMode主要检测两大问题:线程策略(TreadPolicy)和VM策略(VmPolicy)。StrictMode的工作原理?StrictMode最常用于在应用程序的主线程上捕获意外的磁盘或网络访问,在该线程上接收UI操作并进行动画处理。使磁盘和网络操作脱离主线程可以使应用程序更加流畅,响应更快。通过使应用程序的主…

  • java大数据开发需要掌握什么_大数据要学java吗

    java大数据开发需要掌握什么_大数据要学java吗​​​​​​你想过自己的未来规划吗?java大数据程序员只需要学到技术就行吗?1.如何成为大数据工程师Java开发是IT行业的经典岗位,行业当中存在普遍的需求,Web开发、Android开发、游戏开发等基本上Java语言是主力队伍。而进入大数据时代,Java又在大数据方向上有了用武之地,又该如何进行成长路线规划。在Java程序界流行着一种默认的说法叫黄金5年,也就是一个程序员从入职的时候开始算起,前五年的选择直接影响着整个职业生涯中的职业发展方向和薪资走向。2014年8月,阿里巴巴举办了

    2022年10月19日
  • 组合数常用计算公式

    组合数常用计算公式Cnm=n!m!∗(n−m)!C_n^m=\frac{n!}{m!*(n-m)!}Cnm​=m!∗(n−m)!n!​Cn2=n∗(n−1)2C_n^2=\frac{n*(n-1)}{2}Cn2​=2n∗(n−1)​Cn3=n∗(n−1)∗(n−2)6C_n^3=\frac{n*(n-1)*(n-2)}{6}Cn3​=6n∗(n−1)∗(n−2)​Cnm=Cn−1m−1+Cn−1mC_n^m…

  • MySQL中聚集索引、非聚集索引、联合索引、覆盖索引[通俗易懂]

    MySQL中聚集索引、非聚集索引、联合索引、覆盖索引[通俗易懂]在《面试官:为啥加了索引查询会变快?》一文中,我们介绍了索引的数据结构,正是因为索引使用了B+树,才使得查询变快。说白了,索引的原理就是减少查询的次数、减少磁盘IO,达到快速查找所需数据的目的我们一起来看一下InnoDB存储引擎中的索引聚集索引聚集索引(clusteredindex)就是按照每张表的主键构造一棵B+树,同时叶子节点中存放的即为整张表的行记录数据,也将聚集索引的叶子节点称为数据页。聚集索引的这个特性决定了索引组织表中数据也是索引的一部分(备注:真实的B+树叶子节点是通过链表相连的,

  • JavaIO——IO概述

    JavaIO——IO概述                                                   JavaIo原理IO流用来处理设备之间的数据传输,Java程序中,对于数据的输入/输出操作都是以“流”的方式进行的。java.io包下提供了各种“流”类的接口,用以获取不同种类的数据,并…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号