劉 偉,何 瑤,仵晨陽(yáng),張悅健,張滏鈺
(1.電子信息現(xiàn)場(chǎng)勘驗(yàn)應(yīng)用技術(shù)公安部重點(diǎn)實(shí)驗(yàn)室,陜西西安710121;2.陜西省無(wú)線通信與信息處理技術(shù)國(guó)際合作研究中心,陜西西安710121;3.西安郵電大學(xué)計(jì)算機(jī)學(xué)院,陜西西安710121)
互聯(lián)網(wǎng)已成為我國(guó)居民檢索信息、分享知識(shí)、獲取服務(wù)的首選平臺(tái)[1]?;ヂ?lián)網(wǎng)具有自由、開(kāi)放和交互等特點(diǎn),這使得利用互聯(lián)網(wǎng)進(jìn)行詐騙、銷售槍支炸藥、販賣毒品、制造和傳播謠言、恐怖活動(dòng)等犯罪活動(dòng)成為可能,嚴(yán)重危害著社會(huì)安全與穩(wěn)定,侵害了廣大人民群眾的利益[2-4]。復(fù)雜嚴(yán)峻的網(wǎng)絡(luò)安全問(wèn)題,是公共信息網(wǎng)絡(luò)安全監(jiān)察相關(guān)職能部門(mén)及相關(guān)研究單位共同關(guān)注和重點(diǎn)研究的熱點(diǎn)。
電子論壇、微博、QQ、微信等社交工具是網(wǎng)絡(luò)時(shí)代下網(wǎng)民交流的主要平臺(tái),網(wǎng)絡(luò)犯罪嫌疑人主要利用這些平臺(tái)進(jìn)行違法犯罪活動(dòng)。監(jiān)控與過(guò)濾犯罪嫌疑人在這些平臺(tái)上發(fā)布的敏感信息是預(yù)防和打擊犯罪的重要環(huán)節(jié)。
有很多方法可以用來(lái)監(jiān)控和過(guò)濾敏感文本信息。結(jié)合語(yǔ)義和統(tǒng)計(jì)模型篩選Web上敏感文本的方法,是對(duì)敏感文本的統(tǒng)計(jì)和語(yǔ)義特征進(jìn)行分析[5];通過(guò)文本模式匹配,過(guò)濾社交網(wǎng)絡(luò)用戶所發(fā)布評(píng)論中的敏感信息系統(tǒng)[6];利用敏感詞的組合信息改進(jìn)過(guò)濾效果,在核方法的框架下特征共現(xiàn)行為建模的原則[7];基于Patricia前綴樹(shù)建立分級(jí)敏感詞庫(kù)的方法,應(yīng)用于社交網(wǎng)站中敏感信息的過(guò)濾,用以解決網(wǎng)站中的敏感信息安全問(wèn)題[8];內(nèi)網(wǎng)敏感信息檢測(cè)系統(tǒng)采用全文檢索和增量文件實(shí)時(shí)監(jiān)控技術(shù),通過(guò)建立敏感文件判定規(guī)則和敏感文件黑白名單機(jī)制,提高對(duì)內(nèi)網(wǎng)終端計(jì)算機(jī)違規(guī)存儲(chǔ)敏感信息檢查的準(zhǔn)確率和效率[9];針對(duì)傳統(tǒng)文本特征抽取方法在應(yīng)用于敏感信息過(guò)濾時(shí)出現(xiàn)的時(shí)間滯后、準(zhǔn)確性低等問(wèn)題,結(jié)合敏感信息特征,提出的融合意見(jiàn)挖掘和自然語(yǔ)言處理技術(shù)的敏感信息動(dòng)態(tài)特征抽取方法[10];網(wǎng)絡(luò)安全審計(jì)中敏感詞檢測(cè)系統(tǒng)的原型[11];基于網(wǎng)頁(yè)敏感度的敏感網(wǎng)頁(yè)分類監(jiān)測(cè)策略以及基于敏感信息摘要的去重策略[12];基于敏感信息的挖掘算法提出的網(wǎng)絡(luò)熱點(diǎn)自動(dòng)發(fā)現(xiàn)以及主題追蹤的有效解決方案[13];商業(yè)化敏感文本信息監(jiān)控與過(guò)濾平臺(tái),例如網(wǎng)易、百度和騰訊的敏感詞分析和過(guò)濾平臺(tái)[14-16],都取得了較好的應(yīng)用效果。
近年來(lái),有一些敏感文本信息被嵌入圖像,躲過(guò)文本信息監(jiān)控,發(fā)布到了社交平臺(tái)上。檢測(cè)圖像中的敏感文字信息首先要自動(dòng)識(shí)別圖像中的文字,這是光學(xué)字符識(shí)別問(wèn)題(optical character recognition,OCR)[17-18]。OCR 算法識(shí)別出的結(jié)果是單獨(dú)字符,必須將其結(jié)構(gòu)化才有意義,而目前的OCR平臺(tái)和軟件未考慮識(shí)別出字符的結(jié)構(gòu)化問(wèn)題[14-16,19]。已有的圖像敏感文字檢測(cè)研究中,采用BP神經(jīng)網(wǎng)絡(luò)算法和深信度網(wǎng)絡(luò)對(duì)敏感信息進(jìn)行檢測(cè),但是僅對(duì)背景簡(jiǎn)單、布局規(guī)范的文字[20];文獻(xiàn)[21]研究了復(fù)雜圖像文本提取方法并構(gòu)建基于關(guān)鍵詞的敏感網(wǎng)絡(luò)圖像過(guò)濾系統(tǒng),但未深入討論識(shí)別出字符的結(jié)構(gòu)化問(wèn)題。
針對(duì)上述不足,本文采用圖像處理、文字識(shí)別和中文語(yǔ)言處理方法,提出一種面向網(wǎng)絡(luò)安全的圖像文字敏感詞過(guò)濾方法。該方法首先采用連通域分析、連通域合并及傾斜矯正方法來(lái)定位與分割圖像中的單個(gè)字符;之后使用預(yù)訓(xùn)練的卷積神經(jīng)網(wǎng)絡(luò)對(duì)單個(gè)字符進(jìn)行識(shí)別;最后借助于預(yù)先定義的敏感詞數(shù)據(jù)庫(kù),使用中文分詞和字符串編輯距離來(lái)檢測(cè)敏感詞。
待檢測(cè)的文本圖像來(lái)自電子論壇、微博、QQ、微信等社交平臺(tái)。對(duì)原始圖像進(jìn)行預(yù)處理(包括灰度化、二值化、去噪和形態(tài)學(xué)膨脹等運(yùn)算),采用連通域算法對(duì)二值化圖像處理得到各個(gè)聯(lián)通區(qū)域;根據(jù)連通域的面積大小、長(zhǎng)寬比等參數(shù),確定文本區(qū)域;之后對(duì)單個(gè)字符進(jìn)行分割與合并;最后判斷識(shí)別出的字符是否傾斜,如果傾斜則進(jìn)行傾斜矯正。單個(gè)字符分割結(jié)束后使用一個(gè)預(yù)先訓(xùn)練的卷積神經(jīng)網(wǎng)絡(luò)對(duì)單個(gè)字符進(jìn)行識(shí)別;最后采用中文分詞技術(shù)將識(shí)別出的漢字組織為一系列有意義的詞語(yǔ),并借助敏感詞數(shù)據(jù)庫(kù)判定其是否包含敏感詞。算法原理如圖1所示。
圖1 算法原理
文本定位是所提方法的第一個(gè)關(guān)鍵步驟。很多文字識(shí)別的場(chǎng)景中文字排列比較規(guī)范且背景簡(jiǎn)單(如文檔識(shí)別),可以采用投影法等來(lái)分割字符。本文所處理的圖像中的文字信息排列不規(guī)范,且圖像背景較為復(fù)雜,因此采用基于八鄰域標(biāo)記的連通域方法進(jìn)行文本定位。分析得到各個(gè)連通域,根據(jù)文字的特點(diǎn)采用一些預(yù)先設(shè)置的規(guī)則去除非文字區(qū)域從而得到最終的文字區(qū)域。判定非文字區(qū)域的規(guī)則包括連通域大小占圖像一半尺寸甚至更多、連通域的長(zhǎng)寬比例較大(可能是一條直線)或較小、連通域面積過(guò)小等。圖2為處理示例。
圖2 文字定位
連通域分析方法會(huì)定位出漢字的連通域,由于漢字本身的結(jié)構(gòu)特征,該方法往往會(huì)把漢字的各個(gè)偏旁部首分割成不同的連通域,如圖2(a)中的“管”字。必須將這些“離散”的連通域合并為一個(gè)漢字。
合并規(guī)則[22]:任取兩個(gè)連通域,如果它們?cè)谒胶痛怪狈较蛏隙甲銐蚩拷鼊t合并為一個(gè)連通域。執(zhí)行此步驟直至重疊字符中再?zèng)]有連通域滿足合并條件。這一級(jí)中在水平和垂直方向上對(duì)連通域合并的條件都有限制。上述合并法則中,水平方向上的“足夠靠近”可以用該方向上的字符重疊率
式(1)中c1,c3分別是兩個(gè)聯(lián)通域最左邊的列標(biāo)號(hào),c2,c4分別是兩個(gè)連通域最右邊的列標(biāo)號(hào),Tol是一個(gè)常量,設(shè)為0.4。類似也可以定義垂直方向上的重復(fù)率rolv。合并方法可以有效地將分離的漢字偏旁部首合并為單個(gè)完整的漢字。漢字合并示例如圖3所示。圖3(a)中的漢字“管”在連通域分析時(shí)被“分割”成不同的部分,通過(guò)合并算法將其合并,圖3(b)中用反色顯示。
圖3 漢字合并
為了對(duì)抗OCR軟件與敏感文本信息過(guò)濾系統(tǒng),一些嵌入圖像的文字往往會(huì)被設(shè)置為傾斜狀態(tài)。這種情況需要將傾斜的文本進(jìn)行校正以便于后續(xù)識(shí)別。本文在合并漢字偏旁部首后,根據(jù)圖像中文字的幾何位置將其劃分為不同的區(qū)域,同一個(gè)區(qū)域中包含了幾何位置上相鄰的文字。之后計(jì)算每個(gè)區(qū)域中各個(gè)文字連通域的質(zhì)心,如果發(fā)現(xiàn)這些質(zhì)心的連線不在水平線上,說(shuō)明文字是傾斜的,要采用校正算法將其校正為水平位置從而便于后續(xù)的文字識(shí)別。本文采用的校正算法是最小二乘法,即根據(jù)同一區(qū)域中各個(gè)文字連通域的質(zhì)心擬合一條直線,然后利用得到的直線計(jì)算出文本行的傾斜角度,通過(guò)圖像的旋轉(zhuǎn)進(jìn)行文本行的傾斜校正。
采用卷積神經(jīng)網(wǎng)絡(luò)用于單個(gè)字符識(shí)別。針對(duì)字母數(shù)字及漢字的識(shí)別分別采用2種網(wǎng)絡(luò)模型。2種網(wǎng)絡(luò)模型的結(jié)構(gòu)類似,僅描述漢字識(shí)別網(wǎng)絡(luò),如圖5所示。該網(wǎng)絡(luò)輸入為漢字二值影像,大小為32×32。前兩層為卷積層,其卷積核的數(shù)目為16和32,卷積核的尺寸為分別為5×5和3×3。第3層和第5層為池化層,所采用的池化算法為最大值池化,池化操作的尺寸為2×2。最后一層卷積層的卷積核尺寸為3×3。第6層為全連接層。通過(guò)soft max進(jìn)行字符的分類識(shí)別。優(yōu)化方法選用隨機(jī)梯度下降法,損失函數(shù)選取交叉熵法。
圖5 漢字識(shí)別卷積神經(jīng)網(wǎng)絡(luò)模型
經(jīng)過(guò)圖5識(shí)別出的結(jié)果為包含單個(gè)字符的字符串,必須將其結(jié)構(gòu)化才有意義。采用中文分詞技術(shù)檢測(cè)字符串中有意義的中文單詞,基于預(yù)先定義的敏感詞數(shù)據(jù)庫(kù)判定識(shí)別出的中文單詞是否包含敏感詞。中文分詞是較為成熟的技術(shù),本文使用了結(jié)巴分詞[23]。分詞結(jié)束后要判斷分詞結(jié)果中是否包含敏感詞。基于預(yù)先定義的敏感詞數(shù)據(jù)庫(kù),采用字符串編輯距離的計(jì)算方法進(jìn)行敏感詞判定。定義度量值
式中,length(a)為字符串 a的長(zhǎng)度,edit(a,b)為字符串a(chǎn)和字符串b的編輯距離。max(length(a),length(b))為a和b兩個(gè)字符串長(zhǎng)度的最大值。度量值S越大,表明兩個(gè)字符串越相似。
實(shí)驗(yàn)計(jì)算機(jī)配置為CPU為Inter Core i5雙核(64位處理器),2.50GHz;顯卡為內(nèi)存為 4G;GPU為NVIDIA GeForce 940MX;操作系統(tǒng)為Windows 7旗艦版(64位系統(tǒng));實(shí)驗(yàn)程序用Matlab 2013b編寫(xiě)。
實(shí)驗(yàn)中的數(shù)據(jù)庫(kù)包括3種:(1)用于識(shí)別單個(gè)字符的文字?jǐn)?shù)據(jù)庫(kù),包括HCL2000手寫(xiě)數(shù)據(jù)庫(kù)[24]、自建的一級(jí)漢字標(biāo)準(zhǔn)訓(xùn)練數(shù)據(jù)庫(kù)(包括宋體、楷體、黑體等十幾種常用字體)、數(shù)字和字母數(shù)據(jù)庫(kù)(用于識(shí)別圖像中的手機(jī)號(hào)碼、QQ號(hào)碼等敏感信息);(2)自建的復(fù)雜背景與布局下的文字圖像數(shù)據(jù)庫(kù),包括210張圖像,其中包含有敏感詞的圖像數(shù)據(jù)為100張。這些數(shù)據(jù)部分采集自互聯(lián)網(wǎng)(如引發(fā)輿情的謠言文字圖像)、部分?jǐn)?shù)據(jù)是本文作者根據(jù)敏感詞語(yǔ)料庫(kù)合成的數(shù)據(jù);(3)從網(wǎng)上下載的敏感詞語(yǔ)料文字?jǐn)?shù)據(jù)庫(kù),包括暴恐、反動(dòng)、民生等詞庫(kù)。
為了對(duì)比文字識(shí)別結(jié)果,將分割后的單個(gè)字符歸一化到同一尺寸,分別使用卷積神經(jīng)網(wǎng)絡(luò)(CNN)、支持向量機(jī)(SVM)和決策樹(shù)算法(DT)進(jìn)行字符識(shí)別比較。支持向量機(jī)采用多項(xiàng)式核函數(shù)進(jìn)行多分類(預(yù)先實(shí)驗(yàn)表明多項(xiàng)式核可以取得最佳識(shí)別率),特征選用文字圖像的Gabor特征。實(shí)驗(yàn)結(jié)果如表1所示。由表1可知,CNN模型取得了較高的識(shí)別正確率。
表1 字符識(shí)別結(jié)果
使用中文分詞技術(shù)(結(jié)巴分詞)對(duì)識(shí)別后的字符串進(jìn)行分詞以進(jìn)行后續(xù)的敏感詞檢測(cè)工作。結(jié)巴分詞支持全模式、精確模式和搜索引擎模式三種方式。由于下一步要進(jìn)行文本分析,本文采用精準(zhǔn)模式下的分詞結(jié)果。分詞結(jié)束后,使用字符串之間的編輯距離作為檢測(cè)敏感詞的度量函數(shù),相似度較高的視為敏感詞。本文對(duì)一些疑似敏感詞進(jìn)行識(shí)別處理,這些疑似敏感詞可能源于文字圖像識(shí)別錯(cuò)誤,也可能源于人為因素的蓄意為之。表2給出了若干示例(表中“分詞結(jié)果”一欄中用分隔線表示分詞結(jié)果),表中有下劃線的詞語(yǔ)是疑似敏感詞校正后結(jié)果。
表2 敏感詞檢測(cè)示例
從包含敏感詞的文本圖像數(shù)據(jù)庫(kù)中隨機(jī)挑選25、50、75、100幅樣本圖像進(jìn)行檢測(cè),分別計(jì)算查準(zhǔn)率、查全率及F1指標(biāo),結(jié)果如表3所示。
表3 敏感詞檢測(cè)結(jié)果
?
由表3可知,由于隨機(jī)挑選的文本圖像中可能包含敏感詞(每幅圖像中包含的敏感詞個(gè)數(shù)也不一致),也可能不包含,計(jì)算的查全率和F1值隨著數(shù)據(jù)的增大而增加,最高的查準(zhǔn)率接近80%。這表明本文方法具有較好的檢測(cè)效果。分別與文獻(xiàn)[20]和文獻(xiàn)[21]的實(shí)驗(yàn)結(jié)果進(jìn)行對(duì)比,文獻(xiàn)[20]對(duì)1 000個(gè)樣本的最好識(shí)別率為93.7%;文獻(xiàn)[21]對(duì)100個(gè)敏感文字圖像樣本的召回率為77%。由于文獻(xiàn)[20]的研究對(duì)象是背景簡(jiǎn)單、布局規(guī)范的文字,所以本文實(shí)驗(yàn)結(jié)果和文獻(xiàn)[21]的結(jié)果對(duì)比更合適。由表3可以看出,針對(duì)100個(gè)樣本本文方法的召回率為82.24%,優(yōu)于文獻(xiàn)[21]的結(jié)果。由此說(shuō)明本文方法的有效性。
面向網(wǎng)絡(luò)安全的圖像文字敏感詞過(guò)濾方法針對(duì)復(fù)雜背景與布局下的文本圖像信息,采用OCR方法識(shí)別單個(gè)字符,并基于中文分詞技術(shù)和敏感詞數(shù)據(jù)庫(kù)檢測(cè)文本圖像中包含的敏感詞。實(shí)驗(yàn)結(jié)果證實(shí)了本文方法的有效性。