计算机毕业设计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.2 国内外现状
中国互联网协会定义垃圾邮件:未经用户许可发送同时发送给大量用户,影响正常网络通信;含有恶意的、虚假的、伪装的邮件发信人等信息。2003年2月26日,中国互联网协会颁布的《中国互联网协会垃圾邮件对策规范》第3条规定:收件人事先未提出要求或不同意接收的广告、电子刊物、各种形式宣传物等宣传性电子邮件;收件人无法拒绝的电子邮件;隐藏发送者身份、地址、标题等信息的电子邮件;包含假信息源、发送者、路由等信息的电子邮件。垃圾邮件的危害主要有以下五个方面。
(1)降低通信服务质量:占用网络带宽,造成邮件服务器堵塞,降低整个网络的运营效率。
(2)干扰了人的正常工作生活,垃圾邮件耗费收件人的时间、精力。
(3)被少数别有用心的人利用邮件的便利性以及隐蔽性广泛散播虚假有害信息,严重危害社会稳定。
(4)有些钓鱼邮件具有隐蔽性和危险性,不认真审查就会泄露信息,继而被不法分子进行电信诈骗,泄露机密信息等不法行为,严重影响社会稳定。
(5)影响LSP的服务形象,发送较多的垃圾邮件的主机会被国际反垃圾阻止列入黑名单,导致该主机访问网站或者发送邮件受到限制[2]。
从2020年到2023年期间,有关于邮件分类的研究主要关注以下四个方面:
(1)深度学习在邮件分类中的应用:随着深度学习技术的不断发展和应用,越来越多的研究者开始尝试将其应用于邮件分类领域。这种新型算法可以自动提取特征,对大规模数据进行训练,从而提高了分类精度。
(2)较少监督的邮件分类方法:监督学习方法需要大量标记好的数据作为训练集,但很多情况下难以获得足够的标记数据。因此,较少监督的或无监督的邮件分类方法逐渐成为研究热点。例如,基于主题模型、协同分类等方法,可以利用已有的少量标记数据和大量未标记数据进行分类。
(3)多语言邮件分类:随着全球化的加速,越来越多的邮件涉及多种语言,使得多语言邮件分类成为重要的问题。近年来,一些研究者提出了针对多语言邮件分类的方法,如通过跨语言知识迁移、多语言文本嵌入等方式解决多语言分类问题。
(4)针对特定领域邮件分类:随着各行业的快速发展,不同领域的邮件也呈现出多样化的特点。因此,在邮件分类研究中,针对特定领域的邮件分类也成为了一个热点问题。例如,针对医疗、法律等特定领域的邮件分类研究逐渐增多[3]。
综上所述,从2020年到2023年期间,邮件分类的研究主要关注于深度学习的应用、较少监督的方法、多语言和特定领域邮件的分类等问题,这些研究成果可以为系统设计提供更加精准和高效的邮件分类技术。
1.3 项目意义
基于上述邮件分类项目的背景介绍,实现邮件分类系统不但能够解决邮件分类问题,节省更多的人力资源,提高用户的工作效率,而且可以避免垃圾邮件对用户带来的骚扰。接下来将结合邮件预处理技术以及邮件分类算法,实现邮件分类系统。
在进行垃圾邮件识别之前,我们首先需要对邮件数据进行预处理。预处理步骤包括文本分词、去除停用词、词干提取等。接下来介绍邮件内容组成以及三种文本分词技术和五种特征词分类算法。
因为电子邮件在传输过程中需要进行编码,以便于网络传输和存储,所以解析电子邮件需要解码,电子邮件数据的解码过程分为两个过程:
ASCII解码:将8位二进制数转换成对应的字符。
Base64解码:将Base64编码后的文本转换成二进制数据。Quoted-printable解码:将“=”加上其十六进制编码转换成对应的字符。需要注意的是,邮件内容的编码方式和解码方式需要同时使用,才能正确地还原邮件内容。
文本分词是一种自然语言处理技术,用于将自然语言文本分解成具有实际含义的单词或符号序列,称为词汇项。文本分词是邮件分类系统中重要的一个环节,对系统有很大的影响。分类方法一般分为两类:英文分词和中文分词[4]。
常见的文本分词技术包括基于规则的方法和基于统计学习的方法。基于规则的方法使用一组预定义规则,例如词典和语法规则,来将文本分解成单词和短语。这种方法的局限性在于需要手动添加规则,并且在面对复杂和未知的情况时效果不佳。
现在对中文分词的方法主要有三种方法:正向最大匹配法、全切分法和基于词频分词法。下文就这三种中文分词方法的原理和特点进行简单的介绍和举例说明。
2.2.1 正向最大匹配法
正向最大匹配法的基本原理是:是从左到右扫描待分词的文本,每次取文本的前面一段最长的词作为切分出的词,然后将这个词从待分词文本中去掉,继续对剩下的文本进行切分,直到文本全部被切分为止[5]。其中最大匹配指的是每次选择的词具有最长的匹配长度。
对于正向最大匹配法来说可以举一个例子来说明:
假设有一个文本串“我喜欢吃巧克力”以及一个简单的词典{我,喜欢,吃,巧克力}。
从句子开头开始匹配,首先匹配到的是“我”。因为“我”是一个词,所以匹配成功。
匹配完第一个词之后,继续从“我”的下一个字符开始匹配。此时匹配到的是“喜”。
“喜”不是一个完整的词,所以需要往后继续匹配。继续匹配下一个字符,此时匹配到的是“欢”。
继续往后匹配,此时匹配到了“喜欢”。因为“喜欢”是一个词,所以匹配成功。
继续匹配下一个字符,此时匹配到了“吃”。因为“吃”是一个词,所以匹配成功。
继续匹配下一个字符,此时匹配到了“巧”。
因为“巧”不是一个完整的词,所以需要继续往后匹配。匹配下一个字符,此时匹配到了“克”。
继续匹配下一个字符,此时匹配到了“力”。因为“巧克力”是一个词,所以匹配成功。
到达句子末尾,匹配结束。
根据以上示例,正向最大匹配法的基本流程就是在文本串中从左往右匹配出最长的词,并将其切分出来。这种方法简单易行,但也有一些局限性,例如无法处理歧义问题和新词问题等。
2.2.2 全切分法
全切分法的基本思想是:将待分词的文本中的所有可能的切分方式都进行尝试,从中选择最合适的一种切分方式作为最终的分词结果。具体来说,全切分法会对待分词文本进行递归切分,将文本从左到右依次分成不同的子串,然后对每个子串进行判断,如果是一个词,则将其加入分词结果中,否则将其继续递归切分,直到全部的子串都被切分为止。全切分法的优点是能够保证分词的准确性,但是由于需要考虑所有可能的切分方式,所以速度较慢,不适用于大规模文本的分词[6]。
2.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]。
参考文献:
- 李剑峰. 个人计算机的安全与计算机病毒防范[J]. 计算机与网络, 2005(09):40-41.
- 王震. 如何有效治理互联网垃圾邮件[J]. 信息系统工程, 2009(05):21-22.
- 刘少阳. 大数据时代电子邮件中的隐私权保护[D]. 北京, 北京邮电大学, 2016.
- 朱冲冲. 基于排序学习的个性化推荐算法研究[D]. 北京, 北京理工大学, 2018.
- 代伟. 邮件分类器的设计与实现[D]. 长春, 吉林大学, 2010.
- 林文鹏. 基于中文文本挖掘的邮件过滤系统的设计与实现[D]. 沈阳, 沈阳理工大学, 2020.
- 梁好. 基于改进K最近邻模型的反馈学习垃圾邮件过滤系统的设计与实现[D]. 长春, 东北师范大学, 2010.
- 严石. 基于改进TF-IDF和fastText算法的文本分类研究[D]. 淮南, 安徽理工大学, 2020.
- 王斯琴. 改进朴素贝叶斯算法在垃圾邮件过滤中的应用[D]. 重庆, 重庆师范大学, 2020.
- 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.
- Chen, L. Email classification system based on improved naive Bayes algorithm. Journal of Computer Applications[J]. 2018(01), 297-298.