作为一个生活在移动互联网时代的技术宅,饱受骚扰短信之苦,但没有一个简单的又不用上传自己短信的过滤应用。于是我从自己收到的两万多条短信以及测试期间用户提交的短信样本中训练出了熊猫。

iOS 11 带来了非常强大的 CoreML 机器学习框架,开发者都用来做视觉处理了,我就用它做一个文本归类的应用吧,让熊猫可以在手机里安家。

准确的语义识别

熊猫从庞大的样本中学习到了垃圾短信的文本模式,可以非常准确的从复杂的语义环境中对短信进行分类。比如下图中非常相似的 【京东支付】 的两条短信。

垃圾短信识别
垃圾短信识别

你可以拷贝短信后,在应用里面点击 准确性测试 来测试准确度。

使用非常简单

您只需要安装后打开 设置 → 信息 → 未知与过滤信息 然后选中 熊猫吃短信 即可。熊猫就会默默的帮你吃掉垃圾短信。

关注隐私

熊猫不需要服务器端,不需要联网。应用自带完整的训练模型,使用 CoreML 就可以在手机上对短信进行分类。iOS 11 的沙盒限制也不允许短信过滤器访问网络以及向主App共享数据。虽然通过配置项可以让 iOS 11 向自己的服务器上发送短信在云端判断,但是熊猫并没有使用这一功能。

自动进化

熊猫正在飞速成长中,分类准确性依赖于熊猫有没有见过类似的信息。但是世界那么大,总有没吃过的东西,熊猫也有见识浅的时候。基于自愿原则,您可以在应用里面提交新的短信样本喂养熊猫,熊猫会从新的样本中学习到新的垃圾或者正常短信模式。

注意:提交短信样本会将短信匿名上传到服务器上,并非本地训练,熊猫将在云端完成学习,然后分发到所有人的手机上。

请输入图片标题

关于偏食

由于熊猫是我教的(监督学习),其一定程度上继承了我的喜好,对于有些比较模糊的短信,比如优惠、促销信息,我是一律标记为骚扰短信的。但是有些人可能会喜欢收到此类通知,大家自行取舍。

系统限制

由于 iOS 11 的系统设计原因,被过滤的短信也会显示角标,以及在 Apple Watch 上通知。另外 iOS 11 过滤短信是基于对话的过滤,如果同一个号码既发骚扰短信又发正常短信,那么整个对话都会被过滤。这种现象常见于五位数的号码,但 10 开头的短信发送端口非常少见。

使用小建议

建议给五位数的运营商、银行号码添加到通讯录,因为这些号码经常混合发营销与通知短信。而系统过滤机制会过滤整个号码。

最后

  • 熊猫的 Logo 来自于我最喜欢的一个滚滚背影图。
  • 熊猫目前只针对中文做了训练,其它语言环境下可能会撂摊子。