APP下载

基于Na?ve Bayes和TF—IDF的真假新闻分类

2018-03-19蔡扬付小斌

电脑知识与技术 2018年4期
关键词:分类

蔡扬 付小斌

摘要:信息爆炸的时代,大量的新闻每天充斥的我们的生活,海量的新闻总是能够引导着人们对社会中发生的事件做出自己的判断。假新闻的错误引导将会对社会起到消极的作用,于是该文提出对真假新闻进行分类的方法。该文结合TF-IDF算法和朴素贝叶斯算法,对新闻中的词条进行加权,之后重新定义朴素贝叶斯分类器,并对新闻进行分类。最后,我们进行了多组实验,并取得了多组实验的平均值作为本次实验的最终结论。

关键词:真假新闻;TF-IDF;朴素贝叶斯; 分类

中图分类号:TP181 文献标识码:A 文章编号:1009-3044(2018)04-0184-03

Fake or Real News Classification Based on Na?ve Bayes and TF-IDF

CAI Yang, FU Xiao-bin

(Southwest Petroleum University School of Computer Science, Chengdu 610500, China)

Abstract:In this era of information explosion, a lot of news full of our lives every day, massive news is always able to guide people to the events of society to make their own judgments. The false guidance of false news will have a negative effect on society, so this paper proposes a method to classify true and false news. In this paper, we combined the TF-IDF algorithm and the naive Bayesian algorithm to weight the entries in the news, and then redefine the naive Bayesian classifier and classify the news. Finally, we conducted a number of experiments, and made the average of multiple sets of experiments as the final conclusion of this experiment.

Key words: Fake or Real News;TF-IDF; Na?ve Bayes; Classification

新闻的真实性是新闻的立命的根本,但是近些年来,假新闻层出不尽,影响了新闻媒体的权威性和公信力;导致错误的舆论出现;侵害了公民的权利;浪费了时间和金钱,对社会造成了巨大的影响。假新闻影响了社会秩序和经济,并且严重的侵犯了新闻当事人的权益。所以我们实现了本文提及的方法,用于高效的判断假新闻。这对我们来说意义重大,对社会来说也能起到一定程度的积极作用。

1 数据预处理

1.1 去停用词

Hans Peter Luhn创造了这个短语并在他的研究中应用这个概念。在信息检索中,为节省存储空间和提高搜索效率,在处理自然语言数据(或文本)之前或者之后会自动过滤掉某些字或词,这些字或词即被称为Stop Words(停用词)。这些停用词都是人工输入、非自动化生成的,生成后的停用词会形成一个停用词表。但是,并没有一个明确的停用词表能够适用于所有的工具。

对于一个给定的目的,任何一类的词语都可以被选作停用词。通常意义上,停用词大致分为两类。一类是人类语言中包含的功能词,这些功能词极其普遍,与其他词相比,功能词没有什么实际含义,比如'the'、'is'、'at'、'which'、'on'等。这些词的应用十分广泛,但是对这样的词搜索引擎无法保证能够给出真正相关的搜索结果,难以帮助缩小搜索范围,同时还会降低搜索的效率,所以通常会把这些词从问题中移去,从而提高搜索性能。

2.2 正则表达式

正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。给定一个正则表达式和另一个字符串,我们可以达到如下的目的:

1) 给定的字符串是否符合正则表达式的过滤逻辑;

2) 可以通过正则表达式,从字符串中获取我们想要的特定部分。

本文使用正則去符号是为了更好的处理文本。在分类时,我们主要依赖的是词,而不是句子。去标点、去停用词后将会极大的简化我们对数据的使用,并有效的提高分类精度。

2 Na?ve Bayes 和 TF-IDF

2.1 Na?ve Bayes

朴素贝叶斯算法是贝叶斯算法中应用最为广泛的分类算法之一。贝叶斯公式如下:

(1)

其中,p(c)是类“先验”概率,p(x|c)是样本x相对于类标记c的类条件概率,p(c|x)是后验概率,它反应了在看到训练样本数据x后假设c成立的置信度。

贝叶斯与朴素贝叶斯的区别是朴素贝叶斯采用了“属性条件独立性假设”,对已知类别,假设所有属性相互独立。

基于属性条件独立性假设,则有:

(2)

其中d为属性数目,xi 为x在第i个属性上的取值。P(c|x)具体意义是,在给定某个x表示的数据点,那么该数据点来自类别c的概率是多少。

2.2 TF-IDF

TFIDF的主要思想是:如果某个词或短语在一篇文章中出现的频率TF高,并且在其他文章中很少出现,则认为此词或者短语具有很好的类别区分能力,适合用来分类。TFIDF实际上是:TF * IDF,TF词频(Term Frequency),IDF逆向文件频率(Inverse Document Frequency)。TF表示词条在文档d中出现的频率。这个数字是对词数的归一化,以防止它偏向长的文件。(同一个词语在长文件里可能会比短文件有更高的词数,而不管该词语重要与否。)对于在某一特定文件里的词语来说,它的重要性可表示为:

(3)

上式中分子是该词在文件中的出现次数,分母则是在文件中所有字词的出现次数之和。

逆向文件频率(inverse document frequency,IDF)是一个词语普遍重要性的度量。某一特定词语的IDF,可以由总文件数目除以包含该词语之文件的数目,再将得到的商取对数得到:

(4)

其中|D|:语料库中的文件总数。分母:包含词语的文件数目(即文件的数目)如果该词语不在语料库中,就会导致分母为零,因此一般情况下使用:

(5)

作为分母。然后再计算TF和IDF的乘积:

(6)

某一特定文件内的高词语频率,以及该词语在整个文件集合中的低文件频率,可以产生出高权重的TF-IDF。因此,TF-IDF倾向于过滤掉常见的词语,保留重要的词语。

3 真假新闻分类与实验

真假新闻数据经过预处理之后,送入TF-IDF算法中对每类新闻的每条的每个词进行权重的计算。本次实验我们共随机抽选出1000条数据作为训练集送入分类器进行训练,这一千条数据中真新闻和假新闻的数量分别为500条。在训练过程中500条真新闻与500条假新闻相互独立进行训练,所以概率的计算,也是分别进行。

3.1 TF-IDF处理

TF-IDF计算完成后,我们会得到两个向量,每个向量中的每一维都代表着一个新闻,每一个新闻中不再是单词,取而代之的是通过TF-IDF计算得到的每一个单词的权重。在该向量中,每一维中对应的位置所对应的单词是相同的,也就是说在计算过程中,我们一共得到了两个词包,该词包中不重复的包含有该类新闻训练集中的全部词汇。

[算法1:TF-IDF 输入:新闻的主体 输出:包含每一条新闻的词权重构成的向量 1:统计词数,并对相应的词计算词频

2:对每类文档:

统计包含词语ti的数目

3:计算TF和IDF的乘积

4:返回包含词语权重的向量 ]

通过TF-IDF计算,可以将文本类型的数据转换为数值类型的数据,通过计算得到每个词的权重并构建成词向量,这样的操作将会在将来的分类过程中减少大量的工作,并且包含有权重的词向量更加能体现出哪一个词的重要程度更大。

3.2 从词向量计算概率

为了在本次项目中使用朴素贝叶斯算法,我们重写贝叶斯准则:

(7)

粗体的w表示这是一个向量,即它由多个数值构成。如果将w展开为一个个独立的特征,那么就可以将上述概率写作. 这里假设所有词都相互独立,该假设也称作条件独立性假设,意味着可以使用来计算上述概率。

训练时通过将对应位置的相同词的权重进行累加后,使得每一个词的权重能够更好的体现,在将来的分类过程中,对于那些能够很好地将新闻区别开来的词着重的体现出来,这将会大大的提高我们算法分类的精度。不过由于向量的每一个维都包含有训练集中该类新闻的所有词汇,所以当训练集的新闻条数很多的时候,处理这个向量所花费的时间将会大量增加,在这个方面我们还可以做出一些优化。

[算法2:朴素贝叶斯分类器训练函数 输入:文档词向量; 文档类别向量 输出:给定类别条件下词汇表中单词的出现概率。 1:计算每个类别中的文档数目

2:对每篇训练文档:

3:对每个类别:

4:如果词条出现在文档中→增加该词条的计数值

5:增加所有词条的计数值

6:对每个类别:

7:对每个词条:

8:将该词条的数目除以总词条数目得到条件概率

9:返回每个类别的条件概率 算法3:分类 输入:算法2中得到的单词出现的概率向量、新的需要分类的新闻 输出:新闻的真假分类结果 1:与算法2中的真新闻训练后的向量相乘,向量对应位置相乘,求和得p0

2:与算法2中的假新闻训练后的向量相乘,向量对应位置相乘,求和得p1

3:加入log(pClass)和log(1-pClass)防止溢出

4:比较p0 和p1的大小,谁大则将需要分类的新闻分至该类

5:返回类别 ]

3.3 实验

本次实验由于都是在个人电脑上运行,所以这将会花费大量的时间,且每次选取的训练集都是随机的,因此每次的实验精度都有所不同。我们最终只进行了十次实验,以下是实验结果:

通过图1可以看出,由于每次所选取的训练集有差异,所以十次的实验结果呈现出波动状态,但是结果相对来说还是比较好。虚线表示的是十次实验精度的平均值,平均值最终计算为0.9268。

4 结论

本次项目主要是在完成真假新闻的分类工作,从稍微大一点的角度来说是在进行文本分类。文本分类在机器学习、人工智能的领域中起着至关重要的作用,其中需要学习的知识还有很多。

我们的项目是对英文的文本进行的分类,结果还是较为可喜的,不过相对于博大精深的中文来说对英文分类已经降低了很多难度,我们从中也学习到了很多新的知识。在将来如果遇到了对文本的处理工作,这次的项目将会是一个很好的经验。

参考文献:

[1] Harrington P. Machine Learning in Action[M]// Machine learning in action /. Manning Publications Co. 2012.

[2] Zhang Y T, Gong L, Wang Y C. An improved TF-IDF approach for text classification[J]. Journal of Zhejiang University-SCIENCE A, 2005, 6A(1):49-55.

[3] Wu H C, Luk R W P, Wong K F, et al. Interpreting TF-IDF term weights as making relevance decisions[J]. Acm Transactions on Information Systems, 2008,26(3):55-59.

[4] Rish I. An empirical study of the naive Bayes classifier[J]. Journal of Universal Computer Science, 2001, 1(2):127.

[5] 梁宏勝,徐建民,成岳鹏.一种改进的朴素贝叶斯文本分类方法[J]. 河北大学学报:自然科学版,2007,27(3):327-331.

[6] 陈叶旺,余金山. 一种改进的朴素贝叶斯文本分类方法[J]. 华侨大学学报:自然科学版,2011,32(4):401-404.

[7] baike.baidu.com/TF-IDF

[8] 李偲. 基于朴素贝叶斯的文本分类研究及其在微博分类中的应用[D]. 北京理工大学,2015.

猜你喜欢

分类
2021年本刊分类总目录
分类算一算
垃圾分类的困惑你有吗
星星的分类
我给资源分分类
垃圾分类不能有“中梗阻”
分类讨论求坐标
数据分析中的分类讨论
说说分类那些事