基于iOS 11機(jī)器學(xué)習(xí)垃圾短信過(guò)濾應(yīng)用:熊貓吃短信
作為一個(gè)生活在移動(dòng)互聯(lián)網(wǎng)時(shí)代的技術(shù)宅,飽受騷擾短信之苦,但沒(méi)有一個(gè)簡(jiǎn)單的又不用上傳自己短信的過(guò)濾應(yīng)用。于是我從自己收到的兩萬(wàn)多條短信以及測(cè)試期間用戶提交的短信樣本中訓(xùn)練出了熊貓。
iOS 11 帶來(lái)了非常強(qiáng)大的 CoreML 機(jī)器學(xué)習(xí)框架,開發(fā)者都用來(lái)做視覺(jué)處理了,我就用它做一個(gè)文本歸類的應(yīng)用吧,讓熊貓可以在手機(jī)里安家。
準(zhǔn)確的語(yǔ)義識(shí)別
熊貓從龐大的樣本中學(xué)習(xí)到了垃圾短信的文本模式,可以非常準(zhǔn)確的從復(fù)雜的語(yǔ)義環(huán)境中對(duì)短信進(jìn)行分類。比如下圖中非常相似的 【京東支付】 的兩條短信。
垃圾短信識(shí)別
你可以拷貝短信后,在應(yīng)用里面點(diǎn)擊 準(zhǔn)確性測(cè)試 來(lái)測(cè)試準(zhǔn)確度。
使用非常簡(jiǎn)單
您只需要安裝后打開 設(shè)置 → 信息 → 未知與過(guò)濾信息 然后選中 熊貓吃短信 即可。熊貓就會(huì)默默的幫你吃掉垃圾短信。
關(guān)注隱私
熊貓不需要服務(wù)器端,不需要聯(lián)網(wǎng)。應(yīng)用自帶完整的訓(xùn)練模型,使用 CoreML 就可以在手機(jī)上對(duì)短信進(jìn)行分類。iOS 11 的沙盒限制也不允許短信過(guò)濾器訪問(wèn)網(wǎng)絡(luò)以及向主App共享數(shù)據(jù)。雖然通過(guò)配置項(xiàng)可以讓 iOS 11 向自己的服務(wù)器上發(fā)送短信在云端判斷,但是熊貓并沒(méi)有使用這一功能。
自動(dòng)進(jìn)化
熊貓正在飛速成長(zhǎng)中,分類準(zhǔn)確性依賴于熊貓有沒(méi)有見過(guò)類似的信息。但是世界那么大,總有沒(méi)吃過(guò)的東西,熊貓也有見識(shí)淺的時(shí)候?;谧栽冈瓌t,您可以在應(yīng)用里面提交新的短信樣本喂養(yǎng)熊貓,熊貓會(huì)從新的樣本中學(xué)習(xí)到新的垃圾或者正常短信模式。
注意:提交短信樣本會(huì)將短信匿名上傳到服務(wù)器上,并非本地訓(xùn)練,熊貓將在云端完成學(xué)習(xí),然后分發(fā)到所有人的手機(jī)上。
關(guān)于偏食
由于熊貓是我教的(監(jiān)督學(xué)習(xí)),其一定程度上繼承了我的喜好,對(duì)于有些比較模糊的短信,比如優(yōu)惠、促銷信息,我是一律標(biāo)記為騷擾短信的。但是有些人可能會(huì)喜歡收到此類通知,大家自行取舍。
系統(tǒng)限制
由于 iOS 11 的系統(tǒng)設(shè)計(jì)原因,被過(guò)濾的短信也會(huì)顯示角標(biāo),以及在 Apple Watch 上通知。另外 iOS 11 過(guò)濾短信是基于對(duì)話的過(guò)濾,如果同一個(gè)號(hào)碼既發(fā)騷擾短信又發(fā)正常短信,那么整個(gè)對(duì)話都會(huì)被過(guò)濾。這種現(xiàn)象常見于五位數(shù)的號(hào)碼,但 10 開頭的短信發(fā)送端口非常少見。
最后
- 熊貓的 Logo 來(lái)自于我最喜歡的一個(gè)滾滾背影圖。
- 熊貓目前只針對(duì)中文做了訓(xùn)練,其它語(yǔ)言環(huán)境下可能會(huì)撂攤子。