專利名稱:一種基于鍵樹的特定文本信息處理方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及文本信息處理技術(shù),特別是涉及基于鍵樹的文本信息快速匹配、搜索及檢查,具體的講是一種基于鍵樹的特定文本信息處理方法及系統(tǒng)。
背景技術(shù):
在銀行業(yè)務(wù)中,經(jīng)常會涉及到對特定文本信息進(jìn)行業(yè)務(wù)檢查的操作,比較典型的是外匯匯款中的黑名單檢查,針對在黑名單上的單位或個人,停止辦理相應(yīng)的業(yè)務(wù)。為此,銀行在每一次相應(yīng)交易中往往需要對交易中涉及的文本在信息庫進(jìn)行查詢,以確定是否涉及特定文本信息,從而進(jìn)一步采取相應(yīng)措施。但是,由于進(jìn)行檢查的文本信息庫數(shù)據(jù)量非常大,通常采用字符匹配方法進(jìn)行模糊查詢,這種方法不僅處理速度較慢,而且容易產(chǎn)生誤報,需要操作人員人工判斷,整體業(yè)務(wù)的處理效率較差。
然而,涉及到對特定文本信息進(jìn)行業(yè)務(wù)檢查的技術(shù)在現(xiàn)有技術(shù)中應(yīng)用廣泛,例如聯(lián)合國會對一些國家、組織、公司和個人進(jìn)行制裁;美國、日本等國家也會公布一些受制裁的國家、組織、公司和個人的名單,這些受制裁的國家、組織、公司和個人的名單統(tǒng)稱為黑名單,該黑名單便屬于一種特定文本信息。當(dāng)一筆匯款經(jīng)過相關(guān)國家的銀行時,銀行系統(tǒng)會檢查匯款人、收款人等是否包含在黑名單中,如果匯款人、收款人等文本信息與黑名單中記錄的信息相對應(yīng),則銀行系統(tǒng)會把相應(yīng)的資金凍結(jié)。為了保證銀行客戶資金的安全銀行系統(tǒng)也會采用對敏感信息進(jìn)行業(yè)務(wù)檢查的技術(shù),例如防止客戶向境外的“黑名單”賬戶匯款,減少客戶資金因為疏忽而被其它銀行凍結(jié)。
如圖1所示,為現(xiàn)有技術(shù)中的一套監(jiān)測黑名單的網(wǎng)絡(luò)系統(tǒng)。銀行柜員在做一筆外匯匯款業(yè)務(wù)的時候,會通過終端1將匯款人、收款人等名單經(jīng)網(wǎng)關(guān)2上送到黑名單處理裝置3進(jìn)行檢查,如果匯款人、收款人等文本信息包含了黑名單的信息,則會將此檢查結(jié)果反饋給業(yè)務(wù)終端1,柜員可以停止辦理此項外匯匯款業(yè)務(wù)。其中黑名單處理裝置3采取直接字符匹配的模糊查詢方法,需要取出每條黑名單記錄,匹配字符串中以每個字符開始的字符串。以最壞的情況來考慮,在一個長度為n的字符串中匹配一萬條記錄(平均長度為m)后沒有匹配上,則需要比較的次數(shù)為n*(m*10000),其效率及其低下,而且沒有提供減少誤報的措施。由于黑名單的數(shù)據(jù)量大,因此目前黑名單處理裝置3采用的一般的字符匹配方法及模糊查詢,容易產(chǎn)生誤報,需要業(yè)務(wù)人員人工判斷,影響業(yè)務(wù)的處理效率。
發(fā)明內(nèi)容
本發(fā)明提供一種基于鍵樹的特定文本信息處理方法及系統(tǒng),用以提高對特定文本信息的處理速度,降低誤報,使整體業(yè)務(wù)的處理效率增強。
本發(fā)明的目的之一在于,提供一種基于鍵樹的特定文本信息處理方法,其包括以下步驟對特定文本信息進(jìn)行存儲;生成包括有所述特定文本信息的鍵樹;根據(jù)所述的鍵樹對給定的字符串是否包含在所述鍵樹所包括的特定文本信息中進(jìn)行搜索,然后輸出搜索結(jié)果。
所述的特定文本信息由特定文本字符串組成,所述的鍵樹由呈樹狀連接關(guān)系的多個節(jié)點組成;其中使一特定文本字符串的每個字符對應(yīng)所述鍵樹中的一個節(jié)點;每個節(jié)點具有鍵值、下層指針、同層指針和節(jié)點所在層數(shù);所述鍵值存放的是特定文本字符串中的一個字符,下層指針值為空的節(jié)點為葉子節(jié)點,如果該葉子節(jié)點所在層數(shù)為一則為根節(jié)點;其中上一層節(jié)點的下層指針指向相鄰下層所有節(jié)點中鍵值最小的一個節(jié)點,同一層節(jié)點中鍵值小的節(jié)點的同層指針指向鍵值次小于自己鍵值的節(jié)點。
所述的生成包括有所述特定文本信息的鍵樹的具體步驟包括步驟一、讀取待新增黑名單字符串的第一個字符;步驟二、鍵樹第一層中是否匹配到該字符的鍵值,是則轉(zhuǎn)入步驟七,否則轉(zhuǎn)入步驟三;步驟三、插入根節(jié)點,在黑名單記錄表中新增一條記錄,鍵值為該字符,層數(shù)為一,子指針為空值,右指針為空值;步驟四、讀取字符串的下一字符;步驟五、判斷是否空字符,是則新增結(jié)束,否則轉(zhuǎn)入步驟六;步驟六、插入子節(jié)點,在黑名單記錄表中新增一條記錄,鍵值為該字符,層數(shù)為上一字符對應(yīng)記錄的層數(shù)加上1,子指針為空值,右指針為空值,同時,需要修改上一字符對應(yīng)記錄的子指針指向該新增記錄位置,轉(zhuǎn)入步驟四;步驟七、讀取字符串的下一個字符;步驟八、判斷是否空字符,是則轉(zhuǎn)入步驟九,否則轉(zhuǎn)入十一;步驟九、判斷上一字符是否是葉子節(jié)點,是則新增結(jié)束,否則轉(zhuǎn)入步驟十;步驟十、刪除上一字符所有的葉子節(jié)點及黑名單記錄表中對應(yīng)的記錄;步驟十一、鍵樹下一層中是否匹配到該字符的鍵值,是則轉(zhuǎn)入步驟十二,否則轉(zhuǎn)入步驟十三;步驟十二、判斷該字符是否為葉子節(jié)點,是則新增結(jié)束,否則轉(zhuǎn)入步驟七;步驟十三、插入子節(jié)點,并同時修改黑名單記錄表中相關(guān)的記錄,轉(zhuǎn)入步驟七。
本發(fā)明所述的方法還包括,搜索特定文本字符串的步驟,該搜索特定文本字符串的步驟具體包括步驟一′、讀取待查特定文本字符串的第一個字符;步驟二′、判斷所述鍵樹第一層中是否匹配到該字符的鍵值,如果是則轉(zhuǎn)入步驟三′,如果否則搜索步驟結(jié)束并輸出該特定文本字符串不在存儲的特定文本信息中的結(jié)果;步驟三′、讀取待查特定文本字符串的下一個字符;步驟四′、判斷當(dāng)前字符是否為空字符(所述空字符為所述特定文本字符串中的結(jié)束字符,例如字符串“l(fā)ei”,其字符“i”后的最后一個字符就是空字符,同時該字符就是在邏輯判斷時候的結(jié)束字符),如果是則轉(zhuǎn)入步驟五′,如果否則轉(zhuǎn)入步驟六′;步驟五′、結(jié)束搜索步驟,并判斷上一個字符是否為葉節(jié)點,如果是則輸出該特定文本字符串屬于存儲的特定文本信息的結(jié)果,如果否則輸出該特定文本字符串不在存儲的特定文本信息中的結(jié)果;步驟六、判斷所述鍵樹下一層中是否匹配到該字符的鍵值,如果是則轉(zhuǎn)入步驟三′,如果否則搜索步驟結(jié)束并輸出該特定文本字符串不在存儲的特定文本信息中的結(jié)果。
本發(fā)明所述的方法還包括,誤判文本信息的處理步驟,用于對容易誤判的文本信息進(jìn)行檢查,如果結(jié)果是匹配,則不需要進(jìn)入搜索給定字符串的步驟,否則進(jìn)行搜索給定字符串的步驟。
所述的特定文本信息是指黑名單和/或白名單。
本發(fā)明的另一目的在于,提供了一種基于鍵樹的特定文本信息處理系統(tǒng),包括終端、網(wǎng)關(guān);特定文本信息處理裝置;所述的終端經(jīng)網(wǎng)關(guān)與所述的特定文本信息處理裝置相連接;其中所述的特定文本信息處理裝置進(jìn)一步包括數(shù)據(jù)存儲單元,用于對特定文本信息進(jìn)行存儲;鍵樹生成單元,用于生成包括有所述特定文本信息的鍵樹;字符串搜索單元,用于根據(jù)所述的鍵樹對經(jīng)所述終端給定的字符串是否包含在所述鍵樹所包括的特定文本信息中進(jìn)行搜索,然后輸出搜索結(jié)果。
所述的特定文本信息由特定文本字符串組成,所述的鍵樹由呈樹狀連接關(guān)系的多個節(jié)點組成;其中使一特定文本字符串的每個字符對應(yīng)所述鍵樹中的一個節(jié)點;每個節(jié)點具有鍵值、下層指針、同層指針和節(jié)點所在層數(shù);所述鍵值存放的是特定文本字符串中的一個字符,同層指針值為空的節(jié)點為根節(jié)點,下層指針值為空的節(jié)點為葉子節(jié)點;其中上一層節(jié)點的下層指針指向相鄰下層所有節(jié)點中鍵值最小的一個節(jié)點,同一層節(jié)點中鍵值小的節(jié)點的同層指針指向鍵值次小于自己鍵值的節(jié)點。
所述的鍵樹生成單元包括,特定文本字符串新增部分,用于根據(jù)所述的鍵樹,將給定的字符串逐一字符的插入到所述鍵樹的節(jié)點中。
所述的字符串搜索單元包括,特定文本字符串搜索部分,用于根據(jù)所述的鍵樹判斷經(jīng)終端出入的字符串是否存在于存儲的特定文本信息中,如果是則輸出該給定字符串屬于存儲的特定文本信息的結(jié)果,如果否則輸出該給定字符串不在存儲的特定文本信息中的結(jié)果。
所述的特定文本信息處理裝置還包括,誤判文本信息單元,用于對容易誤判的文本信息進(jìn)行檢查,如果結(jié)果是匹配,則不需要進(jìn)入所述的特定文本字符串搜索單元搜索給定字符串,否則所述的特定文本字符串搜索單元搜索給定字符串。
所述的特定文本信息是指黑名單和/或白名單。
本發(fā)明提供的一種基于鍵樹的特定文本信息處理方法及系統(tǒng)是一種優(yōu)化的文本匹配方法及系統(tǒng),采用鍵樹結(jié)構(gòu)的文本庫,加快了搜索速度,并對明顯屬于誤報的名單,增加到誤判文本庫中,提高檢查的準(zhǔn)確性。
本發(fā)明的有益效果在于一、本發(fā)明的檢查速度比直接字符匹配有很大的提高,一般情況下,以首字母作為根節(jié)點的鍵樹共有26棵,字符串從頭到尾,每次到鍵樹中檢索一次,與文本庫中的記錄數(shù)無關(guān),理論上的比較次數(shù)為n*m。這樣的方案提高的速度是顯而易見的。字符直接匹配法的時間與文本庫記錄數(shù)有關(guān),基本上是線性的關(guān)系,而鍵樹比較方法與文本庫記錄數(shù)無關(guān)。因此,隨著文本庫記錄數(shù)的增加,匹配速度的提高就會更加明顯。
二、本發(fā)明可大大降低由模糊查詢帶來的誤報率。主要是通過對誤判文本庫的查詢,使發(fā)生誤報的可能性得以降低,最終提高了整體的效率。
圖1是使用黑名單處理裝置的網(wǎng)絡(luò)結(jié)構(gòu)圖;圖2a、b是黑名單處理裝置的功能框圖;圖3是黑名單新增流程圖;圖4是黑名單查詢流程圖;圖5是鍵樹的具體實例示意圖。
具體實施例方式
本發(fā)明主要是對目前使用的字符直接匹配的查詢方法進(jìn)行了改進(jìn),采用鍵樹對文本信息庫進(jìn)行組織,并按照鍵樹查詢方法進(jìn)行的字符串匹配。此外,該發(fā)明還采用了文本信息庫與誤判的文本信息庫相結(jié)合的方式,減少了誤報的可能,進(jìn)一步提高了查詢的準(zhǔn)確性以及效率。以下結(jié)合
本發(fā)明的具體實施方式
。
本發(fā)明提供了一種基于鍵樹的特定文本信息處理方法,其包括以下步驟對特定文本信息進(jìn)行存儲;生成包括有所述特定文本信息的鍵樹;根據(jù)所述的鍵樹對給定的字符串是否包含在所述鍵樹所包括的特定文本信息中進(jìn)行搜索,然后輸出搜索結(jié)果。
所述的特定文本信息由特定文本字符串組成,所述的鍵樹由呈樹狀連接關(guān)系的多個節(jié)點組成;其中使一特定文本字符串的每個字符對應(yīng)所述鍵樹中的一個節(jié)點;每個節(jié)點具有鍵值、下層指針、同層指針和節(jié)點所在層數(shù);所述鍵值存放的是特定文本字符串中的一個字符,同層指針值為空的節(jié)點為根節(jié)點,下層指針值為空的節(jié)點為葉子節(jié)點;其中上一層節(jié)點的下層指針指向相鄰下層所有節(jié)點中鍵值最小的一個節(jié)點,同一層節(jié)點中鍵值小的節(jié)點的同層指針指向鍵值次小于自己鍵值的節(jié)點。
實施例1所述的特定文本信息可以是“黑名單”。本技術(shù)方案中文本信息庫的鍵樹由呈樹狀連接關(guān)系的多個節(jié)點組成,字符串的每個字符對應(yīng)鍵樹中的一個節(jié)點,每個節(jié)點有“鍵值”、“子指針”(即下層指針)、“右指針”(即同層指針)以及“該節(jié)點所在層”四個屬性。“鍵值”存放的是字符串中的一個字符,根節(jié)點所在層為第一層,其子節(jié)點為第二層,依次遞增。上一層節(jié)點的“子指針”指向其下一層所有子節(jié)點中鍵值最小的一個,同一層中鍵值最小的節(jié)點的“右指針”指向鍵值次小于自己鍵值的節(jié)點。同理,鍵值次小的節(jié)點的“右指針”指向鍵值次小于自己鍵值的節(jié)點,這樣直到鍵值最大的那個節(jié)點,其右指針為空值,根節(jié)點的“右指針”為空值。當(dāng)一個節(jié)點的子指針為空值的時候,該節(jié)點就是“葉子節(jié)點”。誤判的文本信息庫的結(jié)構(gòu)與上述的結(jié)構(gòu)相同,其中存儲的是不屬于文本信息庫中的內(nèi)容但很容易與上述文本信息庫中信息相混淆的文本,其生成方法、查詢方法也與黑名單相同。
所述的鍵樹初始狀態(tài)為空,通過讀取信息庫中的每一個字符串,反復(fù)執(zhí)行下面新增操作,即可建立文本庫鍵樹。新增操作的方法步驟如圖3所示,如下所述(1)讀取待新增字符串的第一個字符;(2)鍵樹第一層中是否匹配到該字符的鍵值,是則轉(zhuǎn)入步驟(7),否則轉(zhuǎn)入步驟(3);(3)插入根節(jié)點;(4)讀取字符串的下一個字符;(5)判斷是否空字符,是則新增結(jié)束,否則轉(zhuǎn)入步驟(6);(6)插入子節(jié)點,轉(zhuǎn)入步驟(4);(7)讀取字符串的下一個字符;(8)判斷是否空字符,是則轉(zhuǎn)入步驟(9),否則轉(zhuǎn)入(11);(9)判斷上一個字符是否是葉子節(jié)點,是則新增結(jié)束,否則轉(zhuǎn)入步驟(10);(10)刪除上一個字符所有的葉子節(jié)點;(11)鍵樹下一層中是否匹配到該字符的鍵值,是則轉(zhuǎn)入步驟(12),否則轉(zhuǎn)入步驟(13);(12)判斷該字符是否葉子節(jié)點,是則新增結(jié)束,否則轉(zhuǎn)入步驟(9);(13)插入子節(jié)點,轉(zhuǎn)入步驟(9);其次,本發(fā)明提供了基于鍵樹搜索的文本信息檢查方法,針對文本庫鍵樹,搜索給定的字符串是否包含在鍵樹所包括的文本信息庫中,執(zhí)行步驟(如圖4所示)如下(1)讀取待查名單字符串的第一個字符;(2)鍵樹第一層中是否匹配到該字符的鍵值,是則轉(zhuǎn)入步驟(3),否則結(jié)束檢查,該名單不在文本庫中;(3)讀取字符串的下一個字符;(4)判斷是否空字符,是則轉(zhuǎn)入步驟(5),否則轉(zhuǎn)入步驟(6);(5)結(jié)束檢查,并判斷上一個字符是否葉節(jié)點,是則該名單屬于文本庫中,否則該名單不在該庫中;(6)鍵樹下一層中是否匹配到該字符的鍵值,是則轉(zhuǎn)入步驟(3),否則結(jié)束檢查,該名單不在文本庫中。
另外,誤判文本庫的檢查用于配合進(jìn)行文本檢查,在開始檢查方法之前先進(jìn)行容易誤判的文本檢查,如果結(jié)果是匹配,則不需要進(jìn)入文本庫的檢查步驟,否則進(jìn)行所述的文本庫檢查步驟。根據(jù)實際情況,也可以先進(jìn)行文本庫檢查,如果結(jié)果是匹配,還要進(jìn)行誤判文本庫的檢查,如果結(jié)果匹配,則說明前面檢查有誤,否則應(yīng)當(dāng)是屬于文本庫中。
在本發(fā)明的具體實施方式
中,所述空字符為所述特定文本字符串中的結(jié)束字符,例如字符串“l(fā)ei”,其字符“i”后的最后一個字符就是空字符,同時該字符就是在邏輯判斷時候的結(jié)束字符。
實施例2本發(fā)明提供了一種基于鍵樹的特定文本信息處理系統(tǒng),包括終端、網(wǎng)關(guān);還包括特定文本信息處理裝置(如圖2a所示);所述的終端經(jīng)網(wǎng)關(guān)與所述的特定文本信息處理裝置相連接;其中所述的特定文本信息處理裝置進(jìn)一步包括數(shù)據(jù)存儲單元,用于對特定文本信息進(jìn)行存儲;鍵樹生成單元,用于生成包括有所述特定文本信息的鍵樹;字符串搜索單元,用于根據(jù)所述的鍵樹對經(jīng)所述終端給定的字符串是否包含在所述鍵樹所包括的特定文本信息中進(jìn)行搜索,然后輸出搜索結(jié)果。所述的特定文本信息處理裝置還包括,特定文本字符串新增單元,用于根據(jù)所述的鍵樹,將給定的字符串逐一字符的插入到所述鍵樹的節(jié)點中。誤判文本信息單元(如圖2a所示),用于對容易誤判的文本信息進(jìn)行檢查,如果結(jié)果是匹配,則不需要進(jìn)入所述的特定文本字符串搜索單元搜索給定字符串,否則所述的特定文本字符串搜索單元搜索給定字符串。
現(xiàn)以黑名單為例對本發(fā)明系統(tǒng)進(jìn)行描述。一種黑名單處理裝置,所述裝置包括數(shù)據(jù)處理裝置以及數(shù)據(jù)存儲裝置,數(shù)據(jù)處理裝置(如圖2b所示)進(jìn)一步包括黑名單文件處理模塊、黑名單新增模塊以及黑名單刪除模塊。
黑名單文件處理模塊將接收到的黑名單文件導(dǎo)入到一個臨時工作表中,以便于黑名單新增模塊讀取該工作表中的黑名單字符串,并對其建立鍵樹??紤]到黑名單文件變動的時間間隔很長,在收到新的黑名單文件后,黑名單刪除模塊將首先刪除所有的鍵樹記錄,然后由黑名單新增模塊重新建立鍵樹。
同時,對于明顯屬于誤報的名單,可以列入白名單文件中,而數(shù)據(jù)處理裝置也可以進(jìn)一步包括白名單文件處理模塊、白名單新增模塊以及白名單刪除模塊。其工作原理同黑名單相應(yīng)處理模塊。這樣,黑名單處理裝置可以自動屏蔽掉白名單的誤報率,大大減少人工的干預(yù)程度。
本發(fā)明的黑名單新增包括A)讀取待新增黑名單字符串的第一個字符;B)鍵樹第一層中是否匹配到該字符的鍵值,是則轉(zhuǎn)入步驟G),否則轉(zhuǎn)入步驟C);C)插入根節(jié)點;D)讀取字符串的下一個字符;E)判斷是否空字符,是則新增結(jié)束,否則轉(zhuǎn)入步驟F);F)插入子節(jié)點,轉(zhuǎn)入步驟D);G)讀取字符串的下一個字符;H)判斷是否空字符,是則轉(zhuǎn)入步驟I),否則轉(zhuǎn)入K);I)判斷上一個字符是否是葉子節(jié)點,是則新增結(jié)束,否則轉(zhuǎn)入步驟J);J)刪除上一個字符所有的葉子節(jié)點;K)鍵樹下一層中是否匹配到該字符的鍵值,是則轉(zhuǎn)入步驟L),否則轉(zhuǎn)入步驟M);L)判斷該字符是否葉子節(jié)點,是則新增結(jié)束,否則轉(zhuǎn)入步驟G);M)插入子節(jié)點,轉(zhuǎn)入步驟G);本發(fā)明的黑名單檢查包括a)讀取待查名單字符串的第一個字符;b)鍵樹第一層中是否匹配到該字符的鍵值,是則轉(zhuǎn)入步驟c),否則結(jié)束檢查,該名單不是黑名單;c)讀取字符串的下一個字符;d)判斷是否空字符,是則轉(zhuǎn)入步驟e),否則轉(zhuǎn)入步驟f);e)結(jié)束檢查,并判斷上一個字符是否葉節(jié)點,是則該名單是黑名單,否則該名單不是黑名單;f)鍵樹下一層中是否匹配到該字符的鍵值,是則轉(zhuǎn)入步驟c),否則結(jié)束檢查,該名單不是黑名單。
作為所述黑名單檢查的改進(jìn)方案之一,開始所述檢查方法之前包括白名單的檢查步驟,其檢查同黑名單的檢查方法,如果結(jié)果是白名單,則不需要進(jìn)入黑名單的檢查步驟,否則進(jìn)行所述的黑名單檢查步驟。
作為所述黑名單檢查的改進(jìn)方案之二,結(jié)束所述黑名單檢查之后,如果結(jié)果該名單是黑名單,則再進(jìn)行白名單的檢查步驟,其檢查同黑名單的檢查方法。
黑名單字符串的每個字符對應(yīng)鍵樹中的一個節(jié)點,每個節(jié)點有“鍵值”、“子指針”、“右指針”以及“該節(jié)點所在層”四個屬性,“鍵值”存放的就是該黑名單字符串中的一個字符,根節(jié)點所在層為第一層,其子節(jié)點為第二層,依次遞增,上一層節(jié)點的“子指針”指向其下一層所有子節(jié)點中鍵值最小的一個,同一層中鍵值最小的節(jié)點的“右指針”指向鍵值次小于自己鍵值的節(jié)點,同理,鍵值次小的節(jié)點的“右指針”指向鍵值次小于自己鍵值的節(jié)點,這樣直到鍵值最大的那個節(jié)點,其右指針為空值,根節(jié)點的“右指針”為空值。當(dāng)一個節(jié)點的子指針為空值的時候,該節(jié)點就是“葉子節(jié)點”。
由上述原理可以看到,新增黑名單的過程就是建立該鍵樹的過程,下面結(jié)合附圖對本發(fā)明進(jìn)行詳細(xì)說明。
圖1是使用黑名單處理裝置的網(wǎng)絡(luò)結(jié)構(gòu)圖。它由終端1,網(wǎng)關(guān)2以及黑名單處理裝置3組成。
終端1可以是PC機(jī),也可以是專用終端,柜員通過該終端提交待查詢的黑名單字符串,通過網(wǎng)關(guān)2轉(zhuǎn)發(fā)給黑名單處理裝置3,并接收反饋回來的黑名單檢查結(jié)果,同時柜員也可以通過該終端向黑名單處理裝置3發(fā)送黑名單或白名單的新增或刪除指令,進(jìn)行黑名單或者白名單的新增或刪除操作。
網(wǎng)關(guān)2是通訊服務(wù)器,負(fù)責(zé)終端1與黑名單處理裝置之間的通訊。
黑名單處理裝置3負(fù)責(zé)將黑名單或/和白名單文件導(dǎo)入臨時工作表,并采用鍵樹方法進(jìn)行黑名單或白名單的新增、刪除以及查詢,并返回結(jié)果信息。
如圖2b所示,黑名單處理裝置3由數(shù)據(jù)處理裝置31和數(shù)據(jù)存儲裝置32組成。數(shù)據(jù)處理裝置31包括黑名單文件處理模塊311、白名單文件處理模塊312(即誤判文本信息單元)、黑名單新增模塊313、黑名單刪除模塊314、白名單新增模塊315以及白名單刪除模塊316。
黑名單文件處理模塊311的功能是將黑名單文件的臨時導(dǎo)入數(shù)據(jù)存儲裝置32的黑名單工作表中,以文件中各個字符串之間的分隔符為標(biāo)志,將各個黑名單字符串分別放入工作表的一條記錄中,便于黑名單新增模塊313進(jìn)行各個黑名單的新增。
白名單文件處理模塊312的功能是將白名單文件的臨時導(dǎo)入數(shù)據(jù)存儲裝置32的白名單工作表中,以文件中各個字符串之間的分隔符為標(biāo)志,將各個白名單字符串分別放入工作表的一條記錄中,便于白名單新增模塊315進(jìn)行各個白名單的新增。
黑名單新增模塊313的功能是針對每個黑名單字符串建立鍵樹,將該鍵樹的各個節(jié)點的四個屬性值放到數(shù)據(jù)存儲裝置32的黑名單記錄表中的一條記錄里。
黑名單刪除模塊314的功能是直接清空數(shù)據(jù)存儲裝置32的黑名單記錄表。
白名單新增模塊315的功能是針對每個白名單字符串建立鍵樹,將該鍵樹的各個節(jié)點的四個屬性值放到數(shù)據(jù)存儲裝置32的白名單記錄表中的一條記錄里。
白名單刪除模塊316的功能是直接清空數(shù)據(jù)存儲裝置32的白名單記錄表。
數(shù)據(jù)存儲裝置32中有四張表,黑名單工作表、白名單工作表、黑名單記錄表以及白名單記錄表。
由于黑名單和白名單的新增流程是相同的,下面結(jié)合圖3對黑名單的新增流程進(jìn)行描述。
步驟100讀取待新增黑名單字符串的第一個字符。
步驟101鍵樹第一層中是否匹配到該字符的鍵值,是則轉(zhuǎn)入步驟106,否則轉(zhuǎn)入步驟102。
步驟102插入根節(jié)點,在黑名單記錄表中新增一條記錄,鍵值為該字符,層數(shù)為“1”,子指針為空值,右指針為空值。
步驟103讀取字符串的下一字符。
步驟104判斷是否空字符,是則新增結(jié)束,否則轉(zhuǎn)入步驟105。
步驟105插入子節(jié)點,在黑名單記錄表中新增一條記錄,鍵值為該字符,層數(shù)為上一字符對應(yīng)記錄的層數(shù)加上1,子指針為空值,右指針為空值,同時,需要修改上一字符對應(yīng)記錄的子指針指向該新增記錄位置,轉(zhuǎn)入步驟103。
步驟106讀取字符串的下一個字符。
步驟107判斷是否為空,是則轉(zhuǎn)入步驟108,否則轉(zhuǎn)入110。
步驟108判斷上一字符是否是葉子節(jié)點,是則新增結(jié)束,否則轉(zhuǎn)入步驟109。
步驟109刪除上一字符所有的葉子節(jié)點及黑名單記錄表中對應(yīng)的記錄。
步驟110鍵樹下一層中是否匹配到該字符的鍵值,是則轉(zhuǎn)入步驟111,否則轉(zhuǎn)入步驟112。
步驟111判斷該字符是否葉子節(jié)點,是則新增結(jié)束,否則轉(zhuǎn)入步驟106。
步驟112插入子節(jié)點,并同時修改黑名單記錄表中相關(guān)的記錄,轉(zhuǎn)入步驟106。
如圖4所示,是進(jìn)行黑名單查詢的流程,具體描述如下步驟200讀取待查名單字符串的第一個字符。
步驟201鍵樹第一層中是否匹配到該字符的鍵值,是則轉(zhuǎn)入步驟202,否則結(jié)束檢查,該名單不是黑名單。
步驟202讀取字符串的下一個字符。
步驟203判斷是否空字符,是則轉(zhuǎn)入步驟204,否則轉(zhuǎn)入步驟205。
步驟204結(jié)束檢查,并判斷上一個字符是否葉節(jié)點,是則該名單是黑名單,否則該名單不是黑名單。
步驟205鍵樹下一層中是否匹配到該字符的鍵值,是則轉(zhuǎn)入步驟202,否則結(jié)束檢查,該名單不是黑名單。
圖5是黑名單鍵樹的實例LEI和LO是黑名單。
節(jié)點1“鍵值”是“L”,“子指針”指向節(jié)點2、“右指針”是空,“該節(jié)點所在層”是“1”層,是根節(jié)點。
節(jié)點2“鍵值”是“E”,“子指針”指向節(jié)點4、“右指針”指向節(jié)點3,“該節(jié)點所在層”是“2”層。
節(jié)點3“鍵值”是“O”,“子指針”是空、“右指針”是空,“該節(jié)點所在層”是“2”層,是葉子節(jié)點。
節(jié)點4“鍵值”是“I”,“子指針”是空、“右指針”是空,“該節(jié)點所在層”是“3”層,是葉子節(jié)點。
下面以實例來說明鍵樹的建立。已經(jīng)有圖5的鍵樹,要增加黑名單LAODA。
1)步驟100讀取待新增黑名單字符串的第一個字符“L”。
2)步驟101鍵樹第一層中匹配到該字符的鍵值,轉(zhuǎn)入步驟106。
3)步驟106讀取字符串的下一個字符“A”。
4)步驟107判斷不是空字符,轉(zhuǎn)入步驟110。
5)步驟110鍵樹下一層中是沒有匹配到該字符的鍵值“A”,轉(zhuǎn)入步驟112。
6)步驟112插入子節(jié)點A,并同時修改黑名單記錄表中相關(guān)的記錄,使L的子指針指向新增的節(jié)點A,新增節(jié)點的右指針指向E,轉(zhuǎn)入步驟106。
7)步驟106讀取字符串的下一個字符“O”。
8)步驟107判斷是不是空字符,轉(zhuǎn)入步驟110。
9)步驟110鍵樹下一層中是沒有匹配到該字符的鍵值“O”,轉(zhuǎn)入步驟112。
10)步驟112插入子節(jié)點O,并同時修改黑名單記錄表中相關(guān)的記錄,使A的子指針指向新增的節(jié)點O,新增節(jié)點的右指針為空指針,轉(zhuǎn)入步驟106。
11)步驟106讀取字符串的下一個字符“D”。
12)步驟107判斷是不是空字符,轉(zhuǎn)入步驟110。
13)步驟110鍵樹下一層中是沒有匹配到該字符的鍵值“D”,轉(zhuǎn)入步驟112。
14)步驟112插入子節(jié)點D,并同時修改黑名單記錄表中相關(guān)的記錄,使O的子指針指向新增的節(jié)點D,新增節(jié)點的右指針為空指針,轉(zhuǎn)入步驟106。
15)步驟106讀取字符串的下一個字符“A”。
16)步驟107判斷是不是空字符,轉(zhuǎn)入步驟110。
17)步驟110鍵樹下一層中是沒有匹配到該字符的鍵值“A”,轉(zhuǎn)入步驟112。
18)步驟112插入子節(jié)點A,并同時修改黑名單記錄表中相關(guān)的記錄,使D的子指針指向新增的節(jié)點A,新增節(jié)點的右指針為空指針,轉(zhuǎn)入步驟106。
19)步驟106讀取字符串的下一個字符是空。
20)步驟107判斷是空字符,轉(zhuǎn)入步驟108。
21)步驟108判斷上一節(jié)點A是葉子節(jié)點,新增結(jié)束。
下面以實例來說明黑名單的查詢待查詢字符串是LEIZI。
1)步驟200讀取待查名單字符串的第一個字符“L”。
2)步驟201鍵樹第一層中匹配到該字符的鍵值,轉(zhuǎn)入步驟202。
3)步驟202讀取字符串的下一個字符”E”。
4)步驟203判斷不是否空字符,轉(zhuǎn)入步驟205。
5)步驟205鍵樹下一層中是匹配到該字符的鍵值“E”,轉(zhuǎn)入步驟202。
6)步驟202讀取字符串的下一個字符”I”。
7)步驟203判斷不是否空字符,轉(zhuǎn)入步驟205。
8)步驟205鍵樹下一層中是匹配到該字符的鍵值“I”,轉(zhuǎn)入步驟202。
9)步驟202讀取字符串的下一個字符“Z”。
10)步驟203判斷不是否空字符,轉(zhuǎn)入步驟205。
11)步驟204結(jié)束檢查,并判斷上一個字符是否葉節(jié)點,是則該名單是黑名單,否則該名單不是黑名單。
12)步驟205鍵樹下一層中沒有匹配到該字符的鍵值“Z”,則不是黑名單,結(jié)束。
與現(xiàn)有技術(shù)相比,本發(fā)明的優(yōu)點是
一、本發(fā)明的效率比直接字符匹配有著很大的提高。
采用鍵樹的方法,從樹根開始,沿著子樹走,一直走到葉子端,就是一條名單的數(shù)據(jù)記錄。以首字母作為根節(jié)點的樹有26棵,字符串從頭到尾,每次到鍵樹中檢索一次,與鍵樹里面的記錄數(shù)無關(guān),理論上的比較次數(shù)為n*m。這樣的方案提高的速度是顯而易見的。
試驗結(jié)果如下表所示
直接比較的方法匹配的時間與記錄條數(shù)有關(guān),基本是個線性的關(guān)系(15萬條記錄所用的時間基本是3萬條記錄的5倍);而鍵樹比較的方法與記錄的條數(shù)無關(guān)。匹配的效率上,鍵樹比直接比較提高了幾百倍,3萬條記錄提高了大約200倍,15萬條記錄則提高了大約1000倍。隨著記錄條數(shù)的增加,提高的效率就會更加明顯。這是由于直接比較與記錄條數(shù)有關(guān),而鍵樹比較與記錄條數(shù)無關(guān)的原因造成的。
二、本發(fā)明的誤報率降低了。例如,黑名單中有SHAN,如果需要檢查的信息中包含了山東的拼音,則每次進(jìn)行黑名單檢查時,都會有黑名單的報警,但是我們知道山東肯定不是黑名單,則我們在白名單中加入SHANDONG,則再檢查出有黑名單嫌疑時,再白名單中檢查出有SHANDONG,則可以避免誤報。
在上述實施例中的特定文本信息以“黑名單”為例進(jìn)行了說明,實際上任何對特定文本信息(如物品名稱等)的處理都可顯而易見的運用本發(fā)明的方法和系統(tǒng)。因此以上具體實施方式
僅用于說明本發(fā)明,而非用于限定本發(fā)明。
權(quán)利要求
1.一種基于鍵樹的特定文本信息處理方法,其特征是包括以下步驟對特定文本信息進(jìn)行存儲;生成包括有所述特定文本信息的鍵樹;根據(jù)所述的鍵樹對給定的字符串是否包含在所述鍵樹所包括的特定文本信息中進(jìn)行搜索,然后輸出搜索結(jié)果。
2.根據(jù)權(quán)利要求1所述的方法,其特征是,所述的特定文本信息由特定文本字符串組成,所述的鍵樹由呈樹狀連接關(guān)系的多個節(jié)點組成;其中使一特定文本字符串的每個字符對應(yīng)所述鍵樹中的一個節(jié)點;每個節(jié)點具有鍵值、下層指針、同層指針和節(jié)點所在層數(shù);所述鍵值存放的是特定文本字符串中的一個字符,下層指針值為空的節(jié)點為葉子節(jié)點,如果該葉子節(jié)點所在層數(shù)為一則為根節(jié)點;其中上一層節(jié)點的下層指針指向相鄰下層所有節(jié)點中鍵值最小的一個節(jié)點,同一層節(jié)點中鍵值小的節(jié)點的同層指針指向鍵值次小于自己鍵值的節(jié)點。
3.根據(jù)權(quán)利要求2所述的方法,其特征是,所述的生成包括有所述特定文本信息的鍵樹還包括新增特定文本字符串的步驟,該新增特定文本字符串的步驟具體包括步驟一、讀取待新增黑名單字符串的第一個字符;步驟二、鍵樹第一層中是否匹配到該字符的鍵值,是則轉(zhuǎn)入步驟七,否則轉(zhuǎn)入步驟三;步驟三、插入根節(jié)點,在黑名單記錄表中新增一條記錄,鍵值為該字符,層數(shù)為一,子指針為空值,右指針為空值;步驟四、讀取字符串的下一字符;步驟五、判斷是否為表示字符串結(jié)束的空字符,是則新增結(jié)束,否則轉(zhuǎn)入步驟六;步驟六、插入子節(jié)點,在黑名單記錄表中新增一條記錄,鍵值為該字符,層數(shù)為上一字符對應(yīng)記錄的層數(shù)加上1,子指針為空值,右指針為空值,同時,需要修改上一字符對應(yīng)記錄的子指針指向該新增記錄位置,轉(zhuǎn)入步驟四;步驟七、讀取字符串的下一個字符;步驟八、判斷是否空字符,是則轉(zhuǎn)入步驟九,否則轉(zhuǎn)入十一;步驟九、判斷上一字符是否是葉子節(jié)點,是則新增結(jié)束,否則轉(zhuǎn)入步驟十;步驟十、刪除上一字符所有的葉子節(jié)點及黑名單記錄表中對應(yīng)的記錄;步驟十一、鍵樹下一層中是否匹配到該字符的鍵值,是則轉(zhuǎn)入步驟十二,否則轉(zhuǎn)入步驟十三;步驟十二、判斷該字符是否為葉子節(jié)點,是則新增結(jié)束,否則轉(zhuǎn)入步驟七;步驟十三、插入子節(jié)點,并同時修改黑名單記錄表中相關(guān)的記錄,轉(zhuǎn)入步驟七。
4.根據(jù)權(quán)利要求2或3所述的方法,其特征是還包括,搜索特定文本字符串的步驟,該搜索特定文本字符串的步驟具體包括步驟一′、讀取待查特定文本字符串的第一個字符;步驟二′、判斷所述鍵樹第一層中是否匹配到該字符的鍵值,如果是則轉(zhuǎn)入步驟三′,如果否則搜索步驟結(jié)束并輸出該特定文本字符串不在存儲的特定文本信息中的結(jié)果;步驟三′、讀取待查特定文本字符串的下一個字符;步驟四′、判斷當(dāng)前字符是否為空字符,如果是則轉(zhuǎn)入步驟五′,如果否則轉(zhuǎn)入步驟六′;步驟五′、結(jié)束搜索步驟,并判斷上一個字符是否為葉節(jié)點,如果是則輸出該特定文本字符串屬于存儲的特定文本信息的結(jié)果,如果否則輸出該特定文本字符串不在存儲的特定文本信息中的結(jié)果;步驟六′、判斷所述鍵樹下一層中是否匹配到該字符的鍵值,如果是則轉(zhuǎn)入步驟三′,如果否則搜索步驟結(jié)束并輸出該特定文本字符串不在存儲的特定文本信息中的結(jié)果。
5.根據(jù)權(quán)利要求1所述的方法,其特征是還包括,誤判文本信息的處理步驟,用于對容易誤判的文本信息進(jìn)行檢查,如果結(jié)果是匹配,則不需要進(jìn)入搜索給定字符串的步驟,否則進(jìn)行搜索給定字符串的步驟。
6.根據(jù)權(quán)利要求1所述的方法,其特征是,所述的特定文本信息是指黑名單和/或白名單。
7.一種基于鍵樹的特定文本信息處理系統(tǒng),包括終端、網(wǎng)關(guān);其特征是包括特定文本信息處理裝置;所述的終端經(jīng)網(wǎng)關(guān)與所述的特定文本信息處理裝置相連接;其中所述的特定文本信息處理裝置進(jìn)一步包括數(shù)據(jù)存儲單元,用于對特定文本信息進(jìn)行存儲;鍵樹生成單元,用于生成包括有所述特定文本信息的鍵樹;字符串搜索單元,用于根據(jù)所述的鍵樹對經(jīng)所述終端給定的字符串是否包含在所述鍵樹所包括的特定文本信息中進(jìn)行搜索,然后輸出搜索結(jié)果。
8.根據(jù)權(quán)利要求7所述的系統(tǒng),其特征是,所述的特定文本信息由特定文本字符串組成,所述的鍵樹由呈樹狀連接關(guān)系的多個節(jié)點組成;其中使一特定文本字符串的每個字符對應(yīng)所述鍵樹中的一個節(jié)點;每個節(jié)點具有鍵值、下層指針、同層指針和節(jié)點所在層數(shù);所述鍵值存放的是特定文本字符串中的一個字符,同層指針值為空的節(jié)點為根節(jié)點,下層指針值為空的節(jié)點為葉子節(jié)點;其中上一層節(jié)點的下層指針指向相鄰下層所有節(jié)點中鍵值最小的一個節(jié)點,同一層節(jié)點中鍵值小的節(jié)點的同層指針指向鍵值次小于自己鍵值的節(jié)點。
9.根據(jù)權(quán)利要求8所述的系統(tǒng),其特征是,所述的鍵樹生成單元包括,特定文本字符串新增部分,用于根據(jù)所述的鍵樹,將給定的字符串逐一字符的插入到所述鍵樹的節(jié)點中。
10.根據(jù)權(quán)利要求8或9所述的系統(tǒng),其特征是,所述的字符串搜索單元包括,特定文本字符串搜索部分,用于根據(jù)所述的鍵樹判斷經(jīng)終端出入的字符串是否存在于存儲的特定文本信息中,如果是則輸出該給定字符串屬于存儲的特定文本信息的結(jié)果,如果否則輸出該給定字符串不在存儲的特定文本信息中的結(jié)果。
11.根據(jù)權(quán)利要求10所述的系統(tǒng),其特征是,所述的特定文本信息處理裝置還包括,誤判文本信息單元,用于對容易誤判的文本信息進(jìn)行檢查,如果結(jié)果是匹配,則不需要進(jìn)入所述的特定文本字符串搜索單元搜索給定字符串,否則所述的特定文本字符串搜索單元搜索給定字符串。
12.根據(jù)權(quán)利要求7所述的系統(tǒng),其特征是,所述的特定文本信息是指黑名單和/或白名單。
13.根據(jù)權(quán)利要求12所述的系統(tǒng),其特征是,所述的特定文本信息處理裝置還包括黑名單文件處理單元、白名單文件處理單元、黑名單新增單元、黑名單刪除單元、白名單新增單元以及白名單刪除單元。
全文摘要
本發(fā)明提供一種基于鍵樹的特定文本信息處理方法及系統(tǒng),其包括以下步驟對特定文本信息進(jìn)行存儲;生成包括有所述特定文本信息的鍵樹;根據(jù)所述的鍵樹對給定的字符串是否包含在所述鍵樹所包括的特定文本信息中進(jìn)行搜索,然后輸出搜索結(jié)果。用以提高對特定文本信息的處理速度,降低誤報,使整體業(yè)務(wù)的處理效率增強。
文檔編號G06F17/21GK1979482SQ20061011435
公開日2007年6月13日 申請日期2006年11月8日 優(yōu)先權(quán)日2006年11月8日
發(fā)明者周鵬偉, 李小雍, 胡銳明, 張學(xué)星 申請人:中國工商銀行股份有限公司