摘要:該文以主動匹配并過濾網(wǎng)頁中的敏感詞語為目標(biāo),研究了文本中敏感詞的檢索與匹配方法,實現(xiàn)了對網(wǎng)頁文本中的敏感詞進行主動匹配與過濾處理的過程,設(shè)計了一種基于字典樹的網(wǎng)頁敏感詞匹配及過濾方法。并使用決策樹方法對含有敏感詞的網(wǎng)頁文本進行分類。
關(guān)鍵詞:網(wǎng)絡(luò)安全;文本處理;信息過濾;敏感詞;決策樹
中圖分類號:TP391.1文獻標(biāo)識碼:A
文章編號:1009-3044(2020)08-0245-03
21世紀(jì)以來,隨著互聯(lián)網(wǎng)應(yīng)用的普及以及應(yīng)用的日益完善,通過論壇、即時通訊軟件以及電子郵件等方式傳播敏感信息的網(wǎng)絡(luò)安全事件發(fā)生頻繁,在一定程度上嚴(yán)重威脅了社會秩序的穩(wěn)定和人民群眾的正常生活。以合理的技術(shù)方式阻止不健康的網(wǎng)絡(luò)信息在互聯(lián)網(wǎng)絡(luò)上肆意傳播具有非常積極的意義。
本研究以網(wǎng)頁中的文本部分為主要的研究對象,結(jié)合對網(wǎng)頁中敏感信息的分類,利用自然語言處理對文本的數(shù)據(jù)挖掘,構(gòu)建一種基于字典樹的網(wǎng)頁文本敏感詞查找及匹配的模型和算法,并采用決策樹的方法對匹配到的敏感文本實現(xiàn)敏感類型的劃分。
1 系統(tǒng)結(jié)構(gòu)
本系統(tǒng)主要的處理流程如下:(1)初始化抽取到的網(wǎng)頁中的文本數(shù)據(jù);(2)查找特定文本中的敏感信息,并做適當(dāng)處理;(3)構(gòu)建向量模型表示敏感文本,并得到向量的特征值;(4)構(gòu)建文本的數(shù)據(jù)集;(5)構(gòu)建決策樹算法。(6)劃分文本的敏感類型。如圖1所示。
2 文本內(nèi)容的獲取與分析
敏感詞隱藏于文本中,要抽取敏感詞,首先要獲取網(wǎng)站頁面中的文本部分的內(nèi)容。這個過程就是利用數(shù)據(jù)挖掘的方式,從頁面中獲取研究者感興趣數(shù)據(jù)的過程。網(wǎng)頁上的信息沒有嚴(yán)格的格式而言,一般沒有結(jié)構(gòu)或者屬于半結(jié)構(gòu)化的數(shù)據(jù)。要在這種無結(jié)構(gòu)化的信息中挖掘其中的文本信息,可以采用DOM遍歷的方式來實現(xiàn)。
利用HTML標(biāo)簽的定義可以將標(biāo)準(zhǔn)HTML網(wǎng)頁解析為一個樹形結(jié)構(gòu),這個樹形結(jié)構(gòu)成為DOM(文檔對象模型),采用遍歷算法,結(jié)合文本信息包含在特定HTML標(biāo)簽中的這一特點,確定文本信息所位于的樹的節(jié)點,并返回這些節(jié)點上的數(shù)值,即網(wǎng)頁中的文本信息內(nèi)容。DOM文檔對象模型可以利用ISO和WC3制定的HTML標(biāo)準(zhǔn)把任何一個網(wǎng)頁轉(zhuǎn)變?yōu)橐豢脴湫徒Y(jié)構(gòu)。將DOM樹的葉子節(jié)點上的內(nèi)容進行提取,再對樹進行剪枝處理掉不需要的部分,得到所關(guān)心的文本數(shù)據(jù)。BeautifulSoup作為對中文支持更好的網(wǎng)頁解析工具,在文本提取方面更加方便。
3 字典樹算法
字典樹又稱為TIRE樹,和哈希表相比,它的查詢效率更高,適用在由所有關(guān)鍵詞構(gòu)成的字典匯中查找某些特定關(guān)鍵詞語。它的由根節(jié)點開始,通過每條有向邊分別向下一層節(jié)點匹配,最后匹配到底層的葉子結(jié)點終止。敏感詞字典樹型結(jié)構(gòu)如圖2所示:
3.1 敏感詞匹配過濾的實現(xiàn)
敏感詞的匹配實際上要把所有的敏感詞構(gòu)建成一顆敏感詞樹,并遍歷該樹形結(jié)構(gòu),查看是否有從根節(jié)點到葉子結(jié)點的有效路徑,其匹配過程分為建樹和查找兩個過程。
建樹過程:從根節(jié)點的第一層節(jié)點開始對比要插入的字符,判斷當(dāng)前字符是否存在,若存在則指向該節(jié)點。如不存在則創(chuàng)建該字符節(jié)點,重復(fù)該過程。在遇到字符串末尾結(jié)束符時停止該過程,指定末端節(jié)點為最后一個非\0字符對應(yīng)的節(jié)點。
查找過程:將要插入字符串的第一個字符循環(huán)取出,從根節(jié)點的第一層開始,查找當(dāng)前字符是否已經(jīng)存在,若存在則繼續(xù)該過程,如不存在則返回False。其算法如下所示。
struct Node
Node* child[n]
bool flag;
INSERT(S,Sensitive)
node= Sensitive.root
for i=0 to S.size
c= S[i] -p'
ifnode.child[c]==NULL
node.child[c]_ new Node
node= node.child[c]
node.flag= true
FIND(S,‘rrie)
node= Trie.root
for i=0 to S.size
c=S[i]一7p 7
ifnode.child[c]==NULL
return false
node= node.child[c]
returnnode.flag
3.2 敏感詞預(yù)處理及匹配算法設(shè)計
網(wǎng)頁文本中的敏感信息過濾與匹配步驟如下:
定義敏感詞的類別、統(tǒng)計敏感詞的數(shù)量,,根據(jù)敏感信息的類別劃分并記錄,根據(jù)敏感類型設(shè)定每種敏感信息的權(quán)重。建立敏感詞字典樹,建立root節(jié)點,每顆子樹即為敏感詞庫中的每個敏感詞,利用文本分詞技術(shù)可以將文本中的句子分成若干詞語,用這些詞語與敏感詞字典樹進行匹配,判斷是否存在敏感信息。為了避免算法過于復(fù)雜,結(jié)合中文分詞工具的一般,規(guī)定每個敏感詞的漢字?jǐn)?shù)目不超過5個,即構(gòu)建的字典樹的深度小于等于5。
4 敏感文本分類過程
文本分類的過程就是根據(jù)文本的特征值將他們劃分到規(guī)定好的類別中。在敏感詞構(gòu)成的文本分類中,要根據(jù)敏感詞類別出現(xiàn)的頻率和數(shù)量來決定敏感文本的類型。
4.1 文本的預(yù)處理
分類之前要建立訓(xùn)練和測試用的語料庫,如果要對敏感文本進行分類,就要建立不同敏感類型的文本庫。建立這里的預(yù)處理指的是建立敏感文本語料庫,由網(wǎng)站工作人員將敏感頁面的文本部分提取出來,根據(jù)文本的敏感類型,放入不同的類型目錄??梢詫⑦@些文本作為文本訓(xùn)練集,并且以隨機抽取的方法在這些文件中抽取一定規(guī)模的文本作為測試集。
4.2 中文分詞
計算機理解不了文本中的句子,因為一般來說,句子是無結(jié)構(gòu)化的數(shù)據(jù)。如果句子經(jīng)過分詞之后能用若干個關(guān)鍵詞來表示句子的意義,那計算機就容易理解。詞匯是一種結(jié)構(gòu)化的數(shù)據(jù)。經(jīng)過分詞操作后,文本可以以詞匯的方式簡化其意義,變成了一種結(jié)構(gòu)化的數(shù)據(jù)。
4.3 建立向量空間模型(VSM)
如果文本可以表示為一個空間向量,那么在文本分類時,不同類型文本之間的類別歸屬就可以抽象為不同向量之間的夾角,以向量的形式表示文本數(shù)據(jù),對文本建立向量空間模型,可以將文本分類問題轉(zhuǎn)化為一個數(shù)學(xué)問題,可以減少處理實際問題的復(fù)雜程度。
文本構(gòu)成的VSM中,一個文本d可以看作由構(gòu)成該文本的所有單詞構(gòu)成的特征向量。
4.4 通過計算TF-IDF值得到文本集的權(quán)重矩陣
通過計算文本的TF-IDF值來確定文本之間的相似性,進而根據(jù)相似程度來進行文本分類。
TFIDF(w,d)=TF(w,d)×IDF(w)
(3)
上式計算的結(jié)果為詞w對于文本d的權(quán)重。根據(jù)這個權(quán)重可以建立一個二維矩陣,元素a[i][j]用來表示第j個敏感詞在第i個敏感類別中的IF-IDF值。依據(jù)同樣的方式建立測試及數(shù)據(jù)的TF-IDF詞向量空間模型。測試集和訓(xùn)練集處在同一個詞向量空間中,測試集與訓(xùn)練集數(shù)據(jù)具有不同的敏感詞權(quán)重矩陣。
4.5 敏感文本分類決策樹構(gòu)建
4.5.1 分詞及文本向量的降維處理
在使用向量模型表示文檔時,必須要進行語句分詞處理。詞語本身是有一定意義的,他們組合在一起構(gòu)成了句子,形式上而言,漢字是組成句子的最小單位,但是單個漢字的意義不明確,所以詞從意義表達上來說,是構(gòu)成語句的最小單位。在敏感文本分類中詞語的權(quán)重是決定一個文本是否敏感的重要因素。為了降低文本向量的維度,需要去掉其中的語氣助詞、副詞、介詞等不具備特定意義的詞(除名詞與動詞之外的詞),進行向量降維,可以加快利用分類算法進行文本分類的速度與精度。
4.5.2 構(gòu)建敏感詞檢索模型中的決策樹算法
1)計算每個文本中敏感特征詞在由敏感文本構(gòu)成矩陣中的權(quán)重,根據(jù)權(quán)重的大小確定而對文本進行敏感類別的分類,即預(yù)測出這些文本屬于哪種具體的敏感類型。利用PYthon中的scikit-learn工具進行TF-IDF的處理,完成不同類型文本中每個敏感文本的向量化表示。
2)將多個具有m維特征向量的文本作為樣本訓(xùn)練集(ij[I練數(shù)據(jù)),利用C4.5算法將其分類到相應(yīng)的類別中間,以實現(xiàn)敏感文本的分類。
5 實驗
敏感文本分類實驗采用復(fù)旦中文文本分類庫,并添加部分其他類別的文本作為訓(xùn)練集。訓(xùn)練集樣本點的數(shù)目為測試集的3倍左右。經(jīng)過實驗驗證,采用決策樹對敏感文本的分類準(zhǔn)確率能達到80%以上。
6 結(jié)束語
本文提出的方案為網(wǎng)頁敏感詞的主動檢索提供了新思路,對敏感文本分類提供了一種新的選擇。由于決策樹不能很好地處理對連續(xù)型屬性的量化、編碼,文本數(shù)據(jù)的完整性以及分詞算法的優(yōu)劣都會影響決策樹的生成,另外,對決策樹合理地進行剪枝能進一步提高決策樹分類算法的精確度、簡化算法的復(fù)雜度。合理的設(shè)定閾值并設(shè)置剪枝條件從而使建立的學(xué)習(xí)模型更加簡單是日后要關(guān)注的一個關(guān)鍵點。
參考文獻:
[1]丁兆云,賈焰,周斌.微博數(shù)據(jù)挖掘研究綜述[J].計算機研究與發(fā)展,2014,51(4):691-706.
[2]袁曉曦.基于機器學(xué)習(xí)的Web文本自動分類[J].軟件導(dǎo)刊,2011,10(1):26-28.
[3]鄧一貴,伍玉英.基于文本內(nèi)容的敏感詞決策樹信息過濾算法[J].計算機工程,2014,40(9):300-304.
[4]李泰.大數(shù)據(jù)環(huán)境下海量多媒體信息過濾技術(shù)的改進[J].電子技術(shù)與軟件工程,2018(4):165.
[5]李全鑫,魏海平.基于聚類分類法的信息過濾技術(shù)研究[J]‘電子設(shè)計工程,2014,22(20):14-16,19.
[6]寧墨.信息過濾技術(shù)在網(wǎng)站信息監(jiān)管中的應(yīng)用與研究[D].長春:吉林大學(xué),2015.
[7]李偉.基于決策樹的網(wǎng)頁敏感詞過濾系統(tǒng)設(shè)計[D].楊凌:西北農(nóng)林科技大學(xué),2018.
【通聯(lián)編輯:梁書】
收稿日期:2019-12-21
作者簡介:李偉(1977-),男,陜西寶雞人,講師,碩士,主要研究方向為計算機網(wǎng)絡(luò)安全。