毕业设计-基于深度学习的垃圾邮件过滤系统的设计与实现

article/2025/10/4 8:00:26

目录

前言

课题背景和意义

实现技术思路

实现效果图样例


前言


    📅大四是整个大学期间最忙碌的时光,一边要忙着备考或实习为毕业后面临的就业升学做准备,一边要为毕业设计耗费大量精力。近几年各个学校要求的毕设项目越来越难,有不少课题是研究生级别难度的,对本科同学来说是充满挑战。为帮助大家顺利通过和节省时间与精力投入到更重要的就业和考试中去,学长分享优质的选题经验和毕设项目与技术思路。

🚀对毕设有任何疑问都可以问学长哦!

大家好,这里是海浪学长毕设专题,本次分享的课题是

🎯基于深度学习的垃圾邮件过滤

课题背景和意义

垃圾邮件一般具有批量发送的特征。其内容包括赚钱信息、成人广告、商业或个人网站广告、电子杂志、连环信等。垃圾邮件可以分为良性和恶性的。良性垃圾邮件是各种宣传广告等对收件人影响不大的信息邮件。恶性垃圾邮件是指具有破坏性的电子邮件。

有些垃圾邮件发送组织或是非法信息传播者,为了大面积散布信息,常采用多台机器同时巨量发送的方式攻击邮件服务器,造成邮件服务器大量带宽损失,并严重干扰邮件服务器进行正常的邮件递送工作。

随着互联网相关应用的快速发展,广告技术的进步和电子邮件的普及,越来越多的垃圾邮件充斥着我们的生活。如何高效的区分垃圾邮件的研究也逐渐成为了热门课题。因自然语言在结构上有着很强的前后相关性,而且对于中文邮件直接转化成向量会有过高的维度产生,影响最后分类的准确性。基于内容和基于电子邮件源的识别技术现在是常用的两种垃圾邮件过滤方法。例如贝叶斯模型文本识别等就是基于内容的识别技术。白名单与黑名单机制、关键词匹配的是基于邮件来源的技术。电子邮件的数量增加可观、样式层出不穷,基于规则的方法不仅需要对邮件特征规则库进行不断的更新,同时还需要大量的人力。基于内容的方法当前已经取得令人可喜的成效,但随着科技的发展,现在垃圾邮件的制造者们开始大量的使用图像垃圾邮件,然后肆意的进行传播。这种方式的垃圾邮件更加难以检测且消耗的网络宽带也更大。

课题国内外研究现状

从上世纪开始,人们就参与到解决垃圾邮件的问题上来,比如反垃圾邮件的组织 MAPS, SPAMCORP,ORBS,Junckmail 等的成立,过去的几十年中在反垃圾邮件领域也有很多的方 法被提出。总的来说从 3 个层面来处理这个问题:一是通过法律法规的渠道,二是通过改进 的协议,三是通过过滤的技术。其中我们最常用的是使用过滤技术来筛除垃圾邮件,比如黑 名单过滤技术,概率统计分类技术[7]以及根据规则的过滤技术。 从法律层面来看,目前已经有多个国家已经制定了或者正在制定有关垃圾邮件的法律文 件。比如美国在 2003 年通过的《反垃圾邮件法》中的一些条文,如果不尊重用户发送垃圾邮 件将受到处罚,要求发件人必须包含色情内容,如邮件发出警告标签,禁止使用虚假标题或 无效返回地址发送垃圾邮件,如果违反这些规定,最多会被判处五年徒刑,罚款高达 600 美 元。这些法律条文让滥发垃圾邮件者承担一定的法律责任,在一定程度上打击了发送垃圾邮 件的行为。而我国也在 2002 年中国互联网协会颁布了《中国互联网协会反垃圾邮件规范》, 尽管它早先开始了,但是缺少配套设置,对于惩处垃圾邮件制造者的实例少有耳闻,效果并 不能令人满意。

另一方面从改进协议角度来看,主要是通过控制网络层协议来过滤垃圾邮件。因为垃圾 邮件通常是批量发送的,通过监测同一个 IP 地址在一个很短的时间内简单邮件传输协议 (SMTP)的链接数量,如果数量特别大的话,这个 IP 地址很有可能是在发送垃圾邮件。所以通 过限制单个 IP 在一段时间内简单邮件传输协议(SMTP)的链接数量来解决此问题。 垃圾邮件过滤技术比较出名的有以下几种: 一是黑白名单过滤技术。首先基于白名单技术,它的原理比较简单,直接保存用户确认 过的地址。当有人发送邮件时,先去地址列表里查询有无此发件人,如果有则正常接收。这 种方法虽然可以很好的过滤了垃圾邮件,但是其缺点也很明显。当发送的正常邮件是第一次 发送给接受方,但是由于其在地址列表里找不到其发送人的地址,则直接丢弃。之后白名单 机制也做了很多改进,比如采用询问机制[7]等。后面又出现了黑名单机制,它与白名单原理相 同,当发送方的邮件地址可以在黑名单类别里找到,则认为该邮件是垃圾邮件。它们都是通 过域名系统(DNS)查询由 IP 域名发送的电子邮件是否是垃圾邮件源。如果是垃圾邮件源, 它会将 IP 地址放在黑名单上;如果不是,它会将 IP 地址放在白名单上。 二是基于内容的过滤技术。这在垃圾邮件过滤技术中虽然耗时较长,但是一种相对有效 的技术。该技术要求服务器使用机器学习算法来分析消息的内容,对其进行评级并确定它是 否是垃圾邮件。如果是垃圾邮件,它将向客户端告警,它可能是一份垃圾邮件。决策树和 boosting 方法属于基于规则的过滤方法,其中决策树算法使用较多,是根据训练集建立一颗完 整的分类树,树上的每个节点都是一个特征,最终的叶子结点表示了文本的类别。而 Bayes 方 法,SVM 方法,KNN 方法,这 3 个方法都是训练完之后,对测试样本进行概率估算,如果 概率值大于设定的阈值,则判定为垃圾邮件,否则是正常邮件。这三种方法都是包含在基于 统计的过滤技术中。 三是关键字过滤技术。在黑白名单过滤技术之后使用,该技术基本上将垃圾邮件中出现 频率高的单词提取出来,作为关键字并用它们来判断新的电子邮件[8]。 如果新的电子邮件中 检测到关键字,则判断其为垃圾邮件。这项技术同时也会有较高的错误率。 四是多重图片识别技术。该技术针对的是包含图像的垃圾邮件,而图像垃圾邮件发送者 通常使用 GIF 图像来避免通过添加一些文字或符号来进行关键词过滤。但是,通过多种图像 识别技术可以识别图像中的文字。通过该技术可以有效地对图像中的文本内容进行识别过滤 五是意图分析技术。虽然邮件发送者经常修改 IP 地址,但他的目的仍然是一样的。希望 收件人登录网站或拨打电话,登录网页等意图,这项技术主要是通过分析网页或链接等邮件 内容来确定 这封邮件的意图,通过这项技术来确定垃圾邮件的准确率可以达到 90%以上。 六是 PSP 发送器特征识别技术。一般垃圾邮件发送者会利用别人的服务器发送邮件。因此提出了 PSP 技术。它首先判断发送者的身份,然后在识别发送者之后判断行为。现在已有 的产品是 Pick 防火墙[9]。该方法利用发件人特征识别技术的过程,勾勒出垃圾邮件的特征。 随着深度学习得不断发展,已经在计算机视觉上取得了显著得成果和商业价值[10-13]。同 时也有越来越多得研究人员把深度学习用于自然语言处理中,提取深度语言含义信息。相比 于机器学习采用人工提出特征的方法,大大地减少了人员的工作量,而且还能学习到文本背 后的语义[14-16]。其中主流的深度学习算法中,有卷积神经网络[17]和循环神经网络。前一个主 要学习局部特征,后一个主要处理相关序列的特征。接下来,本文将利用深度学习模型,解 决垃圾邮件过滤问题。

实现技术思路

邮件文本分类方法

 文本预处理

它主要为后面的向量化和特征提取做准备,所以 预处理的过程,也直接影响到后面特征提取的好坏。它主要包括去噪、分词、去停用词等过 程。

非法字符的过滤

非法字符的过滤是文本分类中的一个重要的步骤,因为在我们收集的一些数据文本时, 可能会有一些非结构化的文本或者网页文本,假设文本是从淘宝的网页收集过来的,其中的 数据包含的噪声如网页链接、表情符号、数字、字符、标点符号等,这些对于文本分类来说 都是无用信息,我们都需要首先过滤掉这些噪声信息。此外,在中文的文本分类过程中,我 们还需要把文本统一编码。

分词

它是将句子分割成为一个一个这样的词语,一般有中文分词和英文分词两种[19-20]。在英文 文本中,空格或标点符号通常用于分词,而空格可以分割英语,这是一种自然的分隔符。因 此,在中文分词中,没有像 Spaces 这样的分词,因此在分词过程中,中文分词比英语分词更 难。在中文中一般使用的分词方法有基于词典法[21]、基于理解法、基于统计法。基于词典法 就是需要构造一定大小的词典,将分词文本和词典进行匹配,当词语为词典中所包含内容时, 分词的效果较高,反之会很差;基于统计的分词方法最常用的就是 n-gram,将文本中任意出 现的 n 个词进行统计,次数越高越可能是一个词;基于理解的分词方法通过模拟人脑进行分 析句子的方法,对句法和语义进行分析理解,处理句子中间出现的歧义部分,达到识别效果。

去除停用词

停止词是对文本分类没有实际意义的词,但经常出现,如“它们,是,返回,因此”代词, 介词等。如果没有这些多余的词的话,分类效果会更好。我们可以通过构建一个停用词库, 将文本数据和停用词库进行匹配比较,如果匹配正确,就应该删除这个停用词。

替换相关词

以上的文本预处理的方法已经可以满足我们的需求,但是为了对文本数据集进行优化, 比如一些英文字母和数字符号是一些无用的信息,并且出现的频率很低,这时我们就可以将 其中的数字统一进行替换为一个值,如 number,这样减少了词典大小,加快算法计算效率的 同时提高了分类效果。

词向量方法研究

在对数据进行完过滤、分词、去除停用词等一系列的预处理之后,我们需要将数据转换 为模型能够识别的输入形式,将文本表示转换为数值表示[22-23]。通常用到的方法有:词袋模 型( Bag of Words,简称 BoW )和 One_hot 编码。其中词袋模型( Bag of Words,简称 BoW )仅 仅是建立一个词典表,通过统计文本在词典表中出现的频率来表示每个词的向量值,这种做 法只和词频有关,忽略了上下文信息和语义信息,是一种最简单的词向量模型。One_hot 编码 是一种词集模型( Set of Words, 简称 SoW ),它和词袋模型的区别就是它计算单词是否出现, 而不是出现的次数。如果一次或多次,则计为 1,否则计为 0。文本数据经过上述的预处理和 向量化表示之后,特征的原始维度可能很大,因此我们要从这原始的很多个特征中选取一部 分更有效的特征,这类特征可以更简洁、更有效的对文本特征进行更好的表示。其中有一些 我们比较常用的特征选择或者特征降维,特征降维一般采用 Hash Trick [24]方法。特征选择通 常采用特征频率(TF)、文档频率(DF)、信息增益(IG)、互信息(MI)和 2 x 统计。

算法模型

Bayes 分类模型

朴素贝叶斯分类模型(Naive Bayes Classifier,NBC)是一种基于贝叶斯原理的分类器[25], 在大量的分类实验中表现出相当好的效果。一般只要是以贝叶斯为基础的分类器我们都称之 为贝叶斯分类器。我们最常见的贝叶斯分类器是朴素贝叶斯,它之所以最常见用的最广泛, 主要是因为他是所有贝叶斯分类器中最简单且高效的。 Bayes 定理:如果样本为类 y 的概率为 (p y) ,样本有特征的概率 x 为 (p x) ,则该样本属于 类 y 的概率公式如 2.1 所示:

Decision Tree 分类模型

 在机器学习算法中,有一种是基于树结构对决策进行分类的,它就是决策树(Decision Tree) 算法[26]。其核心思想是在数据集的所有特征中选择最优特征,然后选择最优候选分割值 从该 特征的选定值开始,然后根据最佳候选分割值将原始数据集分成两部分,并一直重复前面的 步骤,直到达到指定的要求。图 2.3 展示了一个简单的决策树例子:

SVM 分类模型 

支持向量机,它可以用于处理二分类的有监督问题,后来再加入了核方法就可以解决非线 性问题,同时它也可以用于多目标分类问题上。 它主要把分类过程转化为凸二次规划过程,通过求解基于凸二次规划的优化算法实现算 法的学习过程[29]。基本思想可归纳如下:在样本中找到可以分离样本类别的分类超平面,且 该超平面使样本类别的分区间隔最大化。支持向量机有许多核函数。由于所选内核函数的不 同,样本可能从低维度变为高维度,将非线性变为线性并完成非线性分类。

实现效果图样例

我是海浪学长,创作不易,欢迎点赞、关注、收藏、留言。

毕设帮助,疑难解答,欢迎打扰!

最后


http://chatgpt.dhexx.cn/article/dwEomBcf.shtml

相关文章

机器学习:朴素贝叶斯算法与垃圾邮件过滤

简介 贝叶斯算法是由英国数学家托马斯贝叶斯提出的,这个算法的提出是为了解决“逆向概率”的问题。首先我们先来解释下正向概率与逆向概率的含义: 正向概率:假设一个箱子里有5个黄色球和5个白色球,随机从箱子里拿出一个球&#…

朴素贝叶斯算法--垃圾邮件过滤

文章目录 一、朴素贝叶斯概述1、贝叶斯决策理论2、条件概率3、朴素贝叶斯4、朴素贝叶斯一般过程 二、朴素贝叶斯算法--垃圾邮件1、准备数据:从文本中构建词向量2、训练算法:从词向量计算概率3、测试算法:根据现实情况修改分类器5、垃圾邮件分…

机器学习-朴素贝叶斯过滤垃圾邮件

一、朴素贝叶斯实现垃圾邮件分类的原理 什么是朴素贝叶斯算法:用贝叶斯定理来预测一个未知类别的样本属于各个类别的可能性,选择可能性最大的一个类别作为该样本的最终类别。 用这个算法处理垃圾邮件就可以理解为:用贝叶斯定理来预测一封由若干个单词组成…

机器学习项目(一)——垃圾邮件的过滤技术

一、垃圾邮件过滤技术项目需求与设计方案 二、数据的内容分析 (1、是否为垃圾邮件的标签,spam——是垃圾邮件;ham——不是垃圾邮件) (2、邮件的内容分析——主要包含:发件人、收件人、发件时间以及邮件的内…

多线程的闭锁和栅栏

多线程的闭锁和栅栏 JAVA并发包中有三个类用于同步一批线程的行为,分别是闭锁(Latch),信号灯(Semaphore)和栅栏(CyclicBarrier)。这里我们主要来介绍一下: 闭锁&#x…

分布式锁(Distributed Lock)理论介绍

在多线程环境中,线程之间通常使用互斥锁实现共享资源的独占访问。在多进程环境,特别是分布式环境,常使用分布式锁来实现共享资源的独占访问。简单来说,分布式锁就是指在分布式环境下,通过加解锁实现多节点对共享资源的…

迟滞电路 平稳欠压和过压闭锁

下述的等式假设比较器输入端的输入偏置电流为0,而示例只考虑了电阻比,而未考虑绝对值。比较器输入同时具有输入失调电压(VOS)、参考误差(也可以与VOS合并),以及输入偏置电流或漏电流(ILK)。如果分压器偏置电流&#xf…

偏向锁

流程讲解 当JVM启用了偏向锁模式(JDK6以上默认开启),新创建对象的Mark Word中的Thread Id为0,说明此时处于可偏向但未偏向任何线程,也叫做匿名偏向状态(anonymously biased)。 偏向锁逻辑 1.线程A第一次访问同步块时&…

什么是间隙锁?

什么是间隙锁? 间隙锁是一个在索引记录之间的间隙上的锁。 间隙锁的作用 保证某个间隙内的数据在锁定情况下不会发生任何变化。比如mysql默认隔离级别下的可重复读(RR)。 当使用唯一索引来搜索唯一行的语句时,不需要间隙锁定。如下面语句的id列有唯一索引,此时只会对id值…

锁消除、锁粗化、偏向锁、适应性锁

文章目录 锁消除锁粗化偏向锁适应性锁 锁消除 锁消除是JIT编译器对内部锁实现的一种优化。JIT可以借助逃逸分析来判断同步块的锁对象是否只是被一个线程访问,如果是的话,则在编译期间不生成内部锁的申请与释放对应的机器码,即消除了锁的使用…

多线程并发之CountDownLatch(闭锁)使用详解

专题相关文章: 从内存可见性看Volatile、原子变量和CAS算法 多线程并发之CountDownLatch(闭锁)使用详解 多线程并发之显示锁Lock与其通信方式Condition源码解读 多线程并发之读写锁(ReentranReadWriteLock&ReadWriteLock)使用详解 多线程并发之线程池Executor与…

【ABAQUS】什么是剪切闭锁?剪切闭锁会导致什么?

“完全积分”是指当单元具有规则形状时,对单元刚度矩阵中的多项式项进行精确积分所需的高斯点数。对于六面体和四边形元素,“规则形状”意味着边缘是直的,并以直角相交,任何边缘节点都位于边缘的中点。 完全积分的线性元素在每个…

电力“五防”闭锁系统

(转载) 电力“五防”闭锁系统 随着电子技术在各个行业领域的飞速发展,电力的“五防”也将发生革命性的转变。现代电力系统规模不断扩大,从而促使电压的等级也得到了进一步提高。为了使电力系统的安全稳定运行能够得以充分保障&am…

【LB-1A 100V电压回路断相闭锁继电器】

系列型号 LB-1A电压回路断相闭锁继电器 LB-1A闭锁继电器 1 用途 LB-1A型电压回路断相闭锁继电器(以下简称继电器)是在交流电压回路断线而可能引起继电保护误动作时,对继电保护进行闭锁。该继电器用于中性点非直接接地系统中。 2 结构与工作原…

间隙锁

一.几个基本概念 行锁:给某一行加的锁间隙锁:就是两个值之间的间隙。为了解决幻读问题,InnoDB 只好引入新的锁,也就是 间隙锁 (Gap Lock)。间隙锁Gap,左右都是开区间,间隙锁行锁合称next-key lock,每个 next-key lock…

闭锁,信号量,栅栏

1. 闭锁(countDownLatch) 1.1. 作用: 相当于一扇门,在闭锁到达结束状态之前,这扇门是关着的,所以的线程都不允许通过,当闭锁到达结束状态,这扇门打开并允许所有的线程通过。在…

visio 2010激活教程

一、下载office2010toolkit.zip 若下载链接失效,手动搜索office2010toolkit http://ys-c.ys168.com/605279628/o4W138W45JIPI5SiuWf5/office2010toolkit.zip二、激活 激活过程中需要关闭office套件

Microsoft Visio Professional 2013 安装步骤

1.打开解压后的文件夹,点击setup.exe安装 2.勾选我接受此协议的条款,继续 3.点击立即安装 4.安装完成,关闭。 5.打开第一步解压的文件夹中破解文件夹,鼠标右键以管理员身份运行 6.点击激活office2013VL 7.激活完成 Microsoft Visi…

激活Visio2013

最近需要用Visio,由于密钥过期了,也不知道怎么重新输密钥,于是网上搜索,终于找到了一个方法。 KMSpico工具,安装完后直接打开点击左边红色按钮就可以了。如图: 最后附上工具链接https://pan.baidu.com/s/1…