TW201730757A - 字串距離計算方法和裝置 - Google Patents
字串距離計算方法和裝置 Download PDFInfo
- Publication number
- TW201730757A TW201730757A TW105143941A TW105143941A TW201730757A TW 201730757 A TW201730757 A TW 201730757A TW 105143941 A TW105143941 A TW 105143941A TW 105143941 A TW105143941 A TW 105143941A TW 201730757 A TW201730757 A TW 201730757A
- Authority
- TW
- Taiwan
- Prior art keywords
- string
- candidate
- bitmap
- difference
- target
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/215—Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2237—Vectors, bitmaps or matrices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/31—Indexing; Data structures therefor; Storage structures
- G06F16/313—Selection or weighting of terms for indexing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/3331—Query processing
- G06F16/334—Query execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
- G06F16/90344—Query processing by using string matching techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/22—Matching criteria, e.g. proximity measures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Evolutionary Computation (AREA)
- Evolutionary Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Bioinformatics & Computational Biology (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本發明提供一種字串距離計算方法和裝置,其中方法用於由候選字串集合中選擇與給定的目標字串相似的候選字串;該方法包括:獲取所述候選字串和目標字串中所包含字元的字元差異資訊;若所述字元差異資訊大於差異閾值,則將所述候選字串由候選字串集合中篩除,並計算所述候選字串集合中剩餘的候選字串與所述目標字串的字串距離。本發明使得在候選字串集合中透過計算字串距離尋找相似字串時,集合的規模得到了大大減小,從而提高了計算效率。
Description
本發明涉及網路技術,特別涉及一種字串距離計算方法和裝置。
字串距離計算,可以應用於判斷兩個字串的相似性。例如,對於一個給定的目標字串,需要在一個字串集合中找到與該目標字串相似的字串時,就可以將目標字串與集合中的各個字串逐個計算距離,將距離小於預設的距離閾值的字串,確定為與目標字串相似的字串。但是這種方式,當字串集合中的字串數量較多時,執行的時間代價也較高,比如,在一個包括上千萬條位址的資料庫中,尋找一個與給定位址相似的記錄時,要執行很長時間,無法滿足某些需要快速獲得結果的應用的需求。
有鑑於此,本發明提供一種字串距離計算方法和裝置,以在候選字串集合中透過計算字串距離尋找相似字串時,提高計算效率。
具體地,本發明是透過如下技術方案實現的:第一方面,提供一種字串距離計算方法,所述方法用於由候選字串集合中選擇與給定的目標字串相似的候選字串;所述方法包括:獲取所述候選字串和目標字串的關聯點陣圖資訊,所述關聯點陣圖資訊包括如下兩項中的至少一項:分別對應候選字串和目標字串的兩個字串點陣圖的點陣圖權重,或者,所述兩個字串點陣圖的點陣圖差的點陣圖權重;根據所述關聯點陣圖資訊,篩除掉所述候選字串集合中與目標字串的字串距離在距離閾值範圍之外的候選字串,並分別計算剩餘的候選字串與所述目標字串的字串距離;所述字串點陣圖包括多個標識位元,所述標識位元的取值包括第一取值和第二取值,所述第一取值表示該標識位元對應的預設標準字元包含在字串中,所述第二取值表示所述標識位元對應的預設標準字元未包含在字串中;所述字串點陣圖的點陣圖權重表示所述字串點陣圖中的第一取值的數量;所述點陣圖差是將兩個字串點陣圖中對應位置的標識位元的取值分別進行異或運算得到,所述點陣圖差的點陣圖權重表示所述點陣圖差中異或取值為真的標識位元的數量。
第二方面,提供一種字串距離計算方法,所述方法用於由候選字串集合中選擇與給定的目標字串相似的候選字串;所述方法包括:
獲取所述候選字串和目標字串中所包含字元的字元差異資訊;若所述字元差異資訊大於差異閾值,則將所述候選字串由候選字串集合中篩除,並計算所述候選字串集合中剩餘的候選字串與所述目標字串的字串距離。
第三方面,提供一種字串距離計算裝置,所述裝置用於由候選字串集合中選擇與給定的目標字串相似的候選字串;所述裝置包括:資訊獲取模組,用於獲取所述候選字串和目標字串的關聯點陣圖資訊,所述關聯點陣圖資訊包括如下兩項中的至少一項:分別對應候選字串和目標字串的兩個字串點陣圖的點陣圖權重,或者,所述兩個字串點陣圖的點陣圖差的點陣圖權重;所述字串點陣圖包括多個標識位元,所述標識位元的取值包括第一取值和第二取值,所述第一取值表示該標識位元對應的預設標準字元包含在字串中,所述第二取值表示標識位元對應的預設標準字元未包含在字串中;所述字串點陣圖的點陣圖權重表示所述字串點陣圖中的第一取值的數量;所述點陣圖差是將兩個字串點陣圖中對應位置的標識位元的取值分別進行異或運算得到,所述點陣圖差的點陣圖權重表示所述點陣圖差中異或取值為真的標識位元的數量;篩選處理模組,用於根據所述關聯點陣圖資訊,篩除掉所述候選字串集合中與目標字串的字串距離在距離閾值範圍之外的候選字串,並分別計算剩餘的候選字串與所述
目標字串的字串距離。
第四方面,提供一種字串距離計算裝置,所述裝置用於由候選字串集合中選擇與給定的目標字串相似的候選字串;所述裝置包括:差異獲取模組,用於獲取所述候選字串和目標字串中所包含字元的字元差異資訊;距離計算模組,用於若所述字元差異資訊大於差異閾值,則將所述候選字串由候選字串集合中篩除,並計算所述候選字串集合中剩餘的候選字串與所述目標字串的字串距離。
本發明提供的字串距離計算方法和裝置,透過根據候選字串和目標字串中所包含字元的字元差異資訊,例如,兩者的關聯點陣圖資訊,由候選字串集合中預先篩除掉一部分候選字串,再計算剩餘的候選字串與目標字串的字串距離,使得在候選字串集合中透過計算字串距離尋找相似字串時,集合的規模得到了大大減小,從而提高了計算效率。
101~102‧‧‧步驟
201~202‧‧‧步驟
301~304‧‧‧步驟
410‧‧‧處理器
420‧‧‧通信介面
430‧‧‧記憶體
440‧‧‧匯流排
51‧‧‧資訊獲取模組
52‧‧‧篩選處理模組
521‧‧‧計算單元
522‧‧‧第一篩選單元
523‧‧‧第二篩選單元
524‧‧‧距離計算單元
71‧‧‧差異獲取模組
72‧‧‧距離計算模組
711‧‧‧點陣圖計算單元
712‧‧‧差異計算單元
圖1是本發明一示例性實施例示出的一種字串距離計算方法的流程圖;圖2是本發明一示例性實施例示出的一種字串距離計算方法的流程圖;圖3是本發明一示例性實施例示出的一種字串距離計
算方法的流程圖;圖4是本發明一示例性實施例示出的計算設備的結構示意圖;圖5是本發明一示例性實施例示出的一種字串距離計算裝置的結構圖;圖6是本發明一示例性實施例示出的一種字串距離計算裝置的結構圖;圖7是本發明一示例性實施例示出的一種字串距離計算裝置的結構圖;圖8是本發明一示例性實施例示出的一種字串距離計算裝置的結構圖。
這裡將詳細地對示例性實施例進行說明,其示例表示在圖式中。下面的描述涉及圖式時,除非另有表示,不同圖式中的相同數字表示相同或相似的要素。以下示例性實施例中所描述的實施方式並不代表與本發明相一致的所有實施方式。相反,它們僅是與如所附申請專利範圍中所詳述的、本發明的一些方面相一致的裝置和方法的例子。
字串距離的計算,應用較為廣泛,比如,一種應用場景即為在資料分析中透過計算兩個字串的字串距離,來判斷該兩個字串的相似度。例如,假設有一個給定的位址字串,要在一個位址字串集合中,判斷是否存在與該給定位址字串相似的字串,那麼可以分別計算該給定的位址字串
與集合中的各個字串的字串距離,如果字串距離在距離閾值範圍內,則表示集合中的該字串與給定位址字串相似。
如果與給定字串相比較的字串集合規模較大,比如,上述的位址字串集合是一個包括上千萬條位址字串的字串集合,在進行字串距離計算時,執行的時間代價較高。為了快速得到字串距離的計算結果,更好的滿足部分需要快速執行的應用的需求,本發明實施例提供了一種字串距離計算方法,旨在即使在規模較大的字串集合中進行字串距離的計算,也能夠快速得到計算結果。
本實施例中,可以將給定的位址字串稱為目標字串,將位址字串集合稱為“候選字串集合”,將候選字串集合中的每一條位址字串稱為“候選字串”。
本發明的字串距離計算方法,可以按照圖1所示的流程,由候選字串集合中選擇與給定的目標字串相似的候選字串。
在步驟101中,獲取候選字串和目標字串包含字元的字元差異資訊。
例如,目標字串是AA,候選字串集合中的其中一個候選字串是AB CD,該步驟中所述的字元差異資訊,可以是這兩個字串包含的不同字元數量的差異。比如,候選字串中包括四個不同字元,分別為A、B、C、D,而目標字串中包含一個不同字元,即A。
如果將候選字串中包含的不同字元的數量稱為第一字元數目,將目標字串中包含的不同字元的數量稱為第二字
元數目,那麼第一字元數目和第二字元數目的差值為三,即字元差異資訊為三。這種情況下,字元差異資訊能夠表示候選字串和目標字串中所包含的不同字元數量上的不同。
又例如,字元差異資訊還可以包括將這兩個字串綜合比較來看,不同的字元的數量。比如,上述的候選字串AB CD和目標字串AA,將這兩個字串進行比較,其中,A是兩者都有的字元,屬於這兩個字串的相同字元,B只存在於候選字串中,屬於不同字元,同理,C和D也是不同字元,包含在候選字串而並不包含於目標字串,所以經過比較候選字串和目標字串,兩者的不同字元的數量是三,分別為B、C和D。可以用第三字元數目表示在所述候選字串和目標字串中只包含於其中一個字串的字元的數量,該第三字元數目即為本步驟求得的字元差異資訊。
在步驟102中,可以根據上面計算得到的字元差異資訊,由候選字串集合中篩除掉一部分確定與目標字串不相似的候選字串。
例如,在步驟101中計算得到的第一字元數目和第二字元數目的差值,如果該差值較大,表示候選字串和目標字串是不同的,比如,目標字串AA,候選字串ABCD,基於這兩個字串得到的第一字元數目和第二字元數目的差值是三,如果差異閾值是一,則可以確定這兩個字串不相似。
再例如,還可以根據第三字元數目,如果第三字元數
目大於差異閾值,表示候選字串和目標字串中包含的不一樣的字元數量較多,這兩個字串不相似,可以將候選字串篩除。
又例如,還可以綜合根據第一字元數目、第二字元數目和第三字元數目,來使得對不相似的候選字串的篩除更加準確和全面。比如,可以先根據第一字元數目和第二字元數目的差值,如果差值大於差異閾值,則將所述候選字串由候選字串集合中篩除;接著,對於篩除之後剩餘的候選字串集合中的候選字串,再根據第三字元數目來篩選,如果第三字元數目大於差異閾值,則將候選字串由候選字串集合中篩除。
比如,假設目標字串AA,候選字串BB,這兩個字串的第一字元數目和第二字元數目的差值是零,因為都是包含一種字元,無法根據該差值將候選字串剔除。而如果繼續計算第三字元數目,第三字元數目是二,包括A和B,那麼當距離閾值是一時,二大於一,則將候選字串篩除。
本實施例的字串距離計算方法,透過在計算字串距離之前,先根據字元差異資訊篩除掉一部分明顯不相似的候選字串,只對篩除之後的剩餘候選字串與目標字串進行距離計算,使得參與最終的字串距離計算的候選字串數量將大大減少,因此,可以提高計算效率。
上面所述的字元差異資訊,其獲取方式可以有多種,比如,對於字串中的各個字元之間進行比較,得到該差異資訊。如下的本發明實施例中,列舉了一種示例性的字元
差異資訊的獲取方式,在該方式中,可以將候選字串和目標字串,都以字串點陣圖表示,並根據字串點陣圖來獲取字元差異資訊,這種方式可以使得字元差異資訊的獲取速度較快,提高處理效率。
在根據字串點陣圖的方式獲取字元差異資訊的方式中,應用了如下定義的幾個概念,在詳細描述方法之前,對這些概念分別進行解釋:字串點陣圖:舉例說明,可以預先設定一個包含多個標識位元的點陣圖,每個標識位元對應一個字元,例如,對應的字元可以是英文字元A、B、C.....Y、Z。本實施例可以將點陣圖的標識位元對應的字元稱為預設標準字元。結合如下表1示例的一種點陣圖結構:
參見表1,假設標識位元共有26位元,分別對應英文的26個字元,且按照從右到左的順序,各標識位元依次對應字元A、B、C直至Z。各個標識位元的取值可以為第一取值或第二取值,例如,本實施例設置第一取值為1,設置第二取值為0,且可以定義取值規則如下:在計算一個字串的點陣圖時,判斷標識位元對應的字元是否在該字串中,若在,則將標識位元的取值設置為1,若不
在,則將標識位元的取值設置為0。在所有標識位元的取值都設置完成後,得到字串點陣圖。該取值規則還包括:若標識位元對應的字元在字串出現了至少兩次,該標識位元的取值仍然取1即可。
以一個例子說明:假設要計算字串“DABA”的點陣圖,參照表1來看,可以由右至左逐個標識位元進行取值,分別判斷點陣圖中的各個標識位元對應的預設標準字元是否在所述字串中:預設標準字元A對應標識位元的取值:字元A在字串“DABA”存在,則將該標識位元取值為1,儘管A出現了兩次,包括兩個A,取值仍然為1。
預設標準字元B對應標識位元的取值:字元B在字串“DABA”存在,則將該標識位元取值為1。
預設標準字元C對應標識位元的取值:字元C在字串“DABA”不存在,則將該標識位元取值為0;預設標準字元D對應標識位元的取值:字元D在字串“DABA”存在,則將該標識位元取值為1。
其他標識位元按照上述規則取值,不再贅述。最終可以得到表1結構的包括26個標識位元的點陣圖取值應為:0000.......001011,即如表1所示的取值,前面的一串0可以忽略,簡寫為“1011”,則字串“DABA”對應的字串點陣圖是“1011”。
由上述可見,字串點陣圖包括多個標識位元,且各個標識位元的取值表示該標識位元對應的字元是否包含在字
串中,如果標識位元的取值是第一取值,則表示該標識位元對應的字元在字串中,如果標識位元的取值是第二取值,則表示該標識位元對應的字元未在字串中。後續的實施例中對方法描述時涉及到的字串點陣圖,都可以按照上面的方式進行計算。此外,在後續實施例方法描述中,有時將字串點陣圖稱為點陣圖,比如,目標字串的點陣圖,候選字串的點陣圖,均是指字串點陣圖。
此外,字串點陣圖的計算中,標識位元對應的預設標準字元也不一定是表1所示的結構,還可以是其他結構,比如,如下表2的示例,A、B、C直至Z,也可以按照由左至右的順序排列;或者,也可以使用其他預設標準字元。
還需要說明的是,在上述例子中,是以對應26個英文字元的26位元的點陣圖結構為例,實際應用中,還可以是32位元以內的其他點陣圖結構。這種32位元以內的點陣圖結構設計,主要是為了點陣圖的快速計算,提高運算速度,所以設計點陣圖結構不會太大。不過,在字元集不是太大的情況下,也可以考慮使用更大的資料結構儲存點陣圖。例如,如果需要處理日文字串,可以用128位
元的大整數結構表達點陣圖。
此外,在上述的例子中,點陣圖結構中的各個標識位元對應的字元,是以大寫英文字母為例進行說明。為了擴展本發明的方法的適用範圍,在對包含這26個大寫英文字母之外的字元的字串進行處理時,可以進行一些預處理,以使得字串能夠適用該方法。該預處理的方式包括但不限於:忽略待處理字串中的標點符號,例如空格等;使用UNICODE NFKD規範化標準,將非英文的一些字母轉化成相應的英文字母。例如”café”轉化為”cafe”;將小寫的英文字母全部轉成相應的大寫字母。
點陣圖權重:該點陣圖權重是指字串點陣圖中的第一取值的數量。例如,上面的例子中,以表1的結構計算字串點陣圖時,字串“DABA”對應的字串點陣圖是“1011”,可以將該字串點陣圖中的第一取值1的數量,作為點陣圖權重,字串點陣圖“1011”的點陣圖權重是3,包括三個1。
點陣圖差:該點陣圖差即將兩個字串的字串點陣圖進行二進位的異或運算,得到點陣圖差。例如,以兩個點陣圖“1011”和“0111”為例,計算這兩個點陣圖的點陣圖差。可以將“1011”稱為第一位圖,將“0111”稱為第二點陣圖,這兩個點陣圖都包括四個標識位元,可以將第一位圖中的各個標識位元分別稱為第一標識位元,將第二點陣圖中的各個標識位元稱為第二標識位元。上述的“第一”或“第二”僅是為了區分。參見如下表3:
由表3可以看到,一個第一標識位元對應一個第二標識位元,可以將對應位置的第一標識位元和第二標識位元的取值進行異或運算,比如,第一標識位元取值“1”與第二標識位元取值“0”異或取值得到“1”,第一標識位元取值“1”與第二標識位元取值“1”異或取值得到“0”,異或運算的規則為,兩個取值不同則異或取值為1(異或取值為真),兩個取值相同則異或取值為0(異或取值為假)。最終得到的分別對應各個標識位元的異或取值“1100”即為點陣圖差。
可以看到,點陣圖差實際上也是一個點陣圖,這個點陣圖差也包括多個標識位元,且標識位元的取值表示:第一標識位元與第二標識位元的取值是否相同。
點陣圖差的權重:由於點陣圖差也是點陣圖,所以點陣圖差的權重的計算方式,與點陣圖權重的計算方式相同,比如,點陣圖差“1100”的權重是“2”,即點陣圖差的權重表示:點陣圖差中第一標識位元與第二標識位元取值相同的標識位元的數量,也即點陣圖差中異或取值為真的標識位元的數量。
字串距離:該字串距離指的是,將一個字串修改為另一個字串時,允許增加、刪除或者替換字元,所需要的最
少的改動字元次數。例如“ABCEF”與“ACDEG”的距離為3,改動分別是刪除B、增加D、F替換為G。計算字串的距離可以採用一些常規的距離計算演算法,比如,Levenshtein距離演算法等,不再詳述。
如下對本發明實施例的字串距離計算方法進行說明:該方法將使用到上面描述的點陣圖、點陣圖權重、點陣圖差等,參見圖2所示,在本實施例的方法中,步驟201中,將獲取候選字串和目標字串的關聯點陣圖資訊,該關聯點陣圖資訊可以包括:分別對應候選字串和目標字串的兩個字串點陣圖的點陣圖權重,或者,候選字串和目標字串的兩個字串點陣圖的點陣圖差的點陣圖權重。
基於在步驟201中獲取到的關聯點陣圖資訊,在步驟202中,可以由候選字串集合中過濾掉不可能相似的候選字串,然後再對過濾後剩餘的候選字串與目標字串進行距離計算。根據上面對點陣圖權重、點陣圖差等概念的解釋,點陣圖權重可以表示字串中包含的不同字元的數量,或者還可以表示兩個字串中包含的字元的差異,那麼,如果兩個字串明顯不相似,通常是這兩個字串包含的字元明顯不同,就可以透過點陣圖權重體現出這種不同,從而識別到明顯不相似的字串。
本實施例的字元距離計算方法,透過點陣圖權重篩除掉一部分不可能與目標字串相似的候選字串,相對於直接計算目標字串與候選字串集合中的所有字串的距離,將大大減少參與字串距離計算的字串數量,從而提高尋找相似
字串的速度。
如下列舉幾種根據候選字串和目標字串的關聯點陣圖資訊篩選的例子:在一個例子中,可以根據分別對應候選字串和目標字串的兩個字串點陣圖的點陣圖權重,進行字串的篩選。如果候選字串對應的字串點陣圖的點陣圖權重,與目標字串對應的字串點陣圖的點陣圖權重的差值在距離閾值範圍之外,則確定該候選字串與目標字串不相似,將該候選字串篩除,不參與後續與目標字串的字串距離計算。這種情況下,候選字串和目標字串的兩個字串點陣圖的點陣圖權重的差值,即為字元差異資訊。
例如,假設字串距離計算的距離閾值為1,並假定目標字串是“ABCD”,該字串的點陣圖是“1111”,點陣圖權重是4,假定一個候選字串是“AAAA”,該候選字串的點陣圖是“1”,點陣圖權重是1。兩個點陣圖權重的差值是4-1=3,3大於距離閾值1,在距離閾值的範圍之外,則將該候選字串“AAAA”濾除。
由上述例子可以看到,如果兩個字串的字串點陣圖的點陣圖權重,權重差值較大,則表示這兩個字串包含的不同字元的數量具有較大差異,是不可能相似的,可以將該候選字串篩除。
在另一個例子中,可以根據分別對應候選字串和目標字串的兩個字串點陣圖的點陣圖差的點陣圖權重,進行字串的篩選。如果候選字串和目標字串的兩個字串點陣圖的
點陣圖差的點陣圖權重在距離閾值範圍之外,則將所述候選字串篩除。這種情況下,候選字串和目標字串的兩個字串點陣圖的點陣圖差的點陣圖權重,即為字元差異資訊。
例如,本例子可以根據點陣圖差的權重來篩除明顯不相似的字串。以目標字串是“ABC”為例,如果候選字串是“CD”,計算這兩個字串的點陣圖差,“ABC”的點陣圖是0111,“CD”的點陣圖是1100,兩個點陣圖進行異或運算,得到點陣圖差1011,點陣圖差的權重是3。該點陣圖差權重3大於距離閾值1,則可以將候選字串“CD”過濾掉。
由上述例子可以看到,即使兩個字串包含的不同字元的數量相似,但是如果這些字元是完全不同的字元,也能夠透過點陣圖差的權重識別出來。
在上面的兩個例子中,根據點陣圖權重篩選字串時,可以單獨根據字串點陣圖的權重、或者點陣圖差的權重,篩選出不相似的字串;在又一個例子中,還可以綜合根據候選字串和目標字串的兩個字串點陣圖的點陣圖權重、以及兩者的點陣圖差的點陣圖權重,進行字串的篩選,以使得篩選的效果更優。
例如,如果目標字串是“ABG”,候選字串是“CD”,“ABC”的點陣圖是0111,“CD”的點陣圖是1100,兩者的字串點陣圖的點陣圖權重的差值是3-2=1,在距離閾值1的範圍內。但是如果計算這兩個字串的點陣圖差,點陣圖差1011的權重是3,大於距離閾值1,在距離閾值範圍
外,因此可以確定“CD”與目標字串不相似,篩除候選字串“CD”。
圖3示例了一種字串距離計算方法的流程,該例子是以綜合根據兩個字串點陣圖的點陣圖權重以及兩者點陣圖差的點陣圖權重為例,進行字串的篩選。
首先,將資料庫中的候選字串集合中的每一條候選字串,分別計算出對應該候選字串的點陣圖和點陣圖權重,儲存在資料庫中。其中,在計算點陣圖時,計算代價為O(N),N為字串長度,而計算點陣圖權重時,計算代價為O(0),可以使用MIT HAKMEM演算法計算權重。點陣圖和點陣圖權重的計算可以參見上面的概念解釋部分,不再詳述。在資料庫儲存時,可以將候選字串集合中的各個候選字串的點陣圖儲存在一列,即點陣圖列,並將各個候選字串的點陣圖權重儲存在另一列,即權重列,並為該權重列設置索引,以方便後續計算過程中基於該索引快速查找。
在步驟301中,當接收到一個給定的目標字串時,要從候選字串集合中選擇與該目標字串相似的字串,先計算該目標字串的字串點陣圖和對應的點陣圖權重,計算代價同樣分別為O(N)和O(0)。
在步驟302中,在候選字串集合中,根據預先儲存的候選字串的字串點陣圖的點陣圖權重,篩選候選字串,獲得第一候選字串集合。
本步驟中,可以根據字串點陣圖的點陣圖權重,由候
選字串集合過濾掉一部分不可能與目標字串相似的候選字串。將候選字串的點陣圖權重與目標字串的點陣圖權重做差,求得兩者的權重差值,將該權重差值與字串距離計算的距離閾值比較,如果權重差值在距離閾值的範圍內,則該候選字串屬於第一候選字串集合,否則,將該候選字串過濾掉,不屬於第一候選字串集合。
例如,預定距離閾值為1,並假定目標字串是“ABCD”,該字串的點陣圖是“1111”,點陣圖權重是4;假定一個候選字串是“AB”,該候選字串的點陣圖是“11”,點陣圖權重是2。兩個點陣圖權重的差值是4-2=2。2大於距離閾值1,不在距離閾值的範圍內,則將該候選字串“AB”濾除,不屬於第一候選字串集合。此外,本步驟中計算權重差值並與距離閾值比較的處理,執行代價是O(0)。
在本步驟中,透過根據候選字串的字串點陣圖的點陣圖權重,已經可以過濾掉一部分不可能相似的候選字串,得到了第一候選字串集合,但是,第一候選字串集合中仍然可能包括一些不可能相似的候選字串。
比如,以目標字串是“ABC”為例,如果候選字串是“CD”,將可以計算到兩者的點陣圖權重的差值是3-2=1,該權重差值1=距離閾值1,滿足閾值的要求,將其劃歸為第一候選字串集合;但是很顯然,“ABC”與“CD”是兩個完全不同的字串,不可能相似,因此,本例子可以繼續執行步驟203。
在步驟303中,由第一候選字串集合中,分別計算各
個候選字串與目標字串的兩個字串點陣圖的點陣圖差,以及所述點陣圖差的點陣圖權重;並根據點陣圖差的點陣圖權重進行候選字串的篩選,得到第二候選字串集合。
本步驟中,對於第一候選字串集合中的各個候選字串,繼續進行判斷,篩選得到第二候選字串集合。本步的篩選是依據點陣圖差權重,該點陣圖差權重能夠反應兩個點陣圖的細節化差異,第二候選字串集合中的各個候選字串滿足:候選字串點陣圖與目標字串點陣圖的點陣圖差的權重,在距離閾值範圍內。本步驟的執行代價也是O(0),即透過固定步驟即可完成。
仍以上面的例子來說,目標字串是“ABG”,候選字串是“CD”,根據兩者的點陣圖權重差值,滿足閾值的要求,將其劃歸為第一候選字串集合。本步驟中,計算這兩個字串的點陣圖差,“ABC”的點陣圖是0111,“CD”的點陣圖是1100,兩個點陣圖進行異或運算,得到點陣圖差1011,點陣圖差的權重是3。該點陣圖差權重3大於距離閾值1,則可以將候選字串“CD”過濾掉。對第一候選字串集合進行本步驟的過濾操作後,得到第二候選字串集合。
在步驟304中,分別計算目標字串與第二候選字串集合的各個候選字串之間的字串距離,選擇字串距離在距離閾值範圍內的候選字串。
本步驟中,計算目標字串與步驟303中得到的第二候選字串集合的各個候選字串之間的字串距離,可以採用常規的距離演算法,選擇字串距離在距離閾值範圍內的候選
字串,確定為與目標字串相似的字串。在將目標字串與其中一個候選字串計算字串距離時,執行代價是O(N)*O(M),其中,N和M分別是目標字串和候選字串的長度。
此外,本實施例在執行上述的方法之前,還可以透過其他過濾方式進行一些預篩選,比如,去除掉與目標字串的字串長度差在長度差閾值範圍外的候選字串。
本實施例的字串距離計算方法,透過根據字串的點陣圖和點陣圖權重等因素,在進行字串距離計算之前,就在候選字串集合中過濾掉一些不可能相似的字串,使得最後參與字串距離計算的候選字串的數量大大減少,字串距離計算是一個執行代價較高的計算過程,執行代價是O(N)*O(M),時間較長,透過上述方法大大減少參與字串距離計算的候選字串的數量,將使得計算性能獲得顯著提升。經過實際測試,在一個計算位址相似度的項目中,採用本發明的方法後,獲得了大約1000倍的計算性能提升。
本發明實施例的字串距離計算方法,可以由圖4所示的計算設備執行,例如,該計算設備可以是伺服器。該計算設備可以包括:處理器410,通訊介面420,記憶體430,匯流排440。處理器410,通訊介面420,記憶體430透過匯流排440完成相互間的通訊。示例性的一種應用場景可以是,該計算設備在接收到一個業務資訊時,該業務資訊中包括該業務使用者的位址字串,計算設備可以將該位址字串作為目標字串,將預存的黑名單位址庫作為
候選字串集合,判斷該目標字串是否在集合中;如果在則確定該使用者在黑名單中,拒絕該使用者繼續進行該業務。
如圖4所示,計算設備中的記憶體430中可以儲存有字串距離計算邏輯指令,該記憶體例如可以是非易失性記憶體(non-volatile memory)。處理器410可以調用執行記憶體430中的字串距離計算邏輯指令,以執行本發明實施例的字串距離計算方法。
字串距離計算邏輯指令的功能如果以軟體功能單元的形式實現並作為獨立的產品銷售或使用時,可以儲存在一個電腦可讀取儲存介質中。基於這樣的理解,本公開的技術方案本質上或者說對現有技術做出貢獻的部分或者該技術方案的部分可以以軟體產品的形式體現出來,該電腦軟體產品儲存在一個儲存介質中,包括若干指令用以使得一台計算設備(可以是個人電腦,伺服器,或者網路設備等)執行本發明各個實施例所述方法的全部或部分步驟。而前述的儲存介質包括:隨身碟、行動硬碟、唯讀記憶體(ROM,Read-Only Memory)、隨機存取記憶體(RAM,Random Access Memory)、磁碟或者光碟等各種可以儲存程式碼的介質。
上述的字串距離計算邏輯指令,可以稱為“字串距離計算裝置”,該裝置可以劃分成各個功能模組。如圖5所示,該裝置可以包括:資訊獲取模組51和篩選處理模組52。
資訊獲取模組51,用於獲取所述候選字串和目標字串的關聯點陣圖資訊,所述關聯點陣圖資訊包括如下兩項中的至少一項:分別對應候選字串和目標字串的兩個字串點陣圖的點陣圖權重,或者,所述兩個字串點陣圖的點陣圖差的點陣圖權重;所述字串點陣圖包括多個標識位元,所述標識位元的取值包括第一取值和第二取值,所述第一取值表示該標識位元對應的預設標準字元包含在字串中,所述第二取值表示標識位元對應的預設標準字元未包含在字串中;所述字串點陣圖的點陣圖權重表示字串點陣圖中的第一取值的數量;所述點陣圖差是將兩個字串點陣圖中對應位置的標識位元的取值分別進行異或運算得到,所述點陣圖差的點陣圖權重表示所述點陣圖差中異或取值為真的標識位元的數量;篩選處理模組52,用於根據所述關聯點陣圖資訊,篩除掉所述候選字串集合中與目標字串的字串距離在距離閾值範圍之外的候選字串,並分別計算剩餘的候選字串與所述目標字串的字串距離。
在一個例子中,篩選處理模組52,用於在資訊獲取模組51獲取的關聯點陣圖資訊包括:分別對應候選字串和目標字串的兩個字串點陣圖的點陣圖權重時,如果候選字串對應的字串點陣圖的點陣圖權重,與目標字串對應的字串點陣圖的點陣圖權重的差值在距離閾值範圍之外,則將候選字串篩除。
在一個例子中,篩選處理模組52,用於在所述資訊
獲取模組51獲取的關聯點陣圖資訊包括:分別對應候選字串和目標字串的兩個字串點陣圖的點陣圖差的點陣圖權重時,如果所述兩個字串點陣圖的點陣圖差的點陣圖權重在距離閾值範圍之外,則將所述候選字串篩除。
在一個例子中,如圖6所示,該裝置中的篩選處理模組52,可以包括:計算單元521、第一篩選單元522、第二篩選單元523和距離計算單元524。
計算單元521,用於當給定所述目標字串時,計算所述目標字串的字串點陣圖和對應的點陣圖權重;第一篩選單元522,用於在候選字串集合中,根據預先儲存的候選字串的字串點陣圖的點陣圖權重,如果候選字串對應的點陣圖權重與目標字串對應的點陣圖權重的差值在距離閾值之外,則將所述候選字串篩除,剩餘的候選字串構成第一候選字串集合;第二篩選單元523,用於在所述第一候選字串集合中,分別計算各個候選字串與目標字串的兩個字串點陣圖的點陣圖差,以及點陣圖差的點陣圖權重;如果候選字串和目標字串的兩個字串點陣圖的點陣圖差的點陣圖權重在距離閾值範圍之外,則將所述候選字串篩除,得到第二候選字串集合;距離計算單元524,用於分別計算目標字串與所述第二候選字串集合中的各個候選字串之間的字串距離。
上述的字串距離計算邏輯指令的“字串距離計算裝置”,還可以是圖7所示的結構。該裝置可以包括:差異
獲取模組71和距離計算模組72。
差異獲取模組71,用於獲取所述候選字串和目標字串中所包含字元的字元差異資訊;距離計算模組72,用於若所述字元差異資訊大於差異閾值,則將所述候選字串由候選字串集合中篩除,並計算所述候選字串集合中剩餘的候選字串與所述目標字串的字串距離。
在一個例子中,差異獲取模組71,用於:獲取第一字元數目和第二字元數目,所述第一字元數目表示所述候選字串中包含的不同字元的數量,所述第二字元數目表示所述目標字串中包含的不同字元的數量;計算所述第一字元數目和第二字元數目的差值,作為所述字元差異資訊。
在一個例子中,差異獲取模組71,用於:獲取第三字元數目,所述第三字元數目表示:在所述候選字串和目標字串中,只包含於其中一個字串的字元的數量;將所述第三字元數目作為所述字元差異資訊。
在一個例子中,差異獲取模組71,用於:計算第一字元數目和第二字元數目的差值,所述第一字元數目表示候選字串中包含的不同字元的數量,所述第二字元數目表示所述目標字串中包含的不同字元的數量;將所述候選字串與目標字串比較,計算第三字元數目,所述第三字元數目表示:在所述候選字串和目標字串中,只包含於其中一個字串的字元的數量;所述距離計算模組72,用於:若第一字元數目和第
二字元數目的差值大於差異閾值,則將所述候選字串由候選字串集合中篩除;對於所述差異獲取模組由篩除後候選字串集合中剩餘的候選字串計算的第三字元數目,若第三字元數目大於差異閾值,則將候選字串由候選字串集合中篩除。
如圖8所示,該裝置中的差異獲取模組71可以包括:點陣圖計算單元711和差異計算單元712。
點陣圖計算單元711,用於將所述候選字串和目標字串,以字串點陣圖表示;所述字串點陣圖包括多個標識位元,所述標識位元的取值包括第一取值和第二取值,所述第一取值表示該標識位元對應的預設標準字元包含在字串中,所述第二取值表示所述標識位元對應的預設標準字元未包含在字串中;差異計算單元712,用於根據所述字串點陣圖,獲取所述字元差異資訊。
在一個例子中,差異計算單元712,用於:分別計算對應候選字串和目標字串的兩個字串點陣圖的點陣圖權重,所述字串點陣圖的點陣圖權重表示所述字串點陣圖中的第一取值的數量;計算候選字串對應的字串點陣圖的點陣圖權重,與目標字串對應的字串點陣圖的點陣圖權重的差值。
在一個例子中,差異計算單元712,用於:將候選字串和目標字串的兩個字串點陣圖中對應位置的標識位元的取值分別進行異或運算,得到點陣圖差;計算所述點陣圖
差的點陣圖權重,所述點陣圖權重表示點陣圖差中異或取值為真的標識位元的數量。
在一個例子中,所述差異閾值為字串距離的距離閾值。
以上所述僅為本發明的較佳實施例而已,並不用以限制本發明,凡在本發明的精神和原則之內,所做的任何修改、等同替換、改進等,均應包含在本發明保護的範圍之內。
Claims (24)
- 一種字串距離計算方法,其中,該方法用於由候選字串集合中選擇與給定的目標字串相似的候選字串;該方法包括:獲取該候選字串和目標字串的關聯點陣圖資訊,該關聯點陣圖資訊包括如下兩項中的至少一項:分別對應候選字串和目標字串的兩個字串點陣圖的點陣圖權重,或者,該兩個字串點陣圖的點陣圖差的點陣圖權重;根據該關聯點陣圖資訊,篩除掉該候選字串集合中與目標字串的字串距離在距離閾值範圍之外的候選字串,並分別計算剩餘的候選字串與該目標字串的字串距離;該字串點陣圖包括多個標識位元,該標識位元的取值包括第一取值和第二取值,該第一取值表示該標識位元對應的預設標準字元包含在字串中,該第二取值表示該標識位元對應的預設標準字元未包含在字串中;該字串點陣圖的點陣圖權重表示該字串點陣圖中的第一取值的數量;該點陣圖差是將兩個字串點陣圖中對應位置的標識位元的取值分別進行異或運算得到,該點陣圖差的點陣圖權重表示該點陣圖差中異或取值為真的標識位元的數量。
- 根據申請專利範圍第1項所述的方法,其中,當獲取的該關聯點陣圖資訊包括:分別對應候選字串和目標字串的兩個字串點陣圖的點陣圖權重時;該根據關聯點陣圖資訊,篩除掉候選字串集合中與目標字串的距離在距離閾值範圍之外的候選字串,包括: 如果該候選字串對應的字串點陣圖的點陣圖權重,與目標字串對應的字串點陣圖的點陣圖權重的差值在距離閾值範圍之外,則將候選字串篩除。
- 根據申請專利範圍第1項所述的方法,其中,當關聯點陣圖資訊包括:分別對應候選字串和目標字串的兩個字串點陣圖的點陣圖差的點陣圖權重時;該根據關聯點陣圖資訊,篩除掉候選字串集合中與目標字串的距離在距離閾值範圍之外的候選字串,包括:如果該兩個字串點陣圖的點陣圖差的點陣圖權重在距離閾值範圍之外,則將該候選字串篩除。
- 根據申請專利範圍第1項所述的方法,其中,該候選字串集合中的每個候選字串的字串點陣圖及對應的點陣圖權重,被預先計算並儲存;該獲取候選字串和目標字串的關聯點陣圖資訊,根據關聯點陣圖資訊,篩除掉候選字串集合中與目標字串的字串距離在距離閾值範圍之外的候選字串,並分別計算剩餘候選字串與目標字串的字串距離,包括:當給定該目標字串時,計算該目標字串的字串點陣圖和對應的點陣圖權重;在候選字串集合中,根據預先儲存的候選字串的字串點陣圖的點陣圖權重,如果候選字串對應的點陣圖權重與目標字串對應的點陣圖權重的差值在距離閾值之外,則將該候選字串篩除,剩餘的候選字串構成第一候選字串集合; 在該第一候選字串集合中,分別計算各個候選字串與目標字串的兩個字串點陣圖的點陣圖差,以及該點陣圖差的點陣圖權重;如果候選字串和目標字串的兩個字串點陣圖的點陣圖差的點陣圖權重在距離閾值範圍之外,則將該候選字串篩除,得到第二候選字串集合;分別計算目標字串與該第二候選字串集合中的各個候選字串之間的字串距離。
- 一種字串距離計算方法,其中,該方法用於由候選字串集合中選擇與給定的目標字串相似的候選字串;該方法包括:獲取該候選字串和目標字串中所包含字元的字元差異資訊;若該字元差異資訊大於差異閾值,則將該候選字串由候選字串集合中篩除,並計算該候選字串集合中剩餘的候選字串與該目標字串的字串距離。
- 根據申請專利範圍第5項所述的方法,其中,該獲取該候選字串和目標字串中所包含字元的字元差異資訊,包括:獲取第一字元數目和第二字元數目,該第一字元數目表示該候選字串中包含的不同字元的數量,該第二字元數目表示該目標字串中包含的不同字元的數量;計算該第一字元數目和第二字元數目的差值,作為該字元差異資訊。
- 根據申請專利範圍第5項所述的方法,其中,該獲 取該候選字串和目標字串中所包含字元的字元差異資訊,包括:獲取第三字元數目,該第三字元數目表示:在該候選字串和目標字串中,只包含於其中一個字串的字元的數量;將該第三字元數目作為該字元差異資訊。
- 根據申請專利範圍第5項所述的方法,其中,該獲取候選字串和目標字串中所包含字元的字元差異資訊,若該字元差異資訊大於差異閾值,則將該候選字串由候選字串集合中篩除,包括:計算第一字元數目和第二字元數目的差值,該第一字元數目表示該候選字串中包含的不同字元的數量,該第二字元數目表示該目標字串中包含的不同字元的數量,若該差值大於差異閾值,則將該候選字串由候選字串集合中篩除;對於候選字串集合中剩餘的候選字串,將該候選字串與目標字串比較,計算第三字元數目,該第三字元數目表示:在該候選字串和目標字串中,只包含於其中一個字串的字元的數量,若該第三字元數目大於差異閾值,則將該候選字串由候選字串集合中篩除。
- 根據申請專利範圍第5項所述的方法,其中,該獲取該候選字串和目標字串中所包含字元的字元差異資訊,包括:將該候選字串和目標字串,以字串點陣圖表示;該字 串點陣圖包括多個標識位元,該標識位元的取值包括第一取值和第二取值,該第一取值表示該標識位元對應的預設標準字元包含在字串中,該第二取值表示該標識位元對應的預設標準字元未包含在字串中;根據該字串點陣圖,獲取該字元差異資訊。
- 根據申請專利範圍第9項所述的方法,其中,該根據該字串點陣圖,獲取該字元差異資訊,包括:分別計算對應候選字串和目標字串的兩個字串點陣圖的點陣圖權重,該字串點陣圖的點陣圖權重表示該字串點陣圖中的第一取值的數量;計算候選字串對應的字串點陣圖的點陣圖權重,與目標字串對應的字串點陣圖的點陣圖權重的差值。
- 根據申請專利範圍第9項所述的方法,其中,該根據該字串點陣圖,獲取該字元差異資訊,包括:將候選字串和目標字串的兩個字串點陣圖中對應位置的標識位元的取值分別進行異或運算,得到點陣圖差;計算該點陣圖差的點陣圖權重,該點陣圖權重表示該點陣圖差中異或取值為真的標識位元的數量。
- 根據申請專利範圍第5~11項中任一項所述的方法,其中,該差異閾值為字串距離的距離閾值。
- 一種字串距離計算裝置,其中,該裝置用於由候選字串集合中選擇與給定的目標字串相似的候選字串;該裝置包括:資訊獲取模組,用於獲取該候選字串和目標字串的關 聯點陣圖資訊,該關聯點陣圖資訊包括如下兩項中的至少一項:分別對應候選字串和目標字串的兩個字串點陣圖的點陣圖權重,或者,該兩個字串點陣圖的點陣圖差的點陣圖權重;該字串點陣圖包括多個標識位元,該標識位元的取值包括第一取值和第二取值,該第一取值表示該標識位元對應的預設標準字元包含在字串中,該第二取值表示標識位元對應的預設標準字元未包含在字串中;該字串點陣圖的點陣圖權重表示該字串點陣圖中的第一取值的數量;該點陣圖差是將兩個字串點陣圖中對應位置的標識位元的取值分別進行異或運算得到,該點陣圖差的點陣圖權重表示該點陣圖差中異或取值為真的標識位元的數量;篩選處理模組,用於根據該關聯點陣圖資訊,篩除掉該候選字串集合中與目標字串的字串距離在距離閾值範圍之外的候選字串,並分別計算剩餘的候選字串與該目標字串的字串距離。
- 根據申請專利範圍第13項所述的裝置,其中,該篩選處理模組,用於在該資訊獲取模組獲取的關聯點陣圖資訊包括:分別對應候選字串和目標字串的兩個字串點陣圖的點陣圖權重時,如果該候選字串對應的字串點陣圖的點陣圖權重,與目標字串對應的字串點陣圖的點陣圖權重的差值在距離閾值範圍之外,則將候選字串篩除。
- 根據申請專利範圍第13項所述的裝置,其中,該篩選處理模組,用於在該資訊獲取模組獲取的關聯點陣圖資訊包括:分別對應候選字串和目標字串的兩個字 串點陣圖的點陣圖差的點陣圖權重時,如果該兩個字串點陣圖的點陣圖差的點陣圖權重在距離閾值範圍之外,則將該候選字串篩除。
- 根據申請專利範圍第13項所述的裝置,其中,該篩選處理模組包括:計算單元,用於當給定該目標字串時,計算該目標字串的字串點陣圖和對應的點陣圖權重;第一篩選單元,用於在候選字串集合中,根據預先儲存的候選字串的字串點陣圖的點陣圖權重,如果候選字串對應的點陣圖權重與目標字串對應的點陣圖權重的差值在距離閾值之外,則將該候選字串篩除,剩餘的候選字串構成第一候選字串集合;第二篩選單元,用於在該第一候選字串集合中,分別計算各個候選字串與目標字串的兩個字串點陣圖的點陣圖差,以及該點陣圖差的點陣圖權重;如果候選字串和目標字串的兩個字串點陣圖的點陣圖差的點陣圖權重在距離閾值範圍之外,則將該候選字串篩除,得到第二候選字串集合;距離計算單元,用於分別計算目標字串與該第二候選字串集合中的各個候選字串之間的字串距離。
- 一種字串距離計算裝置,其中,該裝置用於由候選字串集合中選擇與給定的目標字串相似的候選字串;該裝置包括:差異獲取模組,用於獲取該候選字串和目標字串中所 包含字元的字元差異資訊;距離計算模組,用於若該字元差異資訊大於差異閾值,則將該候選字串由候選字串集合中篩除,並計算該候選字串集合中剩餘的候選字串與該目標字串的字串距離。
- 根據申請專利範圍第17項所述的裝置,其中,該差異獲取模組,用於:獲取第一字元數目和第二字元數目,該第一字元數目表示該候選字串中包含的不同字元的數量,該第二字元數目表示該目標字串中包含的不同字元的數量;計算該第一字元數目和第二字元數目的差值,作為該字元差異資訊。
- 根據申請專利範圍第17項所述的裝置,其中,該差異獲取模組,用於:獲取第三字元數目,該第三字元數目表示:在該候選字串和目標字串中,只包含於其中一個字串的字元的數量;將該第三字元數目作為該字元差異資訊。
- 根據申請專利範圍第17項所述的裝置,其中,該差異獲取模組,用於:計算第一字元數目和第二字元數目的差值,該第一字元數目表示該候選字串中包含的不同字元的數量,該第二字元數目表示該目標字串中包含的不同字元的數量;將該候選字串與目標字串比較,計算第三字元數目,該第三字元數目表示:在該候選字串和目標字串中,只包含於其中一個字串的字元的數量;該距離計算模組,用於:若第一字元數目和第二字元數目的差值大於差異閾值,則將該候選字串由候選字串集 合中篩除;對於該差異獲取模組由篩除後候選字串集合中剩餘的候選字串計算的第三字元數目,若第三字元數目大於差異閾值,則將候選字串由候選字串集合中篩除。
- 根據申請專利範圍第17項所述的裝置,其中,該差異獲取模組包括:點陣圖計算單元,用於將該候選字串和目標字串,以字串點陣圖表示;該字串點陣圖包括多個標識位元,該標識位元的取值包括第一取值和第二取值,該第一取值表示該標識位元對應的預設標準字元包含在字串中,該第二取值表示該標識位元對應的預設標準字元未包含在字串中;差異計算單元,用於根據該字串點陣圖,獲取該字元差異資訊。
- 根據申請專利範圍第21項所述的裝置,其中,該差異計算單元,用於:分別計算對應候選字串和目標字串的兩個字串點陣圖的點陣圖權重,該字串點陣圖的點陣圖權重表示該字串點陣圖中的第一取值的數量;計算候選字串對應的字串點陣圖的點陣圖權重,與目標字串對應的字串點陣圖的點陣圖權重的差值。
- 根據申請專利範圍第21項所述的裝置,其中,該差異計算單元,用於:將候選字串和目標字串的兩個字串點陣圖中對應位置的標識位元的取值分別進行異或運算,得到點陣圖差;計算該點陣圖差的點陣圖權重,該點陣圖權重表示點陣圖差中異或取值為真的標識位元的數量。
- 根據申請專利範圍第17~23項中任一項所述的裝置,其中,該差異閾值為字串距離的距離閾值。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
??201610096589.9 | 2016-02-22 | ||
CN201610096589.9A CN107102998A (zh) | 2016-02-22 | 2016-02-22 | 一种字符串距离计算方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201730757A true TW201730757A (zh) | 2017-09-01 |
TWI659358B TWI659358B (zh) | 2019-05-11 |
Family
ID=59658856
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW105143941A TWI659358B (zh) | 2016-02-22 | 2016-12-29 | 字串距離計算方法和裝置 |
Country Status (6)
Country | Link |
---|---|
US (1) | US11256756B2 (zh) |
EP (1) | EP3422209B1 (zh) |
JP (1) | JP6912488B2 (zh) |
CN (1) | CN107102998A (zh) |
TW (1) | TWI659358B (zh) |
WO (1) | WO2017143907A1 (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108268592B (zh) * | 2017-12-08 | 2020-07-10 | 中国平安财产保险股份有限公司 | 基于json数据的筛选方法、装置、服务器和存储介质 |
CN108984695B (zh) * | 2018-07-04 | 2021-04-06 | 科大讯飞股份有限公司 | 一种字符串匹配方法及装置 |
US11416661B2 (en) * | 2019-08-07 | 2022-08-16 | Synopsys, Inc. | Automatic derivation of integrated circuit cell mapping rules in an engineering change order flow |
CN111457543B (zh) * | 2020-04-21 | 2021-08-27 | 宁波奥克斯电气股份有限公司 | 一种空调器的控制方法、系统、空调器及存储介质 |
CN112417835B (zh) * | 2020-11-18 | 2023-11-14 | 云南电网有限责任公司信息中心 | 基于自然语言处理技术的采购文件智能化审查方法及系统 |
CN113012265B (zh) * | 2021-04-22 | 2024-04-30 | 中国平安人寿保险股份有限公司 | 针式打印字符图像生成方法、装置、计算机设备和介质 |
US11973800B2 (en) * | 2021-08-20 | 2024-04-30 | Palo Alto Networks, Inc. | Domain squatting detection |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5847064B2 (ja) * | 1978-07-08 | 1983-10-20 | 工業技術院長 | 文字読取方式 |
US5774588A (en) * | 1995-06-07 | 1998-06-30 | United Parcel Service Of America, Inc. | Method and system for comparing strings with entries of a lexicon |
US20050086234A1 (en) * | 2003-10-15 | 2005-04-21 | Sierra Wireless, Inc., A Canadian Corporation | Incremental search of keyword strings |
US8224830B2 (en) * | 2005-03-19 | 2012-07-17 | Activeprime, Inc. | Systems and methods for manipulation of inexact semi-structured data |
JP5190192B2 (ja) | 2006-10-18 | 2013-04-24 | 新日鉄住金ソリューションズ株式会社 | 検索装置、検索方法及びプログラム |
US8189931B2 (en) | 2008-01-04 | 2012-05-29 | International Business Machines Corporation | Method and apparatus for matching of bracketed patterns in test strings |
JP5116775B2 (ja) * | 2007-11-19 | 2013-01-09 | 日本電信電話株式会社 | 情報検索方法及び装置及びプログラム及びコンピュータ読取可能な記録媒体 |
CN101572693A (zh) * | 2008-04-29 | 2009-11-04 | 国际商业机器公司 | 用于并行模式匹配的设备和方法 |
JP2009271584A (ja) | 2008-04-30 | 2009-11-19 | Tokyo Metropolitan Univ | 類似情報検索システムおよび類似情報検索プログラム |
CN102918524B (zh) * | 2010-05-28 | 2016-06-01 | 富士通株式会社 | 信息生成程序、装置、方法以及信息检索程序、装置、方法 |
US9020911B2 (en) * | 2012-01-18 | 2015-04-28 | International Business Machines Corporation | Name search using multiple bitmap distributions |
CN103455753B (zh) * | 2012-05-30 | 2016-07-13 | 北京金山安全软件有限公司 | 一种样本文件分析方法及装置 |
CN103838789A (zh) * | 2012-11-27 | 2014-06-04 | 大连灵动科技发展有限公司 | 一种文本相似度计算方法 |
CN104462055B (zh) * | 2013-09-23 | 2017-05-10 | 北京捷软世纪信息技术有限公司 | 一种名称相似度获取方法及装置 |
CN104008119B (zh) * | 2013-12-30 | 2017-09-26 | 西南交通大学 | 一种一对多的混合字符串融合比对方法 |
CN104484391B (zh) * | 2014-12-11 | 2017-11-21 | 北京国双科技有限公司 | 字符串相似度的计算方法和装置 |
CN105117466A (zh) * | 2015-08-27 | 2015-12-02 | 中国电信股份有限公司湖北号百信息服务分公司 | 一种互联网信息筛选系统及方法 |
US9965519B2 (en) * | 2015-11-25 | 2018-05-08 | Passport Health Communications, Inc. | Document linkage and forwarding |
-
2016
- 2016-02-22 CN CN201610096589.9A patent/CN107102998A/zh active Pending
- 2016-12-29 TW TW105143941A patent/TWI659358B/zh active
-
2017
- 2017-02-09 JP JP2018544326A patent/JP6912488B2/ja active Active
- 2017-02-09 EP EP17755736.0A patent/EP3422209B1/en active Active
- 2017-02-09 WO PCT/CN2017/073134 patent/WO2017143907A1/zh active Application Filing
-
2018
- 2018-08-21 US US16/107,027 patent/US11256756B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2019512127A (ja) | 2019-05-09 |
WO2017143907A1 (zh) | 2017-08-31 |
JP6912488B2 (ja) | 2021-08-04 |
US20180357332A1 (en) | 2018-12-13 |
EP3422209A1 (en) | 2019-01-02 |
EP3422209A4 (en) | 2019-07-31 |
EP3422209B1 (en) | 2022-07-06 |
US11256756B2 (en) | 2022-02-22 |
CN107102998A (zh) | 2017-08-29 |
TWI659358B (zh) | 2019-05-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TW201730757A (zh) | 字串距離計算方法和裝置 | |
WO2019128529A1 (zh) | Url攻击检测方法、装置以及电子设备 | |
CN104751055B (zh) | 一种基于纹理的分布式恶意代码检测方法、装置及系统 | |
CN108595710B (zh) | 一种快速的海量图片去重方法 | |
US9619501B2 (en) | Index scan device and index scan method | |
JP2019220144A (ja) | 詐欺検出を改善するためのデータ拡張の方法、デバイス、およびシステム | |
CN111368289B (zh) | 一种恶意软件检测方法和装置 | |
CN112241530B (zh) | 恶意pdf文档的检测方法及电子设备 | |
CN111869176B (zh) | 用于恶意软件签名生成的系统和方法 | |
CN112329012B (zh) | 针对包含JavaScript的恶意PDF文档的检测方法及电子设备 | |
CN107273746A (zh) | 一种基于apk字符串特征的变种恶意软件检测方法 | |
CN106909575B (zh) | 文本聚类方法和装置 | |
CN109783805B (zh) | 一种网络社区用户识别方法、装置和可读存储介质 | |
CN106599097B (zh) | 海量特征串集合的匹配方法和装置 | |
JP2013206193A (ja) | 情報変換プログラム、情報変換装置および情報変換方法 | |
CN107070932B (zh) | 社会网络动态发布中防止标签邻居攻击的匿名方法 | |
CN110083731B (zh) | 图像检索方法、装置、计算机设备及存储介质 | |
CN110958244A (zh) | 一种基于深度学习的仿冒域名检测方法及装置 | |
Sun et al. | Corner detection via scale-space behavior-guided trajectory tracing | |
CN116975864A (zh) | 恶意代码检测方法、装置、电子设备及存储介质 | |
CN114332745B (zh) | 一种基于深度神经网络的近重复视频大数据清洗方法 | |
CN113688240A (zh) | 威胁要素提取方法、装置、设备及存储介质 | |
CN114841256A (zh) | 一种基于多维特征融合的dga域名分类方法 | |
Zhao et al. | One‐shot video‐based person re‐identification with variance subsampling algorithm | |
WO2021012211A1 (zh) | 一种为数据建立索引的方法以及装置 |