.Syv407 { display:none; } 基于朴素贝叶斯算法文本分类器的设计与实现( 论文 12900字) 【摘要】因计算机与网络技术的快速发展与日益完善,人们获取信息的方式也产生了极大的改变,互联网络已成为获取信息的主要方式
但是人们获取的数据信息很大比例是没有有效组织和管理的文本数据,也因此,作为能够有效组织和管理文本信息重要基础的文本分类越来越受人们的青睐
海量的信息使得人们完全不能简单靠人工来处理所有的信息,因而人们需要一些能帮助人们更好地发现、过滤和管理这些复杂信息资源的辅助工具
而通过文本分类这一方法的辅助工具来实现这一目的就是一个很好、很便捷的途径
而所谓的文本分类就是一种对信息资源进行划分到一个或者预先定义好的类的方法
而该种方法依据不同的需要可以形成多种不同的明细方法,而本文所要介绍的朴素贝叶斯文本分类就是基于贝叶斯定理的一种分类方法,同时对在传统的贝叶斯文本分类上进行改进以使该文本分类方法能发挥出更大的作用
除此,本文还对基于朴素贝叶斯的文本分类的过程以及其测试作了一个详细说明,并且用c#语言在vs2008平台上设 计和使用了基于朴素贝叶斯的(中文)文本分类算法系统
这份报告表明:截至2011年6月,我国的网民比上年年底增加2770万人,达到了4.85亿的规模;与去年相比,我国互联网普及率提高了1.9个百分点,攀升至36.2%
手机网民的快速增长则是该报告的另一重点:我国的手机网民比2010年年底增加了1494万人,达到了3.18亿规模
与此同时,我国的域名总数和网站数目也在持续下降:截至2011年6月底,我国域名总数为786万个;域名注册者在中国境内的网站数(包括在境内接入和境外接入),为183万个
中国互联网络信息中心的这一统计报告说明:我国的计算机技术与网络技术的迅速发展,互联网的应用越来越广泛,互联网已经成为人们收集信息的主要途径
同时也给我们带来一个难题:面对如此海量的以文本数据为主的网络信息,我们如何能够有效地组织和管理,并对其进行自动分类,同时还能够快速、准确、全面地从信息海洋中取出我们所需要的信息
因此,对文本自动分类的研究也越来越活跃
而文本分类系统作为一种组织工具对文本数据进行归类,可以为信息检索提供更高效的搜索策略和更精确地查询结果,并在检索查全率和准确率提高的同时有利于人们更好地发现、过滤和分析获取所用的信息资源
所以说文本分类是信息检索和文本挖掘的重要基础,因此也就凸出建立文本自动分类系统的重要性和必要性
相比较而言,本文介绍的朴素贝叶斯(中文)文本分类在所有的贝叶斯文本分类方法中是最常用的文本分类方法
而基于朴素贝叶斯的“独立性假设”,使得它更适用于处理多属性的分类任务,并且在某些领域它的性能能够远远超过譬如决策树、神经网络、KNN、支持向量机等算法
1.2研究现状 国外文本分类主要经历了四个发展阶段: 首先是1958年到1964年
这6年是探索研究文本自动分类的可行性一段时间
在这段时期内,相继出现H.P.Luhn和Maron等人:前者是这个领域开创性研究的急先锋,后者(在1961 年发表了有关自动分类的第一篇论文)则是该领域的引导者
其次是1965年到1975年
文本分类的提出使得很多人对其开始研究,使其发展有了动力,然而理论始终不能提供可信度高的数据信息,因此对文本自动分类的实验进行研究则成为了必然
因为对文本自动分类的实验研究不断深入以及文本信息越来越繁复,使得文本自动分类开始进入实用,而对文本自动分类要求的不断的提高从而促使其不断完善
在这两段时期内,已经出现经实验到实用的文本分类方法——知识工程的方法,即利用专家规则来进行分类
在知识工程方法出现之前还有一种分类算法——词匹配法,它是最早被提出的分类算法
知识工程方法相对于词匹配法提高了准确率,然而人力成本大幅提升和其完全不可具有推广性使其发展大大受到了制约
最后则是1990年至今
互联网的发展使得传统的文本分类系统很难适应网络文本信息,因而面向互联网的文本自动分类则成了文本分类的又一研究热点
近些年来,对网络内容管理、监控和有害信息过滤的需求随着互联网技术的迅速发展和普及变得越来越大,与此同时网络信息的主观倾向性分类受到越来越多的关注
因而这个时期运用的文本分类方法已经由知识工程方法被取得丰硕成果的统计方法和机器学习的方法所取代
目前,统计学习法是文本分类的主流方法,虽然它也需要人工进行准确分类的文档作为学习的材料,但很多统计学习法都有着坚实的理论基础作支持,并且有着评价标准明确和实际表现良好的优点
〖资料来源:56DOC.COM 毕业设计(论文)网〗 相较于国外的文本分类的发展,国内的发展从时间上来说是滞后于国外的
我国的文本分类技术发展起步于20世纪80年代,经过30多年的发展,我国的文本分类技术取得了巨大的进步——从30年前的可行性研究到如今的面向互联网文本分类的应用的巨大转变
自1981年侯汉清教授对于计算机在文本分类工作中的探讨后,国内逐渐开始了对文本自动分类技术的研究并取得了较大成果
由于中英文存在着较大差异,国外的研究成果无法直接参照,因为中文文本不像英文文本那样:单词间有空格
因此,中文文本的分类就需要分词,而分词的好坏也影响着文本分类的结果
而如今,中文分词的技术也已日趋成熟,其中较好的主要是中国科学院计算技术研究所研制的汉语词法分析系统ICTCLAS
利用该分词系统便可建立一个简单、有效的文本分类系统
2 文本分类技术 2.1 文本分类 文本自动分类就是在给定一个或者预先定义好的类的情况下,对信息资源进行划分的一种方法
文本分类的目的就是对错综复杂的文本信息资源能够有效组织和管理,同时对其中具有关联性的文本信息进行整合分类,使文本信息能达到物尽其用
文本分类系统的任务可简单定义为:对于给定的分类体系,文本分类系统自动确定与文本具有关联性的类别必须依据文本的内容
如果用数学语言来描述文本分类系统的任务,那么可以这样形容:文本分类就是映射过程,它既可以是一一映射,也可以是一对多映射
当遇到新文本时,确定它所属的类别只需根据总结出的类别判别规则
对文本分类系统的任务和文本分类的映射规则用数学语言来进行演示,作如下定义: 已知集合:A= 和B= 则 = 使得任意 A仅有一个 B得 成立
(不考虑模糊数学里的模糊集情况)其中A叫做类别集合,其中每一个元素是一个类别,而B叫做项集合,其中每一个元素是一个待分类项,f叫做分类器
分类算法的任务就是构造分类器f
在文本分类中有两大类的学习方式:有监督学习和无监督学习
所谓有监督学习 就是利用一组已知类别的样本调整分类器的参数,使其达到所要求性能的过程,也称为监督训练
计算机要通过学习才能具有识别各种事物和现象的能力
而用来进行学习的材料就是与被识别对象属于同类的有限数量样本
监督学习中在给予计算机学习样本的同时,还告诉计算各个样本所属的类别
任何一种学习都有一定的目的,对于模式识别来说,就是要通过有限数量样本的学习,使分类器在对无限多个模式进行分类时所产生的错误概率最小
不同设计方法的分类器有不同的学习算法
对于贝叶斯分类器来说,就是用学习样本估计特征向量的类条件概率密度函数
在已知类条件概率密度函数形式的条件下,用给定的独立和随机获取的样本集,根据最大似然法或贝叶斯学习估计出类条件概率密度函数的参数
在类条件概率密度函数的形式未知的情况下,有各种非参数方法,用学习样本对类条件概率密度数进行估计
因本文采用的是有监督学习,所以对无监督学习则不加讨论
2.2 文本分类过程 文本分类一般包括了文本的表达、 分类器的选择与训练、 分类结果的评价与反馈等过程,其中文本的表达又可细分为文本预处理、索引和统计、特征抽取等步骤
文本分类系统的总体功能模块为: (1) 文本预处理:将原始语料格式化为同一格式,便于后续的统一处理,这是文本分类的首要步骤
而在中文文本分类中,中文分词则处于这个首要步骤的核心位置,因此,在文本预处理是中文分词系统的选择显得尤为重要
(2) 文本索引:将文档分解为基本处理单元,同时降低后续处理的开销
文本索引是将文本转化为计算机易于识别并进行处理的表现方式
空间向量是最为常用的方法
(3) 统计:对已经处理好的文本进行词频统计,并对与分类相关的项进行概率计算
(4) 特征抽取:对能够反映文本主题的特征项进行抽取并计算与分类类别相关的概率
(5)分类器选择与训练:分类器的训练
分类器的选择与训练是文本分类中的一个核心
而利用一定学习算法对训练样本集进行统计学习,从而得出分类器各个参数,进而达到对训练集进行学习训练并建立自动分类器的目的
利用已经好建立的分类器,对测试文本集进行分类测试
完成训练和测试后,记录测试数据和训练数据,用已经选择好的的评价指标对分类器的性能进行评价
如果分类性能不符合要求,需要重复前面步骤重新实验
按以上所述,文本分类需要经过三个阶段: 第一阶段——准备工作阶段,这个阶段的任务是为文本分类作必要的准备,主要工作是根据具体情况确定特征属性,并对每个特征属性进行适当划分,然后由人工对一部分待分类项进行分类,形成训练样本集合
而分类器的质量很大程度上就是由 特征属性、特征属性划分及训练样本质量决定
然而在整个文本分类中,这是唯一一个需要人工完成的阶段,而它的完成质量也决定了整个文本分类完成的质量
第二阶段——分类器训练阶段,这个阶段主要工作是计算每个类别在训练样本中的出现频率及每个特征属性划分对每个类别的条件概率估计,并将结果记录,进而生成分类器
而这一阶段工作相对于前一阶段而言则较为简单,因为该阶段是机械性阶段,只需要根据公式便可以由程序自动计算完成
第三阶段——应用与评价阶段
这个阶段的任务是使用分类器对待分类项进行分类,并对其进行评价
该阶段输入的是已经训练好的分类器和测试需要待分类文本集,输出是文本集与类别的映射关系
这一阶段完全由程序完成,也是机械性阶段
然而由于语料库中的文本在存储格式有差异、文档的完整性上有缺失、对存在重复文档未处理……存在一些问题,为了提高分类性能,避免这些问题影响文本分类系统的后续工作,因此对语料库进行预处理工作必不可少,对其中的噪音信息必须去除,将不规范的内容进行调整,使其满足文本分类输入数据要求
而这其中,中文分词相对中文文本分类的重要性不言而喻
中文文本不像英文文本那样:单词间有空格,因而对中文文本分词必须要进行分词
分词的好或坏对后续文本分类有着很大的影响,因此,选择一个相对很好的中文分词系统在对文本分类的结果和评价上就占着举足轻重的地位
本文所选用的中文分词系统是中国科学院计算技术研究所研制的汉语词法分析系统ICTCLAS(Institute of Computing Technology, Chinese Lexical Analysis System)
ICTCLAS主要功能包括中文分词;词性标注;命名实体识别;新词识别;同时支持用户词典,而所有的这些功能模块均可拆卸组装
ICTCLAS有GB2312和BIG5两个版本,支持当前广泛承认的分词和词类标准并可分别处理简繁体中文
除上面所述,ICTCLAS还支持Linux、FreeBSD及Windows系列操作系统和C/C++/C#/Delphi/Java等主流的开发语言,这源于ICTCLAS全部采用C/C++编写
而该系统不仅(ICTCLAS1.0)在国内973专家组组织的评测中独占鳌头,而且(ICTCLAS2.0)在第一届国际中文处理研究机构组织的评测中大放异彩,囊括了多项第一名
而基于PDAT大规模知识库管理技术的ICTCLAS3.0则是当前世界上最好的汉语词法分析器:他的分词单机速度则达到了996KB/s,分词精度为98.45%,API则不超过200KB,各种词典数据压缩后不到3M
文本分类的评价标准类似于信息检索的评价标准,包括精度(查准率) 、召回率(查全率) 和F1 测试值
精度是采用文本分类方法分类的正确文本数与实际分类的文本数的比率,即 召回率是采用文本分类方法分类的正确文本数与分类应有的所用文本的比率,即 F1 测试值综合考虑了准确率和查全率这两个不同的方面,其公式如下: 3 朴素贝叶斯分类模型 朴素贝叶斯分类算法是建立在贝叶斯理论基础上的分类方法,它是贝叶斯分类方法中最常用的分类方法,是一种简单且非常有效的统计分类方法
3.1贝叶斯理论 贝叶斯方法提供了一套将外部客观信息融入数据分析过程中的原理方法
这个分析过程是先给出一个待分析数据集的概率分布
因为这个分布是没有考虑任何数据而给出的,所以称为先验分布
这个新的数据集将先验分布修正后得到后验分布
贝叶斯定理就是在知道新的信息后修正数据集概率分布的基本工具
相对于条件概率,P(B)可称为无条件概率(也称为先验概率)
条件概率的公式为: 注意:条件可以在任何一个中发生: P(AB)=P(A|B)P(B)=P(B|A)P(A) 贝叶斯定理 假设样本空间S 被分成一个含有n 个互斥事件的集合,每个事件称为S 的一个划分: 考虑S 中的一个任意事件B,如下图所示: 图3-1 事件B 可以写成由n 个不相交(互斥)事件BA1,,BA2,..., BAn 组成,记为: 这隐含了全概率定理: 用全概率定理和条件概率的定义可以得到贝叶斯定理: 贝叶斯公式提供了从先验概率P(A)、P(B)和P(B|A)计算后验概率P(A|B)的方法:P(A|B)= P(B|A)* P(A)/ P(B) ,P(A|B)随着P(A)和P(B|A)的增长而增长,随着P(B)的增长而减少,即如果B独立于A时被观察到的可能性越大,那么B对A的支持度越小
在候选假设集合H中寻找给定数据D时可能性最大的假设h,h被称为极大后验假设(MAP),确定MAP的方法是用贝叶斯公式计算每个候选假设的后验概率,计算式如下: (h H) 最后一步,去掉了P(D),因为它是不依赖于h的常量
在某些情况下,可假定H中每个假设有相同的先验概率,这样式子可以进一步简化,只需考虑P(D|h)来寻找极大可能假设
= argmax P(D|h) (h H), P(D|h)常被称为给定h时数据D的似然度,而使P(D|h)最大的假设被称为极大似然假设
3.2朴素贝叶斯分类器 3.2.1 朴素贝叶斯分类的前提 朴素贝叶斯是基于一个简单假设所建立的一种贝叶斯方法,朴素贝叶斯假定样本的不同特征属性对样本的归类影响时相互独立的
即此时若样本A中同时出现特征Ai与Ak,则样本A属于类别Cj就的概率为: 其中的i,j,k都是整数
3.2.2朴素贝叶斯分类器 每个数据样本用一个n维特征向量 表示,分别描述对n个属性A1,A2,…An样本的n个度量
而通过MAP最可能获得的类标号c(x)为: (c ) 其中c是类集合C中的某一个类别
从上面的公式中可以看出,求c(x)主要就是求两个概率
其中 的值相较于 而言要容易的多,即 计算其中si是类Ci中的训练样本数,而s是训练样本总数,也就是每个标记类c出现在训练样本集中的频率
而对于求 ,根据前面讨论的朴素贝叶斯分类前提可知 个属性间是相互独立的,所以 的概率计算就是对每个属性属于类集合C中某个类的乘积,即 : = 因此可得朴素贝叶斯分类器的公式为: (c ) 而有了条件独立性假设,就不必计算X的每一个组合的类条件概率,只需对于给的类别,分别计算每个 的条件概率即可
3.3朴素贝叶斯文本分类算法 假设 为任意文本,集合C= 是类集合, 是 文本中的特征项
朴素贝叶斯文本分类系统的任务就是在给定分类体系后,根据文本内容自动确定与文本关联最紧密的类别
所以要确定 与类集合C= 中某类 关联紧密程度就是确定 属于类集合C= 的概率P= ,其中 则是 属于 的概率值,因而不难确定max 值的获得,也就是文本 确定为类集合C= 哪一个类别的结果
根据朴素贝叶斯文本分类的假设前提,即 之间是相互对立的特征属性,则 =
而对于要求出c( )则又要用到极大后验概率假设,即 c( )= (c ) 也就是 c( )= (c )
而朴素贝叶斯文本分类算法中关键就是计算 的值,而对于计算出这两个概率,还可以更简单点理解为 在两个公式最后面的公式则是在 =0和 在 类别文档中出现的次数为零时的是一种平滑处理
对计算 值的过程也就是朴素贝叶斯分类器学习的过程,并且能够对 的计算得出后验概率,从而得出最大后验概率假设的类别
3.4朴素贝叶斯分类器的改进 本文的朴素贝叶斯文本分类主要是利用绝对词频来对特征项进行统计计算,因此朴素贝叶斯分类器也就存在着:有些高频词区分能力弱,而有些低频词区分能力强,但是绝对词频却主要体现高频词的区分能力,因而这样就使得朴素贝叶斯文本分类的结果存在偏差甚至出现错误
为解决这一问题,采用TFIDF算法使得区分能力很强得低词频特征项能够获得较高的频率,从而体现其较强的区分能力
假设文本D= 是文本中的一个特征项(1≤i≤m)
变量说明如下: 表示特征项 在文本 中出现的频数; 是训练样本集中出现特征项 的文档数;N是训练样本集中总的文档数
这个数字是对词数(term count)的归一化,以防止它偏向长的文件
(同一个词语在长文件里可能会比短文件有更高的词数,而不管该词语重要与否
)对于在某一特定文件里的词语 来说,它的重要性可表示为: 以上式子中以上式子中,分母则是在文件 中所有字词的出现次数之和
在绝对词频方法中,主要体现是高频特征项的区分能力,而无法体现低频特征项的区分能力,因为有些特征项频率虽然很高,但分类能力很弱;而有些特征项虽然频率较低,但分类能力却很强
(2)TF-IDF TF-IDF(term frequency–inverse document frequency)是一种用于信息搜索和信息挖掘的常用加权技术
TF-IDF的主要思想是,如果某个词或短语在一篇文章中出现的频率TF高,并且在其他文章中很少出现,则认为此词或者短语具有很好的类别区分能力,适合用来分类
IDF反文档频率(Inverse Document Frequency)的主要思想是:如果包含词条的文档越少,IDF越大,则说明词条具有很好的类别区分能力
然后 某一特定文件内的高词语频率,以及该词语在整个文件集合中的低词语频率,可以产生出高权重的TF-IDF
因此,TF-IDF倾向于过滤掉常见的词语,保留重要的词语
4 朴素贝叶斯文本分类设计与实现 在对分类器介绍之前,先对整个文本分类设计与实现的整体进行介绍
整体结构图如下: 图4-1 4.1系统的实现 本章运用前面的关键技术,使用C#语言,在vs2008平台设计并实现了一个朴素贝叶斯(中文)文本分类系统
本系统主要有三个部分组成:文件、训练模型和测试分类显示
通过实验例子来展示一下系统三个模块,模块界面如下: 图4-2 图4-3 图4-4 以上三幅图是本文实现的朴素贝叶斯中文文本分类器的工作截图,其中图4-1是对训练文本集的预处理的部分结果显示;图4-2是在选择了训练模型后训练集在给定的分类类别下的分类结果;图4-3是对已经训练好的分类器进行的测试(单一文本)结果显示
分词处理:主要是对训练文本进行中文分词以及获取中文文本的特征变量向量
停词处理:对文本中的常用词、连接词等进行去除以达到降维
在 图4-2界面中的模块功能如下: 训练选项:这是对训练集数据的选择,因为在前期训练集数据的不同对人工分类的工作带来的要求不同,在后期对计算机处理的时候也对存储和计算资源提出了不同的要求,训练数据量越大,要求越高
模型选择:选择的模型不同,对文本分类的结果也就会不同
当然,这样也是对两种模型的一种比较
在 图4-2界面中的模块功能如下: 这一界面则是对分类结果以及对朴素贝叶斯分类器性能的评估的显示
通过观察显示的结果就能清楚分类器分类结果是否达到原本的要求
本文对中文分词处理以及对停用词的处理之后,就是对特征项的统计
假设文本集D= 为D中任意一个文本,集合C= 是类集合, 是 文本中的特征项, 是 在 中出现的次数, 是D= 中文本 在类别 中出现的所有的词的次数,则 , 中出现的所有的词的次数=
因此 而当分母为零时,该式则会失去意义,所以在分母、分子上分别加上出现的不同词的次数和1
P = 同上式,当分母为零时,则分别在分子、分母加1和
最后则是对 (c ),进行比较,选出其中最大的一个从而也就确定文本分类的类别
5 实验设计及结果比较 本章是对已经设计的朴素贝叶斯文本分类器的检验
通过对文本数据的检验,一方面可以对已有的分类器存在的错误漏洞进行修改补漏,另一方面可以通过实验数据来说明已实现的分类器对文本的分类性能的优劣,所以对分类器进行实验是非常必要的
5.1语料库 本文所选择实验数据是Sogou实验室的mini版文本分类语料库实验数据,该版本实验数据大小为136KB,分为汽车、财经、IT、健康、体育、旅游、教育、招聘、文化、军事十个类别,每个类别各有十篇txt文本,共有100篇文本
为了在较短时间内能得出结果,本实验只选择前面四个类别的文本进行实验,即汽车、财经、IT、健康
而对所选择的数据进行实验时也有两种选择,一是用所有数据进行训练,另一种则是对所选数据交叉验证后再进行实验
本文则侧重用所有数据进行实验
其次,则是对文本分类进行预处理,同样选择朴素贝叶斯训练模型
最后,则是分别计算两次处理结果的F1测试值并比较两次F1测试值
实验结果如表5-1所示: 未进行预处理的朴素贝叶斯分类 进行预处理的朴素贝叶斯分类 精准率 75.0% 87.5% 召回率 50.0% 58.33% F1值 60.0 % 70.0% 表5-2 通过表5-2中的数据比较发现对文本数据进行了预处理后分类性能明显比为进行预处理的高的多,所以对文本分类进行预处理是非常重要的
而对文本分类进行预处理也要注意降维,这样能提高分类器的效率
本文则是通过对文本中的常用词、感叹词、转折连词等进行了过滤处理,这样就能够达到降低维数的目的
5.3实验2:改进的贝叶斯模型与经典贝叶斯模型的比较 同5.2中处理过程,在本实验中则是选择进行预处理从而对不同的训练模型进行实验,得到实验数据进而比较二者的优劣
首先,是对传统的朴素贝叶斯分类器进行实验,得到结果并记录
〖资料来源:毕业设计(论文)网 WWW.56DOC.COM〗 其次,则是对改进的朴素贝叶斯模型进行实验,得到的结果记录
最后,则是对二者的F1测试值进行计算并比较
本次实验数据结果如表5-3所示: 未改进的朴素贝叶斯分类模型 改进的朴素贝叶斯分类模型 精准率 75.0% 97.5% 召回率 50.0% 65.0% F1值 60.0% 78.0% 表5-3 观察上表可知,两种模型的结果相差较大
这是因为在未改进的朴素贝叶斯分类模型中,对可能影响文本分类的一些关键词的作用削弱,进而影响到分类的结果
而改进的朴素贝叶斯就是对这种情况的改良:对文本分类影响较大但是本身的频数又较低的文本向量进行权重的提高,从而对文本分类起到它本身应起到的作用
通过对两种不同情况的比较,能够对文本分类器的性能提高有鞭策作用
5.4实验小结 1、本文针对预处理做实验,主要旨在说明中文文本分类中预处理的重要性以及它的不可替代性
假设现有文本要进行分类,通过传统的朴素贝叶斯分类器进行分类,不进行任何的预处理,那么分类器首先要做的就是对整篇文本进行逐字读入,然后直接进行频数等一系列的计算
但是这样的分类包含有太多的不确定性,例如:“我”、“,”、“1”等等这些不带有明显特征的词也被当作了文本的特征向量进行了计算并被当作分类的一个依据;与此同时,像一些关联性很强并且对文本的分类起着关键作用的字词,文本的分类器又对其进行拆解,例如:“汽车”、“中国”等等,如此,使得分类器性能降低的很是明显
因而,对于文本分类而言,预处理是非常必要的,而且是必不可少的一部分
通过分词,分类器可以获取文本分类所需的文本向量,并且在分词的过程中不会出现对关联性很强的字被拆解
关联字不被拆解是分词带来的一方面好处,另一方面则是对文本向量进行了第一次的降维
而在分词之后,就是对分类器已经获得的文本向量进行过滤,即停词处理
在本文中,停词处理主要是对文本向量进行降维,从而使得文本向量转变成特征向量
停词处理主要是用stopwords.txt对所有的文本向量进行过滤,主要的步骤就是:对需要过滤的词放进stopwords.txt中,然后调用StopFilter(result, CHINESE_ENGLISH_STOP_WORDS)就可实现停词处理,其中StopFilter是调用的方法,result是一个存放结果的字符串数组,CHINESE_ENGLISH_STOP_WORDS是存放stopwords.txt的字符串数组
图4-2就是对文本分类预处理的结果
2、对于不同模型的实验,主要是对传统的朴素贝叶斯分类器和基于它改进的分类器的比较
传统的朴素贝叶斯对每个特征向量的频数、频率计算就是对每一个特征向量的次数进行单纯的计算,即ret *= ccp.CaculatePxc(Xi, Cj)
其中ret是特征向量的条件概率结果,ccp.CaculatePxc(Xi, Cj)是每一个特征向量在其所在类的概率
传统的朴素贝叶斯分类器的这一处理方式是对其中一些特征向量ccp.CaculatePxc(Xi, Cj)较低,但是对文本的分类具有很重要的作用的特征向量的放弃
因此,针对这一情况,对其改进,即ret *= Math.Log(tdm.GetTrainFileCount() / (tdm.GetCountContainKeyOfClassification(Cj, Xi) + 1), Math.E),其中tdm.GetTrainFileCount()是应有分类的总文本数,tdm.GetCountContainKeyOfClassification(Cj, Xi) + 1是含有Xi这一特征向量的Cj类的文本数,二者取商然后以自然对数E为底取对数
通过idf的计算,这样就使得一些关键的特征向量的ret相对的提高,这样就使得每一个特征向量不会因其绝对频数低而降低其作用
而互联网呈现在我们面前的信息资源则是五花八门,包罗万象,如何对错综复杂的信息进行有效地组织和管理,分门别类并且能够准确、全面、快速地找出用户所需的信息已成为一个具有很重要的研究课题
文本分类在这方向有着重要贡献,它是根据文本的特性,在预先定义好的分类体系下,将给定的文本分类到一个或多个类别中,从而能够对纷繁复杂的信息进行有效组织和管理以满足人们对信息的准确获取
本文主要讨论的是基于朴素贝叶斯的中文文本分类系统,主要介绍的三个方面工作: 1. 首先介绍了文本分类技术,并对其中的重要技术进行了分析,包括:文本的定义、文本的分类过程、文本分的评估及方法
2. 其次则是对贝叶斯理论以及朴素贝叶斯的分析,包括:先验概率和后验概率、极大后验概率假设和极大似然假设、朴素贝叶斯分类器、朴素贝叶斯算法
3. 在以上讨论基础上,最后实现基于朴素贝叶斯的中文文本分类算法的分类系统
为了能够进一步提高朴素贝叶斯中文文本分类算法的性能,在今后的工作中努力寻找能够衡量特征相关性的方法,在最大程度满足朴素贝叶斯的独立性假设的同时,也能对中文文本分类中词或词组的相关性有个有效的解决方案
2. 而在朴素贝叶斯中文文本分类算法中,主要是通过特征向量来计算文本属于类集合中某类的概率,所以在使用某个特征向量在某个类别训练文档中出现的次数来估计概率时,唯有通过对大量的训练样本进行训练的情况下才可以比较准确的得出,而大量的训练样本不仅给前期人工分类的工作带来很高的要求 (从而成本上升),而且后期由计算机处理也会对存储和计算资源提出了更高的要求
针对这一问题,对在朴素贝叶斯中文文本分类系统中如何进行降维则是有一挑战
3. 对目前已经设计实现的系统进行进一步的完善,从而提高其查全率和查准率