朴素贝叶斯方法在中文文本分类中的应用

  • 格式:pdf
  • 大小:1.37 MB
  • 文档页数:4

Technology First 科技创新

·57·中国高新科技 2018年第43期朴素贝叶斯方法在中文文本分类中的应用摘要:采用jieba分词库的tf-idf标准进行分词、数据清理、停用词过滤,并利用向量空间模型实现了基于朴素贝叶斯的文本分类模型。关键词:中文分词;文本分类;朴素贝叶斯文章编号:2096-4137(2019)07-057-04 DOI:10.13535/j.cnki.10-1507/n.2019.07.05■ 文/王艺颖

0 引言分类是数据分析和机器学习领域的一个基本问题。文本分类已广泛应用于网络信息过滤、信息检索和信息推荐等多个方面。数据驱动分类器学习一直是近年来的热点,方法很多,比如神经网络、决策树、支持向量机、朴素贝叶斯等。相对于其他精心设计的更复杂的分类算法,朴素贝叶斯分类算法是学习效率和分类效果较好的分类器之一。直观的文本分类算法,也是最简单的贝叶斯分类器,具有很好的可解释性,朴素贝叶斯算法特点是假设所有特征的出现相互独立互不影响,每一特征同等重要。但事实上这个假设在现实世界中并不成立:首先,相邻的两个词之间的必然联系,不能独立;其次,对一篇文章来说,其中的某一些代表词就确定它的主题,不需要通读整篇文章、查看所有词。所以需要采用合适的方法进行特征选择,这样朴素贝叶斯分类器才能达到更高的分类效率。本文先利用jieba对原始文本进行分词,并进行数据清洗和停用词过滤。再根据一定规则选择特征词之后,结合朴素贝叶斯模型训练文本分类模型,在搜狗新闻分类数据上测试,与其他机器学习方法相比,取得了较高的结果。1 中文文本预处理1.1 中文文本分词无论是在汉语还是英语中,词一般都代表最小的语义单位,所以为了便于对语言信息处理,句子一般需要被划分成词再进行后续的分析和处理。中文文本分词与英文文本分词有所不同:英文文本分词可以使用空格和一些标点符号进行分词,但中文文本分词没有这样的空格,需要根据语义进行切分。由于汉语单字可以前后连接成多个单词,汉语将面临更多的歧义(一词多义)和未登录词(一些单词不在字典中)识别等问题,所以分词的难度系数很大。本文使用jieba工具完成中文文本的分词。jieba是一个基于Python的中文分词器,现在是一个流行的开源分词器,内部有多个算法,支持多种模式进行分词,并可以利用隐马尔可夫模型和维特比算法解决部分未登录词问题。其分词准确率高达97%,未登录词的召回率高达90%。1.2 数据清洗数据清洗是指发现并纠正数据文件中可识别的错误的一个步骤,包括检查数据的一致性,处理无效值和缺失值等。对数据质量的判断一般基于3个方面:准确性(accurate)、完整性(complete)、一致性(exact)。在当今互联网时代,对文本数据来说,来源广泛,易获得,但质量参差不齐。比如,网上的文本之间可能格式不一致,存在链接地址、表情符号、大量空格空行、日期与时间等等。一般来说,需要针对这些问题分别做数据预处理,如删除空行和空格,替换因编码格式带来的空格不一致问题、查找链接地址并删除、替换大小写英文字母、删去标点符号和某些无关的数字等等。而对某些英文语料,可能还需要进行次干还原的方法,做进一步处理。1.3 去除停用词去除停用词可以大大减小特征词的数量,进而提高文本分类的准确性。停用词主要有两种类型:一是人类语言中包含的功能词。这些功能词非常常见,类似虚词,与其他词相比,没什么实际意义。比如英语中的the、is、at、which、on等;另一类词是词汇词,比如want等。对中文来说,包括像“的”“和”“在”“是”等副词、量词、介词、叹词、数词。对文本分类来说,这些词汇几乎在所有文本中都会出现,不具有特殊性,没有区分度,反而会稀释那些有区分度的词,所以通常会把这些词从问题中移去,从而提高分类性能。去除停用词的技术实现并不复杂。需

4月上发网站9.indd 572019/5/17 9:59:52Technology First 科技创新

·58·中国高新科技 2018年第43期要建立一个停用词词典,在分词后将每个词与停止词字典中的条目进行匹配。如果匹配成功,该单词将被删除。举例来说,比如“诚邀您免费办理我们公司的会员卡”。这个句子中的“我们”“的”“您”之类的词非常中性,可以不考虑这些词,可以事先记录在停用词词典中,当再次进行文本分类时,遇到类似的词,与词典中有相应匹配,就可以在分词时直接删除,加快文本分类速率。2 文本特征选择和向量 空间模型文本特征选择是为了提高文本分类的效率,减少计算复杂度。文本特征选择通常通过判断特征词进行。常用的方法有:文档频率、互信息、期望交叉熵等。本文为简单起见,仅使用词频信息作为特征词选择依据。向量空间模型是将文本文件表示为标识符(如索引)向量的代数模型。它适用于信息过滤、信息检索、索引和相关排序。它将文本文件表示为标识符(如索引)向量的代数模型。它适用于信息过滤、信息检索、索引和相关排序。词袋模型是自然语言处理和信息检索中的一个简单假设。在这个模型中,文本(段落或文档)被视为无序的单词集合,忽略了语法甚至单词的顺序。两者在文本领域等价。词袋模型是自然语言处理和信息检索中的一个简单假设,是一种常用的文档表示方法。在该模型中,文本(段落或文档)被视为无序的单词集合,忽略了语法甚至单词的顺序,它假定在文档中,忽略其词序和句法元素,把文档看成是单词的集合,而文档中的每个词的出现相互独立,也就是说,一个文档任意位置的任何词语并不是影响文档的语义和独立的选择,例如,“北京/来自/我”和“我/来自/北京”在词袋模型中是相同的。假设字典D的大小是M,所以这个文档被转换成一个M维向量,如果字典中的某个单词没有出现在文档中,则该单词在向量中的对应元素为0。如果一个单词出现在文档中,那么该单词在向量中的对应元素值就是该单词的编号。这样,文档就被表示为一个向量,可以用于后续计算文本相似度等等各种应用。举例来说,“浙江大学/是/中国/著名/顶尖/大学/之一”这是一个短文本。“/”作为词与词之间的分割,其中包含“浙江大学”“中国”“著名”等词。换句话说,该文本的的词袋由“浙江大学”“著名”等词构成。为使计算机理解文本,需要把文本转化成数字,可以用每个词一个位置/索引的方法。例如,令“浙江大学”的索引为0,“是”的索引为1,其他以此类推,词袋变成了一串数字的(索引)的集合,不同的文本其索引向量不同。3 文本分类模型最常用的分类模型即决策树模型(Decision Tree Model)和朴素贝叶斯模型(Naive Bayesian Model,NBM)。3.1 常用文本分类方法决策树模型通过构造树来解决问题,利用训练数据集来构造一棵决策树,根据不同的分类条件为树分枝,构建完成后,这棵树就可以用来为未知的数据做分类预测了。决策树模型有很多优点:决策树易于使用和高效,规则可以很容易地从决策树中构造出来,且通常很容易解释;决策树可以很好地扩展到大型数据库,其算法复杂度(树的大小)与数据库大小无关;决策树模型的另一个优点是可以为具有许多属性的数据集构造决策树。决策树模型也存在一些不足,如处理数据缺失困难,出现过拟合问题,忽略了数据集中属性之间的相关性。图1是一个决策树的很简单的例子,利用训练集建好该决策树之后,便可以利用这棵树预测新的水果是不是苹果了。

图1 决策树的例子。而朴素贝叶斯方法发源于古典数学理论,有着坚实的数学基础,是一种基于贝叶斯定理和特征条件独立假设的分类方法,应用较为广泛。下式即贝叶斯公式。贝叶斯分类器所需估计的参数很少,对缺失数据不太敏感,算法也比较简单,可解释性强,理论上,与其他分类方法相比具有最小的误差率。对文本进行分类通常是为了创建一个属性模型,对于不相互独立的属性,它们是单独处理的。例如,在对中文文本进行分类和识别时,可以建立一个字典来处理一些短语。如果在特定问题中找到特定的模式属性,则会分别处理。朴

4月上发网站9.indd 582019/5/17 9:59:54Technology First 科技创新

·59·中国高新科技 2018年第43期素贝叶斯算法认为短语是一个单一的属性,词语之间相互独立。属性之间相互独立的这种假设在实际生活中并不一定成立,有时会影响分类结果。属性数量较大或属性之间的相关性较大时,NBC模型的分类效率低于决策树模型。对于文本的分类和识别,决策树取决于具体情况。属性相关性较低时,NBC模型的性能略好。当属性相关性较大时,其他算法表现良好,这是由信息熵理论决定的。有些独立假设在各个分类之间的分布都是均匀的所以对于似然的相对大小不产生影响;即便不是如此,也有很大的可能性各个独立假设所产生的消极影响或积极影响互相抵消,最终导致结果受到的影响不大。此外也有用支持向量机(SVM)等其他机器学习算法进行文本分类的研究,应用较少。3.2 新闻文本分类本实验采用的语料为搜狗实验室文本分类数据,新闻类别包括财经、IT、健康、体育、旅游、教育、招聘、文化、军事9个大类,每篇字数在几百字到上千字不等。将原始数据按照训练集80%、测试集20%的比例划分。最后利用正确率衡量算法优劣,正确率=识别正确的样本数/识别样本总数。对数据的处理按照本文前文所述流程,先对每篇文章进行分词处理,在分词之后清洗数据——删掉标点符号、文章来源链接等无关噪声信息,然后根据事先准备好的停用词表,把其中的停用词去掉,最后按照训练集和测试机的比例分配好,这样原来的文本变成了一个词袋,每一篇文章可以用一个词汇集合表示。在此之后,使用Python自带的Counter函数统计所有词汇,根据需要删除一定比例的出现频率最高的词汇(对去除停用词的一种补充),并将其余词汇标定序号,这样就可以将每一篇文章按照前文所述的向量空间模型表示成一个单词索引表示的向量,方便计算机计算处理。这样原来的文本变成了一个唯一的向量,向量的每一个维度表示唯一词汇。除朴素贝叶斯算法之外,同时还测试了决策树、随机森林和支持向量机3种算法在该新闻分类数据集上的准确率。实验结果如表1所示。表1 几种算法在新闻分类数据集上的表现算法名称准确率朴素贝叶斯0.73决策树0.53随机森林0.32支持向量机0.20可以看到,朴素贝叶斯在该数据集上的表现最好,其他几个算法表现相对较差,支持向量机在该数据集上的表现最差。事实上,支持向量机算法与朴素贝叶斯这种算法有所区别,朴素贝叶斯是一种生成模型,需要建立整个数据的分布(即概率分布p(x,y)),而支持向量机是一种判别模型,只需要建立条件概率分布(即p(x|y)),故支持向量机仅需要看到数据,并在空间中将其完全分开即可。因此,支持向量机算法在数据量比较小时分类效果较差,受噪声数据影响较大,而决策树与朴素贝叶斯这类算法在数据量比较小时分类效果最好,并且可解释性也要远远好于支持向量机等判别模型。而决策树受分类条件影响,需要精心设计分支策略和剪枝策略,比朴素贝叶斯算法复杂。4 研究展望本文介绍的分类方法正如名称一样朴素,是一种基本的方法。随着21世纪社会的进步,更多的分类方法大量涌现。最近几年有许多利用深度学习进行文本分类的研究,并在许多公开数据集和分类任务上都达到最优结果。但深度学习有着巨大的缺点:①是需要大量的数据——深度学习是一个数据驱动型的学科,海量的数据往往与深度学习算法结合能带来巨大的效果提升,但如果数据量不足(比如本文中用到的新闻分类数据集)时,深度学习算法很容易过拟合,泛化效果很差;②是缺乏解释性。深度学习端到端的训练和学习带来很多便捷,无须人工繁杂的提取特征,也无须设计过多中间步骤,但这种端到端也带来了不可预测的黑箱效应。参数调节很难与最终结果的好坏一一对应,缺乏指导意义,并且很难复现模型。也正是因为这几点,朴素贝叶斯仍然在工业界受到青睐。尽管如此,基于深度学习的分类算法依然表现出了强大的实力,未来关于深度学习的可解释性和理论指导也会越来越多,相信在不远的将来,基于深度学习的算法会越来越多地落地应用,朝着人工智能更进一步。参考文献[1]苏金树,张博锋,徐昕.基于机器学习的文本分类技术研究进展[J].软件学报,2006,17(9):1848-1859.[2]谢斌.朴素贝叶斯分类在数据挖掘中的应用[J].甘肃联合大学学报(自然