摘 要:由于我国奠定了数据时代的基础,现正步向人工 智能化时代,而在人工智能的时代背景中,我们又了解到世界 的科技水平的步步提升,其中自然语言处理的应用多种多样。本文对自然语言处理的相关技术进行了研究,如机器学习的基 本概念,自然语言处理基本概念,朴素贝叶斯算法,Python与人工智能。最终通过使用朴素贝叶斯算法与Python编程解决了 新闻分类问题,将自然语言处理的相关技术应用到了实践中。
关键词:自然语言处理;新闻分类;朴素贝叶斯
一、序言
(一)人工智能时代背景
1956年夏季,以麦卡赛、罗切斯特和申农等为首的一批年 轻科学家首次提出了人工智能这一术语,1997年IBM研制的深 蓝计算机战胜了国际象棋大师卡斯帕洛夫,人工智能始终是计算机科学的前沿学科,因此,才会使近些年来的互联网发展成 为物联网,且已经成为智能时代的开端。[1]我国已经拥有致力于计算机视觉原创技术的创新型科技公司,并在此之下也创造 出来在生活各方面的智能设备。例如,防盗门上的智能锁,只 需要人脸扫一下或者是指纹按一下就可以识别破解的密码。例如上班用的打卡机,快递行业自动挑拣包裹,机械化组装汽车 等工业,高速收费站ETC专用通道,当时可能做梦都没想到的事物在如今都做到了,人工智能时代正逐步来到我们身边。
(二)自然语言处理的应用
1.文本分类:指文本给定一个预测其所属的预定类别。可以通过文本分类进行情感分析,垃圾邮件过滤,语音识 别,题材分类,多标签分类。 2.语言建模:将语言具体化。 可以生成与源文本统计上一致的词汇新序列,生成文章标题、句子、建议。 3.语音识别:解决如何理解人类所说的问题。 可以生成字幕,可以对机械发出命令。 4.说明生成:解决如何描述图像内容的问题。 可以对照片标题的建立,对视频的评价。 5.机械翻译:指一种自然语言转换为另一种为人接受的语言。 可以将他国语言转化为本土语言。 6.文档总结:根据文本创建对应简短描述。 可以生成文档摘要。 7.问题回答:给出一个主题回答该主题的具体问题。 可以通过返回相应短语来尝试回答该问题。 而在自然语言的处理领域中却发生了变化,在这之中有以下两个明显的特点:
(1)在系统的输入方面,为了使研制的系统有着真正的 使用价值,使得研制的自然语言处理系统可以进行大规模处理文本,而不是像之前只能处理很少的词条和典型句子。
(2)在系统的输出方面,由于系统无法对自然语言进行 深层的理解,于是转变方向为能在文本中提取有用的信息。而上述所说由于进行了大规模和真实文本,所以在以下两 方面进行了强化。
(1)就如上所说大规模的真实文本,那么研究自然语言 统计性质就需要大量不同程度加工后的真实文本的语料库。
(2)有大规模的词典,而有着丰富信息的计算机通过运 用词典进行对自然语言的处理是十分重要的。
二、相关技术
(一)自然语言处理
1.机械学习的基本概念
语料库:海量文本数据。主题:文档的中心思想或主要内容。 词袋模型:将文本分解为若干个词语,并仍保留文本的主 要信息。 我们将每个词语在文档中出现的次数按照词语序号排列 起来,就得到这篇文档的词计数向量。对词计数向量进行归一化,得到词频向量。这样不携带任何主题信息的高频词称为停 止词。[2]在构建词典时也会去除出现次数极低的低频词。这类词通常是不常用的专用名词,在特定文章中出现,但不能代表 某一类主题。一个词语在一篇文档中出现的频率即词频率,此 值越大,重要性越高。逆文档频率即为文档频率的负对数。逆文档频率值越高,重要性越大。 根据数据有没有标签,我们可以将机器学习分类为监督学 习、无监督学习和半监督学习。 监督学习是通过学习给定的数据进行学习来达到预期的目的。准确率是预测结果除以实际上与样本相同的结果所得到的 数值,召回率是所有正确的结果中得到的正确结果。[3] 如果在这当中出现只有两种类型的话我们称为二分类;如果我们训练的结果是连续的数字,则称为回归。误差由于训练 集和验证集的不同,会被分为训练误差和验证误差。无监督学 习是学习没有标签的数据集,其中使用聚类(方法)所获得的簇(结果),可能会对数据集有新的启发。半监督学习的特殊 性,有一些是有标签,有一些是没有标签的。
2.自然语言处理基本概念
自然语言处理研究的问题是关于如何构建通过处理和理解语言来执行某些任务的系统。这些任务可包括问答、情感分 析、图像到文字的映射、机器翻译语音、识别词性标注命名。 实体识别自然语言处理研究的问题是关于如何构建通过处理和理解语言来执行某些任务的系统。[4]首先,通过数据爬取,而 数据爬取的任务是基于Robots协议进行的。然后,通过分析网 站DOM树爬取所需要的数据。在复习过程中主要使用正则表达式进行筛选和匹配,而本系统基于python爬取了途牛网等 旅游游记数据,包括元数据和文本型这两种数据。其中元数据包括文章标题发表时间、浏览量和点赞等消息,而文本型数据 包括文字和游记图片数据。接着,再进行数据清洗,为的是除 去文本中的杂质,经过预处理将文本中的杂质清洗处理再进行分析,而其中又经常使用停用词表。最后,数据挖掘。数据挖 掘方法包括将文本转化为数值进行计算,而其中基于词袋模型 进行表示,再使用文本频率和逆文献频率进行计算,基于文献中出现的词汇将文本转化为向量模型进行计算,若结果是一个 词,在一篇文章中出现越多,在所有文档中出现越少,越能代 表文章。最后,发现模式。关于帮助自然语言处理任务进行提升的方法有许多。依我拙见,由于未来面向的是大众服务,因 此,要依题解题,我们可以用机械人进行联系,让他们更进一 步偏向正确的一面。
朴素贝叶斯算法是基于贝叶斯定理与特征条件独立假设的 分类方法。[5]对于给定的训练集,首先基于特征条件独立假设学习输入输出的联合概念分步,然后基于此模型,只用给定的 输入x,利用贝叶斯定理去除概率最大的输出y。朴素贝叶斯算 法既有优点也有缺点。 优点: (1)朴素贝叶斯模型源于古典数学理论,经过多年修 改,具有稳定的分类效率。 (2)当面临小量的数据往往结果是正确的,而且可以同时处理多个任务。 (3)由于算法简单,对缺失数据不是很敏感,所以常用 于文本分类。 缺点: (1)因为朴素贝叶斯模型给定输出类别的情况下,要假 设属性之间相互联系,可实际的运用中往往是不行的,而在属 性个数较多或者属性关系较大时,分类效果也不好。因此,我们应通过考虑部分关联性适当对朴素贝叶斯算法进行改进。 (2)由于中间需要先验概率,先验概率往往取决于假 设,假设具有多样性,可能会出现由于假设的先验模型不良导致预测结果不佳。 (3)由于我们是通过先预测数据结果的概率进行分类, 因此,分类在一定程度是也有错误率。 (4)对输出数据表达形式很敏感。
(三)Python与人工智能
人工智能包含常用的机械学习和深度学习两个模块,而 python所拥有大量的库,像pandas等这些库都是进行数据处 理、数据分析、数据建模和绘图的库,基本上机械学习中对数 据的爬取、对数据的处理分析、对数据的绘图和对数据的建模在Python中全都能找到对应的库来进行处理。[6]Python首先在设计上有着清晰的风格,成为被大量用户所喜爱的智能语音。 开发者在开发的时候原本想着对于一个问题就用一种最好的方 式进行解决,python的作者有意设计限制性的语法和其他大数据语言,完全是由每行的首字母在这一行的位置决定的,在C 语言中它清晰的分界将每个部分条理化,于是自然也就被人认为是一种语言的进步,可为什么我们大多用的是python,是由 于它的if等函数将语言方便化,同时也使得程序清晰明了。
三、新闻分类项目实战
(一)任务介绍
我们有一些新闻样本,每个样本有标签。其中有财经、 IT、健康、体育、旅游、教育、招聘、文化、军事等各种标签。留出其中约20%的样本作为测试集,也就是有约80%的训 练集。而训练集和测试集的区别为:训练集有标签,测试集没有标签。我们的任务是如何通过在训练集上学习获得的模型给 测试集打标签。
(二)问题解决思路
1.将每个文本分词。
2.将所有文本中的词组成一个集合all_words_list。 3.将每个文本转成词向量。 如果all_words_list中的词出现在该文本中,则该特征为 1,否则为0。 4.用朴素贝叶斯算法在训练集上学习,从而预测测试集的 标签值。 P(A|B)表示事件B已经发生的前提下,事件A发生的概 率,叫做事件B发生下事件A的条件概率,其基本求解公式为:
P(A|B)=P(A|B)*P(B)=P(B|A)*P(A) P(B|A)=P(A|B)P(B)P(A)P(B|A)=P(A|B)P(B)P(A)
同时P(A)也可化简为: P(A)=∑ni=1P(Bi)P(A|Bi) P(yk)=Nyk+a/N+ka这是当特征是离散时我们使用多项 式进行计算,同时所做一些平滑处理。 N是总的样本个数,k是总的类别个数,Nyk是类别为yk 的样本个数,α平滑值。 P(xi|yk)=Nyk,xi+α/Nyk+nα Nyk是类别为yk的样本个数,n是特征的维数,Nyk、xi 是类别为yk的样本中的,第i维特征的值是xi的样本个数,α 是平滑值。
(三)代码实现
1.文本处理。通过调用TextProcessing函数来进行处理, 参考的是文本存放的路径,测试集占比,默认占所有数据集约 20%,得到返回值,按词频降序排序的训练集列表,训练集列 表,测试集列表,训练集标签列表,测试集标签列表。做法是 首先遍历每个子文件夹(新闻样本),然后调用jieba包的cut 函数进行分词,然后将分词后的样本和分类放入元组,对数据集数据和分类,取出训练集80%,取出测试集20%,进行训练 集解压缩,进行测试集解压缩,统计训练集词频,从而形成字典,再根据键的值倒序排序,读取文件里的内容,并取出所有 词语,最后转化为按词频降序排序的训练集列表,测试集列 表,训练集标签列表,测试集标签列表返回。
2.将文本向量化。采用向量空间模型将文档表示成向量, 通过调用TextFeatures函数来进行处理,参考的是训练集,测 试集,特征集。得到返回值训练集向量化列表,测试集向量化 列表,通过查看特征集,而特征集是通过函数进行文本特征选取,通过调用Word_dict函数来进行处理,参考的是训练集所 有文本列表,删除词频最高的词,指定的结束语得到返回值特征集,特征列表如果这个词不是数字,并且同时也不是所指定 的结束语,单词长度大于零小于五,那么,这个词就可以作为 特征词。最后,将特征集返回,得到了特征集便可将训练集向量化的特征文本,测试集向量化的特征文本返回。
3.训练和预测用朴素贝叶斯算法在训练集上学习,从而预测测试集上的标签值,计算在测试集上预测的正确率,通过调 用TextFeatures函数来进行处理,参考的是训练集向量化的特征文本,测试集向量化的特征文本,训练集分类标签,测试集 分类标签得到返回值分类器精度,做法是在前面的所有步骤完 成之后将分类器精度返回。 四、结束语 本节针对的是新闻文本分类问题的解决,阐述了在新闻文本分类中的基础和各环节,首先进行了对自然语言应用的说 明,然后对机械学习进行了分析,对在新闻文本分类问题中所 需的工具进行了说明,并对优缺点进行了分析。但其中的不足希望在未来的时间里可以获得提升,对此我提出了下列研究方 向,首先是在文本处理方面应当准确率高、速度快,这样才能 对大量数据进行分析,虽然在研究上表明希望还是用Beautiful Soup,可是在其他几种库中还有其他用法值得深究。在判断关 键词的时候,机械大多通过取决词出现的次数决定的,也有可能出现差错。其次,选好词后在去除非关键词时去除了没意义的词,然后进行分类,可其中又有中和多种类型的话题,也 将导致机械出现错误。最后,使用朴素贝叶斯的主要缺点如上所说,输入数据的表达形式很敏感,需加强对朴素贝叶斯 的补充,分类决策存在一定的错误率,需做出改进,降低错 误率。
参考文献:
[1] 张轶然.浅析人工智能技术发展与应用现状[J].电子 制作,2019(02):94-95+26.
[2] 孟天乐.朴素贝叶斯在文本分类上的应用[J].通讯世 界,2019,26(01):244-245.
[3] 李芸初.基于支持向量机的文本分类[J].中国新技术 新产品,2019(01):23-24.
推荐阅读:《科学咨询》杂志是由中国科学院重庆科学技术研究院主办,重庆市科委主管,重庆市教委联办,经国家新闻出版总署批准为国内外公开发行的基础科学期刊,国内统一刊号:CN50-1143/N,国际标准刊号:ISSN1671-4822,邮发代号:78-70。