全拼形式和拼音縮寫形式作為英文敏感詞。
[0039]優(yōu)選地,所述步驟S3中的敏感詞過濾策略包括缺省敏感詞過濾策略、英文敏感詞過濾策略、網(wǎng)址敏感詞過濾策略、中文敏感詞過濾策略、中文分詞敏感詞過濾策略和中文敏感詞近似匹配過濾策略。
[0040]具體地,所述缺省敏感詞過濾策略為以字符作為文本的基本組成單元,過濾非英文、非網(wǎng)址、非中文形式的敏感詞;所述英文敏感詞過濾策略為過濾英文敏感詞,以及中文敏感詞的全屏和拼音縮寫;所述網(wǎng)址敏感詞過濾策略為過濾網(wǎng)址敏感詞;所述中文敏感詞過濾策略為過濾以字符為基本組成單元的中文敏感詞;所述中文分詞敏感詞過濾策略為過濾以分詞為基本組成單元的中文敏感詞;所述中文敏感詞近似匹配過濾策略為采用跳躍式掃描文本,利用中文敏感詞及其殘缺詞對高敏感級別的中文敏感詞進(jìn)行匹配。
[0041]進(jìn)一步地,所述步驟SI中對文本的字符進(jìn)行規(guī)格化處理,其內(nèi)部流程如圖2所示:步驟201將多個連續(xù)空白字符替換為單個空格字符;步驟202將繁體中文字符轉(zhuǎn)換為簡體中文字符;步驟203將大寫英文字符轉(zhuǎn)換成小寫英文字符;步驟204僅保留多個連續(xù)標(biāo)點符號的第一個;步驟205使用Stanford NLP工具包對英文單詞進(jìn)行詞形還原。
[0042]實施例2:圖1是本發(fā)明實施例提供的敏感詞過濾系統(tǒng)的模塊示意圖,從圖中可以清楚地看出,本實施例提供的敏感詞過濾系統(tǒng)的技術(shù)架構(gòu)包括四個主要模塊:字符規(guī)格化處理模塊101、敏感詞管理模塊102、排除詞管理103、敏感詞過濾模塊104,其中,模塊102、103依賴于模塊101,實現(xiàn)對敏感詞和排除詞的規(guī)格化處理,模塊104依賴于模塊101,實現(xiàn)對文本的規(guī)格化處理,模塊104依賴模塊102、103,獲取敏感詞和排除詞并構(gòu)造Aho-Corasick自動機。
[0043]進(jìn)一步地,模塊104包括6個過濾子模塊和I個過濾結(jié)果匯總子模塊:缺省敏感詞過濾子模塊105、英文敏感詞過濾子模塊106、網(wǎng)址敏感詞過濾子模塊107、中文敏感詞過濾子模塊108、中文分詞敏感詞過濾子模塊109、中文敏感詞近似匹配過濾子模塊110及過濾結(jié)果匯總子模塊111。6個過濾子模塊105-110采用多線程或分布式技術(shù)同時過濾文本,將過濾結(jié)果提供給匯總子模塊111,由111合并成最終結(jié)果返回給調(diào)用者。
[0044]字符規(guī)格化處理模塊101作為整個架構(gòu)中的基礎(chǔ)工具模塊,提供對敏感詞、排除詞和文本的規(guī)格化處理,其內(nèi)部流程如圖2所示:步驟201將多個連續(xù)空白字符替換為單個空格字符;步驟202將繁體中文字符轉(zhuǎn)換為簡體中文字符;步驟203將大寫英文字符轉(zhuǎn)換成小寫英文字符;步驟204僅保留多個連續(xù)標(biāo)點符號的第一個;步驟205使用Stanford NLP工具包對英文單詞進(jìn)行詞形還原,例如將“using”還原成“use”。
[0045]敏感詞管理模塊:內(nèi)容的管理者或搜集者將不期望或期望出現(xiàn)的詞維護在敏感詞庫中,其中,敏感詞主要包括兩個屬性:存在形式、敏感級別,敏感詞按存在形式可分為中文敏感詞、英文敏感詞、網(wǎng)址敏感詞和缺省形式敏感詞,中文敏感詞的全拼形式和拼音縮寫形式作為英文敏感詞;對不同存在形式的敏感詞,在過濾時對文本采取不同的過濾策略,一般地,敏感詞的基本組成單元為字符,特殊地,如果中文敏感詞中包含空格,則認(rèn)為該中文敏感詞的基本組成單元為中文分詞,并以空格作為分詞間的分隔符。
[0046]排除詞管理模塊:對敏感詞維護其排除詞,例如,“賣血”的排除詞“賣血壓計”,如果敏感詞在文本中以排除詞的子串出現(xiàn),則不作為敏感詞;以中文分詞為基本組成單元的中文敏感詞,其排除詞的基本組成單元也為分詞。
[0047]敏感詞過濾模塊:包含一組敏感詞過濾子模塊,每個過濾子模塊是對某種過濾策略的實現(xiàn),子模塊的內(nèi)部流程主要包括文本預(yù)處理、匹配和匹配成功后的判定,匹配算法使用Aho-Corasick自動機算法。采用多線程或分布式技術(shù)同時執(zhí)行各個子模塊,快速地完成對文本的過濾。
[0048]本發(fā)明所述敏感詞過濾方法基于詞庫,詞庫存儲在文件或關(guān)系型數(shù)據(jù)庫中。敏感詞及其排除詞的實體關(guān)系如圖3所示:敏感詞301與排除詞302是多對多的關(guān)系(例如敏感詞“代考”、“替考”均有排除詞“嚴(yán)禁代考替考”和“打擊代考替考”);網(wǎng)址敏感詞303、英文敏感詞304、中文敏感詞305繼承敏感詞301;中文敏感詞305可以擁有多個全拼形式306和拼音縮寫307(例如“賭博機”的全拼“duboji”、“du bo ji”和拼音縮寫“dbj” );中文敏感詞305可以擁有多個變形詞308(例如“賭博機”的變形詞“貝者十専木幾”)。對上述敏感詞、排除詞的管理包括增加、修改、刪除和查詢操作,其中全拼形式306和拼音縮寫307由程序自動生成,并通過人工篩選維護在詞庫中;變形詞308由人工對中文敏感詞305中的字進(jìn)行拆字或替換為新的字之后得到。
[0049]各個過濾子模塊的內(nèi)部總體流程如圖4所示:步驟401使用字符規(guī)格化處理模塊101對文本進(jìn)行預(yù)處理。特殊地,對于網(wǎng)址敏感詞過濾,添加了將“?!?、“,”、“、”、、“點”、“點”替換為的操作;對于中文敏感詞過濾,添加了去除既非中文也非標(biāo)點字符的操作。步驟402使用構(gòu)造好的Aho-Corasick自動機掃描文本:每掃描一個字符或分詞(分詞掃描僅用于中文分詞敏感詞過濾),使用匹配步驟403判斷是否命中敏感詞或排除詞,如果未命中,則跳轉(zhuǎn)到步驟402;如果命中,則使用判定步驟404判斷匹配的詞,如果匹配的詞是排除詞,則從當(dāng)前過濾結(jié)果中刪除作為該排除詞的子串出現(xiàn)在文本中的敏感詞,再跳轉(zhuǎn)到步驟402;如果匹配的詞是敏感詞,則根據(jù)上下文判定該敏感詞是否成立,如果不成立,則跳轉(zhuǎn)到步驟402;如果敏感詞判定通過,則使用步驟405記錄該敏感詞及其敏感級別和出現(xiàn)位置,再跳轉(zhuǎn)到時步驟402。步驟404對敏感詞的判定規(guī)則包括:對英文敏感詞,如果命中的詞兩邊有英文字母,則判定為不通過;對網(wǎng)址敏感詞,如果命中的詞兩邊有英文字母或數(shù)字,則判定為不通過,如果右側(cè)字符為且后面有英文字母或數(shù)字,同樣判定為不通過。
[0050]缺省敏感詞過濾子模塊:用于過濾非英文、非網(wǎng)址、非中文形式的敏感詞,以字符作為文本和模式串的基本組成單元,使用這些敏感詞及其排除詞構(gòu)造Aho-Corasick自動機,進(jìn)行精確匹配。在過濾文本時,第一步在匹配前,調(diào)用字符規(guī)格化處理模塊對文本進(jìn)行預(yù)處理;第二步在匹配過程中,既匹配敏感詞,又匹配排除詞,如果敏感詞作為排除詞的子串出現(xiàn),則不作為敏感詞,如果命中了某個敏感詞,則將該敏感詞及其出現(xiàn)位置和敏感級別添加到過濾結(jié)果中。
[0051]英文敏感詞過濾子模塊:擴展了缺省敏感詞過濾子模塊,用于過濾英文敏感詞和中文敏感詞的全拼、拼音縮寫形式,在匹配成功后添加判定規(guī)則:如果命中的詞兩邊有英文字母,則判定為命中失效。
[0052]網(wǎng)址敏感詞過濾子模塊:擴展了缺省敏感詞過濾子模塊,用于過濾網(wǎng)址敏感詞,在文本預(yù)處理結(jié)束前,添加了將“?!薄ⅰ?,”、“、”、、“點”、“點”替換為的操作,在匹配成功后添加判定規(guī)則:如果命中的詞兩邊有英文字母或數(shù)字,則判定為命中失效;如果右側(cè)字符為V’且V’后面有英文字母或數(shù)字,判定為命中失效。
[0053]中文敏感詞過濾子模塊:擴展了缺省敏感詞過濾子模塊,用于過濾以字符為基本組成單元的中文敏感詞,在文本預(yù)處理結(jié)束前,添加了去除文本中既非中文也非標(biāo)點字符的操作。
[0054]中文分詞敏感詞過濾子模塊:擴展了中文敏感詞過濾子模塊,用于過濾以分詞為基本組成單元的中文敏感詞,在構(gòu)造Aho-Corasick自動機時,以分詞作為狀態(tài)轉(zhuǎn)移的條件,在匹配文本時,先使用Ans j對文本分詞,再使用Aho-Corasick自動機一次掃描一個分詞進(jìn)行匹配。
[0055]中文敏感詞近似匹配過濾子模塊:擴展了中文敏感詞過濾子模塊,用于過濾敏感級別高的中文敏感詞,基于Levenshtein編輯距離,對敏感詞,允許一個刪除操作,相鄰的兩個字符間允許一個插入操作。在構(gòu)造Aho-Corasick自動機時,刪除敏感詞原型中的一個字符,得到一組殘缺詞,對殘缺詞和原型詞構(gòu)造Aho-Corasick自動機,在匹配文本時,一次掃描或跨過一位字符,維護一個狀態(tài)的集合,到達(dá)的每個有輸出值的狀態(tài)即為一個成功的匹配。
[0056]過濾結(jié)果匯總子模塊:合并各過濾子模塊的過濾結(jié)果,對所有在文本中出現(xiàn)的敏感詞,標(biāo)示敏感級別,并記錄它們每次出現(xiàn)的位置。
[0057]具體介紹中文敏感詞近似匹配過濾子模塊110,其基于Levenshtein編輯距離,通過使用中文敏感詞及其殘缺詞構(gòu)造的Aho-Corasick自動機,跳躍式掃描文本,做到對高敏感級別中文敏感詞的近似匹配。圖5、圖6、圖7是從文本“二氰合銀酸鉀”中過濾出敏感詞“氰化銀鉀”的示例圖,該示例支持對敏感詞一個刪除操作