王貴新 鄭孝宗 張浩然 張小川
摘 要: 為了提高垃圾短信的過濾效果,通過對中文短信內(nèi)容和結(jié)構(gòu)特點分析,提出了一種充分利用word2vec工具將短信內(nèi)容轉(zhuǎn)化為固定長度向量的特征提取算法。同時設(shè)計了深度置信網(wǎng)絡(luò)進行學習和分類,實驗表明其推廣性能比已有報道結(jié)果提高了5%左右。
關(guān)鍵詞: 深度置信網(wǎng)絡(luò); 深度學習; 受限波爾茲曼機; 短信
中圖分類號: TN911?34; TP391 文獻標識碼: A 文章編號: 1004?373X(2016)09?0037?04
Abstract: To improve the filtering effect of spam SMS, a feature extraction algorithm is proposed to convert SMS content into fixed length vector with word2vec tool by the analysis of Chinese SMS content and structure characteristics. The deep belief nets (DBN) were designed to learn and classify. The experimental results show that the generalization performance is increased by about 5% in comparison with the reported results.
Keywords: deep belief net; deep learning; restricted Boltzmann machine; SMS
0 引 言
每年移動運營商和國家都花費了大量的人力和物力進行垃圾短信治理,但公眾還是不滿意治理效果。目前移動運營商主要采用軟件過濾加人工干預(yù)的治理方式[1?3]。軟件過濾的算法原理主要有3類:有監(jiān)督學習、無監(jiān)督學習和半監(jiān)督學習。單純的有監(jiān)督學習[4?10]和無監(jiān)督學習[11?12]在垃圾短信過濾過程中的效果還是值得肯定的[4?10],但這些學習和過濾算法目前已經(jīng)不能適應(yīng)于市場和機器學習環(huán)境,特別是深度學習算法理論的完善和應(yīng)用發(fā)展為機器學習提供了廣闊空間[13]。
由于沒有公開的短信素材可以得到,利用以前所做項目收集的大約有300萬條短信作為實驗樣本,該樣本沒有主、被叫號碼、短信時間等涉及個人隱私的信息。本文首先提出充分利用word2vec工具,將短信內(nèi)容轉(zhuǎn)化為固定長度向量的特征提取算法;然后設(shè)計了適合短信過濾的深度置信網(wǎng)絡(luò)對樣本進行學習和分類。實驗效果表明本文的方法是可行的,這為漢字內(nèi)容分類提供了一種途徑。
1 短信內(nèi)容向量化
按照有關(guān)規(guī)定,需要把短信內(nèi)容分為: 敏感政治信息、黃色信息、商業(yè)廣告信息、違法犯罪信息、詐騙信息、正常信息等6大類(本文分別用zp,ss,sy,sh,sp,qt字母組合表示類名)。分類結(jié)果除了正常信息外,其余信息需要過濾和提交不同部門處理。將短信表示成為向量的過程主要需要三個步驟:短信預(yù)處理,短信分詞,向量化。
1.1 預(yù)處理
預(yù)處理主要包括非正規(guī)字詞替換(不妨稱為短信內(nèi)容的正規(guī)化過程)。比如:“公$$司*開發(fā)@PIAO,酒折優(yōu)惠,歡迎撥打:I39XXXXXXXX”。短信需要根據(jù)系統(tǒng)的諧音庫、拼音庫、繁體庫等標準進行內(nèi)容轉(zhuǎn)換。同時剔除內(nèi)容里面不相關(guān)的符號。結(jié)果這條短信就是“公司開發(fā)票,9折優(yōu)惠,歡迎撥打:139XXXXXXXX”。
假設(shè)所有的短信集合記為[S,]記正規(guī)化過程對應(yīng)的函數(shù)為[f1,]經(jīng)過正規(guī)化處理的短信集合記為[G,]上面的過程可表達為:[?s∈S,f1(s)∈G。]
1.2 分詞
本文采用中國科學院計算技術(shù)研究所ICTCLAS系統(tǒng)(網(wǎng)址:ictclas.nlpir.org)分詞。在分詞后,如果內(nèi)容包含有數(shù)字,需要按照下面要求處理:
價格數(shù)字、電話或聯(lián)系號碼數(shù)字、商品數(shù)字、日期時間數(shù)字、其他數(shù)字等數(shù)字內(nèi)容分別用AA,BB,CC,DD,NN替換。比如:“公司開發(fā)票,9折優(yōu)惠,歡迎撥打:139XXXXXXXX”,分詞的結(jié)果應(yīng)該是:“公司 開 發(fā)票 AA折 優(yōu)惠 歡迎 撥打 BB”。
1.3 向量化
谷歌推出了將詞語轉(zhuǎn)換成詞向量的工具word2vec (https://code.google.com/p/word2vec/)。工具的主要原理是Bengio模型[14]的一個改進和應(yīng)用,Bengio模型主要理論是:設(shè)句子[S]依次由一系列關(guān)鍵詞[w1,w2,…,wt]組成, [wi]向量化的過程如圖1所示。
短信內(nèi)容向量化算法過程描述如下:
(1) 每類按照一定比例取出大約21 280個訓練樣本。然后將每個短信正規(guī)化。
(2) 按照1.2節(jié)中的方法把正規(guī)化的短信進行分詞(每個詞語之間空格分隔),并形成如下的7個文本文件:rubbish.txt,所有樣本的分詞文件;zp.txt,ss.txt,sy.txt,sh.txt,sp.txt,qt.txt分別是敏感政治信息、黃色信息、商業(yè)廣告信息、違法犯罪信息、詐騙信息、正常信息等6大類訓練樣本對應(yīng)的分詞文件。
(3) 對rubbish.txt,zp.txt,ss.txt,sy.txt,sh.txt,sp.txt,qt.txt,分別執(zhí)行word2vec指令(格式:word2vec ?train 分詞文件名 ?output 向量化結(jié)果文件名 ?cbow 0 ?size 5 ?window 10 ?negative 0 ?hs 1 ?sample 1e?3 ?threads 2 ?binary 0),分別得到向量化結(jié)果文件rubbish.out,zp.out,ss.out,sy.out,sh.out,sp.out,qt.out。