垃圾短信 , 垃圾邮件和推销的电话使我们深受其扰 , 不过也有些手机软件助手 , 可以帮助我们垃圾这些垃圾短信和电话 , 这些软件的背后的算法是什么?

文章插图
一 黑名单
像360手机卫士这种APP在手机本地或云端保存一份电话的手机黑名单数据 , 来电的时候手机判断下就可以决定是否为骚扰电话了 , 本地存储 , 黑名单的数据量如果很大的话 , 可能会占内存比较大 , 不过这个可以借鉴以前的布隆过滤器这种数据结构来解决 , 但是布隆过滤器有误判的可能 , 有可能来电非黑名单却当成黑名单进行处理了 , 这对于拦截软件来说是比较严重的问题 , 所以可能是多种方法来结合判断 , 或者对于布隆过滤判断是属于黑名单的电话 , 再通过一次联网到网上的云端再判断一次是否为真正为黑名单用户 , 不过这就需要联网 , 还存在延迟的可能;对于布隆过滤器判断为正常用户的 , 则一定是正常用户 , 那么大部分时间是不需要联网判断或结合其他办法判断的 。
二 规则判断
像很多病毒检测软件 , 或IDS或WAF软件一样 , 垃圾短信和骚扰电话 也可以建立自己的规则库 , 通过规则库进行垃圾短信的判断 , 同样像IDS等软件存在误判的情况一样 , 垃圾短信采用规则判断的话 , 也存在一定的误判性 , 一般也要结合其他的判断规则综合判断 。 规则有下面几个:
短信中包含特殊词语 , 比如非法 , 反动词语 。 短信发送的号码是群发号码 , 非我们正常的手机号码 。 短信很长 , 包含很多图片表情 , 网页链接等 。 电话号码非正常形式 , 比如+702233等
凡是规则判断 , 都存在着检测死板 , 不能检测到不在规则里面的情况 , 而且会被有心者特意设计避开规则的垃圾短信等 。
【垃圾邮件判断的算法 什么是垃圾邮件】三 基于统计信息进行垃圾短信判断
直观地想一下 , 垃圾短信 , 垃圾邮件这些一般都包含特定的词语 , 或者链接等 , 那么我们反过来统计邮件中特定的词语的数量 , 达到一定标准 , 我们就判断为垃圾邮件 。 现在对于这种垃圾邮件的判断问题 , 一般都通过机器学习来解决 , 在机器学习的算法中 , 做垃圾邮件判断这个是属于一个二分类问题 , 可以用很多种算法来解决 , 常用的有决策树 , 贝叶斯 , SVM , 神经网络等 , 其中贝叶斯算法是属于一个基于统计学的算法 , 也是本次要介绍的算法 。
贝叶斯算法是为了解决“逆序概率”的问题 , 举个简单的例子 , 比如我们袋子中有10个红球 , 8个白球 , 然后随机从袋子中拿出一个球 , 问是红球的概率是多少?这是一个非常简单的概率问题 , 结果就是10/(10+8),这种正向概率问题比较好理解 。 那么反过来 , 如果我们只知道袋子中有红球和白球 , 但是不知道数量和比例 , 我们拿了几次球 , 通过拿出这些球的颜色是否可以推断出袋子中两种球的比例那?
贝叶斯算法中有些根据以前经验总结出来的概率 , 称为先验概率 , 可以理解成先前的经验的概率 , 所以叫先验概率 , 比如清明时节一般会下雨 , 下雨的概率大概为70% , 这就是通过以前的经验总结的; 后验概率 , 是事情发生了 , 推测可能原因 , 比如小明迟到了 , 那么起晚了造成迟到的概率假设为30% , 这就是后验概率 。 条件概率 , 就是在一个事情假设A发生的情况下 , 另外一个事情B也发生的概率 , 记作P(B|A),读作在A发生的情况下 , B发生的概率 , 比如起晚的情况下 , 小明迟到的概率 。 总结一句话:先验概率是经验总结 , 后验概率是由果推因 , 条件概率是由因推果 。
特别声明:本站内容均来自网友提供或互联网,仅供参考,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
