數據處理的方法、裝置和設備的制造方法
【專利摘要】一種數據處理的方法、裝置和設備,該方法包括:根據相似度閾值j和目標數據,生成第一數據集合,目標數據包括T1個第一比特組,第一數據集合包括M1個第一數據,M1個第一數據與從T1個第一比特組中選取j個第一比特組時的M1種組合方式一一對應;根據j和N個預存數據,生成N個第二數據集合;N個預存數據與N個第二數據集合一一對應,每個預存數據包括T2個第二比特組,每個第二數據集合包括M2個第二數據,第i個第二數據集合中的每個第二數據包括第i個預存數據中的T2個第二比特組,第i個第二數據集合中的M2個第二數據與從T2個第二比特組中選取j個第二比特組時的M2種組合方式一一對應;根據第一數據集合和第二數據集合,從N個預存數據中確定第一預存數據,能夠降低相似數據查找過程的復雜度。
【專利說明】
數據處理的方法、裝置和設備
技術領域
[0001] 本發明涉及數據信息技術領域,并且更具體地,涉及數據處理的方法、裝置和設 備。
【背景技術】
[0002] 相似檢測技術廣泛應用于互聯網,圖像識別,大數據分析和數據縮減等信息技術 (IT,Information Technology)領域。相似數據查找是相似檢測技術中的重要環節。
[0003] 隨著對查找精度和智能性的要求,目前,該相似數據查找的輸出結果需要是"相 似"的數據,即,假設所處理的數據包括α個字節(Byte),則所輸出的"相似"的數據之間有β (β<α)個字節相同。其中,β可以是管理員或者系統規定的相似度閾值。
[0004] 如何降低相似數據查找過程的復雜度,成為業界亟需解決的問題。
【發明內容】
[0005] 本發明實施例提供一種數據處理的方法、裝置和設備,能夠降低相似數據查找過 程的復雜度,減少相似數據查找的處理時間,改善用戶體驗。
[0006] 第一方面,提供了一種數據處理的方法,該方法包括:根據預設的相似度閾值j和 目標數據,生成第一數據集合,其中,該目標數據包括T 1個第一比特組,每個第一比特組包 括k比特,該第一數據集合包括仏個第一數據,該M1個第一數據與從該T 1個第一比特組中選 取j個第一比特組時的M1種組合方式一一對應,T1^ 2,k 2 UT1Sj 2 1;根據該相似度閾值j 和N個預存數據,生成N個第二數據集合,其中,該N個預存數據與該N個第二數據集合一一對 應,每個預存數據包括T 2個第二比特組,每個第二比特組包括k比特,每個第二數據集合包 括此個第二數據,第i個第二數據集合中的每個第二數據包括第i個預存數據中的1~ 2個第二 比特組,第i個第二數據集合中的M2個第二數據與從該T2個第二比特組中選取j個第二比特 組時的M 2種組合方式一一對應,N 2 I,T2 2 T1,i e [ I,N];根據該第一數據集合和該第二數據 集合,從該N個預存數據中確定第一預存數據,該第一預存數據和該目標數據之間相似度與 該相似度閾值j相對應,其中,該第一預存數據所對應的第二數據集合與該第一數據集合之 間包括至少一個相同的數據。
[0007] 根據本發明實施例的數據處理的方法,通過根據目標數據確定包括仏個第一數據 的第一數據集合,并根據N個預存數據確定N個第二數據集合,其中,第一數據集合中的此個 第一數據與從包括T 1個第一比特組的目標數據中選擇j個第一比特組時的M1種組合方式一 一對應,每個第二數據集合中的M 2個第二數據與從包括T2個第二比特組的預存數據中選擇j 個第二比特組時的M2種組合方式一一對應,其中,j為預設的相似度閾值,從而,在一個第二 數據集合與該第一數據集合之間包括至少一個相同的數據時,能夠將該第二數據集合所對 應的預存數據作為與該目標數據之間的相似度滿足該相似度閾值j所對應的相似度要求的 相似數據,即,能夠將相似數據查找過程轉化為相同數據的判定過程,從而,能夠降低相似 數據查找的復雜度,減少相似數據查找的處理時間,改善用戶體驗。
[0008] 結合第一方面,在第一方面的第一種實現方式中,該根據預設的相似度閾值j和目 標數據,生成第一數據集合,包括:根據目標數據生成M 3個子目標數據,其中,該M3個子目標 數據與1^個第一比特組的所有可能的排列方式一一對應;根據預設的相似度閾值j和該M 3個 子目標數據,生成第一數據集合,其中,該M1個第一數據與從該M3個子目標數據中的每個子 目標數據中選取j個第一比特組時的M 1種組合方式一一對應;以及,根據該相似度閾值JlPN 個預存數據,生成N個第二數據集合,包括:根據第i個預存數據生成M4個子預存數據,其中, 該M4個子目標數據與第i個預存數據的T 2f第二比特組的所有可能的排列方式一一對應;根 據預設的相似度閾值j和每個預存數據所對應的M4個子預存數據,生成第二數據集合,其 中,第i個第二數據集合中的M 2個第二數據與從該第i個預存數據所對應的M4個子預存數據 中的每個子預存數據中選取j個第二比特組時的M 2種組合方式一一對應。
[0009] 根據本發明實施例的數據處理的方法,通過確定目標數據中的各第一比特組所有 可能的排列方式,并確定各預存數據中的各第二比特組的所有可能的排列方式,從而能夠 使該第一數據集合中的第一數據對應在目標數據的各第一比特組的所有可能排列方式下 從該T 1個第一比特組中選取j個第一比特組時的組合方式,使每個第二數據集合中的第二 數據對應在所對應的預存數據的各第二比特組的所有可能排列方式下從該T 2個第二比特 組中選取j個第二比特組時的組合方式,從而,能夠提高的相似數據查找的可靠性和準確 性。
[0010] 結合第一方面及其上述實現方式,在第一方面的第二種實現方式中,在根據預設 的相似度閾值j和目標數據,生成第一數據集合之前,該方法還包括:根據預設規則,對該目 標數據中的T 1個第一比特組進行排序;以及在根據預設的相似度閾值j和目標數據,生成第 一數據集合之前,該方法還包括:根據該預設規則,對每個預存數據中的T 2f第二比特組進 tx排序。
[0011] 根據本發明實施例的數據處理的方法,通過在生成通過基于相同的預設規則對目 標數據和預存數據中的各比特組進行排序,能夠確保所確定的第一數據集合和第二數據集 合中包括相同的比特組的數據中各比特組的位置也相同,從而,能夠在確保相似數據查找 的可靠性和準確性的前提下,能夠進一步降低相似數據查找的復雜度,減少相似數據查找 的處理時間。
[0012] 結合第一方面及其上述實現方式,在第一方面的第三種實現方式中,該根據預設 的相似度閾值j和目標數據,生成第一數據集合,包括:根據預設的相似度閾值j和該第一比 特組的數量T 1,確定第一生成矩陣,該第一生成矩陣包括在第一維度方向上排列的M1個第一 向量,每個第一向量包括在第二維度方向上排列的T 1個元素,該T1個元素包括j個"Γ元素和 Tpj個"0"元素,任意兩個第一向量彼此之間至少存在一個在該第二維度方向上的排列位 置不同的"0"元素或"Γ元素;根據該第一生成矩陣和目標數據,生成第一數據集合。
[0013] 結合第一方面及其上述實現方式,在第一方面的第四種實現方式中,該根據該相 似度閾值j和N個預存數據,生成N個第二數據集合,包括:根據預設的相似度閾值j和該第二 比特組的數量T 2,確定第二生成矩陣,該第二生成矩陣包括在第一維度方向上排列的M2個第 二向量,每個第二向量包括在第二維度方向上排列的T 2個元素,該T2個元素包括j個"Γ元素 和T2 +j個"0"元素,任意兩個第二向量彼此之間至少存在一個在該第二維度方向上的排列 位置不同的"〇"元素或"Γ元素;根據該第二生成矩陣和N個預存數據,生成N個第二數據集 合。
[0014] 結合第一方面及其上述實現方式,在第一方面的第五種實現方式中,該根據該第 一數據集合和該第二數據集合,從該N個預存數據中確定第一預存數據,包括:從備選模式 中確定查找模式,該備選模式包括快速模式和完整模式;當該查找模式為該快速模式時,基 于各該第一數據在該第一數據集合中的排序,按預設順序進行y次查找處理,該y次查找處 理與該第一數據集合中基于該預設順序的前y個第一數據一一對應,其中,第X次查找處理 用于確定該N個第二數據集合中是否存在與第X個第一數據相同的數據,并在首次查找到與 該第一數據相同的數據時,將與該第一數據相同的數據所屬于的第二數據集合所對應的預 存數據作為該第一預存數據,其中,xe [I,y],y <M1;當該查找模式為該完整模式時,基于 各該第一數據在該第一數據集合中的排序,按預設順序進行y次查找處理,該y次查找處理 與該第一數據集合中基于該預設順序的前y個第一數據一一對應,其中,第X次查找處理用 于確定該N個第二數據集合中是否存在與第X個第一數據相同的數據,如果首次查找到的與 該第一數據相同的數據屬于至少兩個第二數據集合,則將該至少兩個第二數據集合所對應 的預存數據中與該目標數據之間存在相同的比特組的數量最多的預存數據作為該第一預 存數據。
[0015] 根據本發明實施例的數據處理的方法,通過設置快速模式和完整模式,并在快速 模式下輸出預存數據中所有相似度滿足相似度閾值j所對應的要求的數據,在完整模式輸 出預存數據中相似度滿足相似度閾值j所對應的要求且與目標數據之間的相似度最高的數 據,能夠靈活應對不同的用戶需求,進一步提高用戶體驗。
[0016] 結合第一方面及其上述實現方式,在第一方面的第六種實現方式中,該目標數據 和該預存數據為指紋數據。
[0017] 結合第一方面及其上述實現方式,在第一方面的第七種實現方式中,A(T1J) ^M1 >C(Ti,j),A(T2,j)>M2>C(T2,j)〇
[0018] 第二方面,提供了一種數據處理的裝置,包括用于執行上述第一方面以及第一方 面的各實現方式中的各步驟的單元或模塊。當本發明第一方面提供的方法通過軟件模塊實 現時,本發明提供的數據處理的裝置可以指示軟件模塊或軟件包。
[0019] 第三方面,提供了一種數據處理的設備,包括存儲器和處理器,該存儲器用于存儲 計算機程序,該處理器用于從存儲器中調用并運行該計算機程序,使得數據數據處理的設 備執行上述第一方面,及其各種實現方式中的任一種數據處理的方法。
[0020] 第四方面,提供了一種計算機可讀存儲介質,所述計算機可讀存儲介質存儲有程 序,當存儲在所述計算機可讀存儲介質中的程序被計算機設備運行時,使得所述計算機設 備執行上述第一方面,及其各種實現方式中的任一種數據傳輸的方法。
【附圖說明】
[0021] 為了更清楚地說明本發明實施例的技術方案,下面將對本發明實施例中所需要使 用的附圖作簡單地介紹,顯而易見地,下面所描述的附圖僅僅是本發明的一些實施例,對于 本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他 的附圖。
[0022] 圖1是根據本發明實施例的數據處理的方法的示意性流程圖。
[0023]圖2是本發明實施例中目標數據和預存數據的一例的示意圖。
[0024]圖3是本發明實施例中經過排序處理后的目標數據和預存數據的一例的示意圖。
[0025] 圖4是根據本發明實施例的生成數據集合的過程的一例的示意圖。
[0026] 圖5是根據本發明實施例的相似數據查找過程的示意圖。
[0027] 圖6是根據本發明實施例的哈希表的生成方式的示意圖。
[0028] 圖7是根據本發明實施例的哈希表的一例的示意圖。
[0029] 圖8是根據本發明實施例的快速模式下的查找過程的示意性流程圖。
[0030] 圖9是根據本發明實施例的數據處理的裝置的示意性框圖。
[0031] 圖10是根據本發明實施例的數據處理的設備的示意性結構圖。
【具體實施方式】
[0032]下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完 整地描述,顯然,所描述的實施例是本發明一部分實施例,而不是全部的實施例。基于本發 明中的實施例,本領域普通技術人員在沒有作出創造性勞動前提下所獲得的所有其他實施 例,都屬于本發明保護的范圍。
[0033] 本發明實施例提供的數據處理的方法、裝置和設備,可以應用于計算機上,該計算 機包括硬件層、運行在硬件層之上的操作系統層,以及運行在操作系統層上的應用層。該硬 件層包括CPU、存儲器管理單元(MMU,Memory Management Unit)和內存(也稱為存儲器)等 硬件。該操作系統可以是任意一種或多種通過進程實現業務處理的計算機操作系統,例如, Linux系統、Unix系統、Android系統、iOS系統或windows系統等。該應用層包含瀏覽器、通訊 錄、文字處理軟件、即時通信軟件等應用。并且,在本發明實施例中,該計算機可以是智能手 機等手持設備,也可以是個人計算機等終端設備,本發明并未特別限定,只要能夠通過運行 記錄有本發明實施例的數據處理的方法的代碼的程序,以根據本發明實施例的數據處理的 方法對數據進行處理即可。本發明實施例的數據處理的方法的執行主體可以是計算機設 備,或者,本發明實施例的數據處理的方法的執行主體可以是計算機設備中能夠調用程序 并執行程序的功能模塊。
[0034] 此外,本發明的各個方面或特征可以實現成方法、裝置或使用標準編程和/或工程 技術的制品。本申請中使用的術語"制品"涵蓋可從任何計算機可讀器件、載體或介質訪問 的計算機程序。例如,計算機可讀介質可以包括,但不限于:磁存儲器件(例如,硬盤、軟盤或 磁帶等),光盤(例如,⑶(Compact Disk,壓縮盤)、DVD(Digital Versatile Disk,數字通用 盤)等),智能卡和閃存器件(例如,EPROM(Erasable Programmable Read-Only Memory,可 擦寫可編程只讀存儲器)、卡、棒或鑰匙驅動器等)。另外,本文描述的各種存儲介質可代表 用于存儲信息的一個或多個設備和/或其它機器可讀介質。術語"機器可讀介質"可包括但 不限于,無線信道和能夠存儲、包含和/或承載指令和/或數據的各種其它介質。
[0035]圖1是根據本發明實施例的數據處理的方法100的示意性流程圖。如圖1所示,該方 法100包括:
[0036] S110,根據預設的相似度閾值j和目標數據,生成第一數據集合,其中,該目標數據 包括T1個第一比特組,每個第一比特組包括k比特,該第一數據集合包括%個第一數據,該M 1 個第一數據與從該T1個第一比特組中選取j個第一比特組時的M1種組合方式一一對應,TP 2,k> l,Ti>j> 1;
[0037] 根據該相似度閾值j和N個預存數據,生成N個第二數據集合,其中,該N個預存數據 與該N個第二數據集合一一對應,每個預存數據包括T 2個第二比特組,每個第二比特組包括 k比特,每個第二數據集合包括M2個第二數據,第i個第二數據集合中的每個第二數據包括 第i個預存數據中的!^個第二比特組,第i個第二數據集合中的M 2個第二數據與從該T2個第 二比特組中選取j個第二比特組時的M2種組合方式--對應,N 2 I,T2 2 T1,i e [I,N];
[0038] S120,根據該第一數據集合和該第二數據集合,從該N個預存數據中確定第一預存 數據,該第一預存數據和該目標數據之間相似度與該相似度閾值j相對應,其中,該第一預 存數據所對應的第二數據集合與該第一數據集合之間包括至少一個相同的數據。
[0039] 本發明實施例的數據處理的方法可以應用于從多個預存數據中查找與選定的目 標數據之間的相似度滿足預設要求的數據的過程。
[0040] 在本發明實施例中,"數據"可以包括至少兩個比特組,每個比特組包括至少一個 比特。
[0041] 作為示例而非限定,在本發明實施例中,可以將一個字節(Byte)作為一個比特組, 艮P,此情況下,一個比特組包括8個比特。
[0042] 可選地,該目標數據和該預存數據為指紋數據。
[0043]具體地說,本發明實施例的數據處理的方法可以應用于相似指紋數據的查找過 程,即,可以建立指紋數據庫,該指紋數據庫包括一個或多個預先存儲的指紋數據(即,N個 預存數據的一例),以下,為了便于理解和區分,稱為"預存指紋數據",基于本發明實施例的 數據處理的方法,能夠從該指紋數據庫中查找與所選定的目標指紋數據(即,目標數據的一 例)之間的相似度滿足預設的相似度要求的預存指紋數據(即,第一預存數據的一例)。其 中,指紋數據可以是包括多個字節(例如,SByte)的數據,每個字節能夠唯一地指示一種指 紋特征。
[0044]應理解,以上列舉的本發明的處理對象僅為示例性說明,本發明并未限定于此,本 發明的數據處理的方法可以用于針對例如,圖像數據或聲音數據等各種數據的相似數據查 找過程。
[0045] 在本發明實施例中,判定預存數據和目標數據之間的相似度是否相似度要求的過 程,可以表示為判定預存數據和目標數據中相同的比特組(例如,字節)的數量是否大于或 等于預設值(即,相似度閾值)的過程。
[0046] 該相似度閾值可以由系統規定,也可以是用戶輸入的數值,本發明并未特別限定。
[0047] 為了便于說明,以下,不失一般性,以指紋數據作為本發明實施例的數據處理的方 法的處理對象,對本發明實施例的數據處理的方法進行詳細說明。
[0048]作為示例而非限定,假設指紋數據的包括8個比特組(例如,8個字節),相似度閾值 為6,即,如果兩個指紋數據中有6個字節相同,則可以確定兩個指紋數據相似。
[0049]例如,如圖2所示,指紋數據FPM和指紋數據FPiffi分別包括8個字節。
[0050] 假設,FP#A所包括的8個字節依次為a、b、c、d、e、f、g,h。
[0051 ] FP#B所包括的8個字節依次為d、b、p、c、a、q、e、f。
[0052]應理解,以上列舉的指紋數據所包括的字節的數量和字節的具體值僅為示例性說 明,本發明并未特別限定,例如FP#A和FP#B所包括的字節的數量也可以不同。
[0053] 在圖2所示示例中,由于FP#A和FP#B所包括的相同的字節(即,a、b、c、d、e、f)的數 量為6,等于預設的相似度閾值,因此,FP#A和FP#B是相似的。
[0054]在本發明實施例中,具體是通過判定FP#A和FP#B是否具有相同的子數據來確定是 FPM和FP#B是否相似。
[0055] 下面,對"子數據"的概念和生成方式進行示例性說明。
[0056] 這里,一個子數據所包括的比特組(例如,字節)的數量為相似度閾值,并且,一個 子數據所包括的比特組均來自父數據。
[0057]例如,在本發明實施例中,可以根據該相似度閾值,確定指紋數據FP#A( 即,父數據 的一例)的多個子數據(即,第一數據集合的一例),具體地說,在本發明實施例中,可以將從 指紋數據FP#A所包括的8(即,T 1的一例)個字節中選擇6(即,相似度閾值j的一例)個字節的 多種(例如,M1種)組和方式的數據作為指紋數據FPM的子數據(即,第一數據的一例)。
[0058]類似地,可以根據該相似度閾值,確定指紋數據FP#B(即,父數據的另一例)的多個 子數據(即,第二數據集合的一例),具體地說,在本發明實施例中,可以將從指紋數據FP#B 所包括的8(即,T2的一例)個字節中選擇6(即,相似度閾值j的一例)個字節的多種(例如,M2 種)組和方式的數據作為指紋數據FP#B的子數據(即,第二數據的一例)。
[0059] 即,在本發明實施例中,目標數據可以作為第一數據集合中的各第一數據的父數 據,第一數據集合中的各第一數據可以作為目標數據的子數據。并且,預存數據可以作為第 二數據集合中的各第二數據的父數據,第二數據集合中的各第二數據可以作為目標數據的 子數據。
[0060] 下面,對基于父數據所生成的子數據的方法和過程進行說明。
[0061] 在本發明實施例中,兩個數據相同是指兩個數據所包括的每個相同位置(例如,字 節位置)上的比特組(例如,字節)均相同。
[0062] 例如,如圖2所示,FP#A與FP#B中相同的字節為a、b、c、d、e、f。
[0063] 將??#六的施個子數據中包括上述字節(&、13、(:、(1、6、〇的子數據記做 :子數據#1,其 中,該子數據#1可能是一個,也可能是多個,將子數據#1中上述6個字節(&士、(3、(1、 6、〇的排 列記做:排列#1,其中,該排列#1可能是一個,也可能是多個。
[0064] 并且,將個子數據中包括上述字節(a、b、c、d、e、f)的子數據記做:子數 據#2,其中,該子數據#2可能是一個,也可能是多個,將子數據#2中上述6個字節(a、b、c、d、 e、f)的排列記做:排列#2,其中,該排列#2可能是一個,也可能是多個。
[0065]則,如果排列#1與排列#2中存在相同的排列,則可以確定FP#A和FP#B包括相同的 子數據,即,FP#A與FP#B相似;
[0066] 如果排列#1與排列#2中不存在相同的排列,則可以確定FP#A和FP#B不包括相同的 子數據,即,FP#A與FP#B不相似。
[0067]作為示例而非限定,在本發明的一種實施方式中,一個子數據所包括的各字節之 間在該子數據中的排列順序(或者說,位置關系)與該子數據所包括的各字節之間在該子數 據的父數據中的排列順序(或者說,位置關系)相對應,例如,相同。
[0068] 此情況下,如圖1所示,由于上述排列#1為:a-b-c-d-e-f。上述排列#2為:d- b-c-a-e-f。即,排列#1與排列#2不同,因此,確定為FP#A與FP#B不相似。
[0069] 但是,如果FP#B所包括的8個字節依次為8、13、〇、(1、6、;1^4,9。則上述排列#1為:34匕 -c-d-e-f。上述排列#2為:d-b-c-a-e-f。即,排列#1與排列#2相同,因此,確定為 FPM與FP#B相似。
[0070] 由此可見,在各字節之間的在子數據和父數據中的排列順序相對應(例如,相同) 時,目標數據和預存數據中各字節的排列順序,對本發明的處理結果能夠產生不同影響。
[0071] 對此,在本發明實施例中,為了確保處理結果的可靠性,可以采用方式1進行處理, 艮P,可以對目標數據和預存數據中的個比特組進行排序處理,此情況下,該M 1 = C(T1J),M2 = C(T2J);或者,也可以采用方式2進行處理,即,確定目標數據中的各比特組的所有可能 的排列方式,以及預存數據中各比特組的所有可能的排列方式,并使所生產的子數據對應 上述各排列方式,此情況下,M 1 = A(T1J), M2 = A(T2J)13下面,分別對以上兩種方式的處理 進行詳細說明。
[0072]方式 1
[0073] 可選地,在根據預設的相似度閾值j和目標數據,生成第一數據集合之前,所述方 法還包括:
[0074] 根據預設規則,對所述目標數據中的1\個第一比特組進行排序;以及
[0075] 在根據預設的相似度閾值j和目標數據,生成第一數據集合之前,所述方法還包 括:
[0076] 根據所述預設規則,對每個預存數據中的1~2個第二比特組進行排序。
[0077] 具體地說,在本發明實施例中,在根據目標數據和預設數據(即,父數據),確定第 一數據集合和第二數據集合(即,子數據)之前,可以按照預設規則,對目標數據和預設數據 進行排序處理,從而,能夠確保目標數據和預設數據中相同的各字節彼此之間,在目標數據 和預設數據中的排列順序相同,即,能夠確保包括該目標數據和預設數據之間相同的各字 節的第一數據和第二數據中,各字節的排列順序相同,進而能夠確保處理結果的可靠性。
[0078] 需要說明的是,上述預設規則可以根據需要任意確定,只要能夠確保對目標數據 和預設數據進行排序處理時使用的規則一致即可,例如,可以按照字節所對應的數值的大 小關系,按由小到大或由大到小的順序,對目標數據和預設數據進行排序。
[0079] 作為示例而非限定,如圖2所示,FP#A所包括的8個字節依次為a、b、c、d、e、f、g,h。 設 &、13、(:、(1、64^,11之間的大小關系(例如,可以是二進制的字節所對應的十進制的數值之 間的大小關系)為a>b>c>d>e>f>g>h,則如圖3所示,按照由大到小的順序(即,預設 規則的一例)進行排序處理后的FP#A所包括的8個字節依次為a、b、c、d、e、f、g,h。
[0080] 類似的,如圖2所示,FP#B所包括的8個字節依次為FP#B所包括的8個字節依次為d、 b、p、c、a、q、e、f。設d、b、p、c、a、q、e、f之間的大小關系(例如,可以是二進制的字節所對應的 十進制的數值之間的大小關系)為a>b>c>d>e>f>p>q,則如圖3所示,按照由大到小 的順序(即,預設規則的一例)進行排序處理后的FP#A所包括的8個字節依次為a、b、c、d、e、 f、p、q〇
[0081 ] 從而,如圖3所不,上述排列#1為:a-b-c-d-e-f。上述排列#2為:a-b-c-d -e-f。即,排列#1與排列#2相同,因此,確定為FP#A與FP#B相似,進而能夠確保判定結果的 可靠性。
[0082]在方式1下,在根據目標數據確定第一數據集合時,可以使第一數據(即,子數據) 中的各第一比特組(例如,字節)的排列順序與該第一比特組在目標數據(即,父數據)中的 排列順序一致。并且,第一數據的數量M1可以為從包括T1個第一比特組的目標數據中選擇j 個第一比特組時的所有組合方式的數量,即M1 = CXT1,j)。
[0083] 類似地,在方式1下,在根據預存數據確定第二數據集合時,可以使第二數據(即, 子數據)中的各第二比特組(例如,字節)的排列順序與該第二比特組在目標數據(即,父數 據)中的排列順序一致。并且,第一數據的數量M 2可以為從包括T2個第二比特組的目標數據 中選擇j個第二比特組時的所有組合方式的數量,即M2 = C( T2,j )。
[0084] 通過在生成通過基于相同的預設規則對目標數據和預存數據中的各比特組進行 排序,能夠確保所確定的第一數據集合和第二數據集合中包括相同的比特組的數據中各比 特組的位置也相同,并且,經過排序處理后,能夠使所生成的第一數據集合所包括的第一數 據的數量為M 1 = C(T1J),能夠使所生成的第二數據集合所包括的第二數據的數量為M2 = C (T2J),從而,能夠在確保相似數據查找的可靠性和準確性的前提下,減少所需要對比為數 據的數量,即能夠進一步降低相似數據查找的復雜度,減少相似數據查找的處理時間。
[0085] 方式 2
[0086] 可選地,該根據預設的相似度閾值j和目標數據,生成第一數據集合,包括:根據目 標數據生成M3個子目標數據,其中,該M 3個子目標數據與1^個第一比特組的所有可能的排列 方式一一對應;根據預設的相似度閾值j和該M3個子目標數據,生成第一數據集合,其中,該 M1個第一數據與從該M3個子目標數據中的每個子目標數據中選取j個第一比特組時的%種 組合方式一一對應;以及,根據該相似度閾值j和N個預存數據,生成N個第二數據集合,包 括:根據第i個預存數據生成M 4個子預存數據,其中,該M4個子目標數據與第i個預存數據的 T2個第二比特組的所有可能的排列方式一一對應;根據預設的相似度閾值j和每個預存數 據所對應的M 4個子預存數據,生成第二數據集合,其中,第i個第二數據集合中的跑個第二數 據與從該第i個預存數據所對應的M 4個子預存數據中的每個子預存數據中選取j個第二比 特組時的M2種組合方式--對應。
[0087] 具體地說,在本發明實施例中,可以確定目標數據所包括的各第一比特組之間所 有可能的排列方式,并且,以子數據中的各比特組(例如,字節)的排列順序與該比特組在父 數據中的排列順序一致的方式,分別確定針對每種可能的排列方式下從包括T 1個第一比特 組的目標數據中選擇j個第一比特組時的所有組合方式的數量,即M1 = AU1,j)。
[0088] 類似地,可以確定預設數據所包括的各第二比特組之間所有可能的排列方式,并 且,以子數據中的各比特組(例如,字節)的排列順序與該比特組在父數據中的排列順序一 致的方式,分別確定針對每種可能的排列方式下從包括T 2個第二比特組的目標數據中選擇 j個第二比特組時的所有組合方式的數量,即M2 = A(T2,j)。
[0089] 以下表1示出了包括8個字節的指紋數據中各字節(Al~A8)之間所有可能的排列 方式。
[0090] 表 1
[0092] 如圖2所示,FP#A與FP#B中相同的字節為a、b、c、d、e、f。根據方式2的處理,能夠確 保第一數據集合包括&士、(3、(1、64之間所有可能的排列方式,并且,能夠確保第二數據集合 包括a、b、c、d、e、f之間所有可能的排列方式,從而能夠確保根據本發明的數據處理的方法 所判定的,FP#A與FP#B之間的關系為相似,從而,能夠提高的相似數據查找的可靠性和準確 性。
[0093]需要說明的是,在上述方式2中,在如上所述確定了第一數據集合和第二數據集合 之后,還可以按照預設規則(例如,按照由大到小順序)對第一數據集合和第二數據集合中 的各數據中的比特組(例如,字節)進行排序,并且,對于經過上述排序處理后的第一數據集 合中發生重復的數據,可以僅保留一個,類似地,對于經過上述排序處理后的第二數據集合 中發生重復的數據,也可以僅保留一個,從而,經過上述排序處理后,能夠使第一數據集合 所包括的第一數據的數量M 1WM1 = A(T1J)下降至M1 = C(T1J),并且,使第二數據集合所包 括的第二數據的數量M2從M2=A (T2,j)下降至M2 = C (T2,j)。
[0094] 根據本發明實施例的數據處理的方法,通過確定目標數據中的各第一比特組所有 可能的排列方式,并確定各預存數據中的各第二比特組的所有可能的排列方式,從而能夠 使該第一數據集合中的第一數據對應在目標數據的各第一比特組的所有可能排列方式下 從該T 1個第一比特組中選取j個第一比特組時的組合方式,使每個第二數據集合中的第二 數據對應在所對應的預存數據的各第二比特組的所有可能排列方式下從該T 2個第二比特 組中選取j個第二比特組時的組合方式,從而,能夠提高的相似數據查找的可靠性和準確 性。
[0095] 應理解,以上列舉的方式1和方式2僅為確定第一數據集合和第二數據集合的示例 性說明,本發明并未限定于此,例如,在目標數據和預存數據所包括的相同的比特組之間的 排序天然相同的情況下(例如,目標數據中的各第一比特組天然按某種順序排列,且預設數 據中的各第二比特組也天然按該順序排列),確保該M1個第一數據與從該1^個第一比特組中 選取j個第一比特組時的所有組合方式一一對應即可,即,M1 = C(T1J);并且,確保該跑個第 二數據與從該T2個第二比特組中選取j個第二比特組時的所有組合方式一一對應即可,即, M2 = C(T2J)0
[0096] 可選地,該根據預設的相似度閾值j和目標數據,生成第一數據集合,包括:
[0097] 根據預設的相似度閾值j和該第一比特組的數量!^,確定第一生成矩陣,該第一生 成矩陣包括在第一維度方向上排列的施個第一向量,每個第一向量包括在第二維度方向上 排列的T 1個元素,該T1個元素包括j個"Γ元素和T1-J個"0"元素,任意兩個第一向量彼此之 間至少存在一個在該第二維度方向上的排列位置不同的"0"元素或"Γ元素;
[0098] 根據該第一生成矩陣和目標數據,生成第一數據集合。
[0099] 并且,可選地,該根據該相似度閾值j和N個預存數據,生成N個第二數據集合,包 括:
[0100] 根據預設的相似度閾值j和該第二比特組的數量!^,確定第二生成矩陣,該第二生 成矩陣包括在第一維度方向上排列的跑個第二向量,每個第二向量包括在第二維度方向上 排列的T 2個元素,該T2個元素包括j個"Γ元素和T2-j個"0"元素,任意兩個第二向量彼此之 間至少存在一個在該第二維度方向上的排列位置不同的"0"元素或"Γ元素;
[0101] 根據該第二生成矩陣和N個預存數據,生成N個第二數據集合。
[0102] 具體地說,在本發明實施例中,可以使子數據中的各字節之間的排列順序與該字 節在父數據中的排列順序一致,作為示例而非限定,以下表2示出了從包括8個字節的父數 據中選擇6個字節時所有組合方式的子數據所包括的父數據中的字節。
[0103] 表2
[0106] 表2中的"0"表示該"0"所處行的子數據不包括父數據中該"0"所處列的位置上的 字節,表2中的"Γ表示該"Γ所處行的子數據包括父數據中該"Γ所處列的位置上的字節。
[0107] 如圖4所示,在本發明實施例中,可以根據父數據所包括的字節的數量M和相似度 閾值j確定生成矩陣,該生成矩陣由"〇"元素和"Γ元素構成。
[0108] 作為示例而非限定,該生成矩陣中的列(第一維度方向的一例)數為該父數據所包 括的字節數M,該生成矩陣中的行(第二維度方向的一例)數為從該M個字節中選擇j個字節 的所有可能的方式的數量,即,C(MJ),其中,任意兩個行之間至少存在一個在行方向上的 排列位置不同的"〇"元素或"Γ元素。
[0109] 作為示例而非限定,例如,在M = 8,j = 6時,該生成矩陣可以表示為:
[0111]并且,在本發明實施例中,可以將父數據視為一維向量,該一維向量包括延上述 "行"方向(第二維度方向的一例)排列的M個元素(即,M個字符)。
[0112]從而,將該生成矩陣與父指紋數進行乘處理(或者說,與處理)后,能夠得到C(MJ) 個子數據。
[0113]需要說明的是,在本發明實施例中,該父數據可以是進行排序處理之后的目標數 據,此情況下該生成矩陣可以作為上述第一生成矩陣,M=T1,子數據的數量為M1 = C(T1J)13
[0114] 并且,該父數據可以是進行排序處理之后的每個預存數據,此情況下該生成矩陣 可以作為上述第二生成矩陣,M=T2,每個預存數據的子數據的數量為M 2 = C(T2J)13
[0115] 或者,該父數據可以是目標數據的1^個第一比特組的所有排列方式的數據,并且, 該父數據也可以是每個預存數據的T2個第一比特組的所有排列方式的數據。
[0116] 由此,能夠確定第一數據集合以及N個第二數據集合。
[0117] 圖5是根據本發明實施例的相似數據查找方案的示意圖,如圖5所示,在如上所示 確定的第一數據集合和N個第二數據集合之后,可以確定第一數據集合和第i個第二數據集 合之間是否存在相同的數據,如果存在,則可以確定目標數據和第i個預存數據相似;如果 不存在,則可以確定目標數據和第i個預存數據不相似。
[0118] 作為示例而非限定,在本發明實施例中,可以將N個第二數據集合中的各第二數據 保存至哈希表,具體地說,是哈希表各行(bucket)。
[0119]圖6是根據本發明實施例的哈希表的維護方式的示意圖。如圖6所示,在本發明實 施例中,在需要將第i個預存數據所對應的第i個第二數據集合中的各第二數據插入哈希表 中時,可以計算各第二數據的哈希值,并根據所確定的哈希值,將該第i個預存數據所對應 的各第二數據保存至哈希表中與各哈希值相對應的索引位置。
[0120]另外,在需要將第i個預存數據所對應的第i個第二數據集合中的各第二數據從哈 希表中刪除時,可以計算各第二數據的哈希值,并根據所確定的哈希值,將哈希表中與各哈 希值相對應的索引位置的數據(即,第i個第二數據集合中的各第二數據)刪除。
[0121]需要說明的是,在本發明實施例中,N個預存數據中可能存在多個與目標數據相似 的數據,即,N個預存數據中可能存在多個包括目標數據中的j個第一比特組的數據,此情況 下,哈希表中的某些bucket中可能存在多個數據,即,哈希表中的同一索引位置上可能需要 保存多個數據。
[0122] 此情況下,本發明實施例可以提供多種哈希表的bucket結構。
[0123] 例如,如果需要保存在同一bucket內的數據的數量小于或等于預設的數量閾值 (例如,5),則可以將需要保存在同一bucket內的數據組成數據鏈,進行保存。即,如果當哈 希表中填充比例不高,各個bucket中元素個數均衡。直接將元素組成鏈。
[0124] 再例如,如果需要保存在同一 bucket內的數據的數量大于預設的數量閾值(例如, 5),則可以將需要保存在同一bucket內的數據組成制高點(VP,Vantage Point)樹,進行保 存。即,當哈希表總填充比例超過預設值,各個bucket中元素個數不均衡,將元素按照VP樹 結構放置。
[0125] 再例如,如果需要保存在同一 bucket內的數據的數量大于預設的數量閾值(例如, 5),則可以將需要保存在同一bucket內的數據組成套嵌的哈希表,進行保存。即,當哈希表 總填充比例超過預設值,各個bucket中元素個數不均衡,將元素按照套嵌的哈希表放置。 [0126]需要說明的是,在本發明實施例中,哈希表的各bucket的結構相同,即,如果某一 bucket采用鏈結構,則其他bucket也采用鏈結構;如果某一bucket采用樹結構,則其他 bucket也采用樹結構;如果某一 bucket采用哈希表結構,則其他bucket也采用哈希表結構。
[0127] 另外,在本發明實施例中,哈希表的各bucket的所采用的結構可以基于同一 bucket內的數據的數量確定,也可以基于系統要求或管理員的設置來確定,本發明并未特 另IJ限定。
[0128] 圖7是根據本發明實施例的哈希表的一例的示意圖。如圖7所示,假設預設數據包 括指紋數據FP(B)和指紋數據FP(C),本發明實施例的哈希表的每個bucket具有預設的索引 (即,哈希值),在對FP(B)和FP(C)的各子數據進行哈希值計算而確定各子數據的哈希值之 后,可以將各子數據保存至哈希表中索引值相同的bucket中,并且,可以將各子數據的父數 據的指示信息,例如,指示該子數據的父數據為FP(B)或FP(C)的信息一同保存至哈希表中。
[0129] 從而,在查找目標數據(例如,指紋數據FP(A))的相似數據時,可以按照如上所示 方式確定FP(A)的各子數據,并確定各子數據的哈希值,并將哈希表中索引的值與FP(A)的 任一子數據的哈希值相同的bucket中存儲的數據的父數據,作為FP(A)的相似數據。
[0130] 在本發明實施例中,針對一個目標數據,在N個預設數據中可能存在多個相似的數 據。對此,本發明提供了多種查找方案。
[0131] 例如,本發明實施例的查找方案可以包括快速模式和完整模式。下面,分別對上述 兩種模式下的查找過程進行詳細說明。
[0132] A.快速模式
[0133] 可選地,該根據該第一數據集合和該第二數據集合,從該N個預存數據中確定第一 預存數據,包括:
[0134] 從備選模式中確定查找模式,該備選模式包括快速模式和完整模式;
[0135] 當該查找模式為該快速模式時,基于各該第一數據在該第一數據集合中的排序, 按預設順序進行y次查找處理,該y次查找處理與該第一數據集合中基于該預設順序的前y 個第一數據一一對應,其中,第X次查找處理用于確定該N個第二數據集合中是否存在與第X 個第一數據相同的數據,并在首次查找到與該第一數據相同的數據時,將與該第一數據相 同的數據所屬于的第二數據集合所對應的預存數據作為該第一預存數據,其中,X e [ 1,y], y < Mio
[0136] 具體地說,圖8是根據本發明實施例的快速模式下的查找過程的示意性流程圖,如 圖8所示,首先,可以確定目標指紋的各子數據(即,第一數據);其后,可以令i = l,并確定第 i個子數據的哈希值;其后,可以判定在哈希表中索引的值與該第i個子數據的哈希值相同 的bucket中是否保存有數據。
[0137] 如果判定為是,則可以將該bucket中所保存的數據的父數據作為與該模板指紋相 似的數據(即,第一預存數據),并立即,結束查找。
[0138] 如果判定為否,則可以令i = i + l,并繼續查找,如果i =Mi時仍然未查找到相似的 數據,則可以認為N個預存數據中不存在與該目標數據相似的數據。
[0139] 從而,能夠快速地查找到滿足預設的相似條件(即,與相似度閾值j相對應)的預設 數據。
[0140] B ·完整模式
[0141 ]可選地,該根據該第一數據集合和該第二數據集合,從該N個預存數據中確定第一 預存數據,包括:
[0142 ]從備選模式中確定查找模式,該備選模式包括快速模式和完整模式;
[0143] 當該查找模式為該完整模式時,基于各該第一數據在該第一數據集合中的排序, 按預設順序進行y次查找處理,該y次查找處理與該第一數據集合中基于該預設順序的前y 個第一數據一一對應,其中,第X次查找處理用于確定該N個第二數據集合中是否存在與第X 個第一數據相同的數據,如果首次查找到的與該第一數據相同的數據屬于至少兩個第二數 據集合,則將該至少兩個第二數據集合所對應的預存數據中與該目標數據之間存在相同的 比特組的數量最多的預存數據作為該第一預存數據。
[0144] 具體地說,在上述快速模式的基礎上,如果哈希表中索引的值與該第i個子數據的 哈希值相同的bucket中保存有兩個或兩個以上的數據,則可以進一步判定該兩個或兩個以 上的數據的父數據中與該目標數據所包括的相同的比特組最多的數據,作為該第一預設數 據。
[0145] 應理解,以上列舉的查找模式僅為示例性說明,本發明并未限定于此,例如,還可 以采用以下模式進行查找:
[0146] 依次進行針對目標數據的M1個子數據中的每個子數據的查找處理,即,確定第i個 子數據的哈希值,其后,可以判定在哈希表中索引的值與該第i個子數據的哈希值相同的 bucket中是否保存有數據。如果判定為是,則可以將該bucket中所保存的數據的父數據作 為與該模板指紋相似的數據(即,第一預存數據),并保存該數據。
[0147] 并且,在查找到多個滿足預設的相似條件(即,與相似度閾值j相對應)的預設數據 后,可以進一步確定該多個預設數據中與該目標數據之間存在的相同的比特組最多的數 據,作為該第一預設數據,從而能夠得到N個預存數據中與目標數據最相似的數據。
[0148] 需要說明的是,上述查找模式的使用可以根據本發明實施例的數據處理方法的執 行主體(例如,處理器)當前的負載確定,例如,如果處理器的負載較低,則可以使用完整模 式;如果處理器的負載較大,則可以使用快速模式。
[0149] 根據本發明實施例的數據處理的方法,通過設置快速模式和完整模式,并在快速 模式下輸出預存數據中所有相似度滿足相似度閾值j所對應的要求的數據,在完整模式輸 出預存數據中相似度滿足相似度閾值j所對應的要求且與目標數據之間的相似度最高的數 據,能夠靈活應對不同的用戶需求,進一步提高用戶體驗。
[0150]應理解,以上列舉的查找模式的確定方式僅為示例性說明,本發明并未限定于此, 例如,上述查找模式的使用可以根據用戶要求確定。
[0151]根據本發明實施例的數據處理的方法,通過根據目標數據確定包括%個第一數據 的第一數據集合,并根據N個預存數據確定N個第二數據集合,其中,第一數據集合中的施個 第一數據與從包括T1個第一比特組的目標數據中選擇j個第一比特組時的M 1種組合方式一 一對應,每個第二數據集合中的M2個第二數據與從包括T2個第二比特組的預存數據中選擇j 個第二比特組時的M2種組合方式一一對應,其中,j為預設的相似度閾值,從而,在一個第二 數據集合與該第一數據集合之間包括至少一個相同的數據時,能夠將該第二數據集合所對 應的預存數據作為與該目標數據之間的相似度滿足該相似度閾值j所對應的相似度要求的 相似數據,即,能夠將相似數據查找過程轉化為相同數據的判定過程,從而,能夠降低相似 數據查找的復雜度,減少相似數據查找的處理時間,改善用戶體驗。
[0152]圖9是根據本發明實施例的數據處理的裝置200的示意性框圖。該裝置200可以通 過數字信號處理器(DSP)、專用集成電路(ASIC)、現成可編程門陣列(FPGA)或者其他可編程 邏輯器件、分立門或者晶體管邏輯器件、分立硬件組件等實現。該裝置200也可以指示軟件 模塊或軟件包。如圖9所示,該裝置200包括:
[0153] 生成單元210,用于根據預設的相似度閾值j和目標數據,生成第一數據集合,其 中,該目標數據包括T1個第一比特組,每個第一比特組包括k比特,該第一數據集合包括施個 第一數據,該M 1個第一數據與從該T1個第一比特組中選取j個第一比特組時的M1種組合方式 --X^,Ti> 2,k> l,Ti>j > 1;
[0154] 所示生成單元210還用于,根據該相似度閾值j和N個預存數據,生成N個第二數據 集合,其中,該N個預存數據與該N個第二數據集合一一對應,每個預存數據包括T 2f第二比 特組,每個第二比特組包括k比特,每個第二數據集合包括M2個第二數據,第i個第二數據集 合中的每個第二數據包括第i個預存數據中的!^個第二比特組,第i個第二數據集合中的M 2 個第二數據與從該T2個第二比特組中選取j個第二比特組時的M2種組合方式一一對應,N2 l,Tdie[l,N];
[0155] 確定單元220,用于根據該第一數據集合和該第二數據集合,從該N個預存數據中 確定第一預存數據,該第一預存數據和該目標數據之間相似度與該相似度閾值j相對應,其 中,該第一預存數據所對應的第二數據集合與該第一數據集合之間包括至少一個相同的數 據。
[0156] 可選地,該裝置200還包括:
[0157] 排序單元230,用于根據預設規則,對該目標數據中的T1個第一比特組進行排序;
[0158] 用于根據該預設規則,對每個預存數據中的1~2個第二比特組進行排序。
[0159] 可選地,該生成單元210具體用于根據預設的相似度閾值j和該第一比特組的數量 T1,確定第一生成矩陣,該第一生成矩陣包括在第一維度方向上排列的M1個第一向量,每個 第一向量包括在第二維度方向上排列的T 1個元素,該T1個元素包括j個"Γ元素和T1-Jf "〇"元素,任意兩個第一向量彼此之間至少存在一個在該第二維度方向上的排列位置不同 的"〇"元素或"Γ元素;
[0160] 用于根據該第一生成矩陣和目標數據,生成第一數據集合。
[0161] 可選地,該生成單元210具體用于根據預設的相似度閾值j和該第二比特組的數量 T2,確定第二生成矩陣,該第二生成矩陣包括在第一維度方向上排列的M2個第二向量,每個 第二向量包括在第二維度方向上排列的T 2個元素,該T2個元素包括j個"Γ元素和T2-j個 "〇"元素,任意兩個第二向量彼此之間至少存在一個在該第二維度方向上的排列位置不同 的"〇"元素或"Γ元素;
[0162] 用于根據該第二生成矩陣和N個預存數據,生成N個第二數據集合。
[0163] 可選地,該確定單元220具體用于從備選模式中確定查找模式,該備選模式包括快 速模式和完整模式;
[0164] 當該查找模式為該快速模式時,該確定單元具體用于基于各該第一數據在該第一 數據集合中的排序,按預設順序進行y次查找處理,該y次查找處理與該第一數據集合中基 于該預設順序的前y個第一數據一一對應,其中,第X次查找處理用于確定該N個第二數據集 合中是否存在與第X個第一數據相同的數據,并在首次查找到與該第一數據相同的數據時, 將與該第一數據相同的數據所屬于的第二數據集合所對應的預存數據作為該第一預存數 據,其中,xe[l,y],y《Mi;
[0165] 當該查找模式為該完整模式時,該確定單元具體用于基于各該第一數據在該第一 數據集合中的排序,按預設順序進行y次查找處理,該y次查找處理與該第一數據集合中基 于該預設順序的前y個第一數據一一對應,其中,第X次查找處理用于確定該N個第二數據集 合中是否存在與第X個第一數據相同的數據,如果首次查找到的與該第一數據相同的數據 屬于至少兩個第二數據集合,則將該至少兩個第二數據集合所對應的預存數據中與該目標 數據之間存在相同的比特組的數量最多的預存數據作為該第一預存數據,其中, Xe[l,y], y < Mio
[0166] 該裝置200中的各單元或模塊分別用于執行上述方法100中的動作和功能,這里為 了避免贅述,省略其詳細說明。
[0167] 根據本發明實施例的數據處理的裝置,通過根據目標數據確定包括%個第一數據 的第一數據集合,并根據N個預存數據確定N個第二數據集合,其中,第一數據集合中的施個 第一數據與從包括T 1個第一比特組的目標數據中選擇j個第一比特組時的M1種組合方式一 一對應,每個第二數據集合中的M 2個第二數據與從包括T2個第二比特組的預存數據中選擇j 個第二比特組時的M2種組合方式一一對應,其中,j為預設的相似度閾值,從而,在一個第二 數據集合與該第一數據集合之間包括至少一個相同的數據時,能夠將該第二數據集合所對 應的預存數據作為與該目標數據之間的相似度滿足該相似度閾值j所對應的相似度要求的 相似數據,即,能夠將相似數據查找過程轉化為相同數據的判定過程,從而,能夠降低相似 數據查找的復雜度,減少相似數據查找的處理時間,改善用戶體驗。
[0168] 圖10是根據本發明實施例的數據處理的設備300的示意性結構圖。如圖10所示,該 設備300包括:
[0169] 總線 310;
[0170] 與該總線310相連的存儲器320;
[0171] 與該總線310相連的處理器330:
[0172] 該處理器330用于經由該總線310調用并執行該存儲器320中的程序,以用于根據 預設的相似度閾值j和目標數據,生成第一數據集合,其中,該目標數據包括T 1個第一比特 組,每個第一比特組包括k比特,該第一數據集合包括施個第一數據,該M1個第一數據與從該 T1個第一比特組中選取j個第一比特組時的M1種組合方式--對應,1;
[0173] 用于根據該相似度閾值j和N個預存數據,生成N個第二數據集合,其中,該N個預存 數據與該N個第二數據集合一一對應,每個預存數據包括T 2個第二比特組,每個第二比特組 包括k比特,每個第二數據集合包括M2個第二數據,第i個第二數據集合中的每個第二數據 包括第i個預存數據中的!^個第二比特組,第i個第二數據集合中的M 2個第二數據與從該T2 個第二比特組中選取j個第二比特組時的M2種組合方式--對應,N 2 I,T2 2 T1,i e [I,N];
[0174] 用于根據該第一數據集合和該第二數據集合,從該N個預存數據中確定第一預存 數據,該第一預存數據和該目標數據之間相似度與該相似度閾值j相對應,其中,該第一預 存數據所對應的第二數據集合與該第一數據集合之間包括至少一個相同的數據。
[0175] 可選地,該處理器330具體用于根據預設規則,對該目標數據中的T1個第一比特組 進行排序;
[0176] 用于根據該預設規則,對每個預存數據中的1~2個第二比特組進行排序。
[0177] 可選地,該處理器330具體用于根據預設的相似度閾值j和該第一比特組的數量 T1,確定第一生成矩陣,該第一生成矩陣包括在第一維度方向上排列的M1個第一向量,每個 第一向量包括在第二維度方向上排列的T 1個元素,該T1個元素包括j個"Γ元素和T1-Jf "0"元素,任意兩個第一向量彼此之間至少存在一個在該第二維度方向上的排列位置不同 的"0"元素或"Γ元素;
[0178] 用于根據該第一生成矩陣和目標數據,生成第一數據集合。
[0179]可選地,該處理器330具體用于根據預設的相似度閾值j和該第二比特組的數量 T2,確定第二生成矩陣,該第二生成矩陣包括在第一維度方向上排列的M2個第二向量,每個 第二向量包括在第二維度方向上排列的T 2個元素,該T2個元素包括j個"Γ元素和T2-j個 "0"元素,任意兩個第二向量彼此之間至少存在一個在該第二維度方向上的排列位置不同 的"0"元素或"Γ元素;
[0180] 用于根據該第二生成矩陣和N個預存數據,生成N個第二數據集合。
[0181] 可選地,該處理器330具體用于從備選模式中確定查找模式,該備選模式包括快速 模式和完整模式;
[0182] 用于當該查找模式為該快速模式時,基于各該第一數據在該第一數據集合中的排 序,按預設順序進行y次查找處理,該y次查找處理與該第一數據集合中基于該預設順序的 前y個第一數據一一對應,其中,第X次查找處理用于確定該N個第二數據集合中是否存在與 第X個第一數據相同的數據,并在首次查找到與該第一數據相同的數據時,將與該第一數據 相同的數據所屬于的第二數據集合所對應的預存數據作為該第一預存數據,其中,xe [1, y] <Μι;
[0183] 用于當該查找模式為該完整模式時,基于各該第一數據在該第一數據集合中的排 序,按預設順序進行y次查找處理,該y次查找處理與該第一數據集合中基于該預設順序的 前y個第一數據一一對應,其中,第X次查找處理用于確定該N個第二數據集合中是否存在與 第X個第一數據相同的數據,如果首次查找到的與該第一數據相同的數據屬于至少兩個第 二數據集合,則將該至少兩個第二數據集合所對應的預存數據中與該目標數據之間存在相 同的比特組的數量最多的預存數據作為該第一預存數據,其中, Xe[l,y],y
[0184] 應理解,在本發明實施例中,該處理器330可以是中央處理單元(Central Processing Unit,簡稱為"CPU")。通用處理器可以是微處理器或者該處理器也可以是任何 常規的處理器等。
[0185]該存儲器320可以包括只讀存儲器和隨機存取存儲器,并向處理器330提供指令和 數據。存儲器320的一部分還可以包括非易失性隨機存取存儲器。例如,存儲器320還可以存 儲設備類型的信息。
[0186] 該總線310除包括數據總線之外,還可以包括電源總線、控制總線和狀態信號總線 等。但是為了清楚說明起見,在圖中將各種總線都標為總線310。
[0187] 在實現過程中,上述方法的各步驟可以通過處理器330中的硬件的集成邏輯電路 或者軟件形式的指令完成。結合本發明實施例所公開的方法的步驟可以直接體現為硬件處 理器執行完成,或者用處理器中的硬件及軟件模塊組合執行完成。軟件模塊可以位于隨機 存儲器,閃存、只讀存儲器,可編程只讀存儲器或者電可擦寫可編程存儲器、寄存器等本領 域成熟的存儲介質中。該存儲介質位于存儲器320,處理器330讀取存儲器320中的信息,結 合其硬件完成上述方法的步驟。為避免重復,這里不再詳細描述。
[0188] 其中,該設備300用于執行上述方法100中的動作和功能,這里為了避免贅述,省略 其詳細說明。
[0189] 根據本發明實施例的數據處理的設備,通過根據目標數據確定包括%個第一數據 的第一數據集合,并根據N個預存數據確定N個第二數據集合,其中,第一數據集合中的施個 第一數據與從包括T 1個第一比特組的目標數據中選擇j個第一比特組時的M1種組合方式一 一對應,每個第二數據集合中的M 2個第二數據與從包括T2個第二比特組的預存數據中選擇j 個第二比特組時的M2種組合方式一一對應,其中,j為預設的相似度閾值,從而,在一個第二 數據集合與該第一數據集合之間包括至少一個相同的數據時,能夠將該第二數據集合所對 應的預存數據作為與該目標數據之間的相似度滿足該相似度閾值j所對應的相似度要求的 相似數據,即,能夠將相似數據查找過程轉化為相同數據的判定過程,從而,能夠降低相似 數據查找的復雜度,減少相似數據查找的處理時間,改善用戶體驗。
[0190] 應理解,本文中術語"和/或",僅僅是一種描述關聯對象的關聯關系,表示可以存 在三種關系,例如,A和/或B,可以表示:單獨存在A,同時存在A和B,單獨存在B這三種情況。 另外,本文中字符7",一般表示前后關聯對象是一種"或"的關系。
[0191] 應理解,在本發明的各種實施例中,上述各過程的序號的大小并不意味著執行順 序的先后,各過程的執行順序應以其功能和內在邏輯確定,而不應對本發明實施例的實施 過程構成任何限定。
[0192] 本領域普通技術人員可以意識到,結合本文中所公開的實施例描述的各示例的單 元及算法步驟,能夠以電子硬件、或者計算機軟件和電子硬件的結合來實現。這些功能究竟 以硬件還是軟件方式來執行,取決于技術方案的特定應用和設計約束條件。專業技術人員 可以對每個特定的應用來使用不同方法來實現所描述的功能,但是這種實現不應認為超出 本發明的范圍。
[0193] 所屬領域的技術人員可以清楚地了解到,為描述的方便和簡潔,上述描述的系統、 裝置和單元的具體工作過程,可以參考前述方法實施例中的對應過程,在此不再贅述。
[0194] 在本申請所提供的幾個實施例中,應該理解到,所揭露的系統、裝置和方法,可以 通過其它的方式實現。例如,以上所描述的裝置實施例僅僅是示意性的,例如,所述單元的 劃分,僅僅為一種邏輯功能劃分,實際實現時可以有另外的劃分方式,例如多個單元或組件 可以結合或者可以集成到另一個系統,或一些特征可以忽略,或不執行。另一點,所顯示或 討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,裝置或單元的間接耦 合或通信連接,可以是電性,機械或其它的形式。
[0195] 所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯 示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個 網絡單元上。可以根據實際的需要選擇其中的部分或者全部單元來實現本實施例方案的目 的。
[0196] 另外,在本發明各個實施例中的各功能單元可以集成在一個處理單元中,也可以 是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。
[0197] 所述功能如果以軟件功能單元的形式實現并作為獨立的產品銷售或使用時,可以 存儲在一個計算機可讀取存儲介質中。基于這樣的理解,本發明的技術方案本質上或者說 對現有技術做出貢獻的部分或者該技術方案的部分可以以軟件產品的形式體現出來,該計 算機軟件產品存儲在一個存儲介質中,包括若干指令用以使得一臺計算機設備(可以是個 人計算機,服務器,或者網絡設備等)執行本發明各個實施例所述方法的全部或部分步驟。 而前述的存儲介質包括:U盤、移動硬盤、只讀存儲器(R0M,Read-0nly Memory)、隨機存取存 儲器(RAM,Random Access Memory)、磁碟或者光盤等各種可以存儲程序代碼的介質。
[0198] 以上所述,僅為本發明的【具體實施方式】,但本發明的保護范圍并不局限于此,任何 熟悉本技術領域的技術人員在本發明揭露的技術范圍內,可輕易想到變化或替換,都應涵 蓋在本發明的保護范圍之內。因此,本發明的保護范圍應以所述權利要求的保護范圍為準。
【主權項】
1. 一種數據處理的方法,其特征在于,所述方法包括: 根據預設的相似度閾值j和目標數據,生成第一數據集合,其中,所述目標數據包括Tif 第一比特組,每個第一比特組包括k比特,所述第一數據集合包括施個第一數據,所述施個第 一數據與從所述!^個第一比特組中選取j個第一比特組時的施種組合方式一一對應,Ti 2 2, k> l,Ti>j> 1; 根據所述相似度閾值j和N個預存數據,生成N個第二數據集合,其中,所述N個預存數據 與所述N個第二數據集合一一對應,每個預存數據包括T2個第二比特組,每個第二比特組包 括k比特,每個第二數據集合包括Μ 2個第二數據,第i個第二數據集合中的每個第二數據包 括第i個預存數據中的!^個第二比特組,第i個第二數據集合中的M 2個第二數據與從所述T2 個第二比特組中選取j個第二比特組時的Μ2種組合方式--對應,Ν 2 1,T2 2 Ti,i e [ 1,Ν]; 根據所述第一數據集合和所述第二數據集合,從所述N個預存數據中確定第一預存數 據,所述第一預存數據和所述目標數據之間相似度與所述相似度閾值j相對應,其中,所述 第一預存數據所對應的第二數據集合與所述第一數據集合之間包括至少一個相同的數據。2. 根據權利要求1所述的方法,其特征在于,在根據預設的相似度閾值j和目標數據,生 成第一數據集合之前,所述方法還包括: 根據預設規則,對所述目標數據中的!^個第一比特組進行排序;以及 在根據預設的相似度閾值j和目標數據,生成第一數據集合之前,所述方法還包括: 根據所述預設規則,對每個預存數據中的!^個第二比特組進行排序。3. 根據權利要求1或2所述的方法,其特征在于,所述根據預設的相似度閾值j和目標數 據,生成第一數據集合,包括: 根據預設的相似度閾值j和所述第一比特組的數量Ti,確定第一生成矩陣,所述第一生 成矩陣包括在第一維度方向上排列的施個第一向量,每個第一向量包括在第二維度方向上 排列的Ti個元素,所述Ti個元素包括j個"Γ元素和Tn_個"0"元素,任意兩個第一向量彼此 之間至少存在一個在所述第二維度方向上的排列位置不同的"0"元素或"Γ元素; 根據所述第一生成矩陣和目標數據,生成第一數據集合。4. 根據權利要求1至3中任一項所述的方法,其特征在于,所述根據所述相似度閾值j和 N個預存數據,生成N個第二數據集合,包括: 根據預設的相似度閾值j和所述第二比特組的數量T2,確定第二生成矩陣,所述第二生 成矩陣包括在第一維度方向上排列的跑個第二向量,每個第二向量包括在第二維度方向上 排列的Τ2個元素,所述Τ 2個元素包括j個"Γ元素和Τ2ι_個"0"元素,任意兩個第二向量彼此 之間至少存在一個在所述第二維度方向上的排列位置不同的"0"元素或"Γ元素; 根據所述第二生成矩陣和Ν個預存數據,生成Ν個第二數據集合。5. 根據權利要求1至4中任一項所述的方法,其特征在于,所述根據所述第一數據集合 和所述第二數據集合,從所述Ν個預存數據中確定第一預存數據,包括: 從備選模式中確定查找模式,所述備選模式包括快速模式和完整模式; 當所述查找模式為所述快速模式時,基于各所述第一數據在所述第一數據集合中的排 序,按預設順序進行y次查找處理,所述y次查找處理與所述第一數據集合中基于所述預設 順序的前y個第一數據一一對應,其中,第X次查找處理用于確定所述N個第二數據集合中是 否存在與第X個第一數據相同的數據,并在首次查找到與所述第一數據相同的數據時,將與 所述第一數據相同的數據所屬于的第二數據集合所對應的預存數據作為所述第一預存數 據,其中,xe[l,y],y《Mi; 當所述查找模式為所述完整模式時,基于各所述第一數據在所述第一數據集合中的排 序,按預設順序進行y次查找處理,所述y次查找處理與所述第一數據集合中基于所述預設 順序的前y個第一數據一一對應,其中,第X次查找處理用于確定所述N個第二數據集合中是 否存在與第X個第一數據相同的數據,如果首次查找到的與所述第一數據相同的數據屬于 至少兩個第二數據集合,則將所述至少兩個第二數據集合所對應的預存數據中與所述目標 數據之間存在相同的比特組的數量最多的預存數據作為所述第一預存數據,其中,xe[i, y],y《Mi〇6. -種數據處理的裝置,其特征在于,所述裝置包括: 生成單元,用于根據預設的相似度閾值j和目標數據,生成第一數據集合,其中,所述目 標數據包括Ti個第一比特組,每個第一比特組包括k比特,所述第一數據集合包括%個第一 數據,所述施個第一數據與從所述h個第一比特組中選取j個第一比特組時的施種組合方式 --X^,Ti> 2,k> l,Ti>j > 1; 所示生成單元還用于,根據所述相似度閾值j和N個預存數據,生成N個第二數據集合, 其中,所述N個預存數據與所述N個第二數據集合一一對應,每個預存數據包括^個第二比 特組,每個第二比特組包括k比特,每個第二數據集合包括M 2個第二數據,第i個第二數據集 合中的每個第二數據包括第i個預存數據中的!^個第二比特組,第i個第二數據集合中的M 2 個第二數據與從所述T2個第二比特組中選取j個第二比特組時的M2種組合方式一一對應,N > 1,Τ2>Τι,?^[1,Ν]; 確定單元,用于根據所述第一數據集合和所述第二數據集合,從所述N個預存數據中確 定第一預存數據,所述第一預存數據和所述目標數據之間相似度與所述相似度閾值j相對 應,其中,所述第一預存數據所對應的第二數據集合與所述第一數據集合之間包括至少一 個相同的數據。7. 根據權利要求6所述的裝置,其特征在于,所述裝置還包括: 排序單元,用于根據預設規則,對所述目標數據中的!^個第一比特組進行排序; 用于根據所述預設規則,對每個預存數據中的!^個第二比特組進行排序。8. 根據權利要求6或7所述的裝置,其特征在于,所述生成單元具體用于根據預設的相 似度閾值j和所述第一比特組的數量Ti,確定第一生成矩陣,所述第一生成矩陣包括在第一 維度方向上排列的施個第一向量,每個第一向量包括在第二維度方向上排列的?\個元素,所 述!^個元素包括j個"Γ元素和Ti 一 j個"0"元素,任意兩個第一向量彼此之間至少存在一個 在所述第二維度方向上的排列位置不同的"〇"元素或"Γ元素; 用于根據所述第一生成矩陣和目標數據,生成第一數據集合。9. 根據權利要求6至8中任一項所述的裝置,其特征在于,所述生成單元具體用于根據 預設的相似度閾值j和所述第二比特組的數量T 2,確定第二生成矩陣,所述第二生成矩陣包 括在第一維度方向上排列的Μ2個第二向量,每個第二向量包括在第二維度方向上排列的Τ 2 個元素,所述Τ2個元素包括j個"Γ元素和T2"j個"0"元素,任意兩個第二向量彼此之間至少 存在一個在所述第二維度方向上的排列位置不同的"0"元素或"Γ元素; 用于根據所述第二生成矩陣和N個預存數據,生成N個第二數據集合。10. 根據權利要求6至9中任一項所述的裝置,其特征在于,所述確定單元具體用于從備 選模式中確定查找模式,所述備選模式包括快速模式和完整模式; 當所述查找模式為所述快速模式時,所述確定單元具體用于基于各所述第一數據在所 述第一數據集合中的排序,按預設順序進行y次查找處理,所述y次查找處理與所述第一數 據集合中基于所述預設順序的前y個第一數據一一對應,其中,第X次查找處理用于確定所 述N個第二數據集合中是否存在與第X個第一數據相同的數據,并在首次查找到與所述第一 數據相同的數據時,將與所述第一數據相同的數據所屬于的第二數據集合所對應的預存數 據作為所述第一預存數據,其中,X e [ 1,y ],y < Mi ; 當所述查找模式為所述完整模式時,所述確定單元具體用于基于各所述第一數據在所 述第一數據集合中的排序,按預設順序進行y次查找處理,所述y次查找處理與所述第一數 據集合中基于所述預設順序的前y個第一數據一一對應,其中,第X次查找處理用于確定所 述N個第二數據集合中是否存在與第X個第一數據相同的數據,如果首次查找到的與所述第 一數據相同的數據屬于至少兩個第二數據集合,則將所述至少兩個第二數據集合所對應的 預存數據中與所述目標數據之間存在相同的比特組的數量最多的預存數據作為所述第一 預存數據,其中,xe[l,y],y<Mi。11. 一種數據處理的設備,其特征在于,所述設備包括: 總線; 與所述總線相連的存儲器; 與所述總線相連的處理器: 所述處理器用于經由所述總線調用并執行所述存儲器中的程序,以用于根據預設的相 似度閾值j和目標數據,生成第一數據集合,其中,所述目標數據包括Ti個第一比特組,每個 第一比特組包括k比特,所述第一數據集合包括%個第一數據,所述%個第一數據與從所述 h個第一比特組中選取j個第一比特組時的沁種組合方式--對應,UTiSj》1; 用于根據所述相似度閾值j和N個預存數據,生成N個第二數據集合,其中,所述N個預存 數據與所述N個第二數據集合一一對應,每個預存數據包括T2個第二比特組,每個第二比特 組包括k比特,每個第二數據集合包括Μ 2個第二數據,第i個第二數據集合中的每個第二數 據包括第i個預存數據中的!^個第二比特組,第i個第二數據集合中的M 2個第二數據與從所 述T2個第二比特組中選取j個第二比特組時的M2種組合方式--對應,N 2 1,T2 2 Ti,i e [ 1, N]; 用于根據所述第一數據集合和所述第二數據集合,從所述N個預存數據中確定第一預 存數據,所述第一預存數據和所述目標數據之間相似度與所述相似度閾值j相對應,其中, 所述第一預存數據所對應的第二數據集合與所述第一數據集合之間包括至少一個相同的 數據。12. 根據權利要求11所述的設備,其特征在于,所述處理器具體用于根據預設規則,對 所述目標數據中的Ti個第一比特組進行排序; 用于根據所述預設規則,對每個預存數據中的!^個第二比特組進行排序。13. 根據權利要求11或12所述的設備,其特征在于,所述處理器具體用于根據預設的相 似度閾值j和所述第一比特組的數量Ti,確定第一生成矩陣,所述第一生成矩陣包括在第一 維度方向上排列的施個第一向量,每個第一向量包括在第二維度方向上排列的?\個元素,所 述!^個元素包括j個"Γ元素和Ti 一 j個"0"元素,任意兩個第一向量彼此之間至少存在一個 在所述第二維度方向上的排列位置不同的"〇"元素或"Γ元素; 用于根據所述第一生成矩陣和目標數據,生成第一數據集合。14. 根據權利要求11至13中任一項所述的設備,其特征在于,所述處理器具體用于根據 預設的相似度閾值j和所述第二比特組的數量Τ 2,確定第二生成矩陣,所述第二生成矩陣包 括在第一維度方向上排列的Μ2個第二向量,每個第二向量包括在第二維度方向上排列的Τ 2 個元素,所述Τ2個元素包括j個"Γ元素和T2"j個"0"元素,任意兩個第二向量彼此之間至少 存在一個在所述第二維度方向上的排列位置不同的"0"元素或"Γ元素; 用于根據所述第二生成矩陣和N個預存數據,生成N個第二數據集合。15. 根據權利要求11至14中任一項所述的設備,其特征在于,所述處理器具體用于從備 選模式中確定查找模式,所述備選模式包括快速模式和完整模式; 用于當所述查找模式為所述快速模式時,基于各所述第一數據在所述第一數據集合中 的排序,按預設順序進行y次查找處理,所述y次查找處理與所述第一數據集合中基于所述 預設順序的前y個第一數據一一對應,其中,第X次查找處理用于確定所述N個第二數據集合 中是否存在與第X個第一數據相同的數據,并在首次查找到與所述第一數據相同的數據時, 將與所述第一數據相同的數據所屬于的第二數據集合所對應的預存數據作為所述第一預 存數據,其中,xe[l,y],y《Mi; 用于當所述查找模式為所述完整模式時,基于各所述第一數據在所述第一數據集合中 的排序,按預設順序進行y次查找處理,所述y次查找處理與所述第一數據集合中基于所述 預設順序的前y個第一數據一一對應,其中,第X次查找處理用于確定所述N個第二數據集合 中是否存在與第X個第一數據相同的數據,如果首次查找到的與所述第一數據相同的數據 屬于至少兩個第二數據集合,則將所述至少兩個第二數據集合所對應的預存數據中與所述 目標數據之間存在相同的比特組的數量最多的預存數據作為所述第一預存數據,其中,xe [l,y],y<Mi〇
【文檔編號】G06F17/30GK105843859SQ201610152630
【公開日】2016年8月10日
【申請日】2016年3月17日
【發明人】冷繼南, 丹尼斯·帕爾霍緬科, 牛進保, 沈建強, 王工藝, 伊萬·馬祖連科
【申請人】華為技術有限公司