本项目主要包括拉普拉斯平滑、 垃圾邮件过滤(Python3)、 新浪新闻分类(sklearn)。
利用贝叶斯分类器对文档进行分类时,要计算多个概率的乘积以获得文档属于某个类别的概率,即计算p(w0|1)p(w1|1)p(w2|1)。如果其中有一个概率值为0,那么最后的结果也为0。拉斯拉普平滑是为了解决上问题的一种方法。本文使用的是加1平滑的拉斯拉普平滑,可以有效地解决0概率问题。
使用贝叶斯对电子邮件进行分类的步骤:
- 收集数据:数据集来自新浪新闻
- 准备数据:将文本文件解析成词条向量
- 分析数据:检查词条的正确性
- 训练算法模型:使用 建立的 trainNB0()函数
- 测试算法模型:使用classifyNB(),并构建一个新的测试函数来进行计算文档集的错误率
- 数据导入模型分类:构建一个完整的程序对一组文档进行分类
- 数据准备阶段:使用jieba 对新闻中文语句进行切分。
- 文本特征选择:将所有的文本分为训练集和测试集样本,并对训练集中的所有单词进行词频统计和降序排序。
- 特征值筛选: 筛选掉一些对分类无影响的高频词
- 建模分类: Sklearn构建朴素贝叶斯分类器