文本分类中的特征提取和分类算法综述_第1页
文本分类中的特征提取和分类算法综述_第2页
文本分类中的特征提取和分类算法综述_第3页
文本分类中的特征提取和分类算法综述_第4页
文本分类中的特征提取和分类算法综述_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、文本分类中的特征提取和分类算法综述摘要:文本分类是信息检索和过滤过程中的一项关键技术,其任务是对未知类别的文档进行自动处理,判别它们所属于的预定义类别集合中的类别。本文主要对文本分类中所涉及的特征选择和分类算法进行了论述,并通过实验的方法进行了深入的研究。采用kNN和Naive Bayes分类算法对已有的经典征选择方法的性能作了测试,并将分类结果进行对比,使用查全率、查准率、F1值等多项评估指标对实验结果进行综合性评价分析.最终,揭示特征选择方法的选择对分类速度及分类精度的影响。关键字:文本分类 特征选择 分类算法A Review For Feature Selection And Class

2、ification Algorithm In Text CategorizationAbstract:Text categorization is a key technology in the process of information retrieval and filtering,whose task is to process automatically the unknown categories of documents and distinguish the labels they belong to in the set of predefined categories. T

3、his paper mainly discuss the feature selection and classification algorithm in text categorization, and make deep research via experiment. kNN and Native Bayes classification algorithm have been applied to test the performance of classical feature detection methods, and the classification results ba

4、sed on classical feature detection methods have been made a comparison. The results have been made a comprehensive evaluation analysis by assessment indicators, such as precision, recall, F1. In the end, the influence feature selection methods have made on classification speed and accuracy have been

5、 revealed.Keywords:Text categorization Feature selection Classification algorithm前言互联网技术的高速发展引起了信息量的爆炸式增长,面对庞大的数据信息,如何在大规模的文本异构信息中准确、快速、全面地查找到个人所需的特定信息,已经成为了一项具有非常重要意义的研究课题1。文本分类的主要功能就是对相关的文档集合进行类别的标签与分配,其主要依据是在文本训练过程中将那些已经被提前分配合理的作为类别标签的训练文档集和。作为自动信息管理的核心技术,人工智能与信息检索技术是文本自动分类的两大技术基础,在组织和管理海量文本信息技术领

6、域中文本分类是一种非常有效的技术手段1。所以,对文本自动分类技术的深入研究有着非常重要的理论意义与实用价值。目前通常采用向量空间模型来描述文本向量2。然而,面对高维的文本特征,如果不进行降维处理,则会造成“维度灾难”,从而大大影响分类效果。特征降维是文本分类过程中的一个重要环节。特征提取和特征抽取是特征降维技术的两大类,相对于特征抽取方法,特征提取方法因其快速、简单、便捷的优点,在文本分类领域中得到广泛的应用。选择合适的文本表示模型、特征降维方法和分类器算法对文本分类的速度和精度有着至关重要的影响。本文主要采用NewsGroups语料库中的20news-18828数据源,使用kNN和Nativ

7、e Bayes分类算法对验证几种已有的经典特征选择方法,并将其分类结果进行比较,揭示特征提取算法对分类性能的影响。1、 几种经典的特征提取方法1.1 文档频率(DF)文档频率是指在训练文档集中某词条出现过的文档总数3。文档频率特征提取方法的基本思想是:首先根据具体情况设定最小和最大的文档频率阈值,接着计算每个特征词的文档频率。如果该特征词的文档频率大于已设定的最大文档频率阈值或小于最小的文档频率阈值,则删除该特征词,否则保留。 (式1-1)其中,表示词条在文档中出现的次数,表示文本的总词汇数。是一种最简单的词约简技术,常用于大规模的语料特征选择中。但其缺点是如果某一稀有词条主要出现在某类训练集

8、中,能够很好地反应该类别的特征,但因低于某个设定的阈值而直接滤除掉,因此就可能影响文本分类器的分类精度。1.2 信息增益(IG)在文本分类系统中,信息增益算法通过统计某一个特征词在文本类别中是否出现的文档频数来计算该特征项对于文本类别的信息增益。该算法考虑了特征在文档中出现前后的信息熵之差,公式定义为3: (式1-2)其中,表示语料库中文档类别总数;表示类文档在语料库中出现的概率;表示包含特征的文档的概率;表示不包含特征的文档的概率;表示包含特征的文档属于类别的概率;表示包含特征的文档不属于类别的概率。信息增益法的缺点是,它考虑了特征未发生的情况,尽管特征不出现的情况也可能对文本分类的判别有积

9、极作用,但这种积极作用往往要远小于考虑这种情况时对文本分类带来的干扰。1.3 互信息(MI)互信息衡量的是某个特征词和特征类别之间的统计相关性。因此,某个特征词和某个文本类别互信息定义度量两个给定对象之间的相关性,在不良信息过滤问题中用以度量特征项对于文本主题的区分度。特征词和类别的互信息公式定义如下4: (式1-3) 其中,为类别数;表示类别的概率;表示包含特征且属于类别的概率;表示特征的概率;表示属于类别的概率。互信息值较高的特征词通常在某个类别中出现的概率高,而在其他文本类别中出现的概率低,也就更有可能被选作为文本类别的特征。在个类别的文本训练集上特征项的互信息值公式定义如下5: (式1

10、-4)1.4 统计(CHI)统计用来衡量特征词条和类别之间的统计相关性。假设特征和类别之间是符合一阶自由度的分布,则特征词对于类别的统计公式定义如下6: (式1-5)其中,表示属于类且包含的文档频数,表示不属于类但是包含的文档频数,表示属于类但是不包含的文档频数,表示不属于类且不包含的文档频数。对于多类问题,分别计算对于每个类别的卡方统计值,再用下面两种公式计算特征对于整个样本的卡方统计值,分别进行检验: (式1-6) (式1-7)其中,为类别数,从原始特征空间中移除低于特定阈值的特征,保留高于该阈值的特征作为文档表示的特征。当特征词与文本类别相互独立时,此时特征不含有任何与文本类别有关的鉴别

11、信息。反之,的值越大,与的统计相关性越强。但是通过统计的公式可看出,该方法对低文档频率的特征项不靠谱,因其提高了在指定文本类别中出现的频率较低但却大量存在于其他类别的特征项在该文本类别中的权值。1.5 TF-IDF词汇频率: ,其中,表示文本的总词汇数,表示词在文本中出现的次数,的值越大,词与文本的相关性就越强;逆文档频率: 其中,表示包含词的文档数,表示语料库中的总文档数目,值越大,该词与文档的相关性越低。 (式1-8)针对TFIDF算法的归一化计算公式为: (式1-9)2、 文本分类方法文本分类方法主要分为两大类:基于规则的分类方法和基于统计的分类方法。其中基于规则的分类方法包括:决策树、

12、关联规则和粗糙集等;基于统计的分类方法包括:K-最近邻算法、朴素贝叶斯、支持向量机等算法。由于后者具有实现简单、分类性能良好的优点,故而在文本自动分类领域中应用广泛。2.1 K-最近邻算法K-最近邻算法(kNN),是一种基于向量空间模型的类比学习方法。因其简单、稳定、有效的特点,被广泛应用于模式识别系统中。使用kNN算法分类时,首先将待分类文档通过特征权重计算表示成空间向量形式的特征集合;然后,根据相应的准则将特征向量与预先确定好类别的样本权重向量进行相关的计算,得到前K个相似度较高的文本;最后,判定该文档的文本类别属性。在计算文本相似度时,通常采用向量夹角余弦来度量。在空间模型中,通过计算两

13、个文本向量之间夹角的余弦值来表示两个文档和之间的文本相似度,计算公式如下: (式2-1)其中,表示第个文档的第个属性值。当两个文本越相似时,的值越大。通过上述计算公式,从预先确定好类别的文档集合中选取前K个与待分类文档最接近的样本。对于待分类样本的K个近邻样本,依次计算对每个类别的权重,计算公式如下: (式2-2)其中,表示待分类文档的特征向量,则表示文本类别属性函数,若文档属于类,则该函数值为1,否则为0.在文本分类中,K-最近邻算法的主要过程是:在文本的训练阶段,将文本训练集文档分别表示成机器可识别操作的特征向量的形式;在文本分类阶段,主要进行文本的相似度计算和权重值排序。在分类中,K-最

14、近邻算法的时间复杂度与文本训练集合的文档总数成正比,该算法的时间复杂度较高,更适用于文本训练集合规模较小的文本分类系统。2.2 朴素贝叶斯算法朴素贝叶斯算法7可应用到大规模文本集合中,具有方法简单、速度快、分类准确率高等优点。理论上,由于朴素贝叶斯算法所基于的假设太过于严格,故而其分类效果要普遍优于其他分类算法,但是在实际应用中并不能完全符合理论中的假设条件,则算法的准确率会有一定程度的下降。在类别数目较多或者类别之间相关性较小的情况下,该模型的分类性能才能达到最佳。假设训练集中存在个类别,类别集合表示为,文本特征词集合表示为,各个文本特征对给定文本类别的影响是相互独立的。那么,类别的先验概率

15、为: (式2-3)其中,表示属于类别的文本数目,表示训练集的文本总数。设表示文本特征集合中的第个特征词,表示特征词在所有属于类别的文档集中出现的概率。则未知类别文本属于文本类别的条件概率为: (式2-4)根据贝叶斯定理,文本类别的后验概率为: (式2-5) (式2-6)其中,表示文本中所有特征词在整个文本集合中出现的概率,为常数。因此,上式简化为: (式2-7)结合式2-4和2-7,可得 (式2-8)利用式2-8计算出的每个类别对于文档的后验概率值,然后将文档判定到概率值最大的那个文本类别中去。2.3 支持向量机(SVM)支持向量机SVM算法是一种基于统计学理论的机器学习方法。该理论的基本思想

16、是在准确性和机器容量之间,对于给定的具有有限数量训练文本集的学习任务进行折衷,以期望得到最佳的应用性能8。该算法依据结构风险最小化的原则,合理地选择特征集合以及文本类别的判定函数,以保证通过有限实验条件下所得到的性能良好的文本分类器在对实际的分类中效果仍然良好,最终得到一个分类性能优异并具有广泛应用性的学习机9。SVM算法是依据线性且可分情况下的最优分类平面提出的,如图所示: 图1 最优分类超平面和支持向量图1:SVM中的分类平面如图1所示,样本集合能够被平面H完全区分开,同时使直线H1、H2间的距离最大。其中,H1、H2是指在样本集合中平行于H并且过离H最近的点的直线。支持向量机的基本思想是

17、:首先将样本输入空间,通过某种非线性变换(通过定义适当的内积实现)转换到高维空间中去,并且在高维空间线性可分的情况下通过计算得到文本最优分类平面10。通常,一个分类面只能对两个类别进行划分,而对于多类别的文本分类问题,就需要构造多个超平面,将每一类别和其它的类别区分开来。同时,稀疏、高维的数据对SVM算法基本没影响,因此能够更好地体现文本数据的类别特征,相对于其它分类算法,SVM算法的文本分类准确率较高。大量实验结果表明,支持向量机的文本分类效果明显优于其它的文本分类算法11。3、分类系统实现与结果分析3.1 文本分类系统的整体设计本文使用Newsgroups18828数据源和java软件设计

18、平台做分类分类实验,实现了文本训练与测试前的文本预处理等相关工作,通过利用java软件编程,生成了朴素贝叶斯分类器和KNN分类器。在面对大规模的文本数据时,文本预处理后所得到的特征项数量巨大,给分类器的处理工作打来很大困难,因此需通过特征降维(即加入特征降维模块)来降低分类器的处理的复杂度。整个系统分为四个模块:文本预处理模块、特征降维模块、分类模块及测试评估模块,系统框架如图2所示。具体的处理流程如下:(1) 将语料库中的文本进行预处理(去停顿词、虚词等处理)后,形成原始特征集和;(2) 在文本预处理模块处理的结果的基础上,循环读取每个特征词条,获得其相关的词频以及文档频率等信息。然后统计特

19、征提取方法所需要的参数,利用特征提取方法进行计算,选出预定数目的最能代表各个类别特征的最优特征集和,经过权重计算,区别每个特征词条所代表的文本类别信息大小并存储;(3) 把文档表示为文本特征向量的表示形式,经过分类模块处理过程得到最终的文本分类结果;(4) 最后通过测试评估模块,对文本分类结果进行分析与比较,验证采用不同的特征提取方法进行特征降维,对分类结果的影响。 训练文本集 文本预处理 构造分类器 测试文本集 特征提取 文本预处理 分类 建立特征模型文本向量化表示分类结果的分析 与评价 分类器图2:文本分类实验系统框图3.2 系统功能模块设计3.2.1 文本预处理模块文本预处理模块主要是利

20、用分词词典对语篇内容进行词的划分,并去除标点符号、各类虚词、停顿词等,得到一个词的列表文件。详细的处理过程参照文档预处理类DataPreProcess.java。具体步骤如下:1) 英文词法分析,去除数字、连字符、标点符号、特殊字符,所有大写字母转换成小写,可以用正则表达式 String res=line.split(“a-zA-Z”);2) 去停用词,过滤对分类无价值的词;3) 词根还原stemming,基于Porter算法3.22 特征降维模块文本预处理将语料库中出现的绝大部分词条作为文档的特征项,形成特征向量空间,致使原始特征空间的维数非常大,势必会增加机器学习的时间和空间的复杂度。因此

21、,需通过特征降维实现对原始特征集的空间降维处理,以便提高文本分类系统的工作效率。该模块将原始特征集合中的特征词条按照特征提取方法进行计算评价,最后选出前N个(预定数目)个权重值最大的特征词构成特征集合。在提取特征词时,首先统计所有文档中出现不重复的单词的数目,通过两种策略选取特征词。策略一:可保留所有词作为特征词;策略二:选取出现次数大于等于4次的词作为特征词。统计结果如下: 出现次数大于等于1次的词有87554个 出现次数大于等于2次的词有49352个 出现次数大于等于3次的词有36456个 出现次数大于等于4次的词有30095个保留所有词作为特征词 共计87554个选取出现次数大于等于4次

22、的词作为特征词共计30095个 文本分类模块(1)朴素贝叶斯分类器朴素贝叶斯分类器有两种模型 :1) 多项式模型(以单词为粒度)类条件概率P(tk|c)=(类c下单词tk在各个文档中出现过的次数之和+1)/ (类c下单词总数+训练样本中不重复特征词总数)先验概率P(c)=类c下的单词总数/整个训练样本的单词总数 2) 伯努利模型(以文件为粒度)类条件概率P(tk|c)=(类c下包含单词tk的文件数+1)/(类c下单词总数+2)先验概率P(c)=类c下文件总数/整个训练样本的文件总数 由于多项式模型分类准确率较高,故本文的朴素贝叶斯分类器采用多项式模型。(2)KNN分类器KNN算法描述:1) 文

23、本向量化表示,由特征词的TF*IDF值计算;2) 在新文本到达后,根据特征词确定新文本的向量;3) 在训练文本集中选出与新文本最相似的k个文本,相似度用向量夹角余弦度量,计算公式为:一般采用先设定一个初始k值,然后根据实验测试结果调整k值,本文中取k=20。4) 在新文本的 K 个邻居中,依次计算每类的权重,每类的权重等于K个邻居中属于该类的训练样本与测试样本的相似度之和;5) 比较类的权重,将文本分到权重最大的那个类别中。 测试评估模块(1)朴素贝叶斯算法实现在java编程实现中,包含两大类:贝叶斯算法类(NaiveBayesianClassifier.java)与测试集与训练集创建类(Cr

24、eateTrainAndTestSample.java)。其中,分类器主类如图3所示图3:朴素贝叶斯分类器主类Java代码注解:1)计算概率用到了BigDecimal类实现任意精度计算;2)用交叉验证法做十次分类实验,对准确率取平均值;3)根据正确类目文件和分类结果文计算混淆矩阵并且输出;4)Map<String,Double> cateWordsProb key为“类目_单词”, value为该类目下该单词的出现次数,避免重复计算。朴素贝叶斯分类器分类结果(混淆矩阵)如图4所示:图4:贝叶斯分类法分类结果的混淆矩阵表示(2)KNN算法实现在java编程实现中,包含两大类:文档向量

25、计算类(ComputeWordsVector.java)和KNN算法实现类(KNNClassifier.java)。分别如图5和图6所示:图5:文档向量计算类Java代码注解:1)计算IDF非常耗时,3万多个词的属性词典初步估计需要25个小时;2)可以先尝试所有词的IDF都设成1的情况。图6:KNN分类器主类Java代码注解:1)用TreeMap<String,TreeMap<String,Double>>保存测试集和训练集;2)注意要以"类目_文件名"作为每个文件的key,才能避免同名不同内容的文件出现;3)注意设置JM参数,否则会出现JAVA h

26、eap溢出错误;4)本程序用向量夹角余弦计算相似度。 KNN算法的分类结果(混淆矩阵)如图7所示:图7:KNN分类器的分类结果表示3.3 实验结果分析(1)贝叶斯分类结果与分析由不同的特征提取策略,可得贝叶斯分类器结果如下:方法一:取所有词作为特征词,共87554个。做10次交叉验证实验,平均准确率78.19%,用时23min,第6次实验准确率超过80%;方法二:取出现次数大于等于4次的词作为特征词,共计30095个。做 10次交叉验证实验,平均准确率77.91%,用时22min,第6次实验准确率超过80% 。结论:朴素贝叶斯算法不必去除出现次数很低的词,因为出现次数很低的词的IDF比较大,去

27、除后分类准确率下降,而计算时间并没有显著减少。(2)KNN分类结果与分析由于KNN分类算法的复杂度较高,若选取所有词作为特征词进行分类实验,则所需时间较长,为了适当提高分类效率,考虑提取出现次数不小于4次的词作为特征词,分类结果如下: 取出现次数大于等于4次的词共计30095个作为特征词: 10次交叉验证实验平均准确率78.19%,用时1h55min,其中有3次实验准确率超过80%。(3)两种分类算法的性能比较在相同的硬件环境下,贝叶斯分类算法和KNN分类算法经比较,可知:在分类准确率方面,KNN算法更优;在分类速度方面,朴素贝叶斯算法更优。4、结论本文首先对文本分类的相关技术做了详细的介绍,

28、然后针对文本分类系统中的特征提取过程和算法进行了进一步的研究与探讨。对特征降维模块中常用的特征提取方法,如文档频率(DF)、信息增益(IG)、互信息(MI)、分布、TF-IDF,进行了系统的理论概述;对常用的分类算法(如朴素贝叶斯算法、KNN算法和支持向量(SVM))的原理进行了详细的描述。最后通过采用Newsgroups18828数据源以及java软件环境搭建文本自动分类的实验平台,证明了文档频率(DF)和TF-IDF特征提取方法的有效性,并对朴素贝叶斯分类算法和KNN分类算法的实验结果进行比较,得出结论:在分类准确率方面,KNN算法更优;在分类速度方面,朴素贝叶斯算法更优。本文存在的不足之处是并未验证信息增益(IG)、互

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论