本發(fā)明涉及互聯(lián)網(wǎng)
技術領域:
,尤其涉及一種合并對稱實體組的方法及裝置。
背景技術:
:目前,在大數(shù)據(jù)應用系統(tǒng)中,越來越多的使用關聯(lián)分析工具從海量數(shù)據(jù)中挖掘出不同實體(或項,商品等)之間的聯(lián)系。在實際的數(shù)據(jù)挖掘中會出現(xiàn)一些關聯(lián)關系,比如:“啤酒-尿布”,關聯(lián)度為10;“尿布-啤酒”,關聯(lián)度為13,其中“啤酒-尿布”,就是一個由關聯(lián)的實體組成的實體組,“尿布-啤酒”是另一個由關聯(lián)的實體組成的實體組。從業(yè)務上講這兩個實體組屬于對稱關系,是可以進行合并的。比如可以將其合并為一個實體組“啤酒-尿布”,關聯(lián)度為23。關于合并對稱實體組,現(xiàn)有的方法是通過將所有的實體組進行逐對比較,當發(fā)現(xiàn)有對稱的實體組時將其進行合并。在現(xiàn)有的合并對稱實體組的方法中,發(fā)明人發(fā)現(xiàn),逐對比較實體組的方法開銷非常大,每增加一個實體組就需要多進行n-1次的比較,在大數(shù)據(jù)量環(huán)境下,這種比較方式效率極低。技術實現(xiàn)要素:鑒于上述問題,提出了本發(fā)明以便提供一種克服上述問題或者至少部分地解決上述問題的一種合并對稱實體組的方法及裝置。為解決上述技術問題,一方面,本發(fā)明提供了一種合并對稱實體組的方法,該方法包括:計算數(shù)據(jù)庫實體表里各實體組中實體的校驗值,所述數(shù)據(jù)庫實體表記錄有多個實體組以及對應每個實體組的關聯(lián)度,所述關聯(lián)度用于表征實體組中各個實體之間的關聯(lián)程度;將所述各實體組中各個實體的校驗值相加,獲得對應所述各實體組的校驗值之和;將所述校驗值之和相等的實體組的關聯(lián)度相加,獲得新的關聯(lián)度,并將所述校驗值之和相等的實體組的關聯(lián)度分別賦值為所述新的關聯(lián)度;對所述校驗值之和相等的實體組進行去除重復項的操作,在所述數(shù)據(jù)庫實體表中保留剩余的實體組。另一方面,本發(fā)明還提供了一種合并對稱實體組的裝置,該裝置包括:計算單元,用于計算數(shù)據(jù)庫實體表里各實體組中實體的校驗值,所述數(shù)據(jù)庫實體表記錄有多個實體組以及對應每個實體組的關聯(lián)度,所述關聯(lián)度用于表征實體組中各個實體之間的關聯(lián)程度;第一相加單元,用于將所述各實體組中各個實體的校驗值相加,獲得對應所述各實體組的校驗值之和;第二相加單元,用于將所述校驗值之和相等的實體組的關聯(lián)度相加,獲得新的關聯(lián)度,并將所述校驗值之和相等的實體組的關聯(lián)度分別賦值為所述新的關聯(lián)度;去重單元,用于對所述校驗值之和相等的實體組進行去除重復項的操作,在所述數(shù)據(jù)庫實體表中保留剩余的實體組。借由上述技術方案,本發(fā)明提供的合并對稱實體組的方法及裝置,能夠通過計算實體組中各實體的校驗值,并得到各實體組中實體的校驗值之和,將校驗值之和相等的實體組的關聯(lián)度相加,得到新的關聯(lián)度,并將新的關聯(lián)度分別賦值于校驗值之和相等的實體組,最后對校驗值之和相等的實體組進行去重處理,保留剩余的實體組。與現(xiàn)有技術相比,本發(fā)明能夠通過計算校驗值之和的方法對對稱實體組進行去重,無需對實體組中的實體內(nèi)容進行比對,因此可以減少處理資源的開銷,提高合并對稱實體組的效率。上述說明僅是本發(fā)明技術方案的概述,為了能夠更清楚了解本發(fā)明的技術手段,而可依照說明書的內(nèi)容予以實施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點能夠更明顯易懂,以下特舉本發(fā)明的具體實施方式。附圖說明通過閱讀下文優(yōu)選實施方式的詳細描述,各種其他的優(yōu)點和益處對于本領域普通技術人員將變得清楚明了。附圖僅用于示出優(yōu)選實施方式的目 的,而并不認為是對本發(fā)明的限制。而且在整個附圖中,用相同的參考符號表示相同的部件。在附圖中:圖1示出了本發(fā)明實施例提供的一種合并對稱實體組的方法流程圖;圖2示出了本發(fā)明實施例提供的另一種合并對稱實體組的方法流程圖;圖3示出了本發(fā)明實施例提供的一種合并對稱實體組的裝置的組成框圖;圖4示出了本發(fā)明實施例提供的另一種合并對稱實體組的裝置的組成框圖。具體實施方式下面將參照附圖更詳細地描述本公開的示例性實施例。雖然附圖中顯示了本公開的示例性實施例,然而應當理解,可以以各種形式實現(xiàn)本公開而不應被這里闡述的實施例所限制。相反,提供這些實施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達給本領域的技術人員。為解決現(xiàn)有合并對稱實體組的方法效率極低的問題,本發(fā)明實施例提供了一種合并對稱實體組的方法,如圖1所示,該方法包括:101、計算數(shù)據(jù)庫實體表里各實體組中實體的校驗值。本實施例中的實體組是指在進行數(shù)據(jù)挖掘的過程中,得到的具有某種關聯(lián)關系的實體組,這種關聯(lián)關系的關聯(lián)程度通過關聯(lián)度來描述。在數(shù)據(jù)庫實體表中記錄有多個實體組以及對應每個實體組的關聯(lián)度。對于實體組中的不同的實體都可以得到一個唯一的校驗值,利用校驗值的唯一性可以代替實體進行一些計算。本步驟中的計算各實體組中實體的校驗值是要將實體轉(zhuǎn)換為可以進行計算的校驗值,然后為后面的實體組的去重分析和計算做準備。102、將實體組中各個實體的校驗值相加,獲得對應實體組的校驗值之和。對實體組中的各實體的校驗值進行求和運算,每個實體組經(jīng)過運算得到一個對應的校驗值之和。103、將校驗值之和相等的實體組的關聯(lián)度相加,獲得新的關聯(lián)度。對校驗值之和相等的實體組的關聯(lián)度進行相加,得到新的關聯(lián)度,并將新的關聯(lián)度分別賦值于校驗值之和相等的實體組。給出示例進行說明:假設兩個校驗值之和相等的實體組為A和B,實體組A中對應的實體的關聯(lián)度為10,實體組B中對應的實體的關聯(lián)度為13,那么新的關聯(lián)度為23,然后將實體組A實體組B的關聯(lián)度都賦值為23。104、對校驗值之和相等的實體組進行去重,保留剩余的實體組。本實施例中的去重是指對對稱的實體組進行合并,對稱的實體組是指實體組的實體是相同的,而他們的表示是不同的,比如:“啤酒-尿布”和“尿布-啤酒”,又由于每個實體的校驗值是唯一的,所以相同的實體的校驗值得到的校驗值之和也是相同的。因此可以根據(jù)校驗值之和去進行實體組的去重。即將校驗值之和相等的實體組合并為一個實體組,最終實現(xiàn)去重,去重之后剩余的實體組就是沒有對稱實體組的實體組集合。其中剩余的實體組中包括校驗值之和互不相等的實體組以及將校驗值之和相等的實體組合并得到的實體組。需要說明的是本步驟是對經(jīng)過關聯(lián)度相加處理之后的實體組進行的去重處理。本實施例提供的合并對稱實體組的方法,能夠通過計算實體組中各實體的校驗值,并得到各實體組中實體的校驗值之和,將校驗值之和相等的實體組的關聯(lián)度相加,得到新的關聯(lián)度,并將新的關聯(lián)度分別賦值于校驗值之和相等的實體組,最后對校驗值之和相等的實體組進行去重處理,保留剩余的實體組。與現(xiàn)有技術相比,本實施例能夠通過計算校驗值之和的方法對對稱實體組進行去重,無需對實體組中的實體內(nèi)容進行比對,因此可以減少處理資源的開銷,提高合并對稱實體組的效率。進一步的,作為對圖1所示實施例的細化及擴展,本發(fā)明還提供了另一實施例。如圖2所示,該實施例中合并對稱實體組的方法包括:201、提取各實體組中的實體,調(diào)用校驗值函數(shù)對提取的實體分別計算校驗值。從數(shù)據(jù)庫中提取得到各實體組中的實體,并通過校驗值函數(shù)計算實體的校驗值。具體的校驗值函數(shù)是指由關系型數(shù)據(jù)庫管理系統(tǒng)SQLServer (StructuredQueryLanguageServer,簡稱SQLServer)提供的二進制校驗和函數(shù)Binary_checkSum()計算實體組中實體的校驗值。不同實體計算得到的的校驗值是各不相同的。需要說明的是通過Binary_checkSum()計算得到的實體的校驗值是二進制的數(shù)據(jù),為了計算的方便一般會選擇將二進制的數(shù)據(jù)轉(zhuǎn)化為別的數(shù)據(jù)形式,比如十進制數(shù)據(jù)等。202、將實體組中各個實體的校驗值相加,獲得對應實體組的校驗值之和。該步驟的實現(xiàn)方式與圖1步驟102的實現(xiàn)方式相同,此處不再贅述。203、對于校驗值之和相等的實體組,提取其中各實體的校驗值,比較不同實體組中對應實體的校驗值是否相等。從由步驟202得到的校驗值之和中選出校驗值之和相等的實體組,并提取出校驗值之和相等的實體組對應的各實體的校驗值。然后對應比較校驗值之和相等的不同實體組中對應實體的校驗值是否相等,若對應的實體的校驗值也相等,則將校驗值之和相等并且對應的實體組中的實體的校驗值也相等的實體組作為后面需要進行關聯(lián)度相加的實體組。本步驟是為了避免存在兩個實體組中各實體的校驗值分別不相等,但是計算得到的校驗值之和是相等的情況。204、將校驗值之和相等的實體組的關聯(lián)度相加,獲得新的關聯(lián)度。該步驟的實現(xiàn)方式與圖1步驟103的實現(xiàn)方式相同,此處不再贅述。205、對校驗值之和相等的實體組進行去重,保留剩余的實體組。對校驗值之和相等的實體組進行去重,保留剩余的實體組,包括以下幾個步驟:首先,根據(jù)校驗值之和以及關聯(lián)度將實體組分配到對應的集合中,集合中的校驗值之和相等并且關聯(lián)度也相等。對于校驗值之和都不相等的實體組,各自組成集合。需要說明的是對于步驟203中可能出現(xiàn)的兩個實體組中各實體的校驗值分別不相等,但是計算得到的校驗值之和相等的情況時,將這兩個實體組分到兩個集合中。其次,對集合中的實體組進行排序,按統(tǒng)一規(guī)則分配序號。對每個集合中的實體組分別進行集合內(nèi)的排序。排序可以按照實體的校驗值的大小 進行排序或者別的排序原理。然后將各集合中的實體組按照統(tǒng)一的規(guī)則進行編號,比如都用數(shù)字進行編號,從“1”開始依次編號,或者使用字母進行編號,從“a”開始依次編號。具體的在實現(xiàn)對集合中的實體組進行排序時需要用到排序函數(shù)Row_number()和開窗函數(shù)OVER()。因為OVER()函數(shù)可以為行定義一個窗口,其中窗口是指運算將要操作的行的集合,然后對一組值進行操作。本實施例就是在OVER()函數(shù)定義的窗口中結合Row_number()函數(shù)為每個集合中的實體組進行排序。最后,從各集合中提取預設序號對應的實體組,預設序號為在所有集合中對應實體組數(shù)量最多的序號。這樣就保證每個集合中都被提取到一個實體組,因為不同的集合中的實體組是不同的,所以最終得到的就是沒有對稱實體組的實體組集合。進一步的,為了對圖2所示的實施例方法的詳細說明,給出具體的實例進行說明,如下所示。假設一個數(shù)據(jù)庫實體表中的記錄的實體組為,如下表所示。其中每一個序號對應一個實體組,每個實體組中包括兩個實體,實體一和實體二,關聯(lián)度是實體一和實體二之間的關聯(lián)度。從表中可以看到存在兩對對稱實體組:“啤酒-尿布”和“尿布-啤酒”、“尿布-奶粉”和“奶粉-尿布”。那么對該數(shù)據(jù)庫實體表進行合并對稱實體組的方法為:序號實體一實體二關聯(lián)度1啤酒尿布132尿布啤酒103啤酒牛奶184尿布童裝295尿布奶粉506啤酒奶粉67奶粉尿布10首先,計算各實體組中的實體的校驗值,并將各實體校驗值相加,得到如下表所示的結果。其中校驗值之和是由實體一校驗值和實體二校驗值相加得到的。序號實體一實體二關聯(lián)度實體一校驗值實體二校驗值校驗值之和1啤酒尿布133786423681157467572尿布啤酒103681153786427467573啤酒牛奶183786424906948693364尿布童裝293681154686298367445尿布奶粉503681153880737561886啤酒奶粉63786423880737667157奶粉尿布10388073368115756188其次,對于校驗值之和相等的實體組,提取其中各實體的校驗值,比較不同實體組中對應實體的校驗值是否相等。然后將校驗值之和相等實體組的關聯(lián)度進行相加,獲得新的關聯(lián)度,并將新的關聯(lián)度分別賦值于校驗值之和相等的實體組。其中校驗值之和相等的兩組的序號分別為“1”和“2”、“5”和“7”,因此需要分別提取兩組實體組中對應的實體的校驗值。對于“1”和“2”兩個實體組來說,他們對應的實體的校驗值分別為“378642”和“368115”、“368115”和“378642”,可以判斷得出兩個實體組對應的校驗值是相等的,因此可以將他們進行關聯(lián)度的相加。同樣的對于“5”和“7”兩個實體組來說,也可以將他們進行關聯(lián)度的相加。得到如下表所示的結果:序號實體一實體二關聯(lián)度實體一校驗值實體二校驗值校驗值之和1啤酒尿布233786423681157467572尿布啤酒233681153786427467573啤酒牛奶183786424906948693364尿布童裝293681154686298367445尿布奶粉603681153880737561886啤酒奶粉63786423880737667157奶粉尿布60388073368115756188最后,對校驗值之和相等的實體組進行去重,保留剩余的實體組。其中校驗值之和相等并且關聯(lián)度也相等的兩組的序號分別為“1”和“2”、“5”和“7”。因此將序號“1”和“2”兩個實體組分配到一個集合中,將序號“5”和“7”的兩個實體組分配到一個集合中。其他的校驗值之和都各不相 同,因此各自為一個集合。最終可以將該實體表中的實體組分為六個集合。然后分別對每個集合中的實體組從數(shù)字“1”開始排序。如下表所示。序號實體一實體二關聯(lián)度實體一校驗值實體二校驗值校驗值之和編號1啤酒尿布2337864236811574675712尿布啤酒2336811537864274675725尿布奶粉6036811538807375618817奶粉尿布6038807336811575618826啤酒奶粉637864238807376671514尿布童裝2936811546862983674413啤酒牛奶183786424906948693361再將編號對應的實體組數(shù)量最多的序號對應的實體組提取出來,在該實例中編號為“1”的實體組數(shù)量最多,因此需要提取編號為“1”的實體組。最終結果如下表所示。序號實體一實體二關聯(lián)度實體一校驗值實體二校驗值校驗值之和編號1啤酒尿布2337864236811574675715尿布奶粉6036811538807375618816啤酒奶粉637864238807376671514尿布童裝2936811546862983674413啤酒牛奶183786424906948693361可以看到最后得到的結果中不存在對稱的實體組,實現(xiàn)了對稱實體組的合并。進一步的,作為對上述圖1和圖2所示方法的實現(xiàn),本發(fā)明實施例另一實施例還提供了一種合并對稱實體組的裝置,用于對上述圖1和圖2所示的方法進行實現(xiàn)。該裝置實施例與前述方法實施例對應,為便于閱讀,本裝置實施例不再對前述方法實施例中的細節(jié)內(nèi)容進行逐一贅述,但應當明確,本實施例中的裝置能夠?qū)獙崿F(xiàn)前述方法實施例中的全部內(nèi)容。如圖3所示,該裝置包括:計算單元31、第一相加單元32、第二相加單元33及去重單元34。計算單元31,用于計算數(shù)據(jù)庫實體表里各實體組中實體的校驗值,數(shù)據(jù)庫實體表記錄有多個實體組以及對應每個實體組的關聯(lián)度,關聯(lián)度用于表征實體組中各個實體之間的關聯(lián)程度;第一相加單元32,用于將各實體組中各個實體的校驗值相加,獲得對應各實體組的校驗值之和;第二相加單元33,用于將校驗值之和相等的實體組的關聯(lián)度相加,獲得新的關聯(lián)度,并將校驗值之和相等的實體組的關聯(lián)度分別賦值為新的關聯(lián)度;去重單元34,用于對校驗值之和相等的實體組進行去除重復項的操作,在所述數(shù)據(jù)庫實體表中保留剩余的實體組。進一步的,如圖4所示,計算單元31,包括:第一提取模塊311,用于提取各實體組中的實體;調(diào)用模塊312,用于調(diào)用校驗值函數(shù)對提取的實體分別計算校驗值。進一步的,如圖4所示,裝置進一步包括:提取單元35,用于在將校驗值之和相等的實體組的關聯(lián)度相加之前,對于校驗值之和相等的實體組,提取其中各實體的校驗值;比較單元36,用于比較校驗值之和相等的實體組中對應實體的校驗值是否相等。進一步的,第二相加單元33用于:如果比較結果為相等,則將所述校驗值之和相等的實體組的關聯(lián)度相加。進一步的,如圖4所示,去重單元34,包括:分配模塊341,用于根據(jù)校驗值之和以及關聯(lián)度將實體組分配到對應的集合中,集合中的校驗值之和相等,并且集合中的關聯(lián)度也相等;排序模塊342,用于對集合中的實體組進行排序,并按統(tǒng)一規(guī)則分配序號;第二提取模塊343,用于從各個集合中提取預設序號對應的實體組,得到去重之后剩余的實體組,預設序號為在所有集合中對應實體組數(shù)量最多的序號。本實施例提供的合并對稱實體組的裝置,能夠通過計算實體組中各實體的校驗值,并得到各實體組中實體的校驗值之和,將校驗值之和相等的實體組的關聯(lián)度相加,得到新的關聯(lián)度,并將新的關聯(lián)度分別賦值于校驗值之和相等的實體組,最后對校驗值之和相等的實體組進行去重處理,保留剩余的實體組。與現(xiàn)有技術相比,本實施例能夠通過計算校驗值之和的方法對對稱實體組進行去重,無需對實體組中的實體內(nèi)容進行比對,因此可以減少處理資源的開銷,提高合并對稱實體組的效率。所述合并對稱實體組的裝置包括處理器和存儲器,上述計算單元31、第一相加單元32、第二相加單元33和去重單元34等均作為程序單元存儲在存儲器中,由處理器執(zhí)行存儲在存儲器中的上述程序單元來實現(xiàn)相應的功能。本申請還提供了一種計算機程序產(chǎn)品,當在數(shù)據(jù)處理設備上執(zhí)行時,適于執(zhí)行初始化有如下方法步驟的程序代碼:計算數(shù)據(jù)庫實體表里各實體組中實體的校驗值,數(shù)據(jù)庫實體表記錄有多個實體組以及對應每個實體組的關聯(lián)度,關聯(lián)度用于表征實體組中各個實體之間的關聯(lián)程度;將各實體組中各個實體的校驗值相加,獲得對應各實體組的校驗值之和;將校驗值之和相等的實體組的關聯(lián)度相加,獲得新的關聯(lián)度,并將校驗值之和相等的實體組的關聯(lián)度分別賦值為新的關聯(lián)度;對校驗值之和相等的實體組進行去除重復項的操作,在數(shù)據(jù)庫實體表中保留剩余的實體組。本領域內(nèi)的技術人員應明白,本申請的實施例可提供為方法、系統(tǒng)、或計算機程序產(chǎn)品。因此,本申請可采用完全硬件實施例、完全軟件實施例、或結合軟件和硬件方面的實施例的形式。而且,本申請可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(zhì)(包括但不限于磁盤存儲器、CD-ROM、光學存儲器等)上實施的計算機程序產(chǎn)品的形式。本申請是參照根據(jù)本申請實施例的方法、設備(系統(tǒng))、和計算機程序產(chǎn)品的流程圖和/或方框圖來描述的。應理解可由計算機程序指令實現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結合??商峁┻@些計算機程序指令到通用計算機、專 用計算機、嵌入式處理機或其他可編程數(shù)據(jù)處理設備的處理器以產(chǎn)生一個機器,使得通過計算機或其他可編程數(shù)據(jù)處理設備的處理器執(zhí)行的指令產(chǎn)生用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。這些計算機程序指令也可存儲在能引導計算機或其他可編程數(shù)據(jù)處理設備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。這些計算機程序指令也可裝載到計算機或其他可編程數(shù)據(jù)處理設備上,使得在計算機或其他可編程設備上執(zhí)行一系列操作步驟以產(chǎn)生計算機實現(xiàn)的處理,從而在計算機或其他可編程設備上執(zhí)行的指令提供用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。在一個典型的配置中,計算設備包括一個或多個處理器(CPU)、輸入/輸出接口、網(wǎng)絡接口和內(nèi)存。存儲器可能包括計算機可讀介質(zhì)中的非永久性存儲器,隨機存取存儲器(RAM)和/或非易失性內(nèi)存等形式,如只讀存儲器(ROM)或閃存(flashRAM)。存儲器是計算機可讀介質(zhì)的示例。計算機可讀介質(zhì)包括永久性和非永久性、可移動和非可移動媒體可以由任何方法或技術來實現(xiàn)信息存儲。信息可以是計算機可讀指令、數(shù)據(jù)結構、程序的模塊或其他數(shù)據(jù)。計算機的存儲介質(zhì)的例子包括,但不限于相變內(nèi)存(PRAM)、靜態(tài)隨機存取存儲器(SRAM)、動態(tài)隨機存取存儲器(DRAM)、其他類型的隨機存取存儲器(RAM)、只讀存儲器(ROM)、電可擦除可編程只讀存儲器(EEPROM)、快閃記憶體或其他內(nèi)存技術、只讀光盤只讀存儲器(CD-ROM)、數(shù)字多功能光盤(DVD)或其他光學存儲、磁盒式磁帶,磁帶磁磁盤存儲或其他磁性存儲設備或任何其他非傳輸介質(zhì),可用于存儲可以被計算設備訪問的信息。按照本文中的界定,計算機可讀介質(zhì)不包括暫存電腦可讀媒體(transitorymedia),如調(diào)制的數(shù)據(jù)信號和載波。以上僅為本申請的實施例而已,并不用于限制本申請。對于本領域技術人員來說,本申請可以有各種更改和變化。凡在本申請的精神和原理之內(nèi)所作的任何修改、等同替換、改進等,均應包含在本申請的權利要求范圍之內(nèi)。當前第1頁1 2 3