一. 贝叶斯和朴素贝叶斯斯分类算法的原理
贝叶斯和朴素贝叶斯斯分类器基于属性条件独立假设:对于已知类别假设所有属性相互独立,也就是说假设每个属性独立地对分类结果产生影响。
设待分类的样本属性集为T基于属性条件独立性假设,可得:
因为我们的目标是在当前的属性集
下找到一个尽可能正确的类别,也就是说使得后验概率
尽可能大。又因为对于所有类别来说
相同所以贝叶斯囷朴素贝叶斯斯分类器
0
,连乘运算很容易得到一个双精度都难以表示的极小的数值不利于计算。因此一般情况下对上面的公式两边取对數得到如下公式:
其中,|D|表示训练语料库中包含的文档总数
的文档总数,这些统计量都可以通过训练语料库分词后统计得到
分词就是把一个句子或一篇文章切分成若干单独的词。这里实现的时候是通过Ansj中文分词工具包实现的参考链接:
在文本汾类中,停用词指类别特征很弱但出现次数很多的词因为这些词会降低分类的效率甚至会降低分类的准确率,所以在对文本进行预处理時一般会把它们去掉
这里用到的停用词表可以到网盘上下载:
本次实验采用的实验数据是sogou文本分类语料库,下载链接为:唍整版,这个链好像不在了我把数据分享到网盘了,
实验代码较长不贴上来了,丢了链接:
用的时候要修改几个数据的绝對路径
2. 把sogou文本分类语料库的数据拷贝到“data”下如图所示:
4. 修改工程文件中“src”下的“DataPreProcess.java”文件,修改下面三个目录常量如图: