摘要:圖書審核、新聞評論和社區論壇等系統都依賴於關鍵字過濾。高效、準確的關鍵詞匹配算法能提升這些系統的性能,提高審核人員的效率。本文提出了一種網頁敏感關鍵詞匹配的技術,通過對待檢測文本預處理,減少敏感詞庫的負擔,採用Trie存儲檢索敏感詞,最大限度地減少無謂的字符串比較,最後通過管理人員的反饋信息及時更新敏感詞庫使得過濾更加高效。
關鍵詞:信息過濾;文本預處理;Trie;相關反饋
Abstract:Keyword filtering is relied on in many fields such as books review system, news commentary system, BBS, etc. The performance of these systems and the efficiency of reviewers could be improved with efficient and accurate keyword matching algorithm. This paper proposes a webpage sensitive keyword matching technique which could reduce the burden of the sensitive words library through preprocess the text to be detected, minimize meaningless string comparisons by storing sensitive keywords for retrieval with Trie and improve the efficiency of filtering by updating the sensitive words library in time on the basis of feedback information from the administrative staff.
Keywords: Information Filtering, Text Preprocessing, Tire, Relevance Feedback
隨著網際網路的發展,人們享受網絡技術帶來的美好生活,同時也使某些非法分子通過網絡傳送非法信息。隨著網絡技術的發展和應用,網上色情、暴力、反動等不良信息時有傳播,而且有泛濫的趨勢。因此,網絡信息內容安全值得大家去關注和研究。網際網路發展到今天,已經得到很大的普及和應用。目前已經成為一個全球性、開放性、互動性的綜合性平臺。它容納了各類型的原始信息,提供了各類型的服務,比如信息獲取、網上購物、即時性交流等,給人們工作、生活帶來很大的便利。可以說它深入人們的方方面面,是人類信息化技術的一次革命。2011年底,世界網民數量突破21億,另據中國網際網路信息中心(CNNIC)統計,截止2011年6月中國網民己達4.85億,成為世界網民最多的國家。網絡給我帶來便利的同時,也給我們帶來許多新的社會問題。由於存在著巨大的經濟利益以及世界各個地區與國家、民族之間存在著政治、宗教等矛盾,使得非法人士挺而走險,利用網絡開放性的特點,在網上散布各種反動、暴力、色情、虛假廣告等不良信息,嚴重腐燭人們的身心健康,煽動不明真相的人聚眾鬧事,引起民族之間的強烈仇恨等,給經濟社會穩定發展與人們安居樂業帶來及其嚴重的影響。
網絡過濾技術就是在這個背景下產生的。目前網頁過濾方法主要有關鍵字過濾、神經元算法、概率統計等技術。據統計網絡中70%內容是以文本形式存在,所以對網絡文本的過濾是現在過濾技術研究的主要方向。由於關鍵詞過濾相對於別的語義過濾實現簡單,過濾速度快等特點,目前己成為絕大多數過濾系統採用的主要方法。比如企業搜索產商Autonomy為我國政府網絡信息監測部門量身定做的網際網路網頁關鍵字監控分析系統、美國的TDT(Topic Detection and Tracking,話題識別與跟蹤)系統、IBM Almaden研究中心開發的WebFountain系統等,這些系統均是以關鍵字過濾技術為基礎,並含有網頁信息收等集、海量信息檢索和語言檢索等功能。關鍵字過濾和其他過濾算法相比雖然有其自身的缺點,但是建立在一定良好分詞基礎上,通過合理的特徵詞優化和關鍵詞算法,在不影響處理速度和空間開銷的前提下,同樣可以達到理想的過濾效果。
針對網頁文本內容的敏感關鍵詞檢測技術能夠及時有效檢測與發現網頁中出現的不良文本信息,使網站監控與管理人員及時採取措施進行敏感詞的過濾,以防止網頁不良信息的蔓延和給社會和人們帶來重大損失。
敏感信息監測與過濾技術是網絡輿情管理的重要技術,最早起源於圖書館中的應用,1958年Luhn以圖書館檢索工作為基礎,提出了「商業智能機器」的設想,這個設想最後成了信息過濾的雛形。「商業智能機器」首先它按照用戶不同需求的建立相應的查詢模型,然後根據這個模型,通過精確的匹配,提取出不同模型相對應的文本集。用戶的需求模型並不是固定的,它會根據用戶的查詢來更新和完善,這個過程雖然簡單,但是它涉及了信息過濾的每一個過程,也成為後來信息過濾的開端。然而這個信息更新與維護是靠人工來維護的。1969年,隨著電子文本的出現和普及,以及當時出現的文本匹配算法,選擇信息分發系統(SDI,Selective Dissemination of Information)開始收到人們的重視。「信息過濾」這個概念是在1982年Demzing提出的,他是在郵件系統中設計了「內容過濾器」,並通過「內容過濾器」來識別緊急郵件和一般郵件,以此來實現對信息內容進行有效性控制。1987年,Malone等人對信息過濾提了出三種信息選擇模式,即認知、經濟、社會。隨著信息過濾技術越來越多的受到重視,1989年,由美國DARPA資助的「Message Understanding Conference」將自然語言處理技術引入文本過濾研究方面進行了積極的探索。它的主要工作是引入了統計學原理,在過濾處理自然語言之前,應用統計技術對信息進行預處理,把這個文本預處理過程叫做「文本檢測」。之後Belkin和Croft對用戶要求在信息過濾系統流程中的作用做了詳細分析,並提出了 「用戶角色」這個概念(包括用戶興趣及興趣表示)。至此,開始出現了用戶模板的雛形,為以後文本過濾模型的研究和實現起了指引作用。進入90年代,信息過濾技術得到了很大發展,研究方向也更加具體化,主要出現了以下幾個方向:信息過濾、信息檢索、分類器及語詞抽取等。為了有利於信息過濾的發展,1992 年,美國計算機學家 Nicholas、J.Blkin 和 w.Bmce Croft 在著名的 Communications of the ACM發表的一篇文章中,對文本信息過濾這一名詞進行了明確定義,以此來區分其他領域的研究。至此,信息過濾技術已經正式成為一門獨立的研究內容,在今後的發展過程中將不斷完善。
現階段,敏感詞檢測與過濾技術受到了各國的高度重視,在國家的推動下,以敏感信息檢測與過濾為目標的應用系統大量出現。Stanford大學的Take.Yen和Hector Garcia-Mina開發了基於內容的過濾系統SIFT(Stanford Information Filtering Tool),這個系統,每個用戶可以獨立建立自己詞彙庫,並使用向量空間模型和關鍵字匹配來實現用戶需求與網絡信息之間的匹配。美國國家安全局為了更好對恐怖活動、軍事威脅等活動進行監控建設了 「Echelon」通信監視網絡,它通過衛星接收站和間謀衛星,攔截大量電話、傳真和電子郵件等個人信息,Echelon也是一個基於敏感關鍵字檢索來獲取通信電子通信系統。英國政府也成立了專門收集情報機構「英國政府技術援助中心」,這個監控中心能夠截獲和收集所用進出英國的所有網際網路信息。
在國內,隨著敏感信息檢測技術的逐漸成熟,一些科研機構、高等院校和公司通過系統化的技術整合研究,也推出了大量的原型系統和商業產品。如中科天鞏公司依託中國科學院計算技術研究所設計開發的天機網絡網頁關鍵字監測系統,經過十餘年的深入研究,其產品現已推出3.0以上版本。北京交通大學2009年1月成立了國內首個網絡網頁關鍵字安全研究機構網絡網頁關鍵字安全研究中心,現在正全力推進網絡網頁關鍵字產生、傳播和導控等方向性研究和自主網絡輿論安全關鍵技術的研發。北京理工大學網絡與分布式計算實驗室研發了網絡網頁關鍵字分析與預警平臺。北京拓爾思(TRS)信息技術股份有限公司研製的TRS網絡網頁關鍵字監測系統,系統包括了熱點發現和追蹤、敏感信息監控和預警、輔助決策支持、全方位信息搜索等功能。北大方正技術研究院設計開發了方正智思網頁關鍵字預警輔助決策支持系統,針對離線的網頁數據進行網頁關鍵字自動分析和預報,分析規劃網頁關鍵字監控內容,形成了一個具有生命特徵的周期往復的社情民意反饋系統。南京大學網絡傳播中心的網絡網頁關鍵字監測與分析實驗室與谷尼國際軟體(北京)有限公司共同建立了網頁關鍵字研究基地,有關Goonie網頁關鍵字監測分析系統也正在國家性課題——「網絡輿論引導能力建設研究」中發揮著重要作用。此外,還有上海交通大學信息安全工程學院的網絡媒體內容監管系統,也取得了不小進展。
字典樹,即Trie樹,又稱單詞查找樹或鍵樹,是一種樹形結構,是一種哈希樹的變種。典型應用是用於統計和排序大量的字符串(但不僅限於字符串),經常被搜尋引擎系統用於文本詞頻統計。它的優點是:最大限度地減少無謂的字符串比較,查詢效率比哈希表高。
Trie的核心思想是空間換時間。利用字符串的公共前綴來降低查詢時間的開銷以達到提高效率的目的。它具有3個基本性質:
(1)根節點不包含字符,除根節點外的每一個節點都只包含一個字符;
(2)從根節點到某一節點,路徑上經過的字符連接起來,為該節點對應的字符串;
(3)每個節點的所有子節點包含的字符都不相同。
例如,假設有b,abc,abd,bcd,abcd,efg,hii 這6個單詞,我們構建的字典樹就是如下圖2.3所示:
圖2.3 字典樹結構
如上圖所示,對於每一個節點,從根遍歷到他的過程就是一個單詞,如果這個節點被標記為紅色,就表示這個單詞存在,否則不存在。那麼,對於一個單詞,我只要順著他從根走到對應的節點,再看這個節點是否被標記為紅色就可以知道它是否出現過了。把這個節點標記為紅色,就相當於插入了這個單詞。這樣一來我們查詢和插入可以一起完成。
本質上,Trie是一顆存儲多個字符串的樹。相鄰節點間的邊代表一個字符,這樣樹的每條分支代表一則子串,而樹的葉節點則代表完整的字符串。和普通樹不同的地方是,相同的字符串前綴共享同一條分支。從上圖中可以看出:字典樹的每條邊對應一個字母。每個節點對應一項前綴,葉節點對應最長前綴,即單詞本身。單詞abcd與單詞abd有共同的前綴「ab」, 因此他們共享左邊的一條分支,root->a->b。並且字典樹的查詢操縱非常簡單。比如要查找abd,順著路徑root -> a -> b->d就找到了。
搭建Trie的基本算法也很簡單,即逐一把每個單詞的每個字母插入Trie樹。插入前先看前綴是否存在。如果存在,就共享,否則創建對應的節點和邊。
在敏感詞中加入特殊符號,是目前非法網頁來逃避過濾的主要方式,例如上面提到的「法<htl>輪</htl/>功」,識別此類不良信息,首先要過濾掉其中的特殊符號,使其還原文本的自然組合。而在中文的書面用法通常是依靠逗號、句號等斷句符號進行斷句,而且一些中文分詞算法也是以斷句符號進行分詞處理的。從文中過濾諸如「%」、「&」、等特殊符號,用傳統算法直接識別很困難,我們通過建立正則表達式並結合特殊符號對照表的方式進行過濾,使被隔開的歧義敏感詞恢復成自然組合狀態。
在不良信息中,某些敏感詞中的字往往被拼音所代替,對於這種情況,我們基本思想是,首先在訓練階段對敏感詞的拼音進行收集,並建立詞與拼音的對照表存入數據字典,當發現待檢測文本中含有拼音的時候,通過匹配算法,從字典查找與之匹配的字詞,來恢復敏感詞的自然組合狀態。由於漢語中字和詞(字是漢語結構的最小單位,詞是漢語語義表達的最小單位)的區別,我們從兩方面來考慮。1、單字被拼音代替的情況,首先判斷被代替字與其相鄰字的成詞可能性,然後在字典中查找判斷該詞是否為敏感詞,建立拼音與字詞對照表,恢復其自然組合狀態;2、多字被拼音代替的情況,利用字典直接建立拼音與可能代替的詞對照表,判斷其是否為敏感詞,如果是,則將敏感詞恢復成自然組合狀態。
對於某些字母與數字組合的敏感字,例如「法LOng功」,用數字「0」來代替「Long」中的「0」,由於兩者形式非常相似,很容易讓人們理解其含義。這種情況首先建立敏感詞拼音表,然後通過自定義的正則表達式,對常見敏感信息的所有拼音逐一匹配。
對於敏感字中還有偏旁部首或其他非單字的情況,我們還是需要藉助字典來識別需要藉助字典進行匹配和識別,識別過程描述如下:
(1)對待查文本進行掃描,查找文中是否存在偏旁或部首,如果存在,則判斷其右鄰的字是否同樣為偏旁或部首。
(2)首先確定該偏旁部首結合其相鄰字的構成詞能力,如果字典中確實存在與之對應的子結構,則建立詞表並統計該字在文中出現的次數;如果沒有找到,則轉到步驟( 3)。
(3)如果在字典中沒有找到相對應的字,則認為敏感詞中不含有被拆分的字,轉到步驟(1),繼續查找該偏旁部首後面可能出現的偏旁字。
圖1 待檢測文本預處理過程
網頁敏感關鍵詞檢測系統主要完成對待檢測網頁的敏感關鍵詞檢測,並對檢測出的敏感關鍵詞,標出其在源文件中的位置,將檢測結果與檢測時間等信息寫入敏感關鍵詞檢測結果表中。系統在敏感詞檢測期間需要駐留內存,通過加載敏感關鍵詞知識庫來做敏感關鍵詞的檢測。網頁敏感關鍵詞檢測系統的流程圖如下圖2.1所示。
圖2 網頁敏感關鍵詞檢測系統流程圖
上圖為網頁敏感關鍵詞檢測系統的流程圖,其敏感詞檢測具體步驟如下:
1、創建敏感關鍵詞庫。
2、敏感關鍵詞檢測系統啟動,加載敏感關鍵詞庫到內存。其中敏感關鍵詞按照Tire字典樹形式存儲。
3、系統通過目錄文件讀寫子模塊讀取待檢測文本。
4、待檢測文本預處理。
5、系統通過掃描指針讀取待檢測文本中每個字符,使用哈希散列函數將每個字符映射到字典樹中進行敏感關鍵詞檢測;
6、如果發現敏感關鍵詞,則標記其位置信息,獲取敏感關鍵詞的上下文作為該敏感關鍵詞的摘要內容,獲取系統當前時間,然後調用關係型資料庫讀寫子模塊將其寫入敏感關鍵詞檢測結果表中。
7、如果沒有發現敏感關鍵詞,則掃描指針調下下一個字符;
8、重複步驟(5),(6),直到掃描指針指向文本結尾。
9、管理員根據匹配到的上下文進行判斷,判斷其是否為敏感詞,給系統做出相關反饋,或者在這些詞語中得到提示,添加新的敏感詞庫,及時更新關鍵詞庫。
本文首先簡單概述了網頁敏感關鍵詞檢測技術在當前網絡信息多元化與複雜化環境下的研究背景與重大意義。接著說明了該技術在國內外的研究現狀與應用的實際場景。然後詳細介紹了網頁敏感關鍵詞檢測系統的運行流程與敏感關鍵詞檢測過程。重點說明了待檢測文本的預處理,以及敏感關鍵詞庫在內存中的字典樹存儲形式。對網頁敏感關鍵詞檢測系統做了具體的設計與實現,該系統可以準確的檢測出待檢測文本中的敏感關鍵詞,敏感詞位置及上下文摘要等具體信息,並在實際的頁面中將檢測出的敏感關鍵詞進行了標註,管理員可以通過檢測出的敏感詞進行判定,並反饋給系統,及時更新詞庫。
[1] CCNIC, 《第29次中國網際網路發展狀況調查統計報告》,2012
[2] Wang X, Li H, Jia Y, et al. Proceedings of the 2012 International Conference on Information Technology and Software Engineering[M]. Springer Berlin Heidelberg, 2013:991-1000.
[3] 王博文. 通用類trie樹及自動生成[J]. 計算機應用, 2000, (12):74-75.
[4] 王博文, 蘇國輝. 用於漢字拼音輸入的類trie樹及其改進[J]. 小型微型計算機系統, 2002, (6):759-761.
[5] Tang Pei-li, Wang Shu-ming, Hu Ming. Algorithm of Thematic Words Extraction from Chinese Texts Based on Semantic [J]. Journal of Changchun Post and Telecommunication Institute, 2005-05.
[6] Luo Zhun-chen, Wang Ting. Research on the Chinese Keyword Extraction Algorithm Based on Separate Models [J]. Journal of Chinese Information Processing, 2009-01.
[7] 白立軍, 張銀福. 基於網絡安全的字符串匹配算法研究[A]. 第二屆全國信息檢索與內容安全學術會議(NCIRCS-2005)論文集[C], 2005年
[8] 張文鵬, 王興. 基於中文關鍵詞提取的預案智能匹配方案[J]. 科學技術與工程, 2012, (21).