计算机毕业设计Python深度学习垃圾邮件分类检测系统 朴素贝叶斯算法 机器学习 人工智能 数据可视化 大数据毕业设计 Python爬虫 知识图谱 文本分类

基于朴素贝叶斯的邮件分类系统设计

摘要:为了解决垃圾邮件导致邮件通信质量被污染、占用邮箱存储空间、伪装正常邮件进行钓鱼或诈骗以及邮件分类问题。应用Python、Sklearn、Echarts技术和Flask、Lay-UI框架,使用MySQL作为系统数据库,设计并实现了基于朴素贝叶斯算法的邮件分类系统,并以Web形式部署在本地计算机。运用Sklearn库对KNN算法、SVM算法和朴素贝叶斯算法进行建模和训练,将训练结果进行分析和对比得出朴素贝叶斯算法在准确率、召回率和精确率三个指标下比其他分类算法更适合邮件分类,因此选择朴素贝叶斯算法作为系统核心算法。系统功能包括邮件检测与数据管理两大核心模块,邮件检测模块,采用基于朴素贝叶斯算法,使用TF-IDF算法对邮件进行特征提取并将邮件内容以及检测结果存储于MySQL数据库,存储到MySQL中的数据将用于数据管理模块;数据管理模块包括数据存储、数据分析、数据可视化。系统采用黑盒测试方法对两个模块进行功能性测试,测试结果符合预期。系统满足设计基本需求,能安全、稳定和可靠地运行。

关键词:邮件分类;贝叶斯算法;MySQL;特征词提取

Design of mail classification system based on Naive Bayes

Abstract: In order to solve the spam resulting in mail communication quality pollution, occupy mailbox storage space, camouflage normal mail for phishing or fraud and mail classification problems. The mail classification system based on naive Bayes algorithm is designed and implemented by using Python, Sklearn, Echarts technology, Flask, Lay-UI framework and MySQL as the system database, and is deployed on the local computer in the form of Web. Sklearn was used to model and train KNN algorithm, SVM algorithm and naive Bayes algorithm, and the training results were analyzed and compared. Through comparison, it was concluded that naive Bayes algorithm was more suitable for mail classification than other classification algorithms under the three indexes of accuracy, recall rate and accuracy rate. Therefore, naive Bayes algorithm was chosen as the core algorithm of the system. The system functions include two core modules: mail detection and data management. Mail detection module, based on naive Bayes algorithm, uses TF-IDF algorithm to classify mails and store mail contents and detection results in MySQL database. Data stored in MySQL will be used in data management module. The data management module includes data storage, data analysis and data visualization. System uses black box test method to perform functional test on the two modules, and the test results are in line with expectations. The system meets the basic design requirements and can run safely, stably and reliably.

Keywords: Mail classification; Bayesian algorithm; MySQL; Feature word extraction

  录

1 绪论

1.1 项目背景 1

1.2 国内外现状 1

1.3 项目意义 2

2 邮件预处理技术

2.1 邮件内容解析

2.2 文本分词技术

2.3 特征词提取技术

2.4 小结

3 常用邮件分类算法

3.1 KNN算法

3.2 支持向量机(SVM)

3.3 朴素贝叶斯算法

3.4 邮件分类算法评估及分类算法选择

4 基于朴素贝叶斯算法邮件分类系统需求分析

4.1 系统可行性分析

4.2 功能性需求分析分析

5 基于朴素贝叶斯算法邮件分类系统设计

5.1 系统总体设计

5.2 数据库设计

6 系统功能实现

6.1 后端功能模块实现

6.2 前端功能模块实现 28

6.2 系统检测信息可视化以及邮件内容分析

7 系统测试

7.1 测试方法

7.2 测试用例

8 结论

致谢

参考文献 


1 绪论

1.1 项目背景

随着互联网技术的普及与应用,现今拥有各种各样的网络通讯工具,邮件作为比较正式的网络通讯工具,被互联网用户广泛的使用着,同时邮件也具有操作便利、费用低廉、速度快捷等特点,但是邮件为人们带来便利的同时,也带来了种种负面影响。人们时常会收到一些无用的推销邮件,以及散布虚假信息、反动和色情信息,甚至还有包含病毒的邮件,需要花费大量的精力和时间来清理这些垃圾邮件,这给日常生活带来了麻烦,消耗了大量的网络资源和存储空间,为社会带来了比较大的危害[1]。

1.2 国内外现状

中国互联网协会定义垃圾邮件:未经用户许可发送同时发送给大量用户,影响正常网络通信;含有恶意的、虚假的、伪装的邮件发信人等信息。2003年2月26日,中国互联网协会颁布的《中国互联网协会垃圾邮件对策规范》第3条规定:收件人事先未提出要求或不同意接收的广告、电子刊物、各种形式宣传物等宣传性电子邮件;收件人无法拒绝的电子邮件;隐藏发送者身份、地址、标题等信息的电子邮件;包含假信息源、发送者、路由等信息的电子邮件。垃圾邮件的危害主要有以下五个方面。

(1)降低通信服务质量:占用网络带宽,造成邮件服务器堵塞,降低整个网络的运营效率。

(2)干扰了人的正常工作生活,垃圾邮件耗费收件人的时间、精力。

(3)被少数别有用心的人利用邮件的便利性以及隐蔽性广泛散播虚假有害信息,严重危害社会稳定。

(4)有些钓鱼邮件具有隐蔽性和危险性,不认真审查就会泄露信息,继而被不法分子进行电信诈骗,泄露机密信息等不法行为,严重影响社会稳定。

(5)影响LSP的服务形象,发送较多的垃圾邮件的主机会被国际反垃圾阻止列入黑名单,导致该主机访问网站或者发送邮件受到限制[2]。

从2020年到2023年期间,有关于邮件分类的研究主要关注以下四个方面:

(1)深度学习在邮件分类中的应用:随着深度学习技术的不断发展和应用,越来越多的研究者开始尝试将其应用于邮件分类领域。这种新型算法可以自动提取特征,对大规模数据进行训练,从而提高了分类精度。

(2)较少监督的邮件分类方法:监督学习方法需要大量标记好的数据作为训练集,但很多情况下难以获得足够的标记数据。因此,较少监督的或无监督的邮件分类方法逐渐成为研究热点。例如,基于主题模型、协同分类等方法,可以利用已有的少量标记数据和大量未标记数据进行分类。

(3)多语言邮件分类:随着全球化的加速,越来越多的邮件涉及多种语言,使得多语言邮件分类成为重要的问题。近年来,一些研究者提出了针对多语言邮件分类的方法,如通过跨语言知识迁移、多语言文本嵌入等方式解决多语言分类问题。

(4)针对特定领域邮件分类:随着各行业的快速发展,不同领域的邮件也呈现出多样化的特点。因此,在邮件分类研究中,针对特定领域的邮件分类也成为了一个热点问题。例如,针对医疗、法律等特定领域的邮件分类研究逐渐增多[3]。

综上所述,从2020年到2023年期间,邮件分类的研究主要关注于深度学习的应用、较少监督的方法、多语言和特定领域邮件的分类等问题,这些研究成果可以为系统设计提供更加精准和高效的邮件分类技术。

1.3 项目意义

基于上述邮件分类项目的背景介绍,实现邮件分类系统不但能够解决邮件分类问题,节省更多的人力资源,提高用户的工作效率,而且可以避免垃圾邮件对用户带来的骚扰。接下来将结合邮件预处理技术以及邮件分类算法,实现邮件分类系统。

2 邮件预处理技术

在进行垃圾邮件识别之前,我们首先需要对邮件数据进行预处理。预处理步骤包括文本分词、去除停用词、词干提取等。接下来介绍邮件内容组成以及三种文本分词技术和五种特征词分类算法。

2.1 邮件内容解析

因为电子邮件在传输过程中需要进行编码,以便于网络传输和存储,所以解析电子邮件需要解码,电子邮件数据的解码过程分为两个过程:

ASCII解码:将8位二进制数转换成对应的字符。

Base64解码:将Base64编码后的文本转换成二进制数据。Quoted-printable解码:将“=”加上其十六进制编码转换成对应的字符。需要注意的是,邮件内容的编码方式和解码方式需要同时使用,才能正确地还原邮件内容。

2.2 文本分词技术

文本分词是一种自然语言处理技术,用于将自然语言文本分解成具有实际含义的单词或符号序列,称为词汇项。文本分词是邮件分类系统中重要的一个环节,对系统有很大的影响。分类方法一般分为两类:英文分词和中文分词[4]。

常见的文本分词技术包括基于规则的方法和基于统计学习的方法。基于规则的方法使用一组预定义规则,例如词典和语法规则,来将文本分解成单词和短语。这种方法的局限性在于需要手动添加规则,并且在面对复杂和未知的情况时效果不佳。

现在对中文分词的方法主要有三种方法:正向最大匹配法、全切分法和基于词频分词法。下文就这三种中文分词方法的原理和特点进行简单的介绍和举例说明。

2.2.1 正向最大匹配法

正向最大匹配法的基本原理是:是从左到右扫描待分词的文本,每次取文本的前面一段最长的词作为切分出的词,然后将这个词从待分词文本中去掉,继续对剩下的文本进行切分,直到文本全部被切分为止[5]。其中最大匹配指的是每次选择的词具有最长的匹配长度。

对于正向最大匹配法来说可以举一个例子来说明:

假设有一个文本串“我喜欢吃巧克力”以及一个简单的词典{我,喜欢,吃,巧克力}。

从句子开头开始匹配,首先匹配到的是“我”。因为“我”是一个词,所以匹配成功。

匹配完第一个词之后,继续从“我”的下一个字符开始匹配。此时匹配到的是“喜”。

“喜”不是一个完整的词,所以需要往后继续匹配。继续匹配下一个字符,此时匹配到的是“欢”。

继续往后匹配,此时匹配到了“喜欢”。因为“喜欢”是一个词,所以匹配成功。

继续匹配下一个字符,此时匹配到了“吃”。因为“吃”是一个词,所以匹配成功。

继续匹配下一个字符,此时匹配到了“巧”。

因为“巧”不是一个完整的词,所以需要继续往后匹配。匹配下一个字符,此时匹配到了“克”。

继续匹配下一个字符,此时匹配到了“力”。因为“巧克力”是一个词,所以匹配成功。

到达句子末尾,匹配结束。

根据以上示例,正向最大匹配法的基本流程就是在文本串中从左往右匹配出最长的词,并将其切分出来。这种方法简单易行,但也有一些局限性,例如无法处理歧义问题和新词问题等。

2.2.2 全切分法

全切分法的基本思想是:将待分词的文本中的所有可能的切分方式都进行尝试,从中选择最合适的一种切分方式作为最终的分词结果。具体来说,全切分法会对待分词文本进行递归切分,将文本从左到右依次分成不同的子串,然后对每个子串进行判断,如果是一个词,则将其加入分词结果中,否则将其继续递归切分,直到全部的子串都被切分为止。全切分法的优点是能够保证分词的准确性,但是由于需要考虑所有可能的切分方式,所以速度较慢,不适用于大规模文本的分词[6]。

2.2.3 基于词频分词法

词频分词法的基本思想是:通过统计的方法计算相邻字出现的频率来表示他们的互信息,当他们的频率超过某个阈值时,就把这两个字当成一个词,然后把这些词的词频相乘从而得到最后结果。这种方法复杂度比较高,而且低频词的错误难以克服。

2.3 特征词提取技术

将邮件文本内容经过分词处理后,提取出来的词的数量比较大,如果将这些词全部用作特征,特征向量的维数仍然比较大,可以通过对特征项作进一步的选择和提取,得到贡献比较大的特征集,来提高分类系统的运行速度和程序效率。特征词提取技术是文本挖掘领域的一种重要技术,可以从文本中自动提取出具有代表性或区分性的关键信息,以帮助计算机更好地理解和处理文本。现在常用的特征提取方法有以下五种。

2.3.1 TF-IDF(词频.倒排词频)法

该方法的基本原理是:TF(Term Frequency):词频指的是在一个文档中某个词出现的次数,TF值越高表示该词在文档中的重要性越高。IDF(Inverse Document Frequency):逆文档频率指的是一个词在整个文集中出现的频率,IDF值越高表示该词在整个文集中的重要性越低。TF-IDF:将TF和IDF相乘得到一个词的TF-IDF值,表示该词在文档中的重要性,同时考虑了该词在整个文集中的重要性。应用:TF-IDF可以用于文本分类、关键词提取、相似度计算等任务,通过计算文档中每个词的TF-IDF值,可以找到最相关的文档或者提取出最重要的关键词[7]。

参考文献:

  1. 李剑峰. 个人计算机的安全与计算机病毒防范[J]计算机与网络, 2005(09):40-41
  2. 王震. 如何有效治理互联网垃圾邮件[J]信息系统工程, 2009(05):21-22.
  3. 刘少阳大数据时代电子邮件中的隐私权保护[D]. 北京, 北京邮电大学, 2016
  4. 朱冲冲基于排序学习的个性化推荐算法研究[D]. 北京, 北京理工大学, 2018.
  5. 代伟邮件分类器的设计与实现[D]. 长春, 吉林大学, 2010.
  6. 林文鹏基于中文文本挖掘的邮件过滤系统的设计与实现[D]. 沈阳, 沈阳理工大学, 2020.
  7. 梁好基于改进K最近邻模型的反馈学习垃圾邮件过滤系统的设计与实现[D]. 长春, 东北师范大学, 2010.
  8. 严石基于改进TF-IDF和fastText算法的文本分类研究[D]. 淮南, 安徽理工大学, 2020
  9. 王斯琴改进朴素贝叶斯算法在垃圾邮件过滤中的应用[D]. 重庆, 重庆师范大学, 2020.
  10. Sun, M, A study on spam email classification algorithm based on Naive Bayes. International Journal of Security and Its Applications[J], 2017(08), 205-206.
  11. Chen, L. Email classification system based on improved naive Bayes algorithm. Journal of Computer Applications[J]. 2018(01), 297-298. 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/424805.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Gitlab 中几种不同的认证机制(Access Tokens,SSH Keys,Deploy Tokens,Deploy Keys)

前言 公司主要使用 Go 语言做项目,有一些 Gitlab 私有仓库需要引用,在做 CI 时,要自行配置权限以获取代码。 最近发现各个项目组在做 CI 遇到仓库权限问题时的解决方式不尽相同,有用 Project Token 的,有用 Deploy K…

unity3d入门教程五

unity3d入门教程五 13鼠标事件处理13.2鼠标跟随13.3鼠标拖拽(选中对象,拖动对象)13.4几个问题14.1事件函数14.2脚本的执行顺序14.3脚本的参数14.4引用类型的参数(进行图片更换,人物换装) 13鼠标事件处理 需…

自由流转--实例

一、自由流转的形态 流转能力打破设备界限,多设备联动,使用户应用程序可分可合、可流转,实现如邮件跨设备编辑、多设备协同健身、多屏游戏等分布式业务。 二、跨端迁移 在应用开发层面,跨端迁移指在A端运行的UIAbility迁移到B端上…

Linux操作系统如何添加新字体

在一个Linux操作系统及办公软件刚安装后,会发现缺少常用的“楷体_GB2312”和“仿宋_GB2312”字体。此时,只需要从其它电脑复制到或者从互联网上下载到这两个字体文件,然后导入到自己的电脑即可,再次打开办公软件就会看到这个字体已…

linux重要文件

/etc/sysconfig/network-scripts/ifcfg-eth1 网卡重启 /etc/init.d/network restart ifup ethname & ifdown ethname /etc/resolv.conf 设置Linux本地的客户端DNS的配置文件 linux客户端DNS可以在网卡配置文件(/etc/sysconfig/network/ifcfg-eth0 DNS2)里配置 也可以在/et…

FL Studio 24.1.1.4285中文破解完整版免费下载FL 2024注册密钥完整版crack百度云安装包下载

FL Studio 24.1.1.4285中文破解版是一个强大的软件选项,可以使用专业应用程序(如最先进的录音机、均衡器、内置工具等)制作循环和歌曲。它由数百个合成器和混响等效果以及均衡器组成,除此之外,您还可以在新音乐制作的方…

9. 什么是 Beam Search?深入理解模型生成策略

是不是总感觉很熟悉? 在之前第5,7,8篇文章中,我们都曾经用到过与它相关的参数,而对于早就有着实操经验的同学们,想必见到的更多。这篇文章将从示例到数学原理和代码带你进行理解。 Beam Search 对应的中文翻…

【C++】queue和priority_queue

个人主页~ queue和priority_queue 一、queue的介绍和使用1、queue的介绍2、queue的使用3、queue的模拟实现 二、priority_queue的介绍和使用1、priority_queue的介绍2、priority_queue的使用3、priority_queue的模拟实现 三、仿函数1、仿函数的特征2、仿函数的使用 ex、有关于l…

2020-11-04 求最小与均值输入0结束

缘由编写c语言希望进行一些解释_编程语言-CSDN问答 void 求最小与均值输入0结束() {//缘由https://ask.csdn.net/questions/1102407int x 1, m INT_MAX, n 0, c 0;while (x)cin >> x, (x&&m > x ? m x : 0), n x, (x ? c : 0);cout << "最…

【智路】智路OS air-edge 开发者手册 包管理工具

包管理工具 https://airos-edge.readthedocs.io/zh/latest/airospkg/airospkg.html 功能概述 智路OS包支持部署在智路OS开源版本和智路OS发行版。 智路OS发行版&#xff08;airos distribution&#xff09;是基于智路OS的商业化版本。包括智路OS内核层、系统工具、库、软件…

WPS如何删除表格下的空白页

WPS Office&#xff08;12.1.0.17827&#xff09; ① 鼠标右键&#xff0c;选择段落 ② 行距&#xff1a;固定值&#xff1b;设置值&#xff1a;1磅&#xff1b;取消勾选&#xff0c;确定即可~

Qt与Udp

(1)绑定端口 (2)广播 用udp实现广播通信_udp广播-CSDN博客 数据的发送是面向整个子网的&#xff0c;任何一台在子网中的计算机都可以接收到相同的数据。 如果一台机器希望向其他N台机器发送信息&#xff0c;这时候可以使用UDP的广播。 --------------- 广播地址&#xff1…

《论层次架构及其在软件系统中的应用》写作框架,软考高级系统架构设计师

论文真题 层次架构作为软件系统设计的一种基本模式,对于实现系统的模块化、可维护性和可扩展性具有至关重要的作用。在软件系统的构建过程中,采用层次架构不仅可以使系统结构更加清晰,还有助于提高开发效率和质量。因此,对层次架构的理解和应用是软件工程师必备的技能之一…

C#开发基础之单例模式下的集合数据,解决并发访问读写冲突的问题

1. 前言 在C#中&#xff0c;使用单例模式管理集合数据时&#xff0c;如果多线程同时访问集合&#xff0c;容易产生并发访问的读写冲突问题。单例模式下集合数据的并发访问读写冲突是如何产生的&#xff1f; 单例模式确保一个类在整个应用运行期间只有一个实例&#xff0c;这使…

《华为 eNSP 模拟器安装教程》

1.电脑安装环境要求&#xff1a; 检查电脑是否安装过 eNSP 和依赖软件&#xff0c;如果有&#xff0c;请全部卸载。 安装软件列表&#xff1a; 2.软件安装&#xff1a; 安装 WinPcap&#xff1a; 打开安装包&#xff0c;单击【Next】 单击【I Agree】 单击【Install】 单击【…

supermap iclient3d for cesium场景加载雨雪效果,并加载相应材质

首先新建一个文件夹来存放材质&#xff0c;我选择src/assets/MaterialJson snow.json,复制粘贴,雨雪用一个就行了 {"material": {"id": "DA82AFCB-129A-4E66-995A-9F519894F58D","cullMode": "none","alphaMode"…

OpenCV结构分析与形状描述符(19)查找二维点集的最小面积外接旋转矩形函数minAreaRect()的使用

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 找到一个包围输入的二维点集的最小面积旋转矩形。 该函数计算并返回指定点集的最小面积边界矩形&#xff08;可能是旋转的&#xff09;。开发者…

prompt实用技巧-AI+Mermaid【酷炫钉钉文档】

AI 新技能&#xff0c;最近 chatGPTo1 发布后模型能力出现了新的跨越&#xff0c;之前模型的一本正经的胡说八道幻想模式&#xff0c;让AI 对待理科推理明显弱于文案的 AGI 的生成。 prompt engineer 工程师程序员的福音 prompt 内容如下&#xff0c; 按照以上格式生成创建公…

2024年华为9月4日秋招笔试真题题解

2024年华为0904秋招笔试真题 二叉树消消乐好友推荐系统维修工力扣上类似的题--K站中转内最便宜的航班 二叉树消消乐 题目描述 给定原始二叉树和参照二叉树(输入的二叉树均为满二叉树&#xff0c;二叉树节点的值范围为[1,1000]&#xff0c;二叉树的深度不超过1000)&#xff0c…

【信创】Linux上图形化多ping工具--gping的编译安装与打包 _ 统信 _ 麒麟 _ 方德

原文链接&#xff1a;【信创】图形化多ping工具gping的编译安装与打包 | 统信 | 麒麟 | 方德 Hello&#xff0c;大家好啊&#xff01;今天给大家带来一篇关于在Linux操作系统上使用gping的文章。gping是一款非常实用的命令行工具&#xff0c;它将传统的ping命令进行了可视化改进…