本發(fā)明涉及短信敏感詞檢測(cè),尤其涉及一種短信敏感詞快速檢測(cè)方法及系統(tǒng)。
背景技術(shù):
1、隨著移動(dòng)通信技術(shù)的快速發(fā)展,短信作為重要的信息傳遞方式,在人們?nèi)粘I钪邪缪葜陵P(guān)重要的角色。
2、短信運(yùn)營(yíng)商現(xiàn)有的工具及算力資源有限,難以進(jìn)行大規(guī)模的短信敏感詞匹配。
3、傳統(tǒng)的敏感詞匹配方法大多基于正則表達(dá)式進(jìn)行字符串匹配,但這種方法存在明顯的局限性,首先,正則表達(dá)式不支持邏輯運(yùn)算的“非”運(yùn)算,導(dǎo)致含有“非”運(yùn)算的敏感詞組需要被人為拆解成多個(gè)“與或”子組合,增加了工作量和出錯(cuò)率,其次,隨著敏感詞組數(shù)量的不斷增加和更新,這種拆解工作變得更加繁瑣和復(fù)雜,極大地增加了運(yùn)營(yíng)商的運(yùn)營(yíng)成本,此外,正則表達(dá)式在進(jìn)行邏輯匹配時(shí)需要進(jìn)行大量的回滾操作,導(dǎo)致匹配性能低下,難以應(yīng)對(duì)當(dāng)前大規(guī)模的短信內(nèi)容檢索需求。
技術(shù)實(shí)現(xiàn)思路
1、有鑒于此,本發(fā)明提出一種短信敏感詞快速檢測(cè)方法及系統(tǒng),可以解決現(xiàn)有技術(shù)所存在的檢測(cè)精度不高、成本高昂、效率低下的缺陷。
2、本發(fā)明的技術(shù)方案是這樣實(shí)現(xiàn)的:
3、一種短信敏感詞快速檢測(cè)方法,具體包括:
4、建立字符表,用于給中文字符進(jìn)行統(tǒng)一編號(hào),并為每個(gè)字符分配一個(gè)對(duì)應(yīng)的正整數(shù)編碼;
5、構(gòu)建敏感詞表,用于將邏輯組合的敏感詞組拆分為多個(gè)獨(dú)立敏感詞的集合,并對(duì)這些獨(dú)立敏感詞進(jìn)行格式化處理;
6、構(gòu)建sql查詢語(yǔ)句轉(zhuǎn)換方式,用于將單個(gè)敏感詞和邏輯組合的敏感詞組轉(zhuǎn)換為sql查詢語(yǔ)句;
7、設(shè)置sql索引表,用于記錄sql查詢語(yǔ)句中獨(dú)立敏感詞與sql語(yǔ)句中占位符的位置關(guān)系;
8、獲取待檢測(cè)的短信;
9、根據(jù)字符表,把待檢測(cè)的短信內(nèi)容轉(zhuǎn)成數(shù)字?jǐn)?shù)組;
10、依據(jù)構(gòu)建的sql查詢語(yǔ)句轉(zhuǎn)換方式,將短信的數(shù)字?jǐn)?shù)組與敏感詞表進(jìn)行異或運(yùn)算匹配,并依據(jù)sql索引表生成短信的sql查詢命令;
11、使用數(shù)據(jù)庫(kù)引擎執(zhí)行該命令,根據(jù)執(zhí)行結(jié)果判斷短信是否匹配敏感詞組。
12、作為所述短信敏感詞快速檢測(cè)方法的進(jìn)一步可選方案,所述對(duì)這些獨(dú)立敏感詞進(jìn)行格式化處理,具體包括:
13、將所有敏感詞的長(zhǎng)度對(duì)齊到最大長(zhǎng)度;
14、使用建立的字符表,將敏感詞中的每個(gè)字符替換為對(duì)應(yīng)的正整數(shù)編碼;
15、將替換得到的正整數(shù)編碼按照預(yù)定格式存儲(chǔ)在敏感詞表中。
16、作為所述短信敏感詞快速檢測(cè)方法的進(jìn)一步可選方案,所述sql查詢語(yǔ)句轉(zhuǎn)換方式將單個(gè)敏感詞和邏輯組合的敏感詞組轉(zhuǎn)換為sql查詢語(yǔ)句,具體包括:
17、將單個(gè)敏感詞和邏輯組合的敏感詞組轉(zhuǎn)換為sql語(yǔ)句中的占位符;
18、根據(jù)敏感詞組中的邏輯運(yùn)算關(guān)系,使用sql的邏輯運(yùn)算符將轉(zhuǎn)換得到的占位符連接起來(lái),形成sql查詢語(yǔ)句。
19、作為所述短信敏感詞快速檢測(cè)方法的進(jìn)一步可選方案,所述設(shè)置sql索引表,具體包括:
20、設(shè)置關(guān)鍵詞編碼,用于為每個(gè)關(guān)鍵詞在字符表中的編碼表示,其中,所述關(guān)鍵詞包括敏感詞或敏感詞組合;
21、設(shè)置占位符位置索引,用于與關(guān)鍵詞編碼相對(duì)應(yīng),記錄該關(guān)鍵詞在sql查詢語(yǔ)句中對(duì)應(yīng)占位符的位置索引;
22、設(shè)置sql語(yǔ)句結(jié)構(gòu),用于構(gòu)建出包含所有敏感詞占位符的sql查詢語(yǔ)句框架。
23、作為所述短信敏感詞快速檢測(cè)方法的進(jìn)一步可選方案,所述依據(jù)構(gòu)建的sql查詢語(yǔ)句轉(zhuǎn)換方式,將短信的數(shù)字?jǐn)?shù)組與敏感詞表進(jìn)行異或運(yùn)算匹配,并依據(jù)sql索引表生成短信的sql查詢命令,具體包括:
24、根據(jù)已經(jīng)構(gòu)建的sql查詢語(yǔ)句轉(zhuǎn)換方式,將短信的數(shù)字?jǐn)?shù)組與敏感詞表進(jìn)行窗口滑動(dòng)匹配,在這個(gè)過(guò)程中,將短信的數(shù)字?jǐn)?shù)組與敏感詞表進(jìn)行異或運(yùn)算匹配,如果異或運(yùn)算的結(jié)果為零,表示當(dāng)前窗口內(nèi)的短信內(nèi)容與某個(gè)敏感詞匹配成功,會(huì)根據(jù)sql索引表中記錄的關(guān)鍵詞和占位符的位置關(guān)系,找到sql查詢語(yǔ)句中對(duì)應(yīng)的占位符位置,并對(duì)該位置的占位符進(jìn)行修改,從而生成短信的sql查詢命令。
25、作為所述短信敏感詞快速檢測(cè)方法的進(jìn)一步可選方案,在將短信的數(shù)字?jǐn)?shù)組與敏感詞表進(jìn)行窗口滑動(dòng)匹配之前,先判斷敏感詞表中是否包含短信數(shù)字?jǐn)?shù)組的首個(gè)數(shù)字,若包含則進(jìn)行滑動(dòng)匹配,否則直接換行。
26、一種短信敏感詞快速檢測(cè)系統(tǒng),包括:
27、字符表構(gòu)建模塊,用于給中文字符進(jìn)行統(tǒng)一編號(hào),并為每個(gè)字符分配一個(gè)對(duì)應(yīng)的正整數(shù)編碼;
28、敏感詞表構(gòu)建模塊,用于將需要匹配的邏輯組合敏感詞組拆分成不重復(fù)的獨(dú)立敏感詞,并將這些敏感詞進(jìn)行格式化處理,使其長(zhǎng)度對(duì)齊并編碼表示;
29、sql查詢語(yǔ)句轉(zhuǎn)換模塊,用于將單個(gè)敏感詞和邏輯組合的敏感詞組轉(zhuǎn)換成sql查詢語(yǔ)句,其中包括邏輯運(yùn)算符的轉(zhuǎn)換以適配不同的數(shù)據(jù)庫(kù)引擎;
30、sql索引表構(gòu)建模塊,用于記錄sql查詢語(yǔ)句中獨(dú)立敏感詞與sql語(yǔ)句中占位符的位置關(guān)系;
31、短信內(nèi)容處理模塊,用于獲取待檢測(cè)的短信內(nèi)容,并根據(jù)字符表將其轉(zhuǎn)換成數(shù)字?jǐn)?shù)組;
32、匹配與生成模塊,用于將短信的數(shù)字?jǐn)?shù)組與敏感詞表進(jìn)行異或運(yùn)算匹配,根據(jù)匹配結(jié)果和sql索引表生成短信的sql查詢命令;
33、數(shù)據(jù)庫(kù)執(zhí)行模塊,用于使用數(shù)據(jù)庫(kù)引擎執(zhí)行生成的sql查詢命令,并根據(jù)執(zhí)行結(jié)果判斷短信是否匹配敏感詞組。
34、作為所述短信敏感詞快速檢測(cè)系統(tǒng)的進(jìn)一步可選方案,所述系統(tǒng)還包括:
35、判斷模塊,用于在將短信的數(shù)字?jǐn)?shù)組與敏感詞表進(jìn)行異或運(yùn)算匹配之前,先判斷敏感詞表中是否包含短信數(shù)字?jǐn)?shù)組的首個(gè)數(shù)字,若包含則進(jìn)行異或運(yùn)算匹配,否則直接換行。
36、一種計(jì)算設(shè)備,包括存儲(chǔ)器、處理器以及存儲(chǔ)在所述存儲(chǔ)器中并可在所述處理器上運(yùn)行的計(jì)算機(jī)程序,所述處理器執(zhí)行所述計(jì)算機(jī)程序時(shí)實(shí)現(xiàn)上述所述短信敏感詞快速檢測(cè)方法的步驟。
37、一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),所述存儲(chǔ)介質(zhì)上存儲(chǔ)有計(jì)算機(jī)程序,所述計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)上述所述短信敏感詞快速檢測(cè)方法的步驟。
38、本發(fā)明的有益效果是:將敏感詞組的匹配問(wèn)題轉(zhuǎn)化為sql查詢問(wèn)題,并利用數(shù)據(jù)庫(kù)引擎的高效處理能力,能夠極大地提升匹配速度,相比傳統(tǒng)的基于正則表達(dá)式的字符串匹配,本發(fā)明通過(guò)異或運(yùn)算和sql查詢語(yǔ)句的組合,避免了正則表達(dá)式的復(fù)雜性和低性能問(wèn)題,特別是解決了正則表達(dá)式不支持邏輯“非”運(yùn)算的缺陷,傳統(tǒng)的敏感詞匹配方法在處理包含邏輯“與”、“或”、“非”等復(fù)雜組合的敏感詞組時(shí),往往力不從心,而本發(fā)明通過(guò)sql查詢語(yǔ)句的轉(zhuǎn)換,能夠靈活地處理這些復(fù)雜邏輯組合,實(shí)現(xiàn)更為精確的匹配,當(dāng)敏感詞組庫(kù)更新時(shí),傳統(tǒng)的匹配方法可能需要人工重新拆解和重新配置匹配規(guī)則,工作量大且容易出錯(cuò),而本發(fā)明通過(guò)構(gòu)建敏感詞表和sql查詢語(yǔ)句的自動(dòng)化轉(zhuǎn)換方式,大大降低了維護(hù)成本,提高了系統(tǒng)的可擴(kuò)展性和可維護(hù)性,由于采用了數(shù)據(jù)庫(kù)引擎來(lái)處理邏輯運(yùn)算,相比傳統(tǒng)的字符串匹配方法,本發(fā)明的系統(tǒng)更加穩(wěn)定可靠,數(shù)據(jù)庫(kù)引擎在處理大規(guī)模數(shù)據(jù)和復(fù)雜邏輯運(yùn)算時(shí)具有天然的優(yōu)勢(shì),能夠確保系統(tǒng)的穩(wěn)定運(yùn)行,在當(dāng)前短信數(shù)量龐大、內(nèi)容多樣的背景下,本發(fā)明提供的快速匹配方法能夠支持大規(guī)模數(shù)據(jù)處理,滿足運(yùn)營(yíng)商對(duì)海量短信內(nèi)容進(jìn)行快速篩查的需求。