基于朴素贝叶斯的新闻分类

一般来说,文本分类模型需要提前标注好类别的语料作为训练集,属于有监督的学习,核心问题是选择合适的分类算法,构建分类模型。本文利用 TF-IDF 对短文本数据进行特征提取和朴素贝叶斯算法进行数据分类,集成构成模型。具体文本分类步骤如下:

1)预处理:填补文本中的缺失值,删除重复值

2)中文分词:使用 python 中的 jieba 库为文本分词,并去除停用词。

3)构建词向量空间:统计文本词频,生成文本的词向量空间。

4)权重策略 —TF-IDF 方法:使用 TF-IDF 发现特征词,并抽取为反应文档主题的特征。

5)分类器:使用朴素贝叶斯算法训练器分类。

6)评价分类结果:用 kappa 系数对 分类器的测试结果评价分析。

2.1 分布特征

首先,将数据整体进行描述性分布分析,对本文数据集进行新闻类别数量分布以及发文 时间分布进行统计,结果如图。

图 2.1 新闻类别分布

从上图可看出,数据整体分布不太均匀,两极分化较为严重。其中书画、人物、国内、 健康、社会、国际分布大体一致,是数据的主要组成部分;法治、生活次之;科技、教育、 文娱、三农、农经、军事、经济分布一致,但是数据占比很低。结合现实生活可知,人们对 健康、人物、社会等主题的新闻往往关注度较高,故相应的新闻报道就会偏多。

图 2.2 新闻时间分布

从上图可看出,本文爬取的新闻数据是从 2020 年 12 月至 2021 年 4 月的。其中本年 4 月份的数据占比最多,而其他月份的数据分布较均匀,可见,新闻的时效性很强,系统将会优先自动推荐临近时间的新闻给用户,而历史数据次之。

2.2 数据预处理

本文的数据来源是 CCTV 频道的新闻数据。文本预处理是文本分类常见且必须的步骤,通过清除不一致或无实体语义的字符,以及过滤分词后的停用词,都可以尽可能的降低文本 噪声带来的分类性能上的影响。并且可以有效的降低模型占用的内存,提高模型的泛化能力。 本文在文本数据预处理上主要采用了字符清洗、分词、去停用词。目前业界常见的分词工具包括 jieba 分词、清华的分词工具以及斯坦福的分词包。其中 jieba 分词在词性标注、分词准确率、分词粒度和性能上都相对较好,因此本文主要采用 jieba 进行文本分词操作。 由于新闻标题数据长度较短,语义表述较为简洁,因此不能采用全部的 jieba 停用词表, 本文仅对一些非常常见的停用词进行了过滤,例如”呢”,”吗”、”的”等词,既最大程度的保证了语义的完整性,又尽可能的去掉了停用词。

2.3 TF-IDF 挖掘文本特征

文本数据属于非结构化数据,一般要转换成结构化的数据,一般是将文本转换成”文档 -词频矩阵”,矩阵中的元素使用词频或者 TF-IDF。TF-IDF 的主要思想是:如果某一个词或短语在一篇文章中出现的频率高,并且在其他文章中很少出现,则认为此词或短语具有很好的类别区分能力,适合用于分类。
TF − IDF = TF ∗ IDF

基于朴素贝叶斯的新闻分类

IDF 主要思想:如果包含词条 t 的文档越少,也就是 n 越小,IDF 越大,则说明词条 t 具有很好的区分能力。

TF 指的是某一个给定的词语在该文件中出现的频率,这是对词数的归一化,IDF 是一个 词语重要性的度量,IDF=log(D/Dn),其中对数以 2 为底,D 为文本总数,Dn 为该词在 n 个网页中出现过。

Original: https://blog.csdn.net/qq_52943826/article/details/119963980
Author: qq_52943826
Title: 基于朴素贝叶斯的新闻分类

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/665804/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球