垃圾短信系统设计综述

时间:2022-10-20 06:25:18

垃圾短信系统设计综述

针对同音词伪装的短信过滤器设计

与普通的短信过滤器相比,在训练和过滤时,新增加了伪装向量,任何一条未知分类的短信都可能要经过两次过滤过程,一次是以普通向量作为过滤器的输入量,另一次是以伪装向量作为过滤器的输入量。由于两次输入量是相互独立的,所以这两次过滤过程也是相互独立的,最后得到两个输出结果,分析这两个输出结果就判断是否为垃圾短信。预处理模块预处理模块主来用来去掉短信中可能影响分词质量的噪声、标点符号以及停用词等。噪声指序列中文文本中出现的各种无语义的干扰字符,垃圾短信中,通常是人为故意添加的。如@、#、&、*、%。这些字符的出现会严影响分词的准确性,必须在分词之前去除文本序列中的这些字符。正常使用的标点符号本身不会影响分词的准确性,但垃圾短信的制造者往往会故意错误地使用标点符号,这样就会对分词造成干扰。所以标点符号也要去掉。分词模块中文分词是计算机处理中文信息中的最基础,又是最重要的一个环节。现有的中文分词技术有:基于字符串匹配的分词,基于统计的分词和基于理解的分词。这三种技术各有所长,也有自己的不足。其中基于字符串匹配的分词技术只需要最少的语言资源(仅需一个词表,不需要任何词法、句法、语义等知识),程序实现简单,并且正确率也能达到95%以上,所以本系统选用这种分词技术。提取特征向量模块特征词包括普通词和伪装词。分词后的结果集中只包含词和单个的字(单字),词即是普通词,由普通词构普通向量,每相邻的两个普通词之间的单字构成一单字串,单字串的集合构成单字串集。由于经过同音化伪装后的词在中文分词后被切分成了若干个相邻的单字,所以如果某个词是同音化伪装的词,则能保证该词必定在单字串集中。将单字串集转化成拼音串集,并与敏感词库匹配,就能识别出该短信中的伪装词,由该伪装词的拼音串构成伪装向量。敏感词库英文的26个字母中,只有“i”、“u”、“v”不能作为不汉字拼音的首字母,以剩余的23个字母作为索引,建立的敏感词库。库中的词全都以拼音表示,如“”表示为“falungong”,这样做的好处在于,当垃圾短信中以“法仑功”替换“”时,通过库中的“falungong”仍能准确识别出来。计算模块计算模块的功能是计算训练集中所有普通词及敏感词(注意这里是敏感词库中的敏感词)在正常短信和垃圾短信中出现的概率。设短信dx的特征词集为W=(w1w2wn),则计算模块就是要计算p(wt|c=0)和p(wt|c=1)的值。由式(2)和(3)可以得到这两个值。计算模块将wt及p(wt|c=0)和p(wt|c=1)的值存入数据库中,供以后对过滤未知分类的短信查询。判断模块判断模块的功能是当未知分类的短信到来时,根据从短信的特征向量,并查询特征库,判断这短信是否为垃圾短信。判断的过程为:(1)以普通向量作为输入量,查询特征库,计算f(W)-β的值,如果f(W)-β0,则令R1=true,否则令R1=false。(2)检查伪装向量是否存在,如果不存在伪装向量,则令R2=true。进入(4)。(3)如果存在伪装向量,则以伪装向量为输入量,查询特征库,计算f(W)-β的值。如果f(W)-β0,则令R2=true,否则R2=false。(4)将R1和R2进行逻辑与运算,最终输出结果R,如果R=true则该短信为正常短信,否则为垃圾短信。

实验结果及分析

实验环境与数据本实验是基于Windows7操作系统,在Eclipse开发平台上利用Java语言实现的,后台数据库使用的是SqlServer2008。目前对垃圾短信的过滤主要是借鉴垃圾邮件的过滤技术,还没有形成一个完备的公用的语料库,同时由于短信涉及到个人隐私,要收集到足够多的短信语料很困难,因此本实验采用模拟的训练集。实验评价指标实验是在垃圾短信所包含的敏感词部分或者全部发生了同音化伪装的的情况下进行的,以此来测试过滤系统对垃圾短信的识别能力。影响识别能力的最大两个因素就是敏感词库的敏感词覆盖率和敏感词的伪装率。短信中敏感词的集合为M,其中发生同音词伪装的敏感词的集合为MD,敏感词库中的敏感词的集合为(式略)与普通的过滤器相比,此处设计的过滤器不仅能识别敏感词很明显的垃圾短信,而且还能识别同音化伪装的各种变异的垃圾短信,即使在敏感词伪装率比较高的情况下,仍然能保持一定的准确性和可靠性,这点是普通的过滤器所不具备的。

结束语

利用伪装词是由分词后的若干个相邻单字组成且拼音保持不变的特点,在提取到普通向量的同时,提取到伪装向量,然后分别以普通向量和伪装向量作为输入量,进行基于朴素贝叶斯文本分类算法的过滤。由于过滤过程中考虑到了伪装向量,所以较仅仅参考普通向量的过滤器具有更高的可靠性。另外,与传统的关键字过滤技术不同的是,敏感词库中存储的不再是汉字,而是拼音串,使得系统更加灵活,一方面体现在可以方便地增加、删减和修改敏感词,能精确地干预过滤过程,另一方面针对同音伪装现象,拼音串不会随着汉字的变化而变化,可以识别变异的垃圾短信。本文所设计的过滤器也有不足的地方,主要是没有引入机械自主学习的机制,敏感词库的维护还得靠人工进行。以后的研究将在这方面进一步的完善。

作者:胡德敏 胡金龙 单位:上海理工大学光电信息与计算机工程学院

上一篇:铁路信息提示系统设计探索 下一篇:住宅货币分配管制开发探索