下载 > 资源分类 >  网络技术 >  网络基础 > 要求综合运用 STL,实现一个简单的垃圾邮件过滤程序

要求综合运用 STL,实现一个简单的垃圾邮件过滤程序

2009-09-07 上传大小:2KB
Homework5
1、问题描述 
电子邮件便利了人们之间的沟通,但亦衍生出许多的问题,例
如: 
	成为病毒散布的有效媒介。 
	垃圾邮件厂商(Spammer)滥发广告信件,不但浪费了网络带
宽,同时也占据了使用者收件箱的空间,浪费了使用者宝贵
的时间。 
	骇客伪造寄信者发送欺诈信件,例如:伪造由银行客服人员
发出的信件,谎称使用者密码过期,需要上网变更密码,然
后引诱使用者到恶意网站打入银行账户及密码,有人称这种
手法为网络钓鱼(phishing)。 
由于垃圾邮件的问题日益严重,因此有许多软件致力于过滤这
                            
些垃圾电子邮件(当然也包括了病毒邮件以及欺诈邮件) 。但是如何判断一封邮件是否为垃圾邮件。目前有一种作法是定义所谓的“垃圾信指数” 。首先,先观察被邮件管理者或者使用者归类为垃圾的邮件,找出被视为“垃圾邮件”出现最多次的关键字(key word),将这些关键字加入“垃圾邮件辨识资料库” 。而后在收到每一封新邮件时,如果信件中出现这些关键字,这封信的“垃圾信指数”会加分。一般而言,垃圾信过滤软件会预先设定垃圾邮件指数的分类门
槛。如果一封信的垃圾邮件指数超过这个门槛,就会被设定为垃圾邮件。 
(1)垃圾邮件辨识资料库范例如下: 
9  出现一次“viagra”这个单词,垃圾指数会加4 分 
9  出现一次“drug”这个单词,垃圾指数会加 3分 
9  出现一次“drugs” 这个单词,垃圾指数会加 3 分 
9  出现一次“price” 这个单词,垃圾指数会加 2 分 
9  出现一次“discount” 这个单词,垃圾指数会加 2分 
9  出现一次“free” 这个单词,垃圾指数会加3分 
(2)垃圾指数阈值:阈值在程序执行时输入。 
(3)测试资料: 
如收到一封 email信件(sample.eml)如下: 
From:<sales@viagra.com> 
To:<huandalu@gmail.com> 
Subject:New viagra generation 
Dear  Customers,do  you  need  viagra?Long  effects!No 
prescription Needed! 
Besides,we can offer you special discount!! 
You  can  have  a  free  trial  pill  if  you  can  go  to  our  website 
and register your 
information before 7/8 2008 
Best Regards.VIAGRA Sales Team. 
 信件的头部(From,To,Subject)及正文部分都要进行字符串比
对。假设垃圾信指数阈值设定为 5 分。上面这封信件共出现 3 次
viagra、一次 discount 以及一次 free,垃圾信指数则为
4*3+1*2+1*3=17 分,超过 5分,因此会被判定为垃圾信。 
(4)关键字文件格式为:关键字  分数(以Tab 键隔开,参见
wordlist.txt) 
如: 
discount 2 
great 3 
sell  5 
viagra  1 
单词大小写视为不同。 
本次作业要求综合运用 STL,实现一个简单的垃圾邮件过滤程序。 
2、要求 
(1)输入:您的执行程序必须能够读入三个参数。 
第一个参数为垃圾邮件关键字文件名称 
第二个参数为输入的电子邮件文件名称 
第三个参数为垃圾信指数阈值 
如: 
SpamFilter wordlist.txt sample.eml 10 
(2) 将email文件的内容拆成 tokens,英文大小写共52 个字母以外的字符均视为token 的分隔。 
提示:解析器伪代码 
char tBuff[200]; 
bool inToken = false; 
int buffIndex; 
for each character ch in email file 
{ 
          If not inToken and isEnglishChar(ch) 
              buffIndex = 0; 
              tBuffer[buffIndex] = ch; 
              inToken = true; 
          else if inToken and isEnglishChar(ch) 
              tBuff[++bufferIndex] = ch; 
          else if inToken and not isEnglishChar(ch) 
            tBuff[++buffIndex] = ‘\0’; 
            inToken = false; 
            //成功取出一个string token 
           else if not inToken and not isEnglishChar(ch) 
             //skip the character ch 
} 
(3) 在屏幕上输出以下内容: 
	是否为垃圾信 
	垃圾指数阈值 
	该封信的得分                        
...展开收缩
综合评分:0(0位用户评分)
开通VIP C币充值 立即下载

评论共有0条

登录后才能评论

 
基于文本内容的垃圾邮件过滤程序 立即下载
积分/C币:3
垃圾邮件过滤系统的研究与实现 立即下载
积分/C币:10
垃圾邮件过滤技术的分析与实现 立即下载
积分/C币:3
深度讲解:垃圾邮件综合举报关键技术 立即下载
积分/C币:3
贝叶斯统计一个重要的搜索引擎算法或垃圾邮件算法理论基础(无密码) 立即下载
积分/C币:3
燕衔泥WEB垃圾邮件发送程序 立即下载
积分/C币:3
一种改进的贝叶斯算法在垃圾邮件过滤中的研究 立即下载
积分/C币:10
支持向量机 垃圾邮件过滤论文 立即下载
积分/C币:3
基于MapReduce的贝叶斯垃圾邮件过滤机制 立即下载
积分/C币:10
贝叶斯垃圾邮件过滤 立即下载
积分/C币:5
关闭
img

spring mvc+mybatis+mysql+maven+bootstrap 整合实现增删查改简单实例.zip

资源所需积分/C币 当前拥有积分 当前拥有C币
5 0 0
点击完成任务获取下载码
输入下载码
为了良好体验,不建议使用迅雷下载
img

要求综合运用 STL,实现一个简单的垃圾邮件过滤程序

会员到期时间: 剩余下载个数: 剩余C币: 剩余积分:
为了良好体验,不建议使用迅雷下载
VIP下载
您今日下载次数已达上限(为了良好下载体验及使用,每位用户24小时之内最多可下载20个资源)

积分不足!

资源所需积分/C币 当前拥有积分
您可以选择
开通VIP
4000万
程序员的必选
600万
绿色安全资源
现在开通
立省522元
或者
购买C币兑换积分 C币抽奖
img

资源所需积分/C币 当前拥有积分 当前拥有C币
5 4 45
(仅够下载10个资源)
为了良好体验,不建议使用迅雷下载
确认下载
img

资源所需积分/C币 当前拥有积分 当前拥有C币
5 0 0
为了良好体验,不建议使用迅雷下载
C币充值 开通VIP
img

资源所需积分/C币 当前拥有积分 当前拥有C币
5 4 45
您的积分不足,将扣除 10 C币
为了良好体验,不建议使用迅雷下载
确认下载
下载

兑换成功

你当前的下载分为234开始下载资源
你还不是VIP会员
开通VIP会员权限,免积分下载
立即开通

你下载资源过于频繁,请输入验证码

您因违反CSDN下载频道规则而被锁定帐户,如有疑问,请联络:webmaster@csdn.net!

举报

若举报审核通过,可奖励5下载分

  • 举报人:
  • 被举报人:
  • 举报的资源分:
  • *类型:
  • *详细原因: