朴素贝叶斯方法是最常见的使用贝叶斯思想进行分类的方法,它是目前所知文本分类算法中最有效的一类,常常应用于文本分类。下面将会以一个含多个类别的BBC英文文本数据为例,介绍如何使用朴素贝叶斯方法对其进行数据分类。
1 文本数据准备与探索
下面会直接导入已经预处理后的数据对其进行探索性分析,下面的程序是导入进行文本分类是需要的相关R包,以及数据的导入,数据一共有两个变量,分别是预处理后的文本内容变量text_pre,和类别标签变量lable。
library(tm);library(wordcloud2);library(tidytext);library(reshape2); library(dplyr);library(e1071);library(ggpol) ## 读取数据,文本数据已经是预处理后的 bbcdata %summarise(Fre = n())%>% arrange(desc(Fre)) letterCloud(wordfre,word = "BBC",wordSize = 1, color ="random-dark",backgroundColor = "snow" )
图2 词云可视化
图2中将词云以字母的形式进行可视化,越大的词出现的次数就越多。
利用tm包中的Corpus()函数可以对文本数据构建语料库,使用DocumentTermMatrix()函数可以获得文本数据的文档-词项特征矩阵,而且如果获得的文档-词项矩阵过于稀疏,可使用tm包中的removeSparseTerms()函数剔除一些不重要的词语,缓解矩阵的系数程度,下面的程序和输出则是展示了上述的文本特征的构建过程。
## 构建语料库,计算文本的TF特征 bbc_cp