作为一个生活在移动互联网时代的技术宅,饱受骚扰短信之苦,但没有一个简单的又不用上传自己短信的过滤应用。于是我从自己收到的两万多条短信以及测试期间用户提交的短信样本中训练出了熊猫。
iOS 11 带来了非常强大的 CoreML
机器学习框架,开发者都用来做视觉处理了,我就用它做一个文本归类的应用吧,让熊猫可以在手机里安家。
熊猫从庞大的样本中学习到了垃圾短信的文本模式,可以非常准确的从复杂的语义环境中对短信进行分类。比如下图中非常相似的 [京东支付] 的两条短信。
你可以拷贝短信后,在应用里面点击 准确性测试
来测试准确度。
您只需要安装后打开 设置 → 信息 → 未知与过滤信息
然后选中 熊猫吃短信
即可。熊猫就会默默的帮你吃掉垃圾短信。
熊猫不需要服务器端,不需要联网。应用自带完整的训练模型,使用 CoreML
就可以在手机上对短信进行分类。iOS 11
的沙盒限制也不允许短信过滤器访问网络以及向主 App 共享数据。虽然通过配置项可以让 iOS 11
向自己的服务器上发送短信在云端判断,但是熊猫并没有使用这一功能。
熊猫正在飞速成长中,分类准确性依赖于熊猫有没有见过类似的信息。但是世界那么大,总有没吃过的东西,熊猫也有见识浅的时候。基于自愿原则,您可以在应用里面提交新的短信样本喂养熊猫,熊猫会从新的样本中学习到新的垃圾或者正常短信模式。
注意:提交短信样本会将短信匿名上传到服务器上,并非本地训练,熊猫将在云端完成学习,然后分发到所有人的手机上。
由于熊猫是我教的(监督学习),其一定程度上继承了我的喜好,对于有些比较模糊的短信,比如优惠、促销信息,我是一律标记为骚扰短信的。但是有些人可能会喜欢收到此类通知,大家自行取舍。
由于 iOS 11 的系统设计原因,被过滤的短信也会显示角标,以及在 Apple Watch 上通知。另外 iOS 11 过滤短信是基于对话的过滤,如果同一个号码既发骚扰短信又发正常短信,那么整个对话都会被过滤。这种现象常见于五位数的号码,但 10 开头的短信发送端口非常少见。
1 QAPTEAWH 2017-12-04 11:33:05 +08:00 1 元买不了吃亏上当,先买了。 如果有防骚扰电话功能就好了。否则还是得装腾讯管家之流,而腾讯管家附带短信过滤(效果不议)。 |
2 leots 2017-12-04 11:33:05 +08:00 ![]() 之前在微博上看到这个 app 感觉很棒 想买来支持一下,可惜没有升级到 iOS11 |
![]() | 3 mpich 2017-12-04 11:36:01 +08:00 语料能 share 吗… |
4 coolcoffee 2017-12-04 11:39:07 +08:00 mark 一下,我现在都是直接屏蔽所有短信,要接验证码再进去看。 现在 iOS 很扯淡的就是,就算识别为辣鸡短信,仍然会显示“+1 ” |
![]() | 5 SourceMan 2017-12-04 11:41:35 +08:00 买不了吃亏买不了上当,支持再支持 |
![]() | 6 scp055 2017-12-04 11:42:11 +08:00 mark 下,有时间研究下 coreML |
![]() | 7 waylybaye OP ![]() @QAPTEAWH 电话过滤需要庞大的号码库,这个我就无能为力了… PS:企鹅好像不拦截自家的短信? @leots CoreML 和短信过滤都是 11 才有的… @mpich 我自己的显然不能,太多隐私信息,用户贡献的我也不知道自己有没有权利 share,没有加授权协议…… @coolcoffee 是的,这个不知道苹果是基于什么考虑的设计。 |
![]() | 8 yksoft1 2017-12-04 11:47:13 +08:00 为啥不用 tensorflow 做模型,这样可以跨平台。。 |
![]() | 9 lingo 2017-12-04 11:48:29 +08:00 @coolcoffee 跟你一样,突然意识到自己已经几乎没用过短信了,索性通知全关。几个月下来也没啥影响。 |
![]() | 10 waylybaye OP |
![]() | 11 NVDA 2017-12-04 11:49:23 +08:00 不支持其它语言...但支持英语么? |
![]() | 16 waylybaye OP @ytterbium 我自己手工一个个标注的啊,累死我了。之前有在网上下载短信语料,但是一旦用于目前的垃圾短信识别基本没法用,于是我就放弃公开语料自己收集了。借用朋友的一句话 “脱离生活的样本都是假样本” |
![]() | 17 run2 2017-12-04 12:13:45 +08:00 用支付宝的红包支持了下(居然还可以两个红包合用) |
![]() | 18 run2 2017-12-04 12:20:10 +08:00 “提交短信样本会将短信匿名上传到服务器上” 提交时可以把里面的数字脱敏么,比如验证码 比如手机号 |
20 QAPTEAWH 2017-12-04 12:27:39 +08:00 @coolcoffee 角标可以关掉。我短信是关闭声音、角标、锁屏显示的。 |
![]() | 21 qiaoqiao1235 2017-12-04 12:31:57 +08:00 via iPhone ![]() 哦,原来 hyper app 也是楼主开发的! |
22 douglas1997 2017-12-04 12:50:03 +08:00 via iPhone ![]() 已买,支持一下。 |
![]() | 23 whlvi 2017-12-04 12:59:59 +08:00 via iPhone ![]() 已买,支持一下 |
![]() | 24 run2 2017-12-04 13:08:36 +08:00 呃,看了下文档 https://developer.apple.com/documentation/identitylookup 原来上传到网络判断是直接传的(不能脱敏) 但 lz 没有用这个 API plist 里还是默认的 URL:example-sms-filter-application.com 但是 example-sms-filter-application.com 这个域名被人注册了的,还是有危险的,lz 请尽快修改 ILMessageFilterExtensionNetworkURL |
![]() | 25 bpsy 2017-12-04 13:11:52 +08:00 via iPhone ![]() 已买,支持一下 |
![]() | 26 Tink PRO 这个 666 啊 |
27 a554340466 2017-12-04 13:31:43 +08:00 via iPhone coreML 是怎么训练模型的 |
![]() | 28 whlvi 2017-12-04 13:32:21 +08:00 via iPhone 原来 hyper app 也是楼主开发 除了 hyper ping 还没有购买 剩下包括 cloud speed 也购买了 |
![]() | 29 designer 2017-12-04 13:41:25 +08:00 纯支持,但是这个不给看正脸,只能看背影的熊猫图标不太好看。 准备买楼主的 Hyper App |
![]() | 30 cloverstd 2017-12-04 13:49:30 +08:00 ![]() 下面的框太小了 |
31 xenme 2017-12-04 13:51:53 +08:00 过滤改不了角标都是垃圾,所以,iOS 平台没有能用的过滤软件 |
![]() | 32 waylybaye OP ![]() @sobigfish 这个是 Xcode 模板默认的,但只要没加 Associated Domains 就没事…… @a554340466 用别的训练啊,我用的 scikit-learn,我上面的那个链接有 CoreML 支持的库列表。 |
![]() | 33 AsherG 2017-12-04 13:58:01 +08:00 哦!我说怎么上次在我购买的列表里没看到 HyperApp 呢,我还以为我记错了 app 的名字,刚刚在楼主的 app 列表里点了一下才发现原来在国区被下架了 |
![]() | 34 waylybaye OP |
![]() | 36 iCodex 2017-12-04 14:12:52 +08:00 美区 0.99 美金 ![]() |
![]() | 37 forever139 2017-12-04 14:19:14 +08:00 ![]() @waylybaye 都快集齐你的全家桶了 |
![]() | 38 Jreen 2017-12-04 14:37:04 +08:00 怎么把误杀的短信(已经在未知与过滤信息)的恢复到联系人普通短信呢?我已经提交了正常短信文本检测…我又不想给 1069 加入通讯录,1069 号段经常变化就没弄通讯录 |
![]() | 40 jiangzhuo 2017-12-04 15:18:48 +08:00 1 测试了 666 |
![]() | 41 twor2 2017-12-04 15:19:12 +08:00 安装后怎么让我知道起到作用了? 不会用.. |
![]() | 43 waylybaye OP |
![]() | 44 fyibmsd 2017-12-04 15:38:27 +08:00 会误拦截验证码短信吗 |
45 lianz 2017-12-04 15:42:37 +08:00 ![]() 不错,支持一个。 |
![]() | 46 waylybaye OP @fyibmsd 我不能说百分之百的不会,因为我的训练样本中也有不少类似送苹果笔记本输入“验证码”这样的诈骗短信。一般来说正常的验证码几乎不会被拦截,我自己是没有遇到过被拦截的情况。 |
![]() | 48 yanze0613 2017-12-04 16:21:57 +08:00 ![]() 已买,支持一下 |
![]() | 49 loryyang 2017-12-04 16:26:56 +08:00 我觉得需要小心处理用户上传短信,别把模型带偏了。。 |
![]() | 50 batilo 2017-12-04 16:28:11 +08:00 会有 android 版本么? |
![]() | 51 waylybaye OP |
![]() | 53 blakejia 2017-12-04 16:33:32 +08:00 有没有根据号码判断呢?单纯根据内容判断。是不是比较容易误判 |
55 luoyuhui 2017-12-04 16:57:37 +08:00 ![]() 已下载\(^o^)/~ |
![]() | 57 onenightintokyo 2017-12-04 17:37:16 +08:00 ![]() 活捉八爷 |
![]() | 58 RangerWolf 2017-12-04 17:49:03 +08:00 要是能过滤微信朋友圈的推广、营销消息就牛掰了! 自我感觉现在短信的应用场景,最多的就是验证码。 不过作为玩 NLP 的一员, 还要给楼主点个赞! (没有钱买 iPone, 只能精神支持了 :doge ) |
![]() | 60 qiongmay 2017-12-04 17:53:59 +08:00 误拦的短信可以找到吗 |
![]() | 61 AdamZ 2017-12-04 17:55:52 +08:00 ![]() 哎呀,我的八爷来了 |
![]() | 62 Monad 2017-12-04 7:59:51 +08:00 ![]() 已兹磁 过两天看看效果 |
![]() | 63 everhythm 2017-12-04 18:14:20 +08:00 lz 这个点子不错 另外弱弱的问一句,贝叶斯过滤不够用么? 邮件是这么做的,感觉纯文本的短信也可以平移过来 |
![]() | 64 waylybaye OP @cloverstd 这个是图省事直接用的系统组件… 一般短信也不会太长 @RangerWolf 应用内部的都不太可能…还不如幻想下 iOS 12 苹果开放通知过滤权限 @qiongmay 可以啊,App 的帮助里面有说明 |
65 xz 2017-12-04 18:30:15 +08:00 ios10 能用吗 |
![]() | 66 waylybaye OP @everhythm 好多种考虑 1 是 CoreML 没办法直接支持使用 Bayes 的模型 2 是我将来可能上多分类 |
![]() | 68 c6h6benzene 2017-12-04 18:35:02 +08:00 ![]() 推特上看到,日区支持了一下。感谢作者! |
![]() | 69 yexiaoxing 2017-12-04 18:36:36 +08:00 ![]() |
![]() | 70 AsherG 2017-12-04 18:45:55 +08:00 ![]() 又去美区买了个 HyperApp+Ping 的大包 →_→ |
![]() | 71 Tyler1989 2017-12-04 18:48:29 +08:00 via Android ![]() 已入 |
![]() | 73 tnx2014 2017-12-04 18:57:43 +08:00 和企鹅管家兼容性怎样,因为还要用企鹅管家防电话,两者短信过滤可以一同开启么? |
![]() | 76 thankfish 2017-12-04 19:28:03 +08:00 via iPhone ![]() 已买!业界良心 |
77 yangyaofei 2017-12-04 19:47:09 +08:00 啥时候出个 android 版的 |
![]() | 78 mortal 2017-12-04 20:15:49 +08:00 可以加入自定义正则表达式的功能吗?就像 NekoSMS 那样。那就非常棒了!(所在公司的某些 ZZ 系统会发送恼人的提醒) |
![]() | 79 krzover 2017-12-04 20:20:18 +08:00 ![]() 点击购买提示需要 ios11...想了想我还是口头支持下吧 |
![]() | 80 waylybaye OP |
![]() | 81 artandlol 2017-12-04 20:22:30 +08:00 via iPhone 营运商的短信也给过滤了? |
![]() | 82 poorcai 2017-12-04 20:22:51 +08:00 ![]() 已买,多谢 |
![]() | 83 waylybaye OP |
85 cesar 2017-12-04 20:44:27 +08:00 ![]() 澳区已支持 :) |
![]() | 86 binss 2017-12-04 21:48:09 +08:00 ![]() 好东西,已购 |
![]() | 87 saginardo 2017-12-04 21:54:14 +08:00 via iPhone ![]() 已购,支持支持。 |
![]() | 88 viosey 2017-12-04 22:28:07 +08:00 楼主的 APP 都不错呀,Ping,Cloud Speed,熊猫吃短信都有了 |
![]() | 93 shanliang 2017-12-04 23:18:30 +08:00 ![]() tg 群友过来资瓷一下 |
![]() | 94 f0rger 2017-12-04 23:27:18 +08:00 via iPhone ![]() 买的第四个短信过滤 app 了, |
![]() | 95 LeungJZ 2017-12-05 00:10:45 +08:00 via Android iPhone6 能不能用? |
97 baskice 2017-12-05 01:29:19 +08:00 ![]() 赞,感谢~! |
![]() | 98 trotyoung 2017-12-05 08:29:36 +08:00 via iPhone 就我觉得这图标值得在我手机安家的么?国宝多萌啊。 功能棒当然也很重要,测了一下发现效果还行,等待时间检验。 |
![]() | 99 run2 2017-12-05 08:42:21 +08:00 ![]() 不想被 Message Filter app extension 判断的(比如银行的) 可以把号码加入通讯录联系人 |
![]() | 100 qmqy 2017-12-05 09:05:51 +08:00 期待出 Android 版:) |