亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

敏感詞過濾方法及裝置的制造方法

文檔序號:10489075閱讀:833來源:國知局
敏感詞過濾方法及裝置的制造方法
【專利摘要】本發(fā)明實施例公開了一種敏感詞過濾方法及裝置,在獲得待過濾文本后,首先判斷待過濾文本是否包含與敏感詞字符串中字符相同的字符,如果待過濾文本中包含敏感詞字符串中的字符,則表明待過濾文本可能包含敏感詞。繼續(xù)將待過濾文本中的字符與敏感詞字典樹進行匹配,如果匹配成功,則表明待過濾文本中包含敏感詞。最后,將待過濾文本中包含的敏感詞過濾掉。利用敏感詞字典樹進行敏感詞匹配能夠極大地減少字符比較工作量,降低算法復雜度,提高運算速度和效率。
【專利說明】
敏感詞過濾方法及裝置
技術領域
[0001]本發(fā)明涉及敏感詞檢測技術領域,特別是涉及一種敏感詞過濾方法及裝置。
【背景技術】
[0002]敏感詞一般是指帶有敏感政治傾向、暴力傾向、不健康色彩的詞或不文明詞語。多數論壇、網站為了方便管理,都進行了敏感詞設定,也有一些網站根據自身實際情況設定一些只適用于本網站的特殊敏感詞。比如,要發(fā)布的帖子內容包含敏感詞時,這個帖子不能發(fā)布,或者,這個帖子包含的敏感詞被自動替換為或“X”等。
[0003]現有的敏感詞過濾算法,例如KMP單模匹配算法或BM算法,都是針對待過濾文本所包含的字符按順序依次與敏感詞庫所包含的敏感詞進行比較,如果待過濾文本包括N個字符,敏感詞庫中包括M個敏感詞,則現有的敏感詞過濾算法的復雜度為O(N*M),過濾速度慢、效率低。

【發(fā)明內容】

[0004]本發(fā)明實施例中提供了一種敏感詞過濾方法及裝置,以解決現有技術中的敏感詞過濾速度慢、效率低的問題。
[0005]為了解決上述技術問題,本發(fā)明實施例公開了如下技術方案:
[0006]第一方面,本發(fā)明實施例提供一種敏感詞過濾方法,包括:
[0007]獲取待過濾文本,將所述待過濾文本中的字符與敏感詞字符串中的字符進行匹配,所述敏感詞字符串由全部敏感詞中的不同首字符組成;
[0008]當所述待過濾文本中的字符與所述敏感詞字符串中的字符匹配成功時,將所述待過濾文本中的字符與敏感詞字典樹中的所述敏感詞進行匹配,所述敏感詞字典樹是根據所述敏感詞的首字符建立的包括所述敏感詞的所有字符的三叉搜索樹;
[0009]當所述待過濾文本中的字符與所述敏感詞字典樹中的敏感詞匹配成功時,從所述待過濾文本中過濾掉所述敏感詞。
[0010]可選地,所述將所述待過濾文本中的字符與敏感詞字符串中的字符進行匹配,包括:
[0011 ]利用分詞算法對所述待過濾文本進行分詞,得到分詞結果;
[0012]將所述分詞結果中每個詞語的首字符與所述敏感詞字符串中的字符進行匹配;
[0013]如果所述分詞的首字符與所述敏感詞字符串中的字符匹配成功,則確定所述待過濾文本中字符包含在所述敏感詞字符串中;
[0014]如果所述分詞的首字符與所述敏感詞字符串中的字符匹配失敗,則確定所述待過濾文本中的字符不包含在所述敏感詞字符串中。
[0015]可選地,所述將所述待過濾文本中的字符與敏感詞字典樹中的敏感詞進行匹配,包括:
[0016]從所述待過濾文本中獲取與所述敏感詞字符串中的字符匹配成功的目標字符;
[0017]將所述目標字符與所述敏感詞字典樹中間分支的節(jié)點進行匹配;
[0018]當所述目標字符與所述分叉節(jié)點的字符匹配成功時,獲取所述待過濾文本中與所述目標字符緊鄰的下一個字符,并與所述匹配成功的分叉節(jié)點的子節(jié)點的字符進行匹配;如果匹配成功,則獲取所述待過濾文本中與所述下一個字符緊鄰的下一個字符與所述敏感詞字典樹中的節(jié)點進行匹配,直到所述待過濾文本中的字符與所述敏感詞字典樹中的敏感詞匹配成功。
[0019]可選地,利用indexOf方法對所述待過濾文本中的字符與所述敏感詞字符串中的字符進行匹配,則所述從所述待過濾文本中獲取與所述敏感詞字符串中的字符匹配成功的目標字符,包括:
[0020]當所述待過濾文本中字符與所述敏感詞字符串中字符匹配成功時,獲取indexOf返回值,所述indexOf返回值表征所述待過濾文本所包含的與所述敏感詞字符串中字符相同的字符在所述待過濾文本中的位置;
[0021]從所述待過濾文本中獲取所述indexOf返回值對應位置的字符,作為所述目標字符。
[0022]可選地,所述方法還包括:
[0023]當所述待過濾文本中的字符與所述敏感詞字符串中的字符或所述敏感詞字典樹中的敏感詞匹配失敗時,確定所述待過濾文本中不包含敏感詞。
[0024]第二方面,本發(fā)明實施例提供一種敏感詞過濾裝置,包括:
[0025]獲取模塊,用于獲取待過濾文本;
[0026]第一匹配模塊,用于將所述待過濾文本中的字符與敏感詞字符串中的字符進行匹配,所述敏感詞字符串由全部敏感詞的首字符組成;
[0027]第二匹配模塊,用于當所述第一匹配模塊得到匹配成功的結果時,將所述待過濾文本中的字符與敏感詞字典樹中的所述敏感詞進行匹配,所述敏感詞字典樹是根據所述敏感詞的首字符建立的包括所述敏感詞字符的三叉搜索樹;
[0028]過濾模塊,用于當所述第二匹配模塊得到匹配成功的結果時,從所述待過濾文本中過濾掉所述敏感詞。
[0029]可選地,所述第一匹配模塊,包括:
[0030]分詞子模塊,用于利用分詞算法對所述待過濾文本進行分詞,得到分詞結果;
[0031]第一匹配子模塊,用于將所述分詞結果中每個詞語的首字符與所述敏感詞字符串中的字符進行匹配。
[0032]可選地,所述第二匹配模塊,包括:
[0033]第一獲取子模塊,用于從所述待過濾文本中獲取與所述敏感詞字符串中的字符匹配成功的目標字符;
[0034]第二匹配子模塊,用于將所述目標字符與所述敏感詞字典樹中間分支的節(jié)點進行匹配;當所述目標字符與所述分叉節(jié)點的字符匹配成功時,獲取所述待過濾文本中與所述目標字符緊鄰的下一個字符,并與所述匹配成功的分叉節(jié)點的子節(jié)點的字符進行匹配;如果匹配成功,則獲取所述待過濾文本中與所述下一個字符緊鄰的下一個字符與所述敏感詞字典樹中的節(jié)點進行匹配,直到匹配到葉子節(jié)點;
[0035]第一確定子模塊,用于當所述第二匹配子模塊得到葉子節(jié)點匹配成功的匹配結果時,確定所述待過濾文本中的字符與所述敏感詞字典樹中的敏感詞匹配成功。
[0036]可選地,利用indexOf方法對所述待過濾文本中的字符與所述敏感詞字符串中的字符進行匹配,則所述第一獲取子模塊,具體用于:
[0037]當所述待過濾文本中字符與所述敏感詞字符串中字符匹配成功時,獲取indexOf返回值,所述indexOf返回值表征所述待過濾文本所包含的與所述敏感詞字符串中字符相同的字符在所述待過濾文本中的位置;
[0038]從所述待過濾文本中獲取所述indexOf返回值對應位置的字符,作為所述目標字符。
[0039]可選地,所述裝置還包括:
[0040]確定模塊,用于當第一匹配模塊或第二匹配模塊得到匹配失敗的結果時,確定所述待過濾文本中不包含敏感詞。
[0041]由以上技術方案可見,本發(fā)明實施例提供的敏感詞過濾方法,在獲得待過濾文本后,首先判斷待過濾文本是否包含與敏感詞字符串中字符相同的字符,如果待過濾文本中包含敏感詞字符串中的字符,則表明待過濾文本可能包含敏感詞。繼續(xù)將待過濾文本中的字符與敏感詞字典樹進行匹配,如果匹配成功,則表明待過濾文本中包含敏感詞。最后,將待過濾文本中包含的敏感詞過濾掉。利用敏感詞字典樹進行敏感詞匹配能夠極大地降低字符比較工作量,降低算法復雜度,提高運算速度和效率。
【附圖說明】
[0042]為了更清楚地說明本發(fā)明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,對于本領域普通技術人員而言,在不付出創(chuàng)造性勞動性的前提下,還可以根據這些附圖獲得其他的附圖。
[0043]圖1為本發(fā)明實施例一種敏感詞過濾方法的流程示意圖;
[0044]圖2為本發(fā)明實施例一種敏感詞字典樹匹配過程的流程示意圖;
[0045]圖3為本發(fā)明實施例一種敏感詞字典樹實例的示意圖;
[0046]圖4為本發(fā)明實施例另一種敏感詞過濾方法的流程示意圖;
[0047]圖5為本發(fā)明實施例一種敏感詞過濾裝置的框圖;
[0048]圖6為本發(fā)明實施例一種第二匹配模塊的框圖;
[0049]圖7為本發(fā)明實施例另一種敏感詞過濾裝置的框圖。
【具體實施方式】
[0050]為了使本技術領域的人員更好地理解本發(fā)明中的技術方案,下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領域普通技術人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都應當屬于本發(fā)明保護的范圍。
[0051]參見圖1,為本發(fā)明實施例提供的一種敏感詞過濾方法的流程示意圖,該方法應用于服務端,例如,網站服務器。如圖1所示,該方法可以包括以下步驟:
[0052]S110,獲取待過濾文本。
[0053]待過濾文本可以是用戶在客戶端輸入的文本信息,傳遞到服務端。也可以是服務端的數據庫內的文本信息。
[0054]S120,將待過濾文本中的字符與敏感詞字符串中的字符進行匹配;所述敏感詞字符串由全部敏感詞中的不同首字符組成。如果匹配成功,則執(zhí)行S130;如果匹配失敗,則獲取待過濾文本中的下一個字符,并返回執(zhí)行S120,直到待過濾文本中的全部字符都匹配完。
[0055]在本發(fā)明的一些實施例中,從待過濾文本的第一個字符開始掃描,然后比較掃描到的字符與敏感詞字符串中的字符是否相同;如果相同,則執(zhí)行S130。
[0056]如果掃描到的字符與敏感詞字符串中的每一個字符都不相同,則確定該字符不是敏感詞中的字符,繼續(xù)獲取待過濾字符中的下一個字符重復上述的匹配過程,直到待過濾文本中的全部字符都比較完。例如,待過濾文本是“我愛北京天安門,天安門上太陽升”,經匹配發(fā)現“我”與敏感詞字符串中的每一個字符都不相同,則繼續(xù)比較下一個字符“愛”是否與敏感詞字符串中的字符相同,直到待過濾文本中的全部字符都比較完。
[0057]其中,敏感詞字符串是服務端劃定的全部敏感詞的首字符(S卩,敏感詞的第一個字),例如,敏感詞是“天安門”,則該敏感詞的首字符是“天”。如果有兩個或兩個以上個敏感詞的首字符相同則在敏感詞字符串中只保留一個,例如,“天安門”和“天朝”的首字符都是“天”,但敏感詞字符串中只包含一個“天”字符。
[0058]S130,將待過濾文本中的字符與敏感詞字典樹中的敏感詞進行匹配;如果匹配成功,則執(zhí)行S140;如果匹配失敗,則獲取待過濾文本中的下一個字符,并返回執(zhí)行S120直到待過濾文本中的全部字符都匹配完。
[0059]如果S120中確定待過濾文本中的字符與敏感詞字符串中的字符相同,則初步確定待過濾文本中包含敏感詞,然后進一步將待過濾文本中的字符與敏感詞字典樹進行比較,精確判斷待過濾文本是否包含敏感詞。
[0060]敏感詞字典樹是根據敏感詞的首字符建立的包含所述敏感詞的所有字符的三叉搜索樹。即,根據敏感詞字符串中所包含字符的ASCII碼值建立敏感詞字典樹的主干,然后,根據所述敏感詞的非首字符的ASCII碼值確定敏感詞字典樹中各個節(jié)點對應的葉子節(jié)點。其中,整棵敏感詞字典樹的根節(jié)點是敏感詞字符串中ASCII碼值居中的字符,小于該ASCII碼值的字符位于該節(jié)點的左側分支;大于該ASCII碼值的字符位于該節(jié)點的右側分支。
[0061]從待過濾文本中與敏感詞字符串相同的字符開始掃描,掃描到的字符首先與敏感詞字典樹中的根節(jié)點進行比較,如果該字符的ASCII碼值等于該根節(jié)點對應的ASCII碼值,則獲取待過濾文本中該字符緊鄰的下一個字符與該根節(jié)點的中間分支的節(jié)點進行比較;如果該字符的ASCII碼值小于該根節(jié)點對應的ASCII碼值,則繼續(xù)與敏感詞字典樹中該根節(jié)點左側分支的節(jié)點進行比較;如果該字符的ASCII碼值大于該根節(jié)點對應的ASCII碼值,則繼續(xù)與該根節(jié)點右側分支的節(jié)點進行比較。按照上述過程依次匹配待過濾文本中的字符直到待過濾文本中的全部字符都匹配完,得到待過濾文本所包含的全部敏感字。
[0062]S140,過濾掉待過濾文本中的敏感詞。
[0063]按照S130所述的匹配過程依次匹配待過濾文本中的字符直到待過濾文本中的全部字符都匹配完,得到待過濾文本所包含的全部敏感字。然后,過濾掉待過濾文本所包含的全部敏感詞。
[0064]具體的過濾方式可以是直接刪除待過濾文本中的敏感詞,例如,待過濾文本是“我愛北京天安門,天安門上太陽升”,檢測到該待過濾文本中包含的兩個“天安門”的敏感詞,則過濾后的文本是“我愛北京,上太陽升”。
[0065]過濾方式還可以是利用或“X”代替待過濾文本中的敏感詞,按照此方式過濾后的文本是“我愛北京*#,*#上太陽升”。
[0066]本實施例提供的敏感詞過濾方法,在獲得待過濾文本后,首先判斷待過濾文本是否包含與敏感詞字符串中字符相同的字符,如果待過濾文本中包含敏感詞字符串中的字符,則表明待過濾文本可能包含敏感詞。繼續(xù)將待過濾文本中的字符與敏感詞字典樹進行匹配,如果匹配成功,則表明待過濾文本中包含敏感詞。最后,將待過濾文本中包含的敏感詞過濾掉。利用敏感詞字典樹進行敏感詞匹配時,待過濾文本中的字符與敏感詞字典樹的中間分支的節(jié)點進行比較,每一層匹配都能減少一半的比較工作量,因此,利用該方法能夠大大降低算法復雜度,提高運算速度、提高效率。
[0067]結合圖2-圖3,圖2是本發(fā)明實施例一種敏感詞字典樹匹配過程的流程示意圖,該匹配過程可以包括以下步驟:
[0068]S131,從待過濾文本中獲取與敏感詞字符串中的字符匹配成功的目標字符。
[0069]當待過濾文本中的某個字符與敏感詞字符串的某個字符相同時,獲取待過濾文本中的該字符作為目標字符。
[0070]在本發(fā)明的一些實施例中,利用indexOf方法對所述待過濾文本中的字符與所述敏感詞字符串中的字符進行匹配。當待過濾文本中包含的與敏感詞字符串中的某個字符相同時,indexOf方法能夠獲得該字符在待過濾文本中首次出現的位置。
[0071]當所述待過濾文本中字符與所述敏感詞字符串中字符匹配成功時,獲取indexOf返回值,然后,從所述待過濾文本中獲取所述indexOf返回的值對應位置的字符,作為所述目標字符。
[0072]獲取目標字符緊鄰的下一個字符時,直接將indexOf返回值加I,獲取該位置的字符。依次類推,獲取所述下一個字符緊鄰的下一個字符,indexOf返回值加2獲取該位置的字符。
[0073]S132,將目標字符與敏感詞字典樹中間分支的節(jié)點進行匹配。
[0074]進一步比較待過濾文本的目標字符之后的字符是否與敏感詞字典樹中的敏感詞相同。首先將目標字符的ASCII碼值與敏感詞字典樹中間分支對應節(jié)點的ASCII碼值進行比較,如果相等,則執(zhí)行S133;如果目標字符的ASCII碼值小于該節(jié)點字符的ASCII碼值,則比較目標字符與該節(jié)點左側分支的節(jié)點;如果目標字符的ASCII碼值大于該節(jié)點字符的ASCII碼值,則比較目標字符與該節(jié)點右側分支的節(jié)點。
[0075]S133,當目標字符與分叉節(jié)點的字符匹配成功時,獲取待過濾文本中與目標字符緊鄰的下一個字符,并與匹配成功的分叉節(jié)點的子節(jié)點的字符進行匹配;如果與子節(jié)點的字符匹配成功,則獲取待過濾文本中與所述下一個字符緊鄰的下一個字符與所述敏感詞字典樹中的節(jié)點進行匹配,直到匹配到葉子節(jié)點。
[0076]參見圖3,為本發(fā)明實施例一種敏感詞字典樹實例示意圖,該敏感詞字典樹的根節(jié)點是“王”,其中,“毛”的ASCII碼值小于“王”的ASCII碼值,因此,“毛”位于“王”的左側分支,“謝”的ASCII碼值大于“王”的ASCII碼值,因此,“謝”位于“王”的右側分支。同理,“蔣”的ASCII碼值小于“謝”的,因此,“蔣”位于“謝”左側的分支;需要說明的是,“毛”、“蔣”、“鄧”也有相應的子節(jié)點和葉子節(jié)點,圖中未示出。其中,“王”所在節(jié)點的葉子節(jié)點是“明”,即以王為首字符的敏感詞是“王明”。同理,“謝晉”也是一個敏感詞。
[0077]S134,當葉子節(jié)點匹配成功時,確定待過濾文本中的字符與所述敏感詞字典樹中的敏感詞匹配成功。
[0078]例如,待過濾文本是“左傾主義者王明”,敏感詞包括“王明”。將待過濾文本與敏感詞字符串比較,確定待過濾文本中的“王”與敏感詞字符串的“王”相同,則繼續(xù)比較該字符與敏感詞字典樹中的根節(jié)點“王”,確定待過濾文本中的“王”的ASCII碼值與敏感詞字典樹中的根節(jié)點的ASCII碼值相同,則獲取待過濾文本中與字符“王”緊鄰的下一個字符,即“明”。然后,將該字符“明”與敏感詞字典樹中的節(jié)點“王”的下一層節(jié)點進行比較,最終確定與節(jié)點“王”的葉子節(jié)點“明”相同,則確定待過濾文本中包含敏感詞“王明”。
[0079]本實施例提供的敏感詞過濾方法,利用敏感詞字典樹進行敏感詞匹配時,待過濾文本中的字符與敏感詞字典樹的中間分支的節(jié)點進行比較,如果匹配上就繼續(xù)沿中間分支向下匹配;如果字符的ASCII碼值小于該節(jié)點的ASCII碼值,則沿著左分支繼續(xù)匹配;如果字符的ASCII碼值大于該節(jié)點的ASCII碼值,則沿右分支繼續(xù)匹配;可見,每一層匹配都能減少一半的比較工作量,因此,利用該方法能夠大大降低算法復雜度,提高運算速度、提高效率。
[0080]參見圖4,為本發(fā)明另一種敏感詞過濾方法的流程圖,該方法包括以下步驟:
[0081 ] S210,獲取待過濾文本。
[0082]S220,利用分詞算法對所述待過濾文本進行分詞,得到分詞結果。
[0083]例如,可以利用IK分詞器、庖丁分詞器等對待過濾文本進行分詞或其它的分詞算法實現。
[0084]例如,待過濾文本是“抓老虎機器”,分詞結果是“抓”“老虎” “機器”。
[0085]S230,將所述分詞結果中的每個詞語的首字符與所述敏感詞字符串中的字符進行匹配。
[0086]待過濾文本進行分詞后,得到待過濾文本所包含的詞語,故只需要比較分詞后的詞語的首字符與敏感詞字符串中的字符,大大降低了字符匹配運算量,因此提高了匹配速度。
[0087]如果分詞后獲得的詞語的首字符與敏感詞字符串中的每一個字符都不相同,則確定該詞語不是敏感詞,即匹配失??;如果分詞后獲得的詞語的首字符與敏感詞字符串中的某個字符相同,則匹配成功,初步確定該詞語可能是敏感詞。
[0088]S240,當分詞結果中每個詞語的首字符與所述敏感詞字符串中的字符匹配成功時,將所述待過濾文本中的字符與敏感詞字典樹中的敏感詞進行匹配;所述敏感詞字典樹是根據敏感詞的首字符建立的包括所述敏感詞的所有字符的三叉搜索樹。
[0089]分詞結果中詞語的首字符與敏感詞字符串中的字符匹配成功時,再將該詞語與敏感詞字典樹中的敏感詞進行精確匹配,從而確定該詞語是否是敏感詞。敏感詞字典樹的匹配過程與圖2所示的匹配過程相同,此處不再贅述。
[0090]S250,當所述待過濾文本中的字符與所述敏感詞字典樹中的敏感詞匹配成功時,過濾掉所述待過濾文本中的敏感詞。
[0091]本實施例提供的敏感詞過濾方法,首先對待過濾文本進行分詞得到分詞結果;然后,比較分詞結果中詞語的首字符與敏感詞字符串中的字符是否相同;如果相同,再將該詞語與敏感詞字典樹中的敏感詞進行匹配,如果匹配成功,則確定該詞語是敏感詞。通過上述方法,找到待過濾文本中包含的全部敏感詞,最后過濾掉待過濾文本中的全部敏感詞。對待過濾文本進行分詞,降低敏感詞誤判率;同時,對待過濾文本分詞后,以詞語為單位與敏感詞進行匹配,而非字符為單位,降低了比較對象的數量,因此,提高了敏感詞匹配效率。
[0092]與本發(fā)明提供的敏感詞過濾方法實施例相對應,本發(fā)明還提供了敏感詞過濾裝置實施例。
[0093]參見圖5,為本發(fā)明實施例提供的一種敏感詞過濾裝置的框圖,該裝置應用于服務端,例如網站服務器。如圖5所示,該裝置可以包括獲取模塊110、第一匹配模塊120、第二匹配模塊130和過濾模塊140。
[0094]獲取模塊110,用于獲取待過濾文本。
[0095]待過濾文本可以是用戶在客戶端輸入的文本信息,傳遞到服務端。也可以是服務端的數據庫內的文本信息。
[0096]第一匹配模塊120,用于將待過濾文本中的字符與敏感詞字符串中的字符進行匹配;所述敏感詞字符串由全部敏感詞中的不同首字符組成。
[0097]如果掃描到的字符與敏感詞字符串中的每一個字符都不相同,則確定該字符不是敏感詞中的字符,繼續(xù)獲取待過濾字符中的下一個字符重復上述的匹配過程,直到待過濾文本中的全部字符都比較完。
[0098]第二匹配模塊130,用于當第一匹配模塊得到匹配成功的結果時,將所述待過濾文本中的字符與敏感詞字典樹中的敏感詞進行匹配。
[0099]所述敏感詞字典樹是根據敏感詞的首字符建立的包所述敏感詞的所有字符的三叉搜索樹。
[0100]如果第一匹配模塊確定待過濾文本中的字符與敏感詞字符串中的字符相同,則初步確定待過濾文本中包含敏感詞,然后進一步將待過濾文本中的字符與敏感詞字典樹進行比較,精確判斷待過濾文本是否包含敏感詞。
[0101]從待過濾文本中與敏感詞字符串相同的字符開始掃描,掃描到的字符首先與敏感詞字典樹中的根節(jié)點進行比較,如果該字符的ASCII碼值等于該根節(jié)點對應的ASCII碼值,則獲取待過濾文本中該字符緊鄰的下一個字符與該根節(jié)點的中間分支的節(jié)點進行比較;如果該字符的ASCII碼值小于該根節(jié)點對應的ASCII碼值,則繼續(xù)與敏感詞字典樹中該根節(jié)點左側分支的節(jié)點進行比較;如果該字符的ASCII碼值大于該根節(jié)點對應的ASCII碼值,則繼續(xù)與該根節(jié)點右側分支的節(jié)點進行比較。按照上述過程依次匹配待過濾文本中的字符直到待過濾文本中的全部字符都匹配完,得到待過濾文本所包含的全部敏感字。
[0102]參見圖6,為本發(fā)明實施例一種第二匹配模塊的框圖,如圖6所示,第二匹配模塊130包括第一獲取子模塊131、第二匹配子模塊132和第一確定子模塊133。
[0103]第一獲取子模塊131,用于從所述待過濾文本中獲取與所述敏感詞字符串中的字符匹配成功的目標字符。
[0?04]在本發(fā)明的一些實施例中,第一匹配模塊利用indexOf方法對所述待過濾文本中的字符與所述敏感詞字符串中的字符進行匹配,此種應用場景下,第一獲取子模塊通過以下方法獲取目標字符:
[0105]當所述待過濾文本中字符與所述敏感詞字符串中字符匹配成功時,獲取indexOf返回值,該indexOf返回值表征所述待過濾文本所包含的與所述敏感詞字符串中字符相同的字符在所述待過濾文本中的位置;然后,從所述待過濾文本中獲取所述indexOf返回值對應位置的字符,作為所述目標字符。
[0106]第二匹配子模塊132,用于將所述目標字符與所述敏感詞字典樹中間分支的節(jié)點進行匹配;當所述目標字符與所述分叉節(jié)點的字符匹配成功時,獲取所述待過濾文本中與所述目標字符緊鄰的下一個字符,并與所述匹配成功的分叉節(jié)點的子節(jié)點的字符進行匹配;如果匹配成功,則獲取所述待過濾文本中與所述下一個字符緊鄰的下一個字符與所述敏感詞字典樹中的節(jié)點進行匹配,直到匹配到葉子節(jié)點.
[0107]第一確定子模塊133,用于當第二匹配子模塊得到葉子節(jié)點匹配成功的匹配結果時,確定所述待過濾文本中的字符與所述敏感詞字典樹中的敏感詞匹配成功。
[0108]過濾模塊140,用于當所述第二匹配模塊得到匹配成功的結果時,從所述待過濾文本中過濾掉所述敏感詞。
[0109]本實施例提供的敏感詞過濾裝置,在獲得待過濾文本后,首先判斷待過濾文本是否包含與敏感詞字符串中字符相同的字符,如果待過濾文本中包含敏感詞字符串中的字符,則表明待過濾文本可能包含敏感詞。繼續(xù)將待過濾文本中的字符與敏感詞字典樹進行匹配,如果匹配成功,則表明待過濾文本中包含敏感詞。最后,將待過濾文本中包含的敏感詞過濾掉。利用敏感詞字典樹進行敏感詞匹配時,待過濾文本中的字符與敏感詞字典樹的中間分支的節(jié)點進行比較,每一層匹配都能減少一半的比較工作量,因此,利用該方法能夠大大降低算法復雜度,提高運算速度、提高效率。
[0110]參見圖7,為本發(fā)明實施例另一種敏感詞過濾裝置的框圖,如圖7所示,該裝置包括:獲取模塊110、分詞子模塊121、第一匹配子模塊122、第二匹配模塊130、過濾模塊140和確定模塊210。
[0111]獲取模塊110,用于獲取待過濾文本。
[0112]分詞子模塊121,用于利用分詞算法對所述待過濾文本進行分詞,得到分詞結果。
[0113]例如,可以利用IK分詞器、庖丁分詞器等對待過濾文本進行分詞或其它的分詞算法實現。例如,待過濾文本是“抓老虎機器”,分詞結果是“抓” “老虎” “機器”。
[0114]第一匹配子模塊122,用于將所述分詞結果中的每個詞語的首字符與所述敏感詞字符串中的字符進行匹配。
[0115]如果分詞得到的詞語的首字符與所述敏感詞字符串中的字符匹配成功時,確定所述待過濾文本中字符包含在所述敏感詞字符串中,繼續(xù)由第二匹配模塊進行敏感詞精確匹配。
[0116]如果分詞獲得的詞語的首字符與敏感詞字符串中的每一個字符都不相同,即匹配失敗,則確定該詞語不是敏感詞。
[0117]待過濾文本進行分詞后,得到待過濾文本所包含的詞語,故只需要比較分詞后的詞語的首字符與敏感詞字符串中的字符,大大降低了字符匹配運算量,因此提高了匹配速度。
[0118]第二匹配模塊130,用于當第一匹配子模塊得到匹配成功的結果時,將所述待過濾文本中的字符與敏感詞字典樹中的敏感詞進行匹配。
[0119]過濾模塊140,用于當第二匹配模塊得到匹配成功的結果時,從所述待過濾文本中過濾掉所述敏感詞。
[0120]確定模塊210,用于當第一匹配子模塊或第二匹配模塊得到匹配失敗的結果時,確定待過濾文本中不包含敏感詞。
[0121]本實施例提供的敏感詞過濾裝置,首先對待過濾文本進行分詞得到分詞結果;然后,比較分詞結果中詞語的首字符與敏感詞字符串中的字符是否相同;如果相同,再將該詞語與敏感詞字典樹中的敏感詞進行匹配,如果匹配成功,則確定該詞語是敏感詞。通過該裝置找到待過濾文本中包含的全部敏感詞,最后過濾掉待過濾文本中的全部敏感詞。對待過濾文本進行分詞,降低敏感詞誤判率;同時,對待過濾文本分詞后,以詞語為單位與敏感詞進行匹配,而非字符為單位,降低了比較對象的數量,因此,提高了敏感詞匹配效率。
[0122]本說明書中的各個實施例均采用遞進的方式描述,各個實施例之間相同相似的部分互相參見即可,每個實施例重點說明的都是與其他實施例的不同之處。尤其,對于裝置或系統(tǒng)實施例而言,由于其基本相似于方法實施例,所以描述得比較簡單,相關之處參見方法實施例的部分說明即可。以上所描述的裝置及系統(tǒng)實施例僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網絡單元上。可以根據實際的需要選擇其中的部分或者全部模塊來實現本實施例方案的目的。本領域普通技術人員在不付出創(chuàng)造性勞動的情況下,即可以理解并實施。
[0123]本發(fā)明可以在由計算機執(zhí)行的計算機可執(zhí)行指令的一般上下文中描述,例如程序模塊。一般地,程序模塊包括執(zhí)行特定任務或實現特定抽象數據類型的例程、程序、對象、組件、數據結構等等。也可以在分布式計算環(huán)境中實踐本發(fā)明,在這些分布式計算環(huán)境中,由通過通信網絡而被連接的遠程處理設備來執(zhí)行任務。在分布式計算環(huán)境中,程序模塊可以位于包括存儲設備在內的本地和遠程計算機存儲介質中。
[0124]需要說明的是,在本文中,諸如“第一”和“第二”等之類的關系術語僅僅用來將一個實體或者操作與另一個實體或操作區(qū)分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關系或者順序。而且,術語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設備中還存在另外的相同要素。
[0125]以上所述僅是本發(fā)明的【具體實施方式】,應當指出,對于本技術領域的普通技術人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也應視為本發(fā)明的保護范圍。
【主權項】
1.一種敏感詞過濾方法,其特征在于,包括: 獲取待過濾文本,將所述待過濾文本中的字符與敏感詞字符串中的字符進行匹配,所述敏感詞字符串由敏感詞中的不同首字符組成; 當所述待過濾文本中的字符與所述敏感詞字符串中的字符匹配成功時,將所述待過濾文本中的字符與敏感詞字典樹中的所述敏感詞進行匹配,所述敏感詞字典樹是根據所述敏感詞的首字符建立的包括所述敏感詞的所有字符的三叉搜索樹; 當所述待過濾文本中的字符與所述敏感詞字典樹中的敏感詞匹配成功時,從所述待過濾文本中過濾掉所述敏感詞。2.根據權利要求1所述的方法,其特征在于,所述將所述待過濾文本中的字符與敏感詞字符串中的字符進行匹配,包括: 利用分詞算法對所述待過濾文本進行分詞,得到分詞結果; 將所述分詞結果中每個詞語的首字符與所述敏感詞字符串中的字符進行匹配; 如果所述分詞的首字符與所述敏感詞字符串中的字符匹配成功,則確定所述待過濾文本中字符包含在所述敏感詞字符串中; 如果所述分詞的首字符與所述敏感詞字符串中的字符匹配失敗,則確定所述待過濾文本中的字符不包含在所述敏感詞字符串中。3.根據權利要求1所述的方法,其特征在于,所述將所述待過濾文本中的字符與敏感詞字典樹中的敏感詞進行匹配,包括: 從所述待過濾文本中獲取與所述敏感詞字符串中的字符匹配成功的目標字符; 將所述目標字符與所述敏感詞字典樹中間分支的節(jié)點進行匹配; 當所述目標字符與所述分叉節(jié)點的字符匹配成功時,獲取所述待過濾文本中與所述目標字符緊鄰的下一個字符,并與所述匹配成功的分叉節(jié)點的子節(jié)點的字符進行匹配;如果匹配成功,則獲取所述待過濾文本中與所述下一個字符緊鄰的下一個字符與所述敏感詞字典樹中的節(jié)點進行匹配,直到所述待過濾文本中的字符與所述敏感詞字典樹中的敏感詞匹配成功。4.根據權利要求3所述的方法,其特征在于,利用indexOf方法對所述待過濾文本中的字符與所述敏感詞字符串中的字符進行匹配,則所述從所述待過濾文本中獲取與所述敏感詞字符串中的字符匹配成功的目標字符,包括: 當所述待過濾文本中字符與所述敏感詞字符串中字符匹配成功時,獲取indexOf返回值,所述indexOf返回值表征所述待過濾文本所包含的與所述敏感詞字符串中字符相同的字符在所述待過濾文本中的位置; 從所述待過濾文本中獲取所述indexOf返回值對應位置的字符,作為所述目標字符。5.根據權利要求1所述的方法,其特征在于,所述方法還包括: 當所述待過濾文本中的字符與所述敏感詞字符串中的字符或所述敏感詞字典樹中的敏感詞匹配失敗時,確定所述待過濾文本中不包含敏感詞。6.一種敏感詞過濾裝置,其特征在于,包括: 獲取模塊,用于獲取待過濾文本; 第一匹配模塊,用于將所述待過濾文本中的字符與敏感詞字符串中的字符進行匹配,所述敏感詞字符串由全部敏感詞的首字符組成; 第二匹配模塊,用于當所述第一匹配模塊得到匹配成功的結果時,將所述待過濾文本中的字符與敏感詞字典樹中的所述敏感詞進行匹配,所述敏感詞字典樹是根據所述敏感詞的首字符建立的包括所述敏感詞的所有字符的三叉搜索樹; 過濾模塊,用于當所述第二匹配模塊得到匹配成功的結果時,從所述待過濾文本中過濾掉所述敏感詞。7.根據權利要求6所述的裝置,其特征在于,所述第一匹配模塊,包括: 分詞子模塊,用于利用分詞算法對所述待過濾文本進行分詞,得到分詞結果; 第一匹配子模塊,用于將所述分詞結果中每個詞語的首字符與所述敏感詞字符串中的字符進行匹配。8.根據權利要求6所述的裝置,其特征在于,所述第二匹配模塊,包括: 第一獲取子模塊,用于從所述待過濾文本中獲取與所述敏感詞字符串中的字符匹配成功的目標字符; 第二匹配子模塊,用于將所述目標字符與所述敏感詞字典樹中間分支的節(jié)點進行匹配;當所述目標字符與所述分叉節(jié)點的字符匹配成功時,獲取所述待過濾文本中與所述目標字符緊鄰的下一個字符,并與所述匹配成功的分叉節(jié)點的子節(jié)點的字符進行匹配;如果匹配成功,則獲取所述待過濾文本中與所述下一個字符緊鄰的下一個字符與所述敏感詞字典樹中的節(jié)點進行匹配,直到匹配到葉子節(jié)點; 第一確定子模塊,用于當所述第二匹配子模塊得到葉子節(jié)點匹配成功的匹配結果時,確定所述待過濾文本中的字符與所述敏感詞字典樹中的敏感詞匹配成功。9.根據權利要求8所述的裝置,其特征在于,利用indexOf方法對所述待過濾文本中的字符與所述敏感詞字符串中的字符進行匹配,則所述第一獲取子模塊,具體用于: 當所述待過濾文本中字符與所述敏感詞字符串中字符匹配成功時,獲取indexOf返回值,所述indexOf返回值表征所述待過濾文本所包含的與所述敏感詞字符串中字符相同的字符在所述待過濾文本中的位置; 從所述待過濾文本中獲取所述indexOf返回值對應位置的字符,作為所述目標字符。10.根據權利要求6所述的裝置,其特征在于,所述裝置還包括: 確定模塊,用于當第一匹配模塊或第二匹配模塊得到匹配失敗的結果時,確定所述待過濾文本中不包含敏感詞。
【文檔編號】G06F17/30GK105843950SQ201610223369
【公開日】2016年8月10日
【申請日】2016年4月12日
【發(fā)明人】謝曉靜
【申請人】樂視控股(北京)有限公司, 樂視網信息技術(北京)股份有限公司
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1