基于客户端的个性化电子邮件过滤系统和过滤方法

文档序号:10515538
基于客户端的个性化电子邮件过滤系统和过滤方法
【专利摘要】本发明公布了一种基于客户端的个性化电子邮件过滤系统和过滤方法,系统包括接收模块、过滤和更新模块、显示模块;接收模块接收邮件,将邮件进行预处理;过滤和更新模块包括数据库、条件匹配器和智能检测分类器;数据库为训练数据集;条件匹配器用于用户设置过滤条件,根据过滤条件对邮件进行过滤,再利用分类器对邮件进行检测分类,同时利用接收到的邮件对分类器的训练数据集进行实时更新,由此实现个性化的电子邮件过滤分类;显示模块将电子邮件过滤分类的结果显示出来。本发明提供的技术方案不仅过滤方法多样化、性能好,还能满足实时性和个性化的要求。
【专利说明】
基于客户端的个性化电子邮件过滤系统和过滤方法
技术领域
[0001] 本发明设及邮件过滤技术,尤其设及一种基于客户端的个性化电子邮件过滤系统 和过滤方法。
【背景技术】
[0002] 目前垃圾邮件过滤方法大多基于两种特征提取方法。其中,一种依赖传统的统计 学,通过分析处理待选特征词的统计信息,将其依据可区分性排序,提取出可区分性良好的 特征词;运种方法虽然可W提取出大量的有效特征,然而,由于缺乏对运些特征的进一步处 理,导致特征向量维度过高,增加了计算的复杂度。
[0003] 另一种基于人工免疫系统,结合免疫思想,模拟生物抗体的生成过程,提取出具备 启发性的特征。然而,该类方法侧重于启发式规则的建立,而较少利用统计学理论分析所提 取的特征有效性。
[0004] 目前的垃圾邮件过滤方法,多采用已有数据集来训练,难W做到根据接收到的邮 件进行数据集的实时更新。现有邮件客户端采用的垃圾邮件过滤方法大多是在服务器端进 行过滤,然后在客户端上对邮件进行分类显示。运种在服务器端进行过滤的方法,需要采集 很多用户的使用情况后,才能进行邮件数据集的更新,从而导致实时性较差。同时,因为在 服务器端统一进行邮件过滤,所有用户的邮件过滤效果都相似甚至相同,造成用户个性化 的需求难W被满足。

【发明内容】

[0005] 为了克服上述现有技术的不足,本发明提供一种基于客户端的个性化电子邮件过 滤系统和过滤方法,通过计算免疫浓度特征,由于不同用户收到的邮件各不相同,采用在本 地客户端进行训练学习的方法,用户接收到每封邮件都会对训练数据集进行更新,由此实 现个性化电子邮件过滤。
[0006] 本发明提供的技术方案是:
[0007] -种基于客户端的个性化电子邮件过滤系统,包括接收模块、过滤和更新模块、显 示模块;
[000引所述接收模块用于接收邮件,再将接收到的邮件进行预处理,并将预处理结果传 给过滤模块;
[0009] 所述过滤和更新模块包括数据库、条件匹配器和智能检测分类器;数据库为存储 在本地的训练数据集;条件匹配器用于用户设置过滤条件,根据过滤条件对接收到的邮件 进行过滤;同时利用智能检测分类器对接收到的邮件进行检测分类,得到接收到邮件的分 类,并利用接收到的邮件对智能检测分类器的训练数据集进行实时更新,从而针对每个用 户建立其特有的训练数据集,使得智能检测时的分类器因用户而异,由此实现个性化的电 子邮件过滤分类;
[0010] 所述显示模块将电子邮件过滤分类的结果显示出来。
[00川本发明具体使用JAVA语言编程实现上述客户端系统;通过调用Waikato linvironment for Knowledge Analysis(Weka)的函数库来实现分类器训练和分类。用户设 置的过滤条件包括关键词过滤条件和发件人地址过滤条件等。
[0012]本发明还提供一种基于客户端的个性化电子邮件过滤方法,分为训练阶段和过滤 阶段,本方法基于免疫浓度特征,采用在本地进行训练学习的方法,针对用户接收到的每封 邮件,通过本地数据集的实时更新,得到每个用户个性化的训练数据集,实现不同用户个性 化的邮件过滤要求,从而解决邮件过滤的实时性和个性化的问题;具体包括如下步骤:
[001引1)在训练阶段,执行如下步骤:
[0014] 11)针对已有的电子邮件数据集,根据词的信息量和倾向度,生成两类检测器集 合,分别为正常邮件检测器集合和垃圾邮件检测器集合;
[0015] 12)针对已有的电子邮件数据集,利用步骤11)构建好的检测器集合,构建免疫浓 度特征向量,得到所述电子邮件数据集中的每封邮件对应的免疫浓度特征向量;
[0016] 13)利用步骤12)得到的每封邮件对应的免疫浓度特征向量,训练分类器,得到训 练好的分类器模型;
[0017] 2化过滤阶段,执行如下步骤:
[0018] 21)对接收邮件进行预处理,对接收到的每封邮件进行解析,得到所述邮件的标 题、正文、收件人地址、发件人地址,所述标题、收件人地址、发件人地址,设置过滤条件(包 括标题过滤条件、收发地址过滤条件等),用于进行邮件分类;对所述正文进行分词,每封邮 件均被划分成多个特征词;
[0019] 22)对接收邮件进行分类过滤,执行如下操作:
[0020] 221)对接收到的每封邮件,利用步骤11)构建好的检测器集合,将接收到的每封邮 件重构成相应的免疫浓度特征向量,得到接收到的每封邮件对应的免疫浓度特征向量;
[0021] 222)利用步骤13)所述分类器模型对邮件进行分类,得到分类结果;
[0022] 223)根据分类结果和用户设置的过滤条件,对接收邮件进行过滤处理,得到过滤 处理结果;
[0023] 23)根据用户交互操作进行实时更新并显示出来,包括如下情况:
[0024] 23a)当接收邮件被归类为垃圾邮件时,所述邮件进入"垃圾邮件箱";
[0025] 23b)当接收邮件被归类为正常邮件时,所述邮件进入"收件箱";
[0026] 23c)当用户发现垃圾邮件箱中存在正常邮件,或者收件箱中存在垃圾邮件时,用 户可手动将错分的邮件重新分类;对所述重新分类的邮件,进行分词处理得到分词,转入步 骤1)用所述分词更新检测器集合,并依次重新构建免疫浓度特征向量和训练分类器。
[0027] 针对上述过滤方法,进一步地,步骤11)所述词的信息量和倾向度分别通过词筛选 方法和倾向度计算方法计算得到;所述词筛选方法具体是:
[0028] 对于已有的电子邮件数据集,通过式1计算得到所有特征词的信息增益I(t),并将 所有特征词根据信息增益I(t)的大小进行排序,将排序位于前m%的特征词添加到基因库; 在本发明实施例中,优选地,m取值为50。
[0029]
[0030] 上式中,P(Ci)表示Cl类别的文档在数据集中的频率;P(t)表示数据集中含有特征 词t的文档的概率;巧巧表示数据集中不含有特征词t的文档的概率;p(Ci It)表示某文档在 特征词t出现的前提下,其属于类别Cl的概率;P(Ci|i)表示在特征词t不出现的前提下,该文 档属于类别Cl的概率。
[0031] 所述倾向度计算具体是:对于所述基因库中的每个特征词,计算该特征词在垃圾 邮件中出现的频率和正常邮件中出现的频率;当该特征词在正常邮件中出现的频率大于该 特征词在垃圾邮件中出现的频率时,将该特征词记入正常邮件检测器集合;当该特征词在 垃圾邮件中出现的频率大于该特征词在正常邮件中出现的频率时,将该特征词记入垃圾邮 件检测器集合;当两者频率相等时,该特征词不纳入任何检测器集合。由此生成两类检测器 集合。
[0032] 针对上述过滤方法,进一步地,步骤12)所述构建免疫浓度特征向量,具体方法是: 对电子邮件数据集中的每封邮件的不同特征词出现在垃圾邮件检测器集合和正常邮件检 测器集合的数量进行计数;设N表示每封邮件中不同特征词的个数,S表示每封封邮件中出 现在垃圾邮件检测器集合的特征词数量,L表示每封邮件中出现在正常邮件检测器集合的 特征词数量;构建得到一个二维向量,记作(S/N,L/N),作为免疫浓度特征向量,由此得到所 述电子邮件数据集中的每封邮件对应的免疫浓度特征向量。
[0033] 针对上述过滤方法,进一步地,所述分类器采用支持向量机SVM。
[0034] 针对上述过滤方法,进一步地,在步骤13)所述训练的过程中,使用二次规划方法 对分类器进行参数优化。
[0035] 与现有技术相比,本发明的有益效果是:
[0036] 现有的垃圾邮件过滤方法,大多采用已有数据集来训练,并且数据集很少做到根 据接收到的邮件进行实时更新。因为它们采用的方法是在服务器端进行过滤,而服务器中 的数据集需要采集很多用户的使用情况W后,才可能进行更新。
[0037] 本发明提供的垃圾邮件过滤方法通过对每封邮件构建免疫浓度特征向量,能够有 效提取邮件的特征,从而提高分类性能,提升垃圾邮件过滤效果。基于免疫浓度特征方法, 在具有较好过滤效果的基础上,针对每个用户接收到的邮件各不相同的特点,在本地对每 个用户建立个性化的邮件检测分类器,从而实现一种个性化的垃圾邮件过滤客户端。客户 端系统还包括其它基于规则的过滤方法,比如白名单、关键词等方法,使得过滤方法多样 化,从而提升系统整体性能。本发明提供的客户端是在本地进行训练学习,用户接收到每封 邮件,都会对训练数据集进行更新。而不同用户收到的邮件各不相同,所W运种本地数据集 的实时更新,可W实现每个用户都不同的个性化的训练数据集,从而实现不同用户之间个 性化的垃圾邮件过滤效果;解决实时性和个性化的问题。
[0038] 综上,本发明提供的技术方案,一方面过滤方法多样化、性能好(垃圾邮件过滤的 准确率、召回率、F度量值等指标能达到98% W上),另一方面能满足实时性和个性化的要 求。
【附图说明】
[0039] 图1是本发明提供的基于免疫浓度特征的过滤方法的流程框图。
[0040] 图2是本发明实施例实现的基于免疫浓度的垃圾邮件客户端系统的结构框图。
[0041] 图3为本发明实施例中客户端系统登录W后的主界面截图。
[0042] 图4为本发明实施例中客户端系统的邮件阅读界面截图。
[0043] 图5为本发明实施例中客户端系统的过滤功能设置界面截图。
【具体实施方式】
[0044] 下面结合附图,通过实施例进一步描述本发明,但不W任何方式限制本发明的范 围。
[0045] 本发明提供了一种基于免疫浓度特征的垃圾邮件过滤方法,提出一种新的免疫浓 度特征提取方法,并将该方法应用到电子邮件客户端系统。该系统支持多个账户同时登录, 从邮件服务器读取用户邮件,提取没封邮件的浓度特征,并使用分类器产生相应的邮件分 类结果。基于免疫浓度特征的垃圾邮件过滤方法可分为训练阶段和过滤阶段,训练阶段将 训练数据集输入分类器,对分类器的参数进行学习和优化,最终得到最优效果下的分类器; 过滤阶段将训练得到的分类器用于本客户端中接收的邮件;具体步骤包括:
[0046] S1)将已有电子邮件集合作为数据集,从中提取免疫浓度特征向量,输入分类器并 进行训练和学习,生成分类器模型;本发明实施例中采用SVM作为分类器;
[0047] S2)各用户收到邮件后,对各用户的邮件分别进行解析,得到邮件的标题、正文和 收件人与发件人地址;
[004引S3)将邮件的正文进行分词,根据分词后的邮件正文、检测器集生成免疫浓度特征 向量,并使用S1中生成的分类器模型对邮件进行分类。
[0049] 本发明提供的基于免疫浓度特征的过滤方法的具体实施流程如图1所示,对接收 的每一封邮件,分别进行解析,得到邮件标题、发信人地址和邮件正文。解析之后得到的邮 件标题和发信人地址等部分,通过匹配用户设置的过滤条件进行过滤,包括关键词过滤、发 件人地址过滤等;解析之后的邮件正文部分,在进行分词之后构建免疫浓度特征,计算分类 结果。最终将用户设置的过滤条件,W及分类器的分类结果相结合,对客户端系统中的邮件 统一进行过滤。依据本发明提供的过滤方法,W下实施例建立了基于免疫浓度的垃圾邮件 客户端系统,该系统使用JAVA语言编程实现,调用了 Weka的函数库来实现分类器训练和分 类。图2是本发明实施例实现的基于免疫浓度的垃圾邮件客户端系统的结构框图,系统主要 包括Ξ大模块:接收模块、过滤模块和显示模块。接收模块将接收到的邮件进行预处理,并 将预处理结果传给过滤模块。过滤模块通过过滤条件和智能检测分类方法,对用户收到的 邮件进行过滤,同时实时更新分类器,实现个性化的分类。显示模块将过滤结果显示出来, 垃圾邮件进入垃圾邮件箱。系统具体实现步骤如下:
[0050] 第一步:构建检测器集合;
[0051] 检测器集合(检测集)是一种检测器的集合,本发明中分为两种,一种是垃圾邮件 检测器集合,另一种是正常邮件检测器集合。其中,通过计算特征词对两类邮件的倾向度, 将更倾向于出现在垃圾邮件中的特征词归入垃圾邮件检测器集合,将更倾向于出现在正常 邮件中的特征词归入正常邮件检测器集合。
[0052] 在检测器集合的生成阶段,主要工作在于将词筛选算法与倾向度函数相结合,根 据特征词的信息量(本实施例中采用信息增益作为信息量的衡量指标,具体计算方式见下 文)和倾向度来生成两种类别的检测器集合。具体地:
[0053] 11)词筛选方法:对于已有的电子邮件数据集,将邮件正文分词处理后得到各个特 征词。对于邮件正文的分词,本实施例中的【具体实施方式】是,将每个汉字作为一个特征词, 每个单词作为一个特征词,比如,"城市"划分为"城"和"市"两个特征词。分词完成后,每封 邮件被划分成了 N个特征词。计算所有特征词的信息增益I(t),其计算公式如式1所示,并将 所有特征词根据信息增益I(t)的大小进行排序。将信息增益排序中排名位于前m%的特征 词添加到基因库,实验证明m = 50时效果最佳;
[0化4]
[0055] 上式中,Cl代表邮件i的类别(正常邮件或垃圾邮件);P(Ci)表示Cl类别(正常邮件 或垃圾邮件)的文档在数据集中的频率;P(t)表示数据集中含有特征词t的文档的概率; P(0表示数据集中不含有特征词t的文档的概率;P(Ci It)表示某文档在特征词t出现的前 提下,其属于类别Cl的概率;P(Cil巧表示在特征词t不出现的前提下,该文档属于类别Cl的 概率。
[0056] 12)倾向度计算:对于基因库中的每个特征词,计算该特征词在每个检测集(本实 施例为垃圾邮件和正常邮件)中出现的频率。
[0057] 在垃圾邮件中出现频率更大的特征词,记入垃圾邮件检测器集合DSs;在正常邮件 中出现频率更大的特征词,记入正常邮件检测器集合DSl;我们认为,在垃圾邮件中出现频 率更大的特征词,应归属于垃圾邮件检测器集;在正常邮件中出现频率中更大的特征词,应 该归属于正常邮件检测器集)。
[005引第二步:构建免疫浓度特征向量;
[0059] 对于已有的电子邮件数据集,计数每封邮件的不同特征词出现在垃圾邮件检测器 集合DSs和正常邮件检测器集合0乱的数量。设N表示每邮件中不同特征词的个数,S表示每封 邮件中出现在垃圾邮件检测器集合的特征词数量,L表示每封邮件中出现在正常邮件检测 器集合的特征词数量。则构建的免疫浓度特征向量是一个二维向量:(S/N,L/N)。
[0060] 第=步:训练分类器
[0061] 上一步将每封邮件重构成了对应的免疫浓度特征向量,利用运些特征向量对分类 器进行训练。本实施例中的分类器选择支持向量机(SVM)。训练的过程中,使用二次规划方 法对分类器模型进行参数优化。
[0062] 第四步:客户端系统对接收邮件的预处理
[0063] 图4为本发明实施例中客户端系统的邮件阅读界面截图,如图4所示,客户端系统 收到邮件后,对邮件进行解析,得到邮件的标题、正文和收件人与发件人地址;其中标题、收 发地址可通过用户设置的过滤条件进行基于过滤条件的邮件过滤;邮件正文实现分词后, 用于上一步训练好的分类器模型;
[0064] 第五步:客户端系统对邮件进行分类过滤
[0065] 上一步中,客户端系统中的每封邮件都被划分成了多个特征词。打开客户端系统 的过滤功能,具体如图5所示。此时再次利用第一步中构建好的检测器集合,按照第二步中 的方法,将每封邮件重构成相应的免疫浓度特征向量,并使用第Ξ步中训练好的分类器模 型对邮件进行分类。最后,根据分类结果,W及用户对标题、收发地址等设置的过滤条件(比 如匹配发件人地址是否存在于黑名单列表中,或者标题中是否含有某些关键字),对客户端 系统中的邮件进行过滤处理,其结果显示在客户端中如图3所示。
[0066] 第六步:根据用户交互操作特点进行实时更新
[0067] 将上一步的过滤结果显示出来,被归类为垃圾邮件的电子邮件进入"垃圾邮件 箱",正常邮件进入"收件箱"。但是,当用户发现垃圾邮件箱中存在正常邮件,或者收件箱中 存在垃圾邮件时,用户可W手动将错分的邮件重新分类。同时,对运些邮件分词处理后,跳 回第一步,用运些分词来更新检测器集合,并依次重新构建免疫浓度特征向量和训练分类 器。检测器集合的更新方法,W-封被用户手动标注为垃圾邮件的电子邮件为例:将该邮件 中不属于正常邮件检测器集的特征词,全部加入垃圾邮件检测器集。同理,被手动标注为正 常邮件的电子邮件,将其不属于垃圾邮件检测器集的特征词,全部加入正常邮件检测器集。
[0068] 需要注意的是,公布实施例的目的在于帮助进一步理解本发明,但是本领域的技 术人员可W理解:在不脱离本发明及所附权利要求的精神和范围内,各种替换和修改都是 可能的。因此,本发明不应局限于实施例所公开的内容,本发明要求保护的范围W权利要求 书界定的范围为准。
【主权项】
1. 一种基于客户端的个性化电子邮件过滤系统,其特征是,包括接收模块、过滤和更新 丰旲块、显不t旲块; 所述接收模块用于接收邮件,再将接收到的邮件进行预处理,并将预处理结果传给过 滤丰吴块; 所述过滤和更新模块包括数据库、条件匹配器和智能检测分类器;数据库为存储在本 地的训练数据集;条件匹配器用于用户设置过滤条件,根据过滤条件对接收到的邮件进行 过滤,再利用智能检测分类器对接收到的邮件进行检测分类,得到接收到邮件的分类;同时 利用接收到的邮件对智能检测分类器的本地训练数据集进行实时更新,由此实现个性化的 电子邮件过滤分类; 所述显示模块将电子邮件过滤分类的结果显示出来。2. 如权利要求1所述个性化电子邮件过滤系统,其特征是,具体使用JAVA语言编程实现 所述个性化电子邮件过滤系统;通过调用Weka的函数库实现所述智能检测分类器。3. 如权利要求1所述个性化电子邮件过滤系统,其特征是,所述用户设置过滤条件包括 关键词过滤条件和发件人地址过滤条件。4. 一种基于客户端的个性化电子邮件过滤方法,包括训练阶段和过滤阶段;所述训练 阶段将训练数据集输入分类器,对分类器的参数进行学习和优化,得到最优的分类器;所述 过滤阶段将训练得到最优的分类器用于客户端中接收的邮件;所述邮件过滤方法基于免疫 浓度特征,通过客户端本地数据集的实时更新,得到每个用户个性化的训练数据集,实现不 同用户个性化的垃圾邮件过滤要求;具体包括如下步骤: 1) 在训练阶段,执行如下步骤: 11) 针对已有的电子邮件数据集,根据分词的信息量和倾向度生成检测器集合;所述检 测器集合包括正常邮件检测器集合和垃圾邮件检测器集合; 12) 针对已有的电子邮件数据集,利用步骤11)构建好的检测器集合,构建免疫浓度特 征向量,得到所述电子邮件数据集中的每封邮件对应的免疫浓度特征向量; 13) 利用步骤12)得到的每封邮件对应的免疫浓度特征向量,训练分类器,得到训练好 的分类器模型; 2) 在过滤阶段,执行如下步骤: 21) 对接收邮件进行预处理,对接收到的每封邮件进行解析,得到所述邮件的标题、正 文、收件人地址、发件人地址,所述标题、收件人地址、发件人地址,设置过滤条件,用于进行 邮件分类;对所述正文进行分词,每封邮件均被划分成多个特征词; 22) 对接收邮件进行分类过滤,执行如下操作: 221) 对接收到的每封邮件,利用步骤11)构建好的检测器集合,将接收到的每封邮件重 构成相应的免疫浓度特征向量,得到接收到的每封邮件对应的免疫浓度特征向量; 222) 利用步骤13)所述分类器模型对邮件进行分类,所述分类包括垃圾邮件或正常邮 件,由此得到分类结果; 223) 根据分类结果和用户设置的过滤条件,再对接收邮件进行过滤处理,进一步得到 过滤处理结果;所述结果为所述接收邮件归类为垃圾邮件或正常邮件; 23) 根据用户交互操作进行实时更新并显示出来。5. 如权利要求4所述邮件过滤方法,其特征是,步骤23)根据用户交互操作进行实时更 新并显示包括如下情况: 23a)当接收邮件被归类为垃圾邮件时,所述邮件进入"垃圾邮件箱"; 23b)当接收邮件被归类为正常邮件时,所述邮件进入"收件箱"; 23c)当用户发现"垃圾邮件箱"中存在正常邮件,或者"收件箱"中存在垃圾邮件时,用 户可手动将错分的邮件重新分类;对所述重新分类的邮件,进行分词处理得到分词,转入步 骤1)的训练阶段,采用所述分词来更新检测器集合,并依次重新构建免疫浓度特征向量和 训练分类器。6. 如权利要求4所述邮件过滤方法,其特征是,步骤11)根据分词的信息量和倾向度得 到检测器集合,所述分词的信息量和倾向度分别通过词筛选方法和倾向度计算方法计算得 到; 所述词筛选方法具体是: 对于已有的电子邮件数据集,通过式1计算得到所有特征词的信息增益I(t),并将所有 特征词根据信息增益I(t)的大小进行排序,将排序位于前m%的特征词添加到基因庠:(式1) 上式中,P (Ci)表示Ci类别的文档在数据集中的频率;P (t)表示数据集中含有特征词t的 文档的概率;Ρ(?)表示数据集中不含有特征词t的文档的概率;ΡΚ, |t)表示某文档在特征 词t出现的前提下,其属于类别匕的概率;P(Ci|i)表示在特征词t不出现的前提下,该文档属 于类别(^的概率; 所述倾向度计算具体是:对于所述基因库中的每个特征词,计算该特征词在垃圾邮件 中出现的频率和正常邮件中出现的频率;当该特征词在正常邮件中出现的频率大于该特征 词在垃圾邮件中出现的频率时,将该特征词记入正常邮件检测器集合;当该特征词在垃圾 邮件中出现的频率大于该特征词在正常邮件中出现的频率时,将该特征词记入垃圾邮件检 测器集合;由此生成两类检测器集合。7. 如权利要求6所述邮件过滤方法,其特征是,m取值为50。8. 如权利要求4所述邮件过滤方法,其特征是,步骤12)所述构建免疫浓度特征向量的 具体方法是: 对电子邮件数据集中的每封邮件的不同特征词出现在垃圾邮件检测器集合和正常邮 件检测器集合的数量进行计数; 设N表示每封邮件中不同特征词的个数,S表示每封封邮件中出现在垃圾邮件检测器集 合的特征词数量,L表示每封邮件中出现在正常邮件检测器集合的特征词数量;构建得到一 个二维向量,记作(S/N,L/N),作为免疫浓度特征向量,由此得到所述电子邮件数据集中的 每封邮件对应的免疫浓度特征向量。9. 如权利要求4所述邮件过滤方法,其特征是,所述分类器采用支持向量机SVM。10. 如权利要求4所述邮件过滤方法,其特征是,在步骤13)所述训练的过程中,使用二 次规划方法对分类器进行参数优化。
【文档编号】H04L12/58GK105871887SQ201610316436
【公开日】2016年8月17日
【申请日】2016年5月12日
【发明人】谭营, 高扬, 米古月
【申请人】北京大学
再多了解一些
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1