數據處理方法和裝置的制造方法
【技術領域】
[0001 ]本發明實施例涉及計算機技術,尤其涉及一種數據處理方法和裝置。
【背景技術】
[0002]對于海量數據的近似數據查找最為通用的就是局部敏感哈希算法(Locality-Sensitive Hashing,簡稱LSH) c^LSH的實現原理,簡單來說就是先通過哈希函數求出所有數據的哈希值,將處理后的數據全部加載到緩存,然后通過開源接口獲取某一個數據的所有鄰居列表,進而把所有鄰區列表當做候選數據進行相似度精確計算,再篩選出最終的數據。比如需要利用LSH得到50條推薦結果,那么就需要先求出500個鄰居列表,然后精確計算當前數據與這500個鄰居列表的相似度,再將結果放到長度為50的優先級隊列(以相似度值作為優先判斷標準),最終得到的隊列即為相似度列表。
[0003]然而,使用上述方法獲取與一個數據相似的數據過程中,由于需要先生成各個數據的哈希值,進而還需要產生多個鄰區列表等中間結果,中間結果的計算量大。
【發明內容】
[0004]本發明實施例提供一種數據處理方法和裝置,以減少在獲取與一個數據相似的數據過程中的計算數據量。
[0005]本發明中的特征屬性具體指可以描述數據的性質以及與不同數據之間的關系的信息,例如,數據是一個歌曲資源數據,那么,該歌曲資源數據的特征屬性就可以包括歌手屬性、曲風屬性、資源格式屬性等。數據的每一個特征屬性都有該特征屬性的具體取值,例如,數據的歌手屬性的具體取值為歌手A,數據的曲風屬性為曲風A,數據的資源格式屬性的具體取值為wmv0
[0006]數據的信息具體指用于唯一標識該數據的信息,例如,可以是標識0001。
[0007]相似度具體指根據兩個數據的特征屬性計算出的用于描述兩個數據的相關性的值。
[0008]特征屬性對應的相似度權重具體指用于反映該特征屬性對相似度計算的影響大小,特征屬性對應的相似度權重可以是人工根據經驗設定的,也可以是進行相應計算得出的,其可以根據需求進行靈活設置,此處不作限制。
[0009]第一方面,本發明實施例提供一種數據處理方法,包括:
[0010]根據數據庫中的數據的特征屬性和特征屬性對應的相似度權重生成屬性分組表,所述屬性分組表包括各特征屬性、所述特征屬性的具體取值以及與所述特征屬性的具體取值相對應的數據的信息,其中,所述屬性分組表中的各特征屬性按照所述特征屬性對應的相似度權重依序排列;
[0011]獲取目標數據的各特征屬性的具體取值,將各特征屬性的具體取值按照特征屬性對應的相似度權重依序排列;
[0012]根據預設查找個數按照所述目標數據的各特征屬性對應的相似度權重的排列順序,依序在屬性分組表中選取與所述目標數據的特征屬性的具體取值相同的候選數據的信息,直至所述候選數據的信息的個數與所述預設查找個數相同為止;
[0013]計算所述目標數據與所述候選數據的相似度,根據所述候選數據的相似度獲取與所述目標數據相關的數據。
[0014]結合第一方面,在第一方面的第一種可實現的方式中,所述屬性分組表包括特征屬性列和數據信息列;
[0015]所述根據數據庫中的數據的特征屬性和特征屬性對應的相似度權重生成屬性分組表,包括:
[0016]將所述特征屬性列中的各特征屬性按照所述特征屬性對應的相似度權重依序排列;各特征屬性包括至少一個所述特征屬性的具體取值,所述特征屬性列中的一行對應一個特征屬性的具體取值;
[0017]分別將數據庫中的數據的信息存放在數據信息列中與所述數據的特征屬性的具體值所在行的相同行中,其中,所述數據包括至少一個特征屬性的具體值。
[0018]結合第一方面或第一方面的第一種可實現的方式,在第一方面的第二種可實現的方式中,所述方法還包括:
[0019]獲取所述候選數據的各特征屬性的具體取值,將各特征屬性的具體取值按照特征屬性對應的相似度權重依序排列;
[0020]所述計算所述目標數據與所述候選數據的相似度,根據所述候選數據的相似度獲取與所述目標數據相關的數據,包括:
[0021 ]計算所述目標數據的各特征屬性的具體取值與各候選數據的特征屬性的具體取值的相似度,獲取所述候選數據的相似度;
[0022]根據各候選數據的相似度,按照從大到小的順序依序選擇預設結果個數的候選數據作為所述目標數據的相關數據。
[0023]結合第一方面的第二種可實現的方式,在第一方面的第三種可實現的方式中,所述計算所述目標數據的各特征屬性的具體取值與各候選數據的特征屬性的具體取值的相似度,獲取所述候選數據的相似度,包括:
[0024]將所述目標數據的各特征屬性的具體取值與各候選數據的所述特征屬性的具體取值進行一一比對,計算各候選數據的特征屬性的具體取值中與所述目標數據的特征屬性的具體取值相同的特征屬性對應的相似度權重之和,獲取所述候選數據的相似度。
[0025]結合第一方面的第三種可實現的方式,在第一方面的第四種可實現的方式中,計算各候選數據的特征屬性的具體取值中與所述目標數據的特征屬性的具體取值相同的特征屬性對應的相似度權重之和,獲取所述候選數據的相似度,包括:
[0026]若特征屬性為多值屬性,則所述特征屬性對應的相似度權重為相同的特征屬性的具體取值的個數與所述多值屬性的具體取值的個數總和的比值乘以所述多值屬性對應的相似度權重;
[0027]若特征屬性為單值屬性,則所述特征屬性對應的相似度權重為所述單值屬性對應的相似度權重;
[0028]計算各候選數據的特征屬性的具體取值中與所述目標數據的特征屬性的具體取值相同的特征屬性對應的相似度權重之和,獲取所述候選數據的相似度。[0029 ]第二方面,本發明實施例提供一種數據處理裝置,包括:
[0030]生成模塊,用于根據數據庫中的數據的特征屬性和特征屬性對應的相似度權重生成屬性分組表,所述屬性分組表包括各特征屬性、所述特征屬性的具體取值以及與所述特征屬性的具體取值相對應的數據的信息,其中,所述屬性分組表中的各特征屬性按照所述特征屬性對應的相似度權重依序排列;
[0031]獲取模塊,用于獲取目標數據的各特征屬性的具體取值,將各特征屬性的具體取值按照特征屬性對應的相似度權重依序排列;
[0032]處理模塊,用于根據預設查找個數按照所述目標數據的各特征屬性對應的相似度權重的排列順序,依序在屬性分組表中選取與所述目標數據的特征屬性的具體取值相同的候選數據的信息,直至所述候選數據的信息的個數與所述預設查找個數相同為止;
[0033]所述處理模塊,還用于計算所述目標數據與所述候選數據的相似度,根據所述候選數據的相似度獲取與所述目標數據相關的數據。
[0034]結合第二方面,在第二方面的第一種可實現的方式中,所述屬性分組表包括特征屬性列和數據信息列;
[0035]所述生成模塊,具體用于將所述特征屬性列中的各特征屬性按照所述特征屬性對應的相似度權重依序排列;各特征屬性包括至少一個所述特征屬性的具體取值,所述特征屬性列中的一行對應一個特征屬性的具體取值;
[0036]分別將數據庫中的數據的信息存放在數據信息列中與所述數據的特征屬性的具體值所在行的相同行中,其中,所述數據包括至少一個特征屬性的具體值。
[0037]結合第二方面或第二方面的第一種可實現的方式,在第二方面的第二種可實現的方式中,所述獲取模塊還用于:
[0038]獲取所述候選數據的各特征屬性的具體取值,將各特征屬性的具體取值按照特征屬性對應的相似度權重依序排列;
[0039]所述處理模塊,用于計算所述目標數據與所述候選數據的相似度,根據所述候選數據的相似度獲取與所述目標數據相關的數據,包括:
[0040]計算所述目