Skip to content

朴素贝叶斯分类器在中文垃圾邮件分类上的实现

Notifications You must be signed in to change notification settings

pacoyang/chinese-spam-filter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 

Repository files navigation

朴素贝叶斯分类器在中文垃圾邮件分类上的实现

介绍

朴素贝叶斯算法是一种简单有效的分类算法,被广泛运用在文本分类与垃圾邮件、信息过滤中。

原理

朴素贝叶斯算法基于贝叶斯定理条件独立的假设,其中“朴素”指的就是条件独立假设。

贝叶斯定理简单来说就是这样一条概率公式:

其中 指的是B发生的情况下A发生的可能性。

为了更好理解,我们代入特征分类的概念到这个公式中,假设B指的是样本的某个类别C, A指的是样本某个特征 ,那么这个概率公式就变成了

对式子做以下解释:

  • :代表类别 C 下特征 出现的条件概率,由于是在类别C下的取值,所以称作C的后验概率。

  • :代表所有样本中特征 出现的条件概率,由于不考虑任何C方面的因素,所以称作先验概率。

  • :代表特征 下出现是类别 C 的条件概率,由于是在特征 下的取值,所以称作特征 的后验概率。

  • :就是类别C的先验概率

接下来,我们把样本的特征展开来,由 变成 ,变成多个特征,那么公式就演化成了:

如果我们想求某个特征下的样本属于类别C的条件概率,那将上述式子变换一下就变成了:

这时,我们假设每个特征都是条件独立的,那么式子就变成了

实际中,我们只关心分式中分子的部分,由于分母所代表的特征在样本的概率,并不依赖于类别C,对于其他类别这个概率都是一样的,所以我们可以忽略掉它。

所以求某个样本属于C的概率,最终趋向于:

利用朴素贝叶斯实现中文垃圾邮件过滤

我们通过以下步骤来实现一个现实可用的垃圾邮件过滤器

  1. 根据数据集产生训练集与测试集
  2. 提取文本数据,对文本进行分词,过滤停用词、数字、特殊符号。
  3. 统计词汇,产生词典
  4. 训练分类器

数据集

我们使用 滑铁卢大学 提供的中文邮件数据集,数据集共有超过60000封中文邮件,并且已经做好了标注。 停用词列表使用 github 上整理的停用词库,中文停用词 。 我们选用其中30000封中文邮件,29400封用作训练集,600用作测试集。

实验结果

最后统计得出对测试集的预测准确率高达0.9766666666666667。

About

朴素贝叶斯分类器在中文垃圾邮件分类上的实现

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages