文本分类:如何区分特定类型的新闻

我们平时使用的新闻APP,把新闻分成了不同的类别,如政治、军事、财经等。新闻数据是海量的,计算机是如何对这些新闻进行自动分类的呢?我们上节介绍过朴素贝叶斯是以水果为例讲解如何给水果自动分类,同理我们也可以用于新闻的自动分类。在对新闻进行自动分类前,我们需要先对新闻进行自然语言处理。

文本分类系统的基本框架

1、采集训练样本

对于每一个数据,我们都需要告诉计算机属于那个分类,新闻分类为例,我们需要明确告诉计算机新闻属于那个分类。训练数据的分类,相当于计算机学习的标准答案,其质量决定了学习效果的好坏。

2、自然语言预处理

如何把新闻转换为计算机可以理解的语言,这就需要自然语言处理了。自然语言处理的方法包括:词包(bag of words)、分词、词干(Stemming)、归一化(Normalization)、停用词(stopword)、同义词(Synonyms)和扩展词处理。

3、训练模型

训练模型就是利用训练数据对模型进行拟合的过程,对于朴素贝叶斯来说,就是计算先验概率和条件概率(每个分类的先验概率、每个属性的先验概率以及给定某个分类每个属性的条件概率)

4、实时预测

给定新的数据,用训练好的模型来预测其属于那个分类。对于朴素贝叶斯分类来说,就是根据给定的先验概率和条件概率,计算新数据属于某个分类的后验概率。

整个流程如图所示。

图片来源:极客时间程序员的数学基础课

朴素贝叶斯分类我们已经介绍过,本篇着重介绍自然语言处理的过程。

基于自然语言的预处理
自然语言预处理包括分词、取词干和归一化、停用词、同义词和扩展词。
1、分词
计算机处理自然语言的基本单位是单词和词组,英语等拉丁语系的语言来说单词之间是以空格作为单词分隔符,我们可以把句子以空格来分隔得到单词,汉语等语言,词与词之间没有明显的界限,需要相应的算法进行分词处理。
中文分词的例子如下所示。
分词前:今天我们一起来学习计算机学科中的数学知识
分词后:今天 我们 一起 来 学习 计算机 学科 中 的 数学 知识

常见的分词算法有两种:基于字符串匹配、基于统计和机器学习。字符串匹配就是扫描字符串,如果字符串子串和词相同,则匹配成功。基于统计和机器学习分词基于人工标注的词性和统计特征,对中文进行建模,常见的模型有隐马尔可夫模型和条件随机场。关于这两种算法,以后再介绍。

2、取词干和归一化

取词干就是减少词的变化形式,将派生的词转换我基本形式,如下所示。

将am,is,are,was,were全部转换为be
将car,cars,car’s,cars’全部转换为car
最后我们要进行大小写转换以及多种拼写进行统一化(比如color、colour),这种转换称为归一化。
 
3、停用词
 
无论何种语言,都存在一些对结果无影响(或影响较小)的词,对于这些词,我们可以构造一个停用词典(stop word),将这些词过滤掉,不予考虑。这样我们可以在不影响语义的情况下减少数据文件的大小。当然也需要考虑停用词的使用场景,如用户观点类分析,常见的停用词如good,bad就是非常重要的词语了。
 
4、同义词和扩展词
 
不同的地方对同一种品种有不同的称呼,比如在中国北方番茄称为西红柿,中国台湾地区称菠萝为凤梨。对于计算机而言,需要意识到不同的词语是同一个意思,我们需要维护一个同义词字典。
番茄,西红柿
菠萝,凤梨
洋山芋,土豆
泡面,方便面,速食面,快餐面
山芋,红薯
鼠标,滑鼠
……
通过自然语言处理,我们将新闻文章切分成一个一个单词,这些单词是新闻的关键属性,我们通过统计单词的词频,很容易得到概率。
下图我们给出了新闻分类场景的的一个例子,我们对分类的先验概率、单词的先验概率、指定分类下单词的条件概率给出了示例。
对于某些分词从未出现在某个分类的情况,我们需要做平滑处理,指定一个较小的词频(比如1)。根据条件概率和先验概率,我们可以采用朴素贝叶斯模型进行分类处理了。
 
运用朴素贝叶斯模型
 
首先我们回顾一下朴素贝叶斯的计算模型。

在新闻分类中,o是新闻,c是新闻的分类(政治、财经、军事),fi是新闻文章经过自然语言处理后的单词。P(c|o)  就是给定的新闻属于分类c的概率。用朴素贝叶斯公式我们可以计算中国 航母这两个单词属于每个分类的概率(在真实的环境中,我们会把中文分词转换为数字型ID提高计算效率)。

由计算结果可知,中国航母这两个词语属于军事、政治类新闻的可能性最大。真实的新闻包含的单词数量远远多于两个,我们将公式进行泛化处理。

某篇新闻文章可能很长,单词会比较多,而每一个p(fi|c)比较小,连续的乘积会更小,可能会小到计算机无法处理。因此实际环境中,我们需要进行数学变换比如取log,将小数转化为绝对值大于1的负数。虽然改变的概率的绝对值,但是不会改变概率的相对大小。

通过上文分析我们可以知道朴素贝叶斯模型非常适合做文章的分类,一方面单词都是离散的,非常方便计算概率,另一个方面,同一篇文章可能属于多个分类,朴素贝叶斯也可以支持这一点。

以上内容为极客时间程序员的数学基础课的学习笔记

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值