邮件自动分类器设计与实现毕业论文
2020-03-24 15:24:37
摘 要
在这个信息大数据年代,每个人每天都会收到来自四面八方的不同种类的电子邮件,其中不乏垃圾邮件,广告邮件,而真正需要的邮件很少,但是整理电子邮件却极其麻烦,但是不去管它,邮件便会在邮箱中越堆越多,对今后的查找邮件带来极其严重的麻烦,因此本文便是针对这样的问题,借助IntelliJ IDEA 2018.1 x64软件,采用JAVA语言进行程序的编写,研究设计的一个邮件自动分类系统,致力于为用户解决这些不必要的麻烦。
本文主要研究朴素贝叶斯分类算法,利用朴素贝叶斯的分类特性,采用数据挖掘方法,达到以下目的:
提取邮件文本信息:收集邮件数据集,然后利用数据挖掘技术,把邮件的文本信息提取出来转化为计算机能够识别的语言。
对提取的文本信息进行分词:先自定义一些分词器去除一些单词,在利用Lucene分词器对提取的文本进行分词处理,随后将其转化为向量。
利用向量计算概率:对所有的数据集进行向量化然后,对提取出来的文本向量进行机器训练,得出分类类别的概率向量,再用其和需要分类的邮件的向量做计算得出概率值。
实现朴素贝叶斯算法:对数据进行处理,根据结果进行分类,完成邮件的自动分类。
本文主要是针对英文邮件进行自动分类,首先是邮件的垃圾过滤(二分类),把它分为有用的邮件和垃圾邮件,接着在对有用邮件进行分类,分为体育,商业,国际,政治四个类别的邮件。
最后的的实验结果将采用一个web端进行展示。
关键词:JAVA语言;朴素贝叶斯分类算法;数据挖掘;邮件分类;web技术;
Abstract
In this era of information big data, everyone receives different kinds of e-mails from all sides every day. There is no shortage of spam and advertisements, and there are few mails that are really needed. However, it is extremely troublesome to organize e-mails, but they are not in control. It will increase the number of e-mails in the e-mail, and it will cause serious problems for future e-mail search. Therefore, in this conditions.With the aid of IntelliJ IDEA 2018.1 x64. Using JAVA language for program writing, researching and designing an automatic mail classification system, is dedicated to solving these unnecessary troubles for users.
In this conditions, we mainly study the Naive Bayes classification algorithm, use the Naive Bayesian classification characteristics, and adopt the data mining method to achieve the following purposes :
- Extraction of mail text information: collecting mail data sets, and then using data mining techniques to extract the text information of the mail and convert it into a language that the computer can recognize.
- Segmentation of the extracted text information: first customize some word segmentation devices to remove some words, use the Lucene word segmentation device to segment the extracted text, and then convert it into vectors.
- Calculate Probability Using Vectors: Carry out vectorization on all datasets. Then, machine-train the extracted text vectors to obtain the probability vector of the classification category. Calculate the probability value by using the vector of the mail that needs to be classified.
- Naive Bayes algorithm processing: According to the results of the classification, so as to achieve the results of automatic classification.
In this conditions is mainly for the automatic classification of English mail, the first is the two categories of mail, divided into useful and spam e-mail, and then in the classification of useful mail, divided into sports, commerce, international and political four categories of mail.
The final experimental results will be displayed using a web.
Key Words:JAVA, the Naive Bayesian Classifier algorithm, Data Mining, E-mail classification, Web Front-end
目录
第1章 绪论 1
1.1 研究背景和意义 1
1.2 国内外研究现状 1
1.3 研究内容 3
1.3.1 邮件文本数据的提取 3
1.3.2 分词和机器训练 3
1.3.3 采用朴素贝叶斯算法进行分类 3
1.4 全文结构 4
第2章 文本处理 6
2.1邮件数据集的收集处理 6
2.1.1邮件数据集收集方式 6
2.1.2安然邮件数据库 6
2.2 邮件文本的处理 10
2.2.1分词器介绍 10
2.2.2 Lucene分词器应用 11
2.3文本转化向量 12
2.3.1 如何实现文本向量化 12
2.3.2文本向量化的实现过程 13
第3章 垃圾邮件过滤 16
3.1朴素贝叶斯方法实验 16
3.1.1 基于贝叶斯决策理论的分类算法 16
3.1.2 条件概率 17
3.1.3 使用条件概率分类 18
3.2 邮件数据集的训练 18
3.2.1 从词向量计算概率 18
3.3 使用贝叶斯过滤垃圾邮件 21
3.3.1 构建分类器 21
3.3.2 测试算法:使用朴素贝叶斯进行交叉验证 27
第4章 多分类实现 29
4.1 多分类实现的四个分类 29
4.2 邮件多分类的实现 29
4.2.1 邮件训练集 29
4.2.2 分类器本身的重载方法 30
4.2.3 分类优化 33
第5章 邮件自动分类器的验证 35
5.1 前端展示 35
5.1.1首页展示 35
5.1.2 原始邮件页面展示 35
5.1.3 上传邮件页面展示 37
5.2分类功能测试 38
5.2.1 垃圾邮件过滤 38
5.2.2 邮件多分类展示 39
结 论 41
参考文献 42
致 谢 43
第1章 绪论
研究背景和意义
随着科技的迅速发展,大数据已经逐渐的接管了这个时代,信息的获取、处理和传输变成了社会运行的首要任务,在社会生产中不是我们拥有什么用户就要使用什么,而是用户需要什么我们就要生产什么,随着计算机知识的不断普及,邮箱的用户也日益增多,电子邮件作为目前应用最为广泛的计算机通信手段,它进一步的促进了人们之间的信息交流和商业发展,不光是用户与用户之间,黑客和广告商也非常的会利用邮件这个交流手段,从而导致用户每天收到的邮件数量可以说是非常巨大的,然而面对数量如此多的邮件,人工整理显然是一件既费时又费力的方法,实不可取的,如果有一个软件可以自动完成邮件的整理工作就会免除人们许多的繁琐工作,从而节约用户大量的时间。
基于以上情况,本文采用朴素贝叶斯分类算法将用户收到的邮件进行分类,分为二分类:垃圾邮件(Spam)、有用邮件(Use E-mail),在进行多分类,分为:体育邮件(Sports E-mail)、商业邮件(Business E-mail)、政治邮件(Political E-mail)、国际邮件(International E-mail)。从而自动的帮用户把收到的邮件自动分类,方便用户使用邮箱查询邮件,提高工作效率,和使用的舒适 程度,免除一些繁琐的工作。
国内外研究现状
在这个互联网时代中,人们的生活节奏和以往相比发生了翻天覆地的变化,几百公里的路程,以往需要几天几夜的快马加鞭才能到达,而现在几个小时的高铁,飞机把时间的花费大大的缩短了;同样的,相隔两地的人们,如果需要互相联系,也不用像以前那么通过书信的方式,几个月才能说上那么几句话,一个电话就能和思恋的人畅谈;文件亦或是如此,以往需要一份文件的时候,不说是距离很远的两个城市,就是相隔着两条街文件的传递也是很麻烦的事情,需要人们出行传送,更改也显得不是那么的便利,而邮件的出现,提供了人们这方面的改善,在交流方面,不能电话交流的事情也可以通过邮件的快速发送从而交谈,在工作方面,文件的传输也可以变得快速而方便,更大的便利是有利于文件上的不同看法上的更改。在学习方面也提供了师生交流学习的良好桥梁,商业中,商谈也可以通过邮件来达到完美的效果......可以说邮件已经融入到每一个人的生活之中,是一个生活工作的必需品,学会写邮件发邮件也是一项必备技能。
就像信件有信箱一样,有了邮件自然有了邮箱,当今时代电子邮箱多种多样,网易邮箱,QQ邮箱,126邮箱都是其中的代表,它们负责实现邮件的存放,接收,和发送功能,便利于人们的使用。由于邮箱邮件的广泛普及,每一秒产生的邮件量也是巨大无比,而且由于用途的广泛,邮件的类别也是多种多样的,因此各种各样的邮件堆积再一起,就会给用户带来一定的麻烦,让用户的体验感变差,因此如何把各式各样的邮件分类便成了一个重要的问题。
对于邮件自动分类功能的研究主要运用的是朴素贝叶斯分类算法,虽然贝叶斯是一个很古老的学派,但是其从诞生开始直到一百年前一直不是主流。当时的主流学派其实是频率学派。频率学派对贝叶斯学派不屑一顾,但是,它硬是凭借在现代特定领域的出色应用表现逐渐的占据了一定的主导地位,为自己赢得了如今的荣誉。贝叶斯学派的思想可以用这个表达式来表示:先验概率 数据=后验概率。后验概率是在研究实际问题时得到的,可以综合先验概率和数据进行分析得到。先验概率是频率学派攻击的首要目标,先验概率就是对于数据所涉及领域的一些以往的经验,但是这个经验一般难以模型化和量化,于是贝叶斯学派假设了比如正态分布,beta分布等模式的先验分布模型。在很多实际应用中,贝叶斯理论很好用,比如本文设计的邮件垃圾过滤等问题。
目前来说已有很多文献研究了朴素贝叶斯算法在邮件分类器上的运用,例如《机器学习实战》就介绍了如何使用朴素贝叶斯算法实现邮件的垃圾过滤问题。在《智能web算法》中也介绍了很多的分类的算法,但是主要介绍的还是如何利用朴素贝叶斯分类算法实现邮件的多分类问题。
在目前已知的国内外邮箱中已经有了对邮件的自动分类功能,例如QQ邮箱,126邮箱等等都具有一定的自动分类功能,但是分类的效果并不理想,依然存在瑕疵:
- 在邮件接收之后垃圾过滤效果差,经常有漏网之鱼亦或是把有用的邮件错分为垃圾邮件的情况;
- 在邮件的多分类过程中,由于邮件自身性质的多样性,在细分时往往不能严格的分类,出现分类混乱的问题;
- 邮件分类效率低,依然存在邮件堆积如山的现象。
作为一个毕业生,并不是说有能力在短短的几个月时间里面去突破这么多年的研究成果,也不是说要一直研究这个系统,而是在他们的研究成果的基础上进一步的认识和了解邮件自动分类功能,去学习研究,不论之后的工作研究的是什么方向,都只是为自己的态度和能力打一个基础。
研究内容
1.3.1邮件文本数据的提取
在一个项目开始之前,往往都需要做很多的准备工作。本文主要是研究邮件自动分类,自然需要有邮件和邮件中的内容,也就是文本信息,那么获取邮件数据集和如何提取邮件文本信息便是最初需要考虑的一步。
在目前这个信息发达的时代对于邮件数据集的收集其实并不是难事,本文主要是通过安然邮件数据库得到的邮件数据,从而进行之后的开发和设计
邮件文本信息的读取采用的是数据挖掘技术,各行各业都有着非常多的数据资料,如果仅仅靠数据库的查询检索机制和统计学方法来提取这些庞大的数据中隐藏着的有用信息,效率是极低的,费时费力。为了解决如何自动的智能的将待处理的数据装换成有价值的信息的问题--数据挖掘(Data Mining)技术应运而生[1]。
数据挖掘[2]技术融合了目前最新技术的研究结果,它是一种汇集例如数据库技术、知识工程、人工智能、统计学、信息检索、机器学习等多学科领域的新技术。数据挖掘的应用领域也是非常广泛,因此利用数据挖掘工具可以挖掘很多有用信息,分析有价值的数据库。对于本文来说主要是利用数据挖掘工具提取邮件中的文本,从而做好准备工作。
1.3.2 分词和机器训练
在做好第一步准备工作之后,将要做的是对提取出来的文本进行分词,在转换成计算机能够识别的语言,在接着进行机器训练。
对于分词工作,本文主要采用的是Lucene分词器进行分词,Lucene分词器时目前java语言包中自带的一个分词器功能,具有很好的英文分词效果,在接下来的章节会做具体的介绍。
在文本分词成功之后,把分得的词转化为计算机可以识别的机器语言,也就是将文本向量化,向量化的目的是为了进行之后的机器训练,对垃圾邮件、正常邮件以及正常邮件之后的四个分类的邮件数据集进行训练,得出一个属于这个类的向量,从而可以使用朴素贝叶斯分类公式进行分类。
1.3.3 采用朴素贝叶斯算法进行分类
最后的一步是如何运用朴素贝叶斯算法进行分类的实现,因此必须要知道贝叶斯公式是什么,是如何让推导的:
(1)贝叶斯公式推导[3]:
下面是条件独立公式,假如X和Y相互独立,则有:
P(X,Y)=P(X)P(Y)P(X,Y)=P(X)P(Y)
下面是条件概率公式:
P(Y|X)=P(X,Y)/P(X)P(Y|X)=P(X,Y)/P(X)
P(X|Y)=P(X,Y)/P(Y)P(X|Y)=P(X,Y)/P(Y)
或者说:
P(Y|X)=P(X|Y)P(Y)/P(X)P(Y|X)=P(X|Y)P(Y)/P(X)
下面是全概率公式:
P(X)=∑kP(X|Y=Yk)P(Yk)其中∑kP(Yk)=1P(X)=∑kP(X|Y=Yk)P(Yk)其中∑kP(Yk)=1
结合上面的公司推导出贝叶斯公式:
P(Yk|X)=P(X|Yk)P(Yk)∑kP(X|Y=Yk)P(Yk)
了解了公式是如何得到,如何进行分类之后,便是实现它的过程,这也是本文的主要研究的内容,如何采用朴素贝叶斯算法进行邮件的分类,在第三章和第四章会做详细的介绍。
全文结构
本文主要的结构分为5个章节以及总结 参考文献 致谢。
第一章主要是对于绪论的编写,分别写了邮件自动分类器的研究背景和意义、国内外研究现状、研究内容。
第二章主要讲述的是文本处理模块,主要是讲述邮件集收集和处理的方式,主要介绍了该设计中使用的安然邮件数据集,然后是介绍分词器的应用,主要介绍了分词器的原理作用,以及分词器的种类,本文主要使用的Lucene分词器。
第三章主要介绍了如何用朴素贝叶斯算法实现垃圾邮件过滤的实现过程,主要分为朴素贝叶斯方法实验介绍和邮件数据集如何训练以及如何实现垃圾邮件过滤,这是实现垃圾邮件过滤的主要环节。
第四章主要介绍了邮件多分类的实现过程,分别从四个分类的介绍;多分类算法的重载方法以及本文采用的分类优化算法。
第五章主要是前端界面的展示以及邮件自动分类器性能的测试。
最后是对本次设计的总结的编写以及参考文献列表和致谢。
文本处理
2.1邮件数据集的收集处理
2.1.1邮件数据集收集方式
因为只有拥有了原料才能加工成成品,而邮件便是邮件自动分类器的一个原料,因此在进行邮件自动分类器的设计与实现之前,我们需要做的第一件事情就是收集邮件数据集。
邮件作为当今时代,文件传输,人际交流的主流形式之一,保密程度,不容置疑,因此想要简单的获取他人邮件,并不是一件容易的事情,但是邮件数据集的收集依然有很多的方式,最为简单的便是人工手动的生成邮件数据集,当然这样生成的邮件数据集,根据时间和人力的关系,只适合于高精度的数量少的邮件数据集,若需要庞大的邮件数据集,可以去一些贩卖邮件集网站购买,也可以利用爬虫技术从论坛或者邮箱APP自行爬取,这样获得的数据集更为精确,但是针对于本次的邮件自动分类器的开发和设计,我个人推荐实用安然邮件数据库中的邮件数据集已经绰绰有余了[4]。
2.1.2安然邮件数据库
在目前已知的电子邮件的相关研究中,使用得最多的公开数据集便是安然邮件数据库,它的由来是出自的邮件数据是安然公司(Enron Corporation)中的150位高级管理人员的往来的邮件,至于为什么会暴露出来,是因为当安然公司在接受美国联邦能源监管委员会调查时这些邮件也随着被公布到了网上[5]。
将邮件用户作为节点,每一封邮件作为边,将安然邮件数据集清理之后列出如表格2-1所示的数据[6]。
以上是毕业论文大纲或资料介绍,该课题完整毕业论文、开题报告、任务书、程序设计、图纸设计等资料请添加微信获取,微信号:bysjorg。
相关图片展示:
课题毕业论文、开题报告、任务书、外文翻译、程序设计、图纸设计等资料可联系客服协助查找。