一种基于智能算法的垃圾短信过滤方法与流程

文档序号:11237079阅读:234来源:国知局
一种基于智能算法的垃圾短信过滤方法与流程

本发明涉及软件信息安全技术领域。更具体地,涉及一种基于智能算法的垃圾短信过滤方法。



背景技术:

众所周知,手机用户经常会遇到垃圾短信,往往给手机用户带来诸多不便。因此,需要将垃圾短信过滤掉。现有技术中,垃圾短信拦截策略相对单一,绝大多数垃圾短信过滤方法采用电话号码黑名单或垃圾词汇黑名单等形式来实现。现有技术的上述垃圾短信过滤方法的缺点是简单粗暴,容易导致误判现象的发生,且误判率较高。

因此,需要提供一种基于智能算法的垃圾短信过滤方法。



技术实现要素:

本发明的目的在于提供一种基于智能算法的垃圾短信过滤方法。

为达到上述目的,本发明采用下述技术方案:

一种基于智能算法的垃圾短信过滤方法,该垃圾短信过滤方法包括如下步骤:

s1:获得原始短信样本中垃圾短信出现的概率和非垃圾短信出现的概率;

s2:获得样本词汇集合;

s3:对于样本词汇集合中的任意一个独立词汇,通过统计的方法分别计算得到该独立词汇在垃圾短信样本中出现的概率以及该独立词汇在非垃圾短信样本中出现的概率;

s4:对于样本词汇集合中的任意一个独立词汇,利用贝叶斯公式计算得到包含该独立词汇的任意一条短信为垃圾短信的概率;

s5:当任意一条待过滤短信中出现所述样本词汇集合中的多个独立词汇时,对于该条待过滤短信中每一个独立词汇,重复所述步骤s4,分别计算得到仅包含该独立词汇的任意一条短信为垃圾短信的概率,然后获得包含该独立词汇的任意一条短信为非垃圾短信的概率;

s6:计算所述步骤s5得到的包含该条待过滤短信中每一个独立词汇的任 意一条短信为垃圾短信的概率的乘积,得到该条待过滤短信为非垃圾短信的概率,然后获得该条待过滤短信为垃圾短信的概率。

优选地,所述垃圾短信过滤方法在所述步骤s6之后还包括如下步骤:

s7:通过编码设定号码黑白名单、号码段黑名单以及基于行为的号码白名单,获得黑白名单库;

s8:利用布隆过滤算法对黑白名单库进行信息压缩,并利用判别接口和删除接口对布隆过滤算法表进行操作,以实现对待过滤短信的判别和对黑白名单库的升级。

进一步优选地,所述步骤s1为:获取原始短信样本,通过人工标记的方式将原始短信样本区分为垃圾短信样本和非垃圾短信样本,并通过统计的方法分别计算得到原始短信样本中垃圾短信出现的概率和非垃圾短信出现的概率。

进一步优选地,所述步骤s2为:对垃圾短信样本和非垃圾短信样本进行分词,获得在垃圾短信样本和非垃圾短信样本之一中出现的所有独立词汇,且在垃圾短信样本和非垃圾短信样本之一中出现的所有独立词汇构成样本词汇集合。

进一步优选地,所述贝叶斯公式为:

其中,p(s|w)为包含该独立词汇w的任意一条短信为垃圾短信的概率;p(w|s)为样本词汇集合j中的任意一个独立词汇w在垃圾短信样本s中出现的概率;p(w|h)为样本词汇集合j中的任意一个独立词汇w在非垃圾短信样本h中出现的概率;p(s)为原始短信样本中垃圾短信出现的概率;p(h)为原始短信样本中非垃圾短信出现的概率。

进一步优选地,所述黑白名单库包括号码黑白名单、号码段黑名单和基于行为的号码白名单。

更进一步优选地,所述号码黑白名单为:将已有的发送短信的号码库中的角色进行收集并设置成号码黑白名单,其中诈骗和广告推销类为黑名单,快递和市政类为白名单;所述号码段黑名单为:对广告营销类专用号码段进行垃圾短信概率权限增加,针对1069广告营销类短信通道进行更低阈值的垃圾短信判别;所述基于行为的号码白名单为:将用户本机联系人、用户主动去电号码、用户主动发送短信号码、以及用户主动回复短信号码设置为基于 行为的号码白名单。

更进一步优选地,对于基于行为的号码白名单中的任意一条短信,无需利用贝叶斯公式计算该条短信为垃圾短信的概率,直接将该条短信判定为非垃圾短信。

进一步优选地,所述步骤s1中,利用搜索引擎获取所述原始短信样本。

进一步优选地,所述步骤s7中,用户解锁开始使用手机后更新所述黑白名单库。

本发明的有益效果如下:

与现有技术相比,本发明的所述垃圾短信过滤方法首次将贝叶斯公式引入垃圾短信过滤中,结合综合性的策略整合,从而能够实现对垃圾短信的智能过滤,避免误判现象的发生,提高垃圾短信过滤的准确性。

附图说明

下面结合附图对本发明的具体实施方式作进一步详细的说明。

图1为本发明实施例提供的基于智能算法的垃圾短信过滤方法的流程图;

图2为本发明另一实施例提供的基于智能算法的垃圾短信过滤方法的流程图。

具体实施方式

为了更清楚地说明本发明,下面结合优选实施例和附图对本发明做进一步的说明。附图中相似的部件以相同的附图标记进行表示。本领域技术人员应当理解,下面所具体描述的内容是说明性的而非限制性的,不应以此限制本发明的保护范围。

如图1所示,本发明一个实施例提供的基于智能算法的垃圾短信过滤方法包括如下步骤:

s1:获得原始短信样本中垃圾短信出现的概率和非垃圾短信出现的概率;

该步骤进一步为:获取原始短信样本,通过人工标记的方式将原始短信样本区分为垃圾短信样本s和非垃圾短信样本h,并通过统计的方法分别计算得到原始短信样本中垃圾短信出现的概率p(s)和非垃圾短信出现的概率p(h);

例如,获取的原始短信样本包含10万条短信,通过人工标记的方式将原始短信样本区分为垃圾短信样本s和非垃圾短信样本h,其中垃圾短信样本s 包含1万条短信,非垃圾短信样本h包含其余的9万条短信,通过统计的方法分别计算得到原始短信样本中垃圾短信出现的概率p(s)为10%,以及原始短信样本中非垃圾短信出现的概率p(h)为90%;

s2:获得样本词汇集合;

该步骤进一步为:对垃圾短信样本s和非垃圾短信样本h进行分词,获得在垃圾短信样本s和非垃圾短信样本h之一中出现的所有独立词汇,且在垃圾短信样本s和非垃圾短信样本h之一中出现的所有独立词汇构成样本词汇集合j;

s3:对于样本词汇集合j中的任意一个独立词汇w,通过统计的方法分别计算得到该独立词汇w在垃圾短信样本s中出现的概率p(w|s)以及该独立词汇w在非垃圾短信样本h中出现的概率p(w|h);

例如,如果上述垃圾短信样本中的100条短信出现了独立词汇“发票”,通过统计的方法计算得到独立词汇“发票”在垃圾短信样本s中出现的概率p(w|s)为1%;如果上述非垃圾短信样本中的90条短信出现了独立词汇“发票”,通过统计的方法计算得到独立词汇“发票”在非垃圾短信样本h中出现的概率p(w|h)为0.1%;

s4:对于样本词汇集合j中的任意一个独立词汇w,利用贝叶斯公式计算得到包含该独立词汇w的任意一条短信为垃圾短信的概率;

上述贝叶斯公式为:

公式(1);

公式(1)中,p(s|w)为包含该独立词汇w的任意一条短信为垃圾短信的概率;p(w|s)为样本词汇集合j中的任意一个独立词汇w在垃圾短信样本s中出现的概率;p(w|h)为样本词汇集合j中的任意一个独立词汇w在非垃圾短信样本h中出现的概率;p(s)为原始短信样本中垃圾短信出现的概率;p(h)为原始短信样本中非垃圾短信出现的概率;

例如,利用贝叶斯公式计算得到待过滤短信中任意一条包含独立词汇“发票”的短信为垃圾短信的概率为52%;

s5:当任意一条待过滤短信a中出现上述样本词汇集合j中的多个独立词汇时,对于该条待过滤短信a中每一个独立词汇wi,其中i为该条待过滤短信a中独立词汇的个数,重复上述步骤s4,分别计算得到仅包含该独立词 汇wi的任意一条短信为垃圾短信的概率,然后获得包含该独立词汇wi的任意一条短信为非垃圾短信的概率;

例如,当任意一条待过滤短信a中出现上述样本词汇集合j中的独立词汇w1、w2和w3时,对于独立词汇w1,重复上述步骤s4,计算得到仅包含独立词汇w1的任意一条短信为垃圾短信的概率为p(s|w1),对于独立词汇w2,重复上述步骤s4,计算得到仅包含独立词汇w2的任意一条短信为垃圾短信的概率为p(s|w2),对于独立词汇w3,重复上述步骤s4,计算得到仅包含独立词汇w3的任意一条短信为垃圾短信的概率为p(s|w3),获得包含独立词汇w1的任意一条短信为非垃圾短信的概率为[1-p(s|w1)],包含独立词汇w2的任意一条短信为非垃圾短信的概率为[1-p(s|w2)],包含独立词汇w3的任意一条短信为非垃圾短信的概率为[1-p(s|w3)];

例如,当任意一条待过滤短信a中出现上述样本词汇集合j中的独立词汇“发票”、“基金”和“联系”时,仅包含独立词汇“发票”的任意一条短信为垃圾短信的概率为52%,仅包含独立词汇“基金”的任意一条短信为垃圾短信的概率为33%,仅包含独立词汇“联系”的任意一条短信为垃圾短信的概率为62%,则包含独立词汇“发票”的任意一条短信为非垃圾短信的概率为48%,包含独立词汇“基金”的任意一条短信为非垃圾短信的概率为67%,包含独立词汇“联系”的任意一条短信为非垃圾短信的概率为38%;

s6:计算上述步骤s5得到的包含该条待过滤短信a中每一个独立词汇wi的任意一条短信为垃圾短信的概率的乘积,得到该条待过滤短信a为非垃圾短信的概率,然后获得该条待过滤短信a为垃圾短信的概率;

例如,计算包含独立词汇w1的任意一条短信为非垃圾短信的概率[1-p(s|w1)]、包含独立词汇w2的任意一条短信为非垃圾短信的概率[1-p(s|w2)]、以及包含独立词汇w3的任意一条短信为非垃圾短信的概率[1-p(s|w3)]的乘积,得到该条待过滤短信a为非垃圾短信的概率为:

ph=[1-p(s|w1)]*[1-p(s|w2)]*[1-p(s|w3)]公式(2);

然后获得该条待过滤短信a为垃圾短信的概率为:

ps=1-ph公式(3);

例如,上述包含独立词汇“发票”、“基金”和“联系”待过滤短信a为垃圾短信的概率为80.06%。

如图2所示,在本发明的另一个实施例中,所述垃圾短信过滤方法在所述步骤s6之后还包括如下步骤:

s7:通过编码设定号码黑白名单、号码段黑名单以及基于行为的号码白名单,获得黑白名单库;该黑白名单库包括号码黑白名单、号码段黑名单和基于行为的号码白名单;

s8:利用布隆过滤算法(countingbloomfilter算法)对黑白名单库进行信息压缩,并利用判别接口和删除接口对布隆过滤算法表进行操作,以实现对待过滤短信的判别和对黑白名单库的升级。

优选地,上述步骤s1中,利用搜索引擎获取原始短信样本。

优选地,上述步骤s7中,用户解锁开始使用手机后更新所述黑白名单库。

上述号码黑白名单为:将已有的发送短信的号码库中的角色进行收集并设置成号码黑白名单,其中诈骗和广告推销类为黑名单,快递和市政类为白名单。

上述号码段黑名单为:对广告营销类专用号码段进行垃圾短信概率权限增加,针对1069广告营销类短信通道进行更低阈值的垃圾短信判别。

基于行为的号码白名单为:将用户本机联系人、用户主动去电号码、用户主动发送短信号码、以及用户主动回复短信号码设置为基于行为的号码白名单。

对于基于行为的号码白名单中的任意一条短信,无需利用贝叶斯公式计算该条短信为垃圾短信的概率,直接将该条短信判定为非垃圾短信。

采用bloom-filter算法,对上述号码黑白名单进行时间复杂度为o(1)的判别。考虑到号码的变更,采用了bloom-filter算法的升级版本,即counting-bloom-filter。实现了相对顺序查找更快,更省空间的查找效果。时间复杂度o(1),占用内存极小(压缩率22倍以上),一个号码占用4bit(普通手机号码字符串至少占用88bit)。

显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定,对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动,这里无法对所有的实施方式予以穷举,凡是属于本发明的技术方案所引伸出的显而易见的变化或变动仍处于本发明的保护范围之列。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1