垃圾邮件对于企业邮箱用户的影响首先就在于给日常办公和邮箱管理者带来额外负担。根据不完全统计,在高效的反垃圾环境下仍然有80%的用户每周需要耗费10分钟左右的时间来处理垃圾邮件。对于企业邮件服务商而言,垃圾邮件的恶意投送,还会大量占用网络资源,使得邮件服务器85%的系统资源用于处理垃圾邮件的识别,不仅资源浪费极其严重,甚至可能导致网络阻塞瘫痪,影响企业正常业务邮件的沟通。

更严重的垃圾邮件问题甚至不仅只是影响企业工作效率,甚至会祸及整个服务器。由于企业邮箱平台往往通信质量更好,更容易为国际反垃圾邮件平台白名单所接纳,因此成为垃圾邮件投送者甚至网络黑客的重点攻击目标。通过劫持这些企业邮箱,垃圾邮件投送者就可以大大提高垃圾邮件投送率。这不仅将为企业邮箱用户造成无法预知的影响,同时还可能遭遇反垃圾邮件组织和邮件接收方的“壮士断腕”。对于那些大量垃圾邮件的投放地址,国际反垃圾邮件组织和接收方服务商将会将其加入到国际垃圾邮件数据库中,从而导致该主机不能与其他国家正常通信,严重影响企业海外业务的扩展。

正因为垃圾邮件具有如此严重的危害。如今,国内众多中小企业都在从过去的自主建设服务、借助价格低廉的小型服务商建立邮件系统,转而将163、QQ企业邮箱这类大型专业邮件服务商作为唯一选择。大型企业往往选择自建邮件系统,为了抵御垃圾邮件侵扰,通常会使用商用的邮件安全解决方案,常见的国外厂商包括Ciso、Blue Coat、Websense、Zscaler以及McAfee。

6.1 数据集

垃圾邮件识别使用的数据集为Enron-Spam数据集,机器学习领域使用Enron-Spam数据集来研究文档分类、词性标注、垃圾邮件识别等。

6.2 特征提取

6.2.1 词袋模型

文本特征提取有两个非常重要的模型:

  • 词集模型,单词构成的集合,集合中仅统计单词有或者无,不关心出现的次数。
  • 词袋模型,在词集的基础上,如果一个单词在文档中出现不止一次,统计其出现的次数(频数)。

两者本质上的区别在于,词袋是在词集的基础上增加了频率的维度,词集只关注有和没有,词袋还要关注有几个。

6.2.2 TF-IDF模型

TF-IDF(词频与逆向文件频率模型,term frequency-inverse document frequency)是一种统计方法,用以评估某一字词对于一个文件集或一个语料库的重要程度。字词的重要性与它在文件中出现的次数成正比,但同时与它在语料库中出现的频率成反比。TF-IDF加权的各种形式常被搜索引擎应用,作为文件与用户查询之间相关程度的度量或评级。

TF表示词条在文档中出现的频率。逆向文件频率(inverse document frequency, IDF),如果包含词条t的文档越少,也就是n越小,IDF越大,则说明词条t具有很好的类别区分能力。

6.2.3 词汇表模型

词袋模型可以很好地表现文本由哪些单词组成,但是却无法表达出单词之间的前后关系,于是人们借鉴了词袋模型的思想,使用生成的词汇表对原有句子按照单词逐个进行编码。

6.3 模型训练与验证

6.3.1 朴素贝叶斯算法

使用朴素贝叶斯算法特征提取使用词袋模型。

(1)将Enron-Spam数据集的文件提取词袋。

(2)随机划分为训练集和测试集。

(3)使用朴素贝叶斯算法在训练集上训练,获得模型数据。

(4)使用模型数据在测试集上进行预测。

(5)验证朴素贝叶斯算法预测效果。

6.3.2 支持向量机算法

6.3.3 深度学习算法之MLP

6.3.4 深度学习算法之CNN

6.3.5 深度学习算法之RNN

第6章 垃圾邮件识别相关推荐

  1. python垃圾邮件识别_【Python】垃圾邮件识别

    下载W3Cschool手机App,0基础随时随地学编程 导语 利用简单的机器学习算法实现垃圾邮件识别. 让我们愉快地开始吧~ 相关文件 密码: qa49 数据集源于网络,侵歉删. 开发工具 Pytho ...

  2. 垃圾邮件识别-朴素贝叶斯算法

    1.数据集 垃圾邮件识别使用的数据集为Enron-Spam数据集,该数据集是目前在电子邮件相关研究中使用最多的公开数据集,其邮件数据是安然公司(Enron Corporation, 原是世界上最大的综 ...

  3. python垃圾邮件识别_Python 手写朴素贝叶斯分类器检测垃圾邮件/短信

    自己从头手写一下这些经典的算法,不调用 sklearn 等 API,调一调参数,蛮有收获和启发. 数据集 概要:5572 条短信,13% 的 spam. 选择这个数据集的原因:短信的文本预处理要比 e ...

  4. python垃圾邮件识别_Python贝叶斯推理垃圾邮件分类

    针对贝叶斯垃圾邮件分类,阮一峰大神在多年前曾经写过一篇博客文章,他写的有些观点看起来很简单明了,不过我有点不是很理解其推导过程,虽然最后的结果等价,但是我还是觉得他的那套简单推导,感觉不太容易理解,可 ...

  5. 基于朴素贝叶斯的垃圾邮件识别

    在网上看到很多用朴素贝叶斯算法来实现垃圾邮件分类的,有直接调用库的,也有自己写的.出于对贝叶斯算法的复习,我也想用贝叶斯算法写写邮件识别,做一个简单的识别系统. 一.开发环境 Python3.6,邮件 ...

  6. 使用BloomFilter布隆过滤器解决缓存击穿、垃圾邮件识别、集合判重

    Bloom Filter是一个占用空间很小.效率很高的随机数据结构,它由一个bit数组和一组Hash算法构成.可用于判断一个元素是否在一个集合中,查询效率很高(1-N,最优能逼近于1). 在很多场景下 ...

  7. 机器学习贝叶斯-垃圾邮件识别

    文章目录 一.何为贝叶斯 二.项目实战-垃圾分类 1. 导包 2. 代码示例 3. 测试代码 4.测试结果 一.何为贝叶斯 贝叶斯基本公式:P(A|B)=P(B|A)*P(A)/P(B) 假设事件 B ...

  8. 《Web安全之机器学习入门》笔记:第十五章 15.7与15.8 TensorFlow识别垃圾邮件

    本小节通过识别垃圾邮件,讲解tensorflow通过神经网络DNN在网络安全方向的应用,同时还对比了NB算法的垃圾邮件识别效果. 1.数据集与特征化 本小节使用SpamBase这个入门级垃圾邮件数据集 ...

  9. python发邮件不进入垃圾箱_Python识别垃圾邮件|python3教程|python入门|python教程

    https://www.xin3721.com/eschool/pythonxin3721/ 本文转载至知乎ID:Charles(白露未晞)知乎个人专栏 下载W3Cschool手机App,0基础随时随 ...

  10. Python识别垃圾邮件

    导语 利用简单的机器学习算法实现垃圾邮件识别. 让我们愉快地开始吧~ 相关文件 百度网盘下载链接: https://pan.baidu.com/s/1Hsno4oREMROxWwcC_jYAOA 密码 ...

最新文章

  1. java入门(p1)进入java的世界
  2. 关于加载Fashion MNIST数据集时可能会出现的问题
  3. 固态硬盘uefi装win10
  4. image转pixmap qt_Qt 编程指南10 QImage Mat QPixmap转换
  5. 厉害了!祝贺PolarDB喜提科技进步一等奖
  6. android布局中画圆角矩形,Android 自定义View之圆角矩形轨迹图
  7. 关于MapReduce中自定义Combine类(一)
  8. H7-TOOL | 以太网 - 动态IP(DHCP)功能测试
  9. iPhone 14或让果粉再度“梦碎”:屏幕指纹和120Hz高刷屏都没了
  10. 3198元起!魅族16s开启预约:4月28日全渠道首发
  11. 标志位操作指令七条CLC,STC,CLD,STD,CLI,STI,CMC
  12. Java语言中的常用包、访问控制
  13. libvirt中的message bus
  14. uboot网络调试方法
  15. 网吧电脑显示连不上服务器,Pubwin客户机连不上服务器怎么办?
  16. 中流-接入Camunda流程引擎
  17. HyperLedger Fabric - 超级账本(8)Node测试
  18. 宝塔数据库密码错误处理
  19. LINUX去掉“哔哔叫”的方法
  20. raid5阵列两块硬盘掉线如何恢复阵列中的数据库

热门文章

  1. 无刷直流电机matlab建模,基于MATLAB的无刷直流电机建模方法_郭丹蕊
  2. 小新air14 2020 i5-1035G1完美黑苹果
  3. 1072 开学寄语 C++实现
  4. 下属被阿里挖角的那个早晨,我开始想念周鸿祎!
  5. 基于openstack的云桌面开源框架
  6. InputStream输入流七牛上传图片
  7. Excel中如何显示复杂公式中局部的计算结果,例如嵌套函数,使用多个函数
  8. (三十三)远期利率协议的结算金、价值与定价
  9. MobileNetV2: Inverted Residuals and Linear Bottlenecks--M Sandler
  10. 如何有效的快速提高自己的编程能力