著录项信息
专利名称 | 基于内容的大规模垃圾短信实时过滤方法 |
申请号 | CN200710069930.2 | 申请日期 | 2007-07-06 |
法律状态 | 权利终止 | 申报国家 | 中国 |
公开/公告日 | 2008-09-03 | 公开/公告号 | CN101257671 |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | H04Q7/32 | IPC分类号 | H;0;4;Q;7;/;3;2;;;H;0;4;Q;7;/;2;2;;;H;0;4;M;1;/;6;6;3;;;H;0;4;M;1;/;6;6查看分类表>
|
申请人 | 浙江大学 | 申请人地址 | 浙江省杭州市浙大路38号
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 浙江大学 | 当前权利人 | 浙江大学 |
发明人 | 徐从富;陆冠中 |
代理机构 | 杭州求是专利事务所有限公司 | 代理人 | 张法高 |
摘要
本发明公开了一种基于内容的大规模垃圾短信实时过滤方法,其步骤如下:1)利用黑名单和白名单两个过滤模块进行预过滤;2)利用基于频率的过滤模块进行在线过滤;3)采用两次散列的方法对短信内容进行快速过滤;4)对“嫌疑短信”进行短信文本预处理,并将其转化为短语向量;5)采用朴素贝叶斯和支持向量机两种分类器相结合的方法对“嫌疑短信”进行判定。本发明可大幅度提高垃圾短信的过滤速度,并有效降低传统的关键字过滤方法所产生的误判率;可有效解决短时间内恶意群发垃圾短信的问题;可有效地避免将正常短信误作垃圾短信的情况发生,降低代价敏感的误判问题,并且从语义上分析短信内容,有效提高整个系统的过滤准确率。
1.一种基于内容的大规模垃圾短信实时过滤方法,其步骤如下:
1)利用黑名单和白名单两个过滤模块进行预过滤;
2)利用基于频率的过滤模块进行在线过滤;
3)采用两次散列的方法对短信内容进行快速过滤;
4)对“疑似垃圾短信”进行短信文本预处理,并将其转化为短信向量;
5)采用朴素贝叶斯和支持向量机两种分类器相结合的方法对“疑似垃圾短信”进行判定;
所述的步骤1)为:短信首先进入白名单模块,若属白名单则直接放行;否则,进入黑名单模块,若属黑名单则拒绝主叫号码,若不属黑名单,则该条短信送入步骤2);
所述的步骤2)为:对于来自步骤1)的那些既不属于白名单又不属于黑名单的短信,首先将该短信插入该主叫号码对应的记录模型中,记录模型必须包含以下关键信息:主叫号码和该主叫号码在单位时间内已经发送的短信数量,如果该号码并没有超过该滑动窗内规定的短信发送量阈值,则将该短信立即下放给步骤3),否则,将该主叫号码的记录模型中的所有短信都保存至垃圾短信数据库;
所述的步骤3)为:对于来自步骤2)的那些发送频率未超过预设阈值的短信,使用两次散列的方法来快速过滤短信,使用了MD5等散列算法将经确认的垃圾短信映射成一个唯一的散列值,即所谓的短信摘要,每条待定短信也进行同样的散列运算后获得一个短信摘要,将第一次散列所获得的垃圾短信摘要再次进行散列,并存入一个散列表,待定短信摘要也进行散列后存入该散列表,若出现冲突,则说明待定短信摘要与某条垃圾短信摘要相同,即待定短信也是一条垃圾短信,当同一个待定短信摘要在一定时间内出现的次数过多,该散列值又代表了一条疑似垃圾短信,则送入步骤4)进行更进一步的分析和判断;
所述的步骤4)为:对上述“疑似垃圾短信”进行短信清洗、去除停用词、自动分词、词性标注、特征项提取、特征项权重计算和生成短信向量预处理,以剔除短信文本,即由字、词、数字、标点符号构成的文字串中所有与分类任务无关的内容,并将文本转化为由其包含的基本语义单位组成的短信向量;
所述的步骤5)为:把步骤4)中的短信向量分别送入朴素贝叶斯分类器和支持向量机分类器,并将两种分类器分别给出的判定该条“疑似垃圾短信”为垃圾短信的概率按照一定的权重结合起来,最终给出一个概率值,当该概率值超过设定的阈值时,就认为该短信是一条垃圾短信。
基于内容的大规模垃圾短信实时过滤方法\n技术领域\n[0001] 本发明涉及垃圾短信过滤方法,尤其涉及一种基于内容的大规模垃圾短信实时过滤方法。\n背景技术\n[0002] 随着移动通信技术的飞速发展和手机普及率的不断提高,手机短信以其短小、迅速、简便、价格低廉等诸多优点日益成为一种重要的通信和交流方式,越来越受到人们的青睐。短信业务在给广大用户带来便利的同时,出现了垃圾短信泛滥、短信诈骗、短信谣言等问题,给人们的工作生活带来了很多负面影响,甚至成了一大社会公害。据统计,一个省级移动通信运营商每年因垃圾短信问题而遭受的直接损失就高达近千万元,而垃圾短信造成的不良社会影响和引发的社会问题更是难以估计。因此,垃圾短信已超出人们可以容忍的限度,到了非治理不可的地步,一场反垃圾短信运动已成为人们的迫切需求。开发垃圾短信过滤系统对保障手机用户和移动运营商的利益,促进移动通信行业和整个社会的和谐发展意义重大。\n[0003] 当前,垃圾短信的监控和过滤主要有实时过滤机制、话单分析机制和协议监测机制,它们虽已在移动通信运营商的现网中普遍采用,但都存在较多的技术缺陷,仍未能满足垃圾短信过滤的实际需求。在传统的垃圾短信实时过滤方案中,主要利用基于关键字匹配的方法来进行过滤,但这种方法的主要缺点有:(1)效率低。每条短信必须与几十个甚至上百个关键字进行匹配,故效率十分低下,特别是在短信流量非常大时,该方法大大增加了业务流程。(2)误判率高。通常来说,称为关键字的很多词语本身并没有传达任何不良信息,只是此类词语在垃圾短信中出现概率比较高,因而,当正常短信包含任何关键词的时候就会被误判为垃圾短信而被过滤掉。\n[0004] 现有的商用垃圾短信过滤系统主要有朗讯科技(中国)有限公司于2006年初推出的垃圾短信过滤和拦截(ASA)解决方案。ASA虽在国内得到了一定的应用,但效果并不明显。其原因主要有:(1)ASA基于关键字完全匹配的方式,垃圾短信的发送者会采用多种变通方式,例如形近、音近、加分隔符等,绕开监控继续发送;(2)ASA根据发送频次和发送量阈值(即在一定时间内可发送的短信量)来拦截垃圾短信,与所发送的短信内容无关,而在实际应用中,短信发送频次或发送量阈值与具体内容相关,只是难以确定;(3)ASA虽具有一定的学习功能,但由于语言的差异,ASA的学习功能并不符合汉语言习惯,效果并不理想。\n显然,基于传统过滤技术的系统无法满足商用系统对大规模垃圾短信过滤系统所期望的准确、实时、高效的要求。\n发明内容\n[0005] 本发明的目的是提供一种基于内容的大规模垃圾短信实时过滤方法。\n[0006] 基于内容的大规模垃圾短信实时过滤方法步骤如下:\n[0007] 1)利用黑名单和白名单两个过滤模块进行预过滤;\n[0008] 2)利用基于频率的过滤模块进行在线过滤;\n[0009] 3)采用两次散列的方法对短信内容进行快速过滤;\n[0010] 4)对“嫌疑短信”进行短信文本预处理,并将其转化为短语向量;\n[0011] 5)采用朴素贝叶斯和支持向量机两种分类器相结合的方法对“嫌疑短信”进行判定。\n[0012] 所述的利用黑名单和白名单两个过滤模块进行预过滤:短信首先进入白名单模块,若属白名单则直接放行;否则,进入黑名单模块,若属黑名单则拒绝该主叫号码,若不属黑名单,则该条短信进入下一步骤。\n[0013] 所述的利用基于频率的过滤模块进行在线过滤:首先,将该条短信插入该主叫号码对应的记录模型中,若该号码没有超过单位时间内发送短信量的阈值,则将该条短信立即下放给下一步骤;否则,将该主叫号码的记录模型中的所有短信都保存至垃圾短信数据库,且将该主叫号码列入黑名单中。\n[0014] 所述的采用两次散列(Hash)的方法对短信内容进行快速过滤:利用MD5算法将整条短信文本映射成一个散列值,对第一次散列得到的散列值再次散列,判断通过MD5算法得到的散列值是否和现有垃圾短信样本库中的样本一致,同时,保留一个短信散列值的计数器,当同一个散列值出现的次数过多,则认为该散列值代表了一条新的垃圾短信,且修改垃圾短信样本散列值。\n[0015] 所述的对“嫌疑短信”进行短信文本预处理,并将其转化为短语向量:对上述“嫌疑短信”进行短信清洗、去除停用词、自动分词、词性标注、特征项提取、特征项权重计算和生成短信向量预处理,以剔除短信文本,即由字、词、数字、标点符号构成的文字串中所有与分类任务无关的内容,并将文本转化为由其包含的基本语义单位组成的短语向量。\n[0016] 所述的采用朴素贝叶斯和支持向量机两种分类器相结合的方法对“嫌疑短信”进行判定,分别用朴素贝叶斯和支持向量机分类器对短信进行分类,并且把两个分类器的输出概率按照一定的权重组合,给出最终的分类结果。\n[0017] 本发明具有的有益效果:\n[0018] 1)提出一种基于两次散列的改进的关键字匹配过滤方法,可大幅度提高垃圾短信的过滤速度,并有效降低传统的关键字过滤方法所产生的误判率。\n[0019] 2)提出一种基于短信发送频率阈值监控的过滤方法,可有效解决短时间内恶意群发垃圾短信的问题;\n[0020] 3)提出一种基于内容的垃圾短信过滤方法,可有效地避免将正常短信误作垃圾短信的情况发生,降低代价敏感的误判问题,并且从语义上分析短信内容,有效提高整个系统的过滤准确率。\n附图说明\n[0021] 图1是基于内容的大规模垃圾短信实时过滤方法的流程图;\n[0022] 图2是黑白名单过滤模块的原理图;\n[0023] 图3是基于频率过滤模块的原理图;\n[0024] 图4是采用两次散列的方法对短信内容进行快速过滤的原理图;\n[0025] 图5是短信预处理的流程图;\n[0026] 图6是朴素贝叶斯分类器的训练流程图;\n[0027] 图7是朴素贝叶斯分类器的分类流程图。\n具体实施方式\n[0028] 本发明主要原理如下:\n[0029] 1)利用黑名单和白名单两个过滤模块进行预过滤。短信首先进入白名单模块,若属白名单则直接放行;否则,进入黑名单模块,若属黑名单则拒绝该主叫号码,若不属黑名单,则该条短信进入下一步骤。\n[0030] 2)当发生恶意短信群发事件时,传统的监控方案通常无法在短时间内做出反应以拦截垃圾短信,故此类事件往往会在短时间内给移动通信运营商造成巨大损失。基于频率的过滤模块的目标就是解决恶意短信群发问题,其核心思想是对所有实时在线的有效用户进行发送特征建模,对每个用户在一个滑动时间窗口内发送短信的数量进行记录,当窗口内发送短信的数量超过一个既定阈值时,即认为该主叫号码在进行恶意快速群发,随即可将该主叫号码列入黑名单,从而拒绝该主叫号码接下来的发送企图。\n[0031] 3)传统的关键词过滤主要存在着效率低和误判率高的问题。事实上,很多关键词本身并无不良语义,仅当其组成句子时才表达了不良信息,并构成了一条垃圾短信。同时,根据实际业务中的经验可知,通常一条垃圾短信将被重复发送成千上万次,与垃圾短信的数量相比,垃圾短信种类相对较少。因此,若能用将短信中心接收到的短信(称为待定短信)与已知的典型垃圾短信进行快速全文比对,并根据比较结果判断这条短信是否为已知的垃圾短信,则可有效防止关键词匹配方法所造成的误判,提高了匹配的准确性。基于这样的思想,本发明采取了两次散列的方法,首先对于整条短信文本运用MD5算法计算散列值,然后再对得到的散列值进行匹配。\n[0032] 4)在线过滤子系统对时效性要求较高,经其处理后,系统已能够快速地过滤掉大部分垃圾短信,对于正常的短信亦能快速下发,但由于在线过滤子系统主要是基于一些外部规则(如频率)或已有数据(如历史垃圾短信)进行短信分类,其不足之处在于规则或历史数据相对死板和僵化,其准确率也受到了限制。这时存在部分短信在发送次数等方面符合垃圾短信的特征,但难以确定其是否为垃圾短信,而这些短信有可能是正常用户发送的玩笑短信或问候短信等。此外,由于垃圾短信发送者也在不断衍化,垃圾短信的发送特征和内容也在变化,故上述在线过滤子系统的准确率有待进一步提高。因此,非常有必要在前述步骤基础上对短信内容进行分析,本发明引入文本分类的方法对嫌疑短信的内容进行过滤。\n[0033] 5)对上述“嫌疑短信”进行短信清洗、去除停用词、自动分词、词性标注、特征项提取、特征项权重计算和生成短信向量等预处理,以剔除短信文本(即由字、词、数字、标点符号等构成的文字串)中所有与分类任务无关的内容,并将文本转化为由其包含的基本语义单位组成的短语向量。\n[0034] 6)采用朴素贝叶斯(Na ve Bayes)和支持向量机(SVM)两种分类器相结合的方法对“嫌疑短信”进行判定。由于这两个分类器呈互补关系,即朴素贝叶斯分类器速度快但准确率相对较低,而SVM的分类准确率较高但速度相对较慢,故在垃圾短信过滤时,可将这两个分类器的输出概率按照一定的权重组合,给出最终的分类结果。此时,即可对“嫌疑短信”做出明确的判定。\n[0035] 基于内容的大规模垃圾短信实时过滤方法的步骤如下:\n[0036] 1)黑白名单过滤模块可以对一些特殊号码发出的短信直接进行拦截/放行操作,以节约处理时间和系统资源。该模块包括两部分:白名单过滤模块和黑名单过滤模块,每个模块均维护一个独立的主叫号码列表。白名单模块中的主叫号码(即白名单)主要包括一些大客户或特殊客户等信息,一般是用户和移动通信运营商通过协议设定的,该列表通常由操作员手工维护,不存在失效期;黑名单则主要由系统自动添加,黑名单存在失效期,一段时间内无垃圾短信发送记录的主叫号码可自动从黑名单中去除,操作员亦可根据实际情况维护黑名单。\n[0037] 短信进入该模块后,首先进入白名单模块,若该短信所对应的主叫号码属于白名单则直接发送给短信接收方;否则,进入黑名单模块,如果是黑名单则拒绝该主叫号码,若不是黑名单则短信进入下一个模块——基于频率的过滤模块。详细的流程图如图2所示。\n[0038] 2)对于来自步骤1)的那些既不属于白名单又不属于黑名单的短信,首先将该短信插入该主叫号码对应的记录模型中,记录模型必须包含以下关键信息:主叫号码和该主叫号码在单位时间内已经发送的短信数量。如果该号码并没有超过该滑动窗内规定的短信发送量阈值,则将该短信立即下放给步骤3),否则,将该主叫号码的记录模型中的所有短信都保存至垃圾短信数据库,且将该主叫号码列入黑名单中。同时,对该模块设置一个计时器,对于所有在线用户的记录每隔一定时间间隔就进行重置,详细的流程如图3所示。\n[0039] 3)对于来自步骤2)的那些发送频率未超过预设阈值的短信,使用两次散列的方法来快速过滤短信。第一步是使用散列方法进行短信摘要的提取。本专利使用了MD5等散列算法将经确认的垃圾短信映射成一个唯一的散列值(即所谓的短信摘要),并存储起来。每条待定短信也进行同样的散列运算后获得一个短信摘要。第二步是进行短信摘要的匹配。由于垃圾短信的数量非常巨大,故所存储的垃圾短信摘要数量也非常多,通常数以万计,若直接将待定短信的摘要与垃圾短信摘要进行比对将耗费很长时间。因此,将第一次散列所获得的垃圾短信摘要再次进行散列,并存入一个散列表(可通过选择合适的散列函数和表空间使得该散列表足够大),待定短信摘要也进行散列后存入该散列表,若出现冲突,则说明待定短信摘要与某条垃圾短信摘要相同,即待定短信也是一条垃圾短信。同时,在上述散列表中保留了一个短信摘要计数器,当同一个待定短信摘要在一定时间内出现的次数过多,可认为该散列值又代表了一条疑似垃圾短信,可送入步骤4)进行更进一步的分析和判断。这样,在该模块中能够及时捕捉最新的垃圾短信内容,与后续模块配合实现了系统的自学习功能。\n[0040] 同时,在上述散列表中保留了一个短信摘要计数器,当同一个待定短信摘要在一定时间内出现的次数过多,就可以认为该散列值又代表了一条疑似垃圾短信,可送入后续模块(即基于内容的过滤子系统)中进行更进一步的分析和判断。这样,在该模块中能够及时捕捉最新的垃圾短信内容,与后续模块配合实现了系统的自学习功能,如图4所示。\n[0041] 4)在对短信进行内容分析和过滤之前,需要对文本进行预处理,使文本更适合后续分析的需要。文本预处理的主要任务是对进入分类器之前的短信进行前期处理,剔除所有与分类任务无关的内容,并将文本(即由字、词、数字、标点符号等构成的文字串)转化为由其包含的基本语义单位组成的表列。这里的主要工作包括把对于来自步骤3)的那些符合垃圾短信Hash值的“嫌疑短信”进行短信清洗、去除停用词、自动分词、词性标注、特征项提取、特征项权重计算和生成短信向量等步骤,经预处理后,系统可获得一系列待分类的短信向量,如图5所示。\n[0042] 5)采用朴素贝叶斯( Bayes)和支持向量机(SVM)两种分类器相结合的方法对“嫌疑短信”进行判定。把步骤4)中的短信向量分别送入朴素贝叶斯分类器和支持向量机分类器,并将两种分类器分别给出的判定该条“嫌疑短信”为垃圾短信的概率按照一定的权重结合起来,最终给出一个概率值,当该概率值超过设定的阈值时,就认为该短信是一条垃圾短信。\n[0043] 朴素贝叶斯分类器和支持向量机分类器虽然在具体实现机制上不同,但基本的流程是相同的,都分为训练过程和分类过程,如图6、7所示。训练过程都包括词频统计和特征选择。随后,朴素贝叶斯分类器生成特征集,而支持向量机分类器则生成支持向量模型。分类过程则都经历分词、词频统计和生成短信向量这三步。朴素贝叶斯分类器根据类别的先验概率和各个特征的类条件概率来计算“嫌疑短信”为垃圾短信的概率值,而支持向量机分类器则通过训练好的支持向量模型来计算“嫌疑短信”为垃圾短信的概率值,最后,再把这两个分类器给出的概率值按照一定的权重结合起来,以给出最终的判定结果。
法律信息
- 2015-08-26
未缴年费专利权终止
IPC(主分类): H04W 88/18
专利号: ZL 200710069930.2
申请日: 2007.07.06
授权公告日: 2010.12.08
- 2010-12-08
- 2008-10-29
- 2008-09-03
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2004-08-11
|
2003-09-02
| | |
2
| |
2006-05-24
|
2004-11-16
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |