李應霆 葉傳奇 李玉進 尚嘉琳 肖洋洋 閆凱
摘要:隨著互聯(lián)網(wǎng)時代的發(fā)展,伴隨著信息服務技術的不斷迭代,由網(wǎng)絡技術產生的相關應用逐步受到諸多行業(yè)的青睞,為了使上網(wǎng)更加方便快捷,越來越多的用戶放棄傳統(tǒng)的應用程序而選擇安裝相應插件,用以簡化電腦環(huán)境。該文設計了一個過濾插件,該插件主要通過DFA過濾算法,實現(xiàn)了在網(wǎng)頁中對含有敏感詞匯的過濾。結果表明,與其他過濾算法相比,DFA算法在替換耗時和精確度方面都有較為優(yōu)秀。
關鍵詞:信息過濾;DFA算法;插件設計;關鍵詞過濾中圖分類號:TP393? 文獻標識碼:A
文章編號:1009-3044(2021)29-0062-02
1概述
由于互聯(lián)網(wǎng)技術的不斷發(fā)展,人們逐步認識到網(wǎng)絡所起到的重要作用,并通過網(wǎng)絡進行信息的傳遞與資源的共享來達到交流的目的。但是,在國內外網(wǎng)絡上傳播有利信息的同時,也會有不法分子利用其開源性、公共性等特點傳播不良信息,使一些是非辨別能力較弱的人受到嚴重影響,更有甚者會危害到國家的安全與社會的穩(wěn)定發(fā)展。因此互聯(lián)網(wǎng)在加強人們溝通的同時,也需要更加穩(wěn)定的過濾技術的加持。網(wǎng)絡信息過濾主要針對互聯(lián)網(wǎng)上信息魚龍混雜的問題,但它同樣也可以為解決信息化社會中人們想要自主設置信息獲取的途徑與內容等個性化定制需求提供一些新的思路。
2開發(fā)技術
插件。插件是一種遵循一定規(guī)范性應用程序接口編寫出來的程序,其只能運行在規(guī)定的應用平臺上,不可以脫離指定的應用平臺而單獨實現(xiàn)運行。其結構使應用程序編寫具有良好的擴充和定制功能。其中有三種插件系統(tǒng)的實現(xiàn)方法,其中最重要的是實現(xiàn)插件與主程序之間的交互,一般按照一些特定規(guī)則的DLL,主程序將內存中的所有地址接口傳遞給插件,插件根據(jù)傳遞的地址接口來調用插件接口,以此完成所需要的功能或資源等。插件的編程實現(xiàn)包括兩個方面:一方面是主程序的插件處理機制,管理每個插件接口并使每個插件進行初始化過程。另一方面是定義插件接口函數(shù),將插件的所有接口函數(shù)進行封裝,以便開發(fā)者可以自由調用該接口函數(shù)。
3主要過濾技術
3.1關鍵詞過濾
關鍵詞過濾方法是對文本中的不良信息或包含在文本里的敏感詞匯進行提取并生成一個敏感詞詞庫。當用戶瀏覽新聞、小說等文本信息時,通過該過濾方法可以對文本內容與詞庫儲存的敏感詞進行分析比對。如果識別成功,那么敏感詞會修改成***。不過關鍵詞過濾技術的使用也包含一些缺點,比如對單個關鍵字進行過濾時并不能取得良好的效果;在不同語境上對文本語義的內容進行過濾可能會產生不準確的結果,過濾后文本的錯報率和漏報率將會上升;同時網(wǎng)絡上存在使用其他詞語、拼音或圖片形式等專門躲避敏感詞的技巧,因此很難識別出這些不良過濾信息。
3.2 DFA算法
DFA算法即確定有窮自動機。一個DFA 中有窮個狀態(tài),主要分三種:初始狀態(tài)、終止狀態(tài)和中間狀態(tài)。其狀態(tài)間的轉換公式為:狀態(tài)×輸入字符—>狀態(tài)。定義一個DFA: A=(Σ,S,s0, F,N),其中Σ 表示一個輸入字符的集合,S為狀態(tài)的集合,s0為初始狀態(tài),F(xiàn)為終止集合,N為轉換公式:S×Σ→S。轉換樣例如圖 1所示。
從圖1可得出一個轉換公式表格如表1所示。
由表1可知:N(S0,0)=S1,N(N(S0,0),1)=S2。如式(1)所示:
N*(s,αβ)= N*(N*(s,α),β)??? (1)
4算法實現(xiàn)
已知DFA 的算法原理:包含一個有限狀態(tài)集合和從一個狀態(tài)通向另一個狀態(tài)的有窮性的邊,每條邊上標記一個符號,其中一個狀態(tài)是初態(tài),其他某些狀態(tài)是終態(tài)。將原理轉化為邏輯實現(xiàn)如圖2所示。
通過其代碼流程,如圖3所示進行舉例說明:將敏感詞“狗腿子”通過字典樹切割成一個個字:“狗”“腿”“子”。當文本出現(xiàn)“狗”字時,算法開始在字典樹中尋找,若存在該字則返回“狗”下面的子樹,反之則不是敏感詞。接著子樹程序開始匹配第二個字“腿”,若存在則返回“腿”下面的子樹,反之則不是敏感詞。以此類推。若isEnd =1,表明敏感詞搜索已經結束,檢測詞不是敏感詞。
如圖4、圖5所示,分別采用10394057字節(jié)、4478244字節(jié)和36559837字節(jié)三組包含不定量的敏感詞的文章,分別記作為 A、B、C組來進行敏感詞過濾測試實驗。從圖表中通過對 DFA算法過濾方法與其他過濾方法進行的測試對比,從中發(fā)現(xiàn) DFA算法在替換耗時和精確度上都有顯著提升。
5插件設計
插件可以動態(tài)給軟件添加功能,也可以隨時刪除,這樣的優(yōu)勢使任何人都可以給這個軟件進行功能上的擴展,而不用去改變軟件本身的代碼。本文以DFA算法為底層代碼做成jar包形式的插件來實現(xiàn)敏感詞過濾。考慮到用戶對敏感詞的需求不一致問題,有兩種方法可供選擇,一種是用戶個性化自定義敏感詞庫,另一種是使用本插件已提供的基礎敏感詞庫。
開發(fā)插件時,在固定的插件目錄下存儲插件相關文件,以方便之后插件下載、存儲和部署問題。使用時,將jar包導入到需要的項目中,接著在電腦 C 盤根目錄下新建一個 Sensitive? Word.txt敏感詞詞庫文件或將已提供好的敏感詞詞庫文件放在 C盤根目錄下。在需要過濾文本的程序中創(chuàng)建Sensitiveword? Filter實例化對象filter,接著調用jar包中提供的接口,實現(xiàn)過濾方法 Set <String> set = filter.getSensitiveWord(string, 1),或 Set< String> set = filter.getSensitiveWord(string,2)來達到過濾文本的目的。其中 set存放的是文本中存在的敏感詞,程序運行完成后可直接在控制臺查看過濾信息;string 為待要過濾的文本;1 表示最小匹配規(guī)則;2表示最大匹配規(guī)則。完成文本過濾功能后,輸出文本中的敏感詞將會用***表示。
6結束語
隨著計算機科學和信息技術飛速發(fā)展,網(wǎng)絡方便了信息共享,推動社會進步。但通過網(wǎng)絡傳播不良信息仍是一個嚴重的社會問題。本文插件的研究采用多種過濾技術并用的方式來對網(wǎng)頁不良信息進行有效的過濾和屏蔽,并加強了DFA算法,對特殊字符也能有效的識別并將其過濾,此插件通過減少未成年人接觸敏感詞、不良信息具有重大意義。
參考文獻:
[1] 焦玉英,李法運.國外信息過濾研究進展[C].信息化與信息資源管理學術研討會,武漢大學,2003.
[2] 龐雅麗,王彩芬.個性化信息過濾技術[J].甘肅科技,2007,23(3):124-126,171.
[3] 牛偉霞,張永奎.潛在語義索引方法在信息過濾中的應用[J].計算機工程與應用,2001,37(9):57-59,62.
[4] 何彬.網(wǎng)絡化產品設計信息過濾器的設計與可靠性[D].武漢:武漢理工大學,2005.
[5] 叢健.不良信息過濾技術研究[D].北京:北京郵電大學,2012.
【通聯(lián)編輯:代影】