专栏首页Python小屋Python+sklearn使用朴素贝叶斯算法识别中文垃圾邮件

Python+sklearn使用朴素贝叶斯算法识别中文垃圾邮件

总体思路与步骤:

1、从电子邮箱中收集垃圾和非垃圾邮件训练集。

2、读取全部训练集,删除其中的干扰字符,例如【】*。、,等等,然后分词,删除长度为1的单个字。

3、统计全部训练集中词语的出现次数,截取出现次数最多的前N(可以根据实际情况进行调整)个。

4、根据每个经过第2步预处理后垃圾邮件和非垃圾邮件内容生成特征向量,统计第3步中得到的N个词语分别在本邮件中的出现频率。

5、根据第4步中得到特征向量和已知邮件分类创建并训练朴素贝叶斯模型。

6、读取测试邮件,参考第2步,对邮件文本进行预处理,提取特征向量。

7、使用第5步中训练好的模型,根据第6步提取的特征向量对邮件进行分类。

参考代码:

1、导入需要用到的标准库和扩展库对象。

2、读取全部训练集,删除干扰字符或长度为1的单词。

3、创建贝叶斯模型,使用已有数据进行训练。

4、使用训练好的模型对未知邮件内容进行分类。

说明:分类有误差是正常的,增加训练集和调整模型参数,可以提高准确率。

邮件训练集下载地址:

链接: https://pan.baidu.com/s/1wBRbCATYlqCaYc848ydGAQ

密码: q369

本文分享自微信公众号 - Python小屋(Python_xiaowu)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-06-14

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Python批量生成垃圾邮件内容

    问题背景:这个文章的代码是为下一篇关于贝叶斯分类的文章做准备的,用来生成一些模拟的垃圾邮件。一般而言,垃圾邮件都是带有特定目的的,所以邮件中必然会包含一些特定的...

    Python小屋屋主
  • Python绘制柱状图显示中国式过马路方式

    Python小屋屋主
  • Python多种方法实现句子中单词倒置(好未来2017笔试题)

    问题描述:将一句话的单词进行倒置,标点不倒置。比如 I like beijing. 经过函数后变为:beijing. like I 代码: def rev1(s...

    Python小屋屋主
  • css 对元素在文档中的排列的影响

        2)、position 的属性值为: absolute | relative,且 z-index 值不为 auto ;

    前端老鸟
  • kubeadm搭建kubernetes集群之三:加入node节点

    在上一章《kubeadm搭建kubernetes集群之二:创建master节点》的实战中,我们把kubernetes的master节点搭建好了,本章我们将加入n...

    程序员欣宸
  • 一文看尽2018全年AI技术大突破

    这一年成为NLP研究的分水岭,各种突破接连不断;CV领域同样精彩纷呈,与四年前相比GAN生成的假脸逼真到让人不敢相信;新工具、新框架的出现,也让这个领域的明天特...

    量子位
  • Confluence 6 配置管理员会话的安全

    Confluence 通过使用 Confluence administration console 来显示管理员访问后台管理的功能或者管理一个空间。当一个 Co...

    HoneyMoose
  • 数据分析之路—数据的描述性统计

    数据的集中趋势描 述是寻找反映事物特征的数据集合的代表值或中心值,这个代表值或中 心值可以很好地反映事物目前所处的位置和发展水平,通过对事物集中 趋势指标的多次...

    23号杂货铺
  • 百万大奖,聚焦工业、医疗、泛娱乐,大数据应用创业赛邀你来战!

    2017中国大数据应用创新创业国际大赛(苏州)火热招募中!大赛由苏州市人民政府指导,苏州市发改委、苏州相城区人民政府主办,聚焦医疗、工业、泛娱乐三大最热领域,首...

    数据猿
  • JS 3D 模型

    最近断断续续地写出了这么个东西:http://ucren.com/demos/d3d/index.html。

    py3study

扫码关注云+社区

领取腾讯云代金券