本文是“java开发邮箱系统”系列文章之一,通过阅读本系列的文章,你可以通过Java实现一个邮件服务器。
贝叶斯算法是常用的垃圾邮件过滤算法,理论依据主要是概率统计中的一些基本理论。因为这些都可以很方便的在网上查到,所以本文只讲实践,不讲数学知识。步骤如下:
-
准备400封正常邮件、400封垃圾邮件。(垃圾邮件的收集可以通过架设一台开放的邮件服务器来实现,比较麻烦的是正常邮件的收集。实在没办法可以使用一些新闻稿代替。)
-
收集到邮件之后,我们就要将这些邮件分词(利用java中文分词下一篇文章会介绍),然后计算每个词的出现的次数,写入数据库记录起来。因为邮件有垃圾邮件和非垃圾邮件两种,所以数据表中我们需要添加一个字段来区分这两种类型。另一个字段记录该词的md5值,一个记录该词出现的次数(该词每出现一次,就加1)。
-
通过第二步的办法,将400垃圾邮件和400封非垃圾邮件都跑一遍。就完成了最基本的贝叶斯过滤算法的训练阶段。
我们假设:
A=(该词的出现次数/所有垃圾词的总次数);
B=(该词的出现次数/所有非垃圾词的总次数);
接下来,当我们收到一封新邮件后:
-
第一步仍是对其分词,然后拿着这些词去数据库看是否存在。
-
当邮件中出现该词时,该邮件是垃圾邮件的概率= A / (A + B )
-
依次按照第二步的方法计算每个词的概率,并把结果命名为P1,P2,P3…………等等
-
该邮件是垃圾邮件的概率=(P1*P2*……PN)/[P1*P2*……PN+(1-P1)*(1-P2)*……(1-PN)]
相关推荐
Java邮件开发详解 Java邮件开发详解
张孝祥Java邮件开发详解
张孝祥Java邮件开发详解.rar 110M
Java垃圾回收机制详解和调优.doc Java垃圾回收机制详解和调优.doc Java垃圾回收机制详解和调优.doc Java垃圾回收机制详解和调优.doc Java垃圾回收机制详解和调优.doc Java垃圾回收机制详解和调优.doc Java垃圾回收...
关于贝叶斯算法解释较为清晰明了的PPT与代码,非常适合小白入门,以及作为面试的准备,有助于快速提升机器学习基础算法
贝叶斯分类算法是统计学的一种概率分类方法,朴素贝叶斯分类是贝叶斯分类中最简单的一种。其分类原理就是利 用贝叶斯公式根据某特征的先验概率计算出其后验概率,然后选择具有最大后验概率的类作为该特征所属的类。...
机器学习-贝叶斯-西瓜分类 对代码的每一行进行了注解,适合初学者使用,主要代码来源是百度ai社区,只是对其进行了注解
实现朴素贝叶斯分类器算法基本功能,代码有注释,还包括一个垃圾邮件过滤的实例。另外我这次用的是python2.7版,如果用python3的可能需要根据提示修改几个语法(sorted函数的参数)。
张孝祥Java邮件开发详解.docx
《Java邮件开发详解》书中源码
java邮件开发经典教程,可以熟悉邮件基本协议,掌握邮件开发必备的工具书之一。
主要介绍了详解Java实现的k-means聚类算法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
根据张孝祥视频内容,进行了个人的理解以及注释,分析,同时将自己写的测试用的主要代码和理解写在了文档中。由于第一课和第二课是没什么技术的部分,只是简单的概括,所以,笔记丛第三课开始,不要误认为这个是不...
张孝祥Java邮件开发详解-高清扫描版-part1 绝对是精品 张孝祥的好书 。很大,分为2部分。
Java_Filter过滤机制详解.docJava_Filter过滤机制详解.docJava_Filter过滤机制详解.docJava_Filter过滤机制详解.docJava_Filter过滤机制详解.docJava_Filter过滤机制详解.docJava_Filter过滤机制详解.docJava_Filter...
java_过滤器详解
MATLAB算法-贝叶斯分类算法详解,附代码