專利名稱:重復(fù)數(shù)據(jù)處理方法、裝置及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本申請(qǐng)涉及網(wǎng)絡(luò)技術(shù)領(lǐng)域,具體而言,涉及一種重復(fù)數(shù)據(jù)處理方法、裝置及系統(tǒng)。
背景技術(shù):
對(duì)于網(wǎng)站而言,數(shù)據(jù)重復(fù)是不可避免的,例如,在電子商務(wù)網(wǎng)站中會(huì)出現(xiàn)重復(fù)的商品信息。在現(xiàn)有技術(shù)中通常通過三個(gè)步驟來對(duì)重復(fù)數(shù)據(jù)進(jìn)行清理(為了描述方便,以下將需要判定是否重復(fù)的信息稱為A,將需要從存儲(chǔ)系統(tǒng)獲取的和A進(jìn)行比較的信息稱為B)步驟S10,系統(tǒng)取數(shù)邏輯。該步驟用于從數(shù)據(jù)存儲(chǔ)系統(tǒng)中取出需要比較重復(fù)的信息數(shù)據(jù)集。對(duì)于海量數(shù)據(jù)來說,數(shù)據(jù)集的大小直接決定整個(gè)系統(tǒng)的運(yùn)行效率。在該步驟中,通常采用線性排隊(duì)的方式, 即,等待上一條信息處理完畢后再繼續(xù)下一條信息的處理。對(duì)于B的篩選通常通過以下的方式來實(shí)現(xiàn)方式一,通過數(shù)據(jù)庫或者其他數(shù)據(jù)源查詢的方式,逐個(gè)取信息B和A進(jìn)行比較,該方式?jīng)]有對(duì)B進(jìn)行篩選;方式二,通過預(yù)定條件只篩選出部分和A有明顯共性的信息B進(jìn)行比較(例如,同一個(gè)發(fā)布者發(fā)布的信息,或者和A屬于同一個(gè)行業(yè)的信息B)來縮小查詢條件。以下以清理重復(fù)商品信息(其他重復(fù)數(shù)據(jù)也可以采用相同的處理方式)為例對(duì)方式二進(jìn)行說明。圖I是根據(jù)現(xiàn)有技術(shù)的清理重復(fù)商品信息的系統(tǒng)取數(shù)據(jù)的流程圖,如圖I所示,該流程包括如下步驟步驟S102,讀取會(huì)員分布信息;步驟S104,逐個(gè)行業(yè)讀取信息;步驟S106,按序取一條信息;步驟S108,執(zhí)行下述步驟S20判斷是否為重復(fù)數(shù)據(jù),在不是重復(fù)數(shù)據(jù)的情況下,返回步驟S106,在是重復(fù)數(shù)據(jù)的情況執(zhí)行步驟SllO ;步驟S110,進(jìn)行步驟S30的去重處理。步驟S20,判定A是否為重復(fù)信息。在該步驟中涉及到判斷信息是否相似的算法,而不同的算法也會(huì)直接影響到系統(tǒng)處理方案的準(zhǔn)確度和有效性。在現(xiàn)有技術(shù)中通常會(huì)采用以下方式方式一,對(duì)A和B所涉及到所有數(shù)據(jù)進(jìn)行完全比對(duì);方式二,有選擇性的只選取A和B的關(guān)鍵數(shù)據(jù)進(jìn)行完全比對(duì);方式三,進(jìn)行相似度比較,根據(jù)A和B中的數(shù)據(jù)的相似程度來判斷A和B是否相同,例如,對(duì)某些說明部分文字進(jìn)行相識(shí)度比較。步驟S30,清理重復(fù)信息?,F(xiàn)有技術(shù)中的上述處理方法對(duì)于數(shù)據(jù)量較少的情況比較適用,但是對(duì)于海量數(shù)據(jù)而言,上述方法處理效率就會(huì)變低,例如,現(xiàn)有技術(shù)的清理重復(fù)信息的方法的算法效率是O (η),其中,η代表數(shù)據(jù)量,O (η)代表算法執(zhí)行的時(shí)間,O (η)的值與η值是成線性關(guān)系甚至成指數(shù)關(guān)系的,無論成什么的函數(shù)關(guān)系,有一點(diǎn)是可以確定的,即0(η)的值是隨著η值的增大而增加的。因此,當(dāng)η值相當(dāng)大的前提下,必然導(dǎo)致用于執(zhí)行0(η)的服務(wù)器負(fù)荷過大,無法及時(shí)對(duì)重復(fù)數(shù)據(jù)進(jìn)行處理,導(dǎo)致信息審核速度根本跟不上新信息發(fā)布的速度。
現(xiàn)有技術(shù)中,解決上述問題的方式是可以通過縮小數(shù)據(jù)集(即η值)的方式來降低服務(wù)器的負(fù)荷的,例如,按信息發(fā)布者所在行業(yè),然后按每個(gè)行業(yè)逐個(gè)取數(shù)據(jù)的方式來實(shí)現(xiàn)。但是,雖然在一定程度上縮小了整個(gè)數(shù)據(jù)集(即,η值),但算法的效率可以認(rèn)為是0(η(η-1)/2),當(dāng)信息發(fā)布者有很多信息(例如,海量數(shù)據(jù))的時(shí)候,該方法的效率依然太低。從而,為了解決該問題,只能通過增大硬件投入的方式(有些情況僅僅依靠加大硬件投入也無法取得理想的效果)滿足去除重復(fù)數(shù)據(jù)要求,這種處理方式也存在問題其一,無法滿足今后擴(kuò)展的需求;其二,浪費(fèi)了服務(wù)器資源,整體效能太低。
發(fā)明內(nèi)容
本申請(qǐng)的主要目的在于提供一種重復(fù)數(shù)據(jù)處理方法、裝置及系統(tǒng),以至少解決上述問題之一。根據(jù)本申請(qǐng)的一個(gè)方面,提供了一種重復(fù)數(shù)據(jù)處理方法,包括以下步驟將待比較數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)處理成與重復(fù)數(shù)據(jù)庫中的數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)相同,其中,所述重復(fù)數(shù)據(jù)庫是 將數(shù)據(jù)庫中的數(shù)據(jù)按照預(yù)設(shè)的數(shù)據(jù)結(jié)構(gòu)進(jìn)行處理后通過內(nèi)存映射形成的;將處理之后的所述待比較數(shù)據(jù)與所述重復(fù)數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行比較,確定所述待比較數(shù)據(jù)是否是重復(fù)數(shù)據(jù);在所述待比較數(shù)據(jù)不是重復(fù)數(shù)據(jù)的情況下,將所述待比較數(shù)據(jù)寫入所述數(shù)據(jù)庫。在處理之后的所述待比較數(shù)據(jù)包括用于進(jìn)行完全匹配的第一信息和用于進(jìn)行相似度匹配的第二信息的情況下,確定所述待比較數(shù)據(jù)是否為重復(fù)數(shù)據(jù)包括在所述待比較數(shù)據(jù)的第一信息與所述重復(fù)數(shù)據(jù)庫中的數(shù)據(jù)的第一信息完全一致,并且所述待比較數(shù)據(jù)的第二信息與所述重復(fù)數(shù)據(jù)庫中的該數(shù)據(jù)的第二信息相似度超過閾值的情況下,確定所述待比較數(shù)據(jù)為重復(fù)數(shù)據(jù)。在處理之后的所述待比較數(shù)據(jù)還包括一張或多張圖片的大小的情況下,確定所述待比較數(shù)據(jù)是否為重復(fù)數(shù)據(jù)包括在所述待比較數(shù)據(jù)的第一信息與所述重復(fù)數(shù)據(jù)庫中的數(shù)據(jù)的第一信息完全一致,并且所述待比較數(shù)據(jù)的第二信息與所述重復(fù)數(shù)據(jù)庫中的該數(shù)據(jù)的第二信息相似度超過閾值的情況下,根據(jù)所述待比較數(shù)據(jù)中的一張或多張圖片的大小與所述重復(fù)數(shù)據(jù)庫中的該數(shù)據(jù)的一張或多張圖片的大小的關(guān)系,確定所述待比較數(shù)據(jù)為重復(fù)數(shù)據(jù)的方式,其中,所述重復(fù)數(shù)據(jù)的方式包括所述待比較數(shù)據(jù)與所述重復(fù)數(shù)據(jù)庫中的該數(shù)據(jù)完全相同、所述待比較數(shù)據(jù)包含所述重復(fù)數(shù)據(jù)庫中的該數(shù)據(jù)、或者所述重復(fù)數(shù)據(jù)庫中的該數(shù)據(jù)包括所述待比較數(shù)據(jù)。所述第一信息至少包括將數(shù)據(jù)中需要進(jìn)行完全匹配的部分中的一個(gè)或多個(gè)形成一個(gè)組合并將所述組合通過散列算法或加密算法所得到的值;和/或,所述第二信息至少包括將數(shù)據(jù)中需要進(jìn)行相似度匹配的部分通過壓縮算法所得到的值。 形成所述組合的一個(gè)或多個(gè)部分是預(yù)先配置的。所述第一信息和所述第二信息在所述重復(fù)數(shù)據(jù)庫中通過鍵-值對(duì)的方式保存。在將所述待比較數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)處理成與所述重復(fù)數(shù)據(jù)庫中的數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)相同之前,還包括對(duì)所述待比較數(shù)據(jù)進(jìn)行預(yù)處理,其中,所述預(yù)處理包括以下至少之一大小寫轉(zhuǎn)換、全半角轉(zhuǎn)換、特殊字符過濾、形音詞替換、無意義詞替換、關(guān)鍵詞抽取、去除HTML標(biāo)記。在將所述待比較數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)處理成與所述重復(fù)數(shù)據(jù)庫中的數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)相同之前,還包括接收所述待比較數(shù)據(jù),其中,所述待比較數(shù)據(jù)是經(jīng)過負(fù)載均衡處理之后發(fā)送過來的。根據(jù)本申請(qǐng)的另ー個(gè)方面,還提供了一種重復(fù)數(shù)據(jù)處理裝置,包括處理模塊,用于將待比較數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)處理成與重復(fù)數(shù)據(jù)庫中的數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)相同,其中,所述重復(fù)數(shù)據(jù)庫是將數(shù)據(jù)庫中的數(shù)據(jù)按照預(yù)設(shè)的數(shù)據(jù)結(jié)構(gòu)進(jìn)行處理后通過內(nèi)存映射形成的;比較模塊,用于將處理之后的所述待比較數(shù)據(jù)與所述重復(fù)數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行比較,確定所述待比較數(shù)據(jù)是否為重復(fù)數(shù)據(jù);寫入模塊,用于在所述待比較數(shù)據(jù)不是重復(fù)數(shù)據(jù)的情況下,將所述待比較數(shù)據(jù)寫入所述數(shù)據(jù)庫。在處理之后的所述待比較數(shù)據(jù)包括用于進(jìn)行完全匹配的第一信息和用于進(jìn)行相似度匹配的第二信息的情況下,所述比較模塊,用于在所述待比較數(shù)據(jù)的第一信息與所述重復(fù)數(shù)據(jù)庫中的數(shù)據(jù)的第一信息完全一致,并且所述待比較數(shù)據(jù)的第二信息與所述重復(fù)數(shù)據(jù)庫中的該數(shù)據(jù)的第二信息相似度超過閾值的情況下,確定所述待比較數(shù)據(jù)為重復(fù)數(shù)據(jù)。在處理之后的所述待比較數(shù)據(jù)還包括一張或多張圖片大小的情況下,所述比較模塊,用于在所述待比較數(shù)據(jù)的第一信息與所述重復(fù)數(shù)據(jù)庫中的數(shù)據(jù)的第一信息完全一致, 并且所述待比較數(shù)據(jù)的第二信息與所述重復(fù)數(shù)據(jù)庫中的該數(shù)據(jù)的第二信息相似度超過閾值的情況下,根據(jù)所述待比較數(shù)據(jù)中的一張或多張圖片的大小與所述重復(fù)數(shù)據(jù)庫中的該數(shù)據(jù)的ー張或多張圖片的大小的關(guān)系,確定所述待比較數(shù)據(jù)為重復(fù)數(shù)據(jù)的方式,其中,所述重復(fù)數(shù)據(jù)的方式包括所述待比較數(shù)據(jù)與所述重復(fù)數(shù)據(jù)庫中的該數(shù)據(jù)完全相同、所述待比較數(shù)據(jù)包含所述重復(fù)數(shù)據(jù)庫中的該數(shù)據(jù)、或者所述重復(fù)數(shù)據(jù)庫中的該數(shù)據(jù)包括所述待比較數(shù)據(jù)。所述第一信息至少包括將數(shù)據(jù)中需要進(jìn)行完全匹配的部分中的ー個(gè)或多個(gè)形成一個(gè)組合并將所述組合通過散列算法或加密算法所得到的值;和/或,所述第二信息至少包括將數(shù)據(jù)中需要進(jìn)行相似度匹配的部分通過壓縮算法所得到的值。該裝置還包括預(yù)處理模塊,用于對(duì)所述待比較數(shù)據(jù)進(jìn)行預(yù)處理,其中,所述預(yù)處理包括以下至少之ー大小寫轉(zhuǎn)換、全半角轉(zhuǎn)換、特殊字符過濾、形音詞替換、無意義詞替換、關(guān)鍵詞抽取、去除HTML標(biāo)記。根據(jù)本申請(qǐng)的再ー個(gè)方面,還提供了一種重復(fù)數(shù)據(jù)處理系統(tǒng),包括ー個(gè)或多個(gè)上述的重復(fù)數(shù)據(jù)處理裝置、以及分發(fā)裝置,其中所述分發(fā)裝置用于根據(jù)所述ー個(gè)或多個(gè)重復(fù)數(shù)據(jù)處理裝置的負(fù)載向所述ー個(gè)或多個(gè)重復(fù)數(shù)據(jù)處理裝置發(fā)送待比較數(shù)據(jù)。通過本申請(qǐng),解決了現(xiàn)有技術(shù)中去重處理效率較低而為了提高效率只能増加服務(wù)器所導(dǎo)致的問題,進(jìn)而提高了服務(wù)器進(jìn)行去重處理時(shí)的效率,節(jié)約了服務(wù)器資源。
此處所說明的附圖用來提供對(duì)本申請(qǐng)的進(jìn)一歩理解,構(gòu)成本申請(qǐng)的一部分,本申請(qǐng)的示意性實(shí)施例及其說明用于解釋本申請(qǐng),并不構(gòu)成對(duì)本申請(qǐng)的不當(dāng)限定。在附圖中圖I是根據(jù)現(xiàn)有技術(shù)的清理重復(fù)商品信息的流程圖;圖2是根據(jù)本申請(qǐng)實(shí)施例的重復(fù)數(shù)據(jù)處理方法流程圖;圖3是根據(jù)本申請(qǐng)實(shí)施例的重復(fù)數(shù)據(jù)處理裝置的結(jié)構(gòu)示意圖;圖4是根據(jù)本申請(qǐng)實(shí)施例優(yōu)選的重復(fù)數(shù)據(jù)處理裝置的結(jié)構(gòu)示意圖5是根據(jù)本申請(qǐng)優(yōu)選實(shí)施例的快速檢測(cè)清理重復(fù)信息子系統(tǒng)的結(jié)構(gòu)示意圖;圖6是根據(jù)本申請(qǐng)優(yōu)選實(shí)施的對(duì)標(biāo)題預(yù)處理方法的流程圖;圖7是根據(jù)本申請(qǐng)優(yōu)選實(shí)施的對(duì)對(duì)詳細(xì)說明預(yù)處理方法的流程圖;圖8是根據(jù)本申請(qǐng)優(yōu)選實(shí)施的對(duì)產(chǎn)品屬性參數(shù)的預(yù)處理方法的流程圖;圖9是根據(jù)本申請(qǐng)優(yōu)選實(shí)施例的基于分布式緩存的信息重復(fù)比對(duì)庫及其輸入輸出的示意圖;圖10是根據(jù)本申請(qǐng)優(yōu)選實(shí)施例的重復(fù)判斷的流程圖;圖11是根據(jù)本申請(qǐng)優(yōu)選實(shí)施例的A包含B時(shí)的重復(fù)處理方法的流程圖;以及
圖12是根據(jù)本申請(qǐng)優(yōu)選實(shí)施例的A == B時(shí)的重復(fù)處理方法的流程圖。
具體實(shí)施例方式下文中將參考附圖并結(jié)合實(shí)施例來詳細(xì)說明本申請(qǐng)。需要說明的是,在不沖突的情況下,本申請(qǐng)中的實(shí)施例及實(shí)施例中的特征可以相互組合。以下實(shí)施例中的重復(fù)數(shù)據(jù)處理方法可以應(yīng)用在服務(wù)器上,該服務(wù)器可以專用于進(jìn)行重復(fù)數(shù)據(jù)的處理,當(dāng)然也可以應(yīng)用于一組服務(wù)器上?;蛘咭部梢宰鳛榉?wù)器中的一個(gè)模塊與執(zhí)行其他功能的服務(wù)器公用。以下實(shí)施例中用于進(jìn)行重復(fù)數(shù)據(jù)比對(duì)的數(shù)據(jù)庫采用了內(nèi)存數(shù)據(jù)庫(在以下實(shí)施例中稱為重復(fù)數(shù)據(jù)庫)的方式(以下實(shí)施例可以適用于基于鍵-值對(duì)的內(nèi)存數(shù)據(jù)庫,但是并不限于此,在以下的實(shí)施例中會(huì)以示例的方式對(duì)基于鍵-值對(duì)的內(nèi)存數(shù)據(jù)庫進(jìn)行說明)。在現(xiàn)有技術(shù)中的重復(fù)數(shù)據(jù)的處理方式均是采用直接讀取數(shù)據(jù)庫進(jìn)行逐條比較的方式來進(jìn)行的(而這正是導(dǎo)致現(xiàn)有技術(shù)中處理方法效率較低的原因),在以下實(shí)施例中正是由于采用了內(nèi)存數(shù)據(jù)庫作為重復(fù)數(shù)據(jù)庫(或簡(jiǎn)稱重復(fù)庫),使得數(shù)據(jù)的處理效率相比于現(xiàn)有技術(shù)高,如果采用0(n)的評(píng)判方式的話,由于內(nèi)存數(shù)據(jù)庫處理速度很快,因此,η的大小將對(duì)O (η)影響并不是很大。因此,以下實(shí)施例相比于現(xiàn)有技術(shù)改善了服務(wù)器的內(nèi)部性能,可以在占用服務(wù)器較少資源的情況下,完成較大數(shù)據(jù)的去重處理,即在相同的處理效率下,以下實(shí)施例使用的服務(wù)器資源較少,在相同的服務(wù)器資源的情況下,以下實(shí)施例的處理效率更高。并且,由于采用的是內(nèi)存數(shù)據(jù)庫的處理方式,因此,擴(kuò)展相對(duì)也比較容易。圖2是根據(jù)本申請(qǐng)實(shí)施例的重復(fù)數(shù)據(jù)處理方法流程圖,如圖2所示,該方法包括如下步驟步驟S202,將待比較數(shù)據(jù)(即,需要進(jìn)行比較的數(shù)據(jù),也稱為待審核信息,待對(duì)比信息,待處理數(shù)據(jù))的數(shù)據(jù)結(jié)構(gòu)處理成與重復(fù)數(shù)據(jù)庫中的數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)相同,其中,重復(fù)數(shù)據(jù)庫是將數(shù)據(jù)庫中的數(shù)據(jù)按照預(yù)設(shè)的數(shù)據(jù)結(jié)構(gòu)進(jìn)行處理后通過內(nèi)存映射形成的,在此處,重復(fù)數(shù)據(jù)庫中數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)即與預(yù)設(shè)的數(shù)據(jù)結(jié)構(gòu)相同,其可以與數(shù)據(jù)庫中的數(shù)據(jù)結(jié)構(gòu)相同,但是,這樣會(huì)導(dǎo)致重復(fù)數(shù)據(jù)庫數(shù)據(jù)量稍大。作為一個(gè)比較優(yōu)的實(shí)施方式,重復(fù)數(shù)據(jù)庫中數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)可以與數(shù)據(jù)庫中數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)不同,例如,重復(fù)數(shù)據(jù)庫中的數(shù)據(jù)可以是數(shù)據(jù)庫中的數(shù)據(jù)通過預(yù)處理、部分壓縮后等的內(nèi)存映射,這樣的處理相當(dāng)于進(jìn)行了很多抽取、濃縮等工作,一方面可以減少重復(fù)數(shù)據(jù)庫的數(shù)據(jù)量,另一方面可以為數(shù)據(jù)的比較提供更好的數(shù)據(jù)結(jié)構(gòu);步驟S204,將處理之后的待比較數(shù)據(jù)與重復(fù)數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行比較,確定待比較數(shù)據(jù)是否是重復(fù)數(shù)據(jù); 步驟S206,在待比較數(shù)據(jù)不是重復(fù)數(shù)據(jù)的情況下,將待比較數(shù)據(jù)寫入數(shù)據(jù)庫。通過上述步驟,不僅能夠通過內(nèi)存映射的方式避免數(shù)據(jù)庫逐條查詢,還能夠在信息入庫前進(jìn)行去重處理,實(shí)現(xiàn)了從源頭上清理了重復(fù)數(shù)據(jù)。作為一個(gè)優(yōu)選實(shí)施例方式,重復(fù)數(shù)據(jù)庫的數(shù)據(jù)結(jié)構(gòu)是內(nèi)存映射,并且,對(duì)應(yīng)同一條數(shù)據(jù)、重復(fù)數(shù)據(jù)庫是數(shù)據(jù)庫數(shù)據(jù)預(yù)處理后(例如,可以只保留核心的、需要比對(duì)的部分)的一份拷貝,因此,在該優(yōu)選實(shí)施方式中,重復(fù)數(shù)據(jù)庫的大小要比原數(shù)據(jù)庫精簡(jiǎn)的多。對(duì)于步驟S204中的確定待比較數(shù)據(jù)是否為重復(fù)數(shù)據(jù)的比較方式可以采用現(xiàn)有的比較方式進(jìn)行比較,例如,可以采用完全比對(duì)的方式。即使采用現(xiàn)有的比較方式,由于在上述步驟中使用了內(nèi)存數(shù)據(jù)庫,也可以取得比現(xiàn)有技術(shù)更高的效率。在本實(shí)施中提供了一種比現(xiàn)有技術(shù)更優(yōu)的比較方式,該方式結(jié)合了完全比對(duì)和相 似度比對(duì),兼顧了比較的準(zhǔn)確性和效率。下面對(duì)該優(yōu)選的比較方式進(jìn)行說明。可以將待比較數(shù)據(jù)處理為第一信息和第二信息,其中,第一信息用于進(jìn)行完全匹配,第二信息用于進(jìn)行相似度匹配。這樣,可以首先比較第一信息,在待比較數(shù)據(jù)的第一信息與重復(fù)數(shù)據(jù)庫中的數(shù)據(jù)的第一信息完全一致的情況下,再比較第二信息,如果待比較數(shù)據(jù)的第二信息與重復(fù)數(shù)據(jù)庫中的該數(shù)據(jù)的第二信息相似度超過閾值,則可以確定待比較數(shù)據(jù)為重復(fù)數(shù)據(jù)。對(duì)于第一信息,可以是比較重要的信息,例如,標(biāo)題、核心關(guān)鍵字、發(fā)布者ID等等,對(duì)于這些比較重要的信息可以只比對(duì)其中的一項(xiàng),也可以對(duì)這些關(guān)鍵信息的組合進(jìn)行比對(duì),這樣做可以靈活的把握需要精確匹配的幅度。當(dāng)然,比較的信息越多準(zhǔn)確率就越高。對(duì)于第二信息,可以是數(shù)據(jù)量相對(duì)較大的數(shù)據(jù),例如,商品的說明書、產(chǎn)品的介紹等。由于數(shù)據(jù)量較大的信息一般不會(huì)完全相同,但是往往又是相似的,作為一個(gè)比較優(yōu)的實(shí)施方式,是對(duì)第二信息進(jìn)行相似度比較。對(duì)于完全匹配的比較可以采用對(duì)于需要比較的部分進(jìn)行逐一比較的方式,例如,如果需要比較標(biāo)題和發(fā)布者,那么可以首先比較標(biāo)題是否相同,在標(biāo)題相同的情況下再比較發(fā)布者是否相同,這樣的比較方式實(shí)現(xiàn)簡(jiǎn)單,但是比較效率較低。在本實(shí)施例中提供了一種更優(yōu)的處理方式,下面對(duì)該優(yōu)選實(shí)施方式進(jìn)行說明。對(duì)于需要完全匹配的部分,首先,將這些的部分中的一個(gè)或多個(gè)形成一個(gè)組合,然后,將該組合通過散列算法或加密算法進(jìn)行計(jì)算得到一個(gè)值,然后使用該值進(jìn)行比較。通過這樣的比較方式,在需要比較多個(gè)部分的情況下可以通過一次比較完成。例如,可以采用消息摘要算法5 (Message DigestAlgorithm5,簡(jiǎn)稱為MD5)(還可以采用其他的算法,例如,安全哈希算法SHA)對(duì)需要進(jìn)行完全匹配的部分中的一個(gè)或多個(gè)形成的組合進(jìn)行計(jì)算,得到一個(gè)128比特的值,當(dāng)然,重復(fù)數(shù)據(jù)庫中保存的可以是這些需要完全匹配的部分,也可以是這些部分中的一個(gè)或多個(gè)的組合,或者是這些組合經(jīng)過散列算法或加密算法所得到的值。例如,需要完全匹配的部分(或者字段)為標(biāo)題和發(fā)布者ID,標(biāo)題+發(fā)布者ID就可以得到一個(gè)字符串(如“三防手機(jī)mobie3”,其中三防手機(jī)為商品的名稱,mobie3為發(fā)布者ID),然后對(duì)該字符串進(jìn)行MD5運(yùn)算得到一個(gè)128比特的值,使用該值進(jìn)行比較。由于在某些大型的數(shù)據(jù)庫中,涉及到的關(guān)鍵部分(或者字段)比較多,因此,為了靈活處理,可以將需要進(jìn)行完全匹配的部分配置在配置文件中,每次通過讀取該配置文件來得到需要比較那些關(guān)鍵部分(或者字段),即形成組合的一個(gè)或多個(gè)部分是可以預(yù)先配置的。對(duì)于相似度匹配,由于需要進(jìn)行相似度匹配的部分?jǐn)?shù)據(jù)量比較大,可以采用抽取關(guān)鍵字的比較方式,例如對(duì)于不同的行數(shù)可以抽取不同位置的關(guān)鍵詞,如果這些關(guān)鍵詞均相同(相似度為100% )或者相似度超過90%,則可以認(rèn)為是重復(fù)數(shù)據(jù)。然而這種處理方法稍顯復(fù)雜。在本實(shí)施例中還可以采用另外一種比較好的處理方式,即將數(shù)據(jù)中需要進(jìn)行相似度匹配的部分通過壓縮算法所得到的值進(jìn)行比較,例如,將待比較數(shù)據(jù)的詳細(xì)說明進(jìn)行壓縮之后得到ー個(gè)值,將重復(fù)數(shù)據(jù)庫中的詳細(xì)說明進(jìn)行壓縮之后得到ー個(gè)值(例如,壓縮之后的大小),然后對(duì)這兩個(gè)值進(jìn)行比較,在這兩個(gè)值的相似度超過一定閾值時(shí),表明是重復(fù)數(shù)據(jù)(例如,A為待比較數(shù)據(jù)的詳細(xì)說明部分壓縮之后的大小,B為重復(fù)數(shù)據(jù)庫中的詳細(xì)說明部分壓縮之后的大小,那么該閾值可以是(A-B)/A,如果該比值小于1%,可以認(rèn)定為重復(fù)數(shù)據(jù))。
需要說明的是,上述較優(yōu)的完全匹配方式和相似度匹配的處理方式,可以擇ー應(yīng)用,也可以結(jié)合起來應(yīng)用。只要采用了這兩種優(yōu)選方式的一種就可以在兼顧準(zhǔn)確度的同時(shí)提高比較的效率,如果兩種結(jié)合起來使用將達(dá)到更好的效果。上述對(duì)于相似度匹配和完全匹配比較優(yōu)的可以用于對(duì)字符的處理,當(dāng)然也可以應(yīng)用在對(duì)圖片的處理中(例如,將圖片轉(zhuǎn)換成ニ進(jìn)制數(shù)據(jù)之后進(jìn)行比較)。在本實(shí)施例中提供了另外ー種優(yōu)選的處理方式,即在待比較數(shù)據(jù)的第一信息與重復(fù)數(shù)據(jù)庫中的數(shù)據(jù)的第一信息完全一致,并且待比較數(shù)據(jù)的第二信息與重復(fù)數(shù)據(jù)庫中的該數(shù)據(jù)的第二信息相似度超過閾值的情況下,根據(jù)待比較數(shù)據(jù)中的一張或多張圖片的大小與重復(fù)數(shù)據(jù)庫中的該數(shù)據(jù)的一張或多張圖片的大小的關(guān)系,確定待比較數(shù)據(jù)是否為重復(fù)數(shù)據(jù)的方式,其中,確定是重復(fù)數(shù)據(jù)的方式包括待比較數(shù)據(jù)與重復(fù)數(shù)據(jù)庫中的該數(shù)據(jù)完全相同、待比較數(shù)據(jù)包含重復(fù)數(shù)據(jù)庫中的該數(shù)據(jù)、或者重復(fù)數(shù)據(jù)庫中的該數(shù)據(jù)包括待比較數(shù)據(jù)。通過對(duì)圖片的比較,可以使重復(fù)數(shù)據(jù)的判斷更加準(zhǔn)確。優(yōu)選地,為了使完全匹配和相似度匹配得到比較結(jié)果更加準(zhǔn)確,可以在將待比較數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)處理成與重復(fù)數(shù)據(jù)庫中的數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)相同之前,對(duì)待比較數(shù)據(jù)進(jìn)行預(yù)處理,例如,大小寫轉(zhuǎn)換、全半角轉(zhuǎn)換、特殊字符過濾、形音詞替換、無意義詞替換、關(guān)鍵詞抽取、去除HTML標(biāo)記,其中,可以進(jìn)行上述預(yù)處理中的ー個(gè)或多個(gè),進(jìn)行的預(yù)處理越多,那么得到的數(shù)據(jù)就越便于進(jìn)行重復(fù)數(shù)據(jù)判斷。對(duì)于數(shù)據(jù)量較大的情況,可以采用多個(gè)服務(wù)器來進(jìn)行去重處理,例如,該比較數(shù)據(jù)可以是通過具有負(fù)載均衡功能的異步消息系統(tǒng)發(fā)送過來的。在采用多個(gè)服務(wù)器的情況下,可以根據(jù)服務(wù)器的負(fù)載情況,或者根據(jù)待比較數(shù)據(jù)的標(biāo)識(shí)選擇在哪個(gè)服務(wù)器進(jìn)行處理(通常在待比較的數(shù)據(jù)會(huì)有ー個(gè)數(shù)字的ID,如何沒有數(shù)字的ID可以使用流水號(hào)的方式對(duì)待比較的數(shù)據(jù)進(jìn)行標(biāo)號(hào),例如,該待比較數(shù)據(jù)的ID或流水號(hào)為3334,如果有3臺(tái)服務(wù)器,可以將3334除以3得到的余數(shù)為I,這使用I號(hào)服務(wù)器處理該待比較數(shù)據(jù))。在存在多個(gè)服務(wù)器的情況下,可以采用基于內(nèi)存數(shù)據(jù)庫的分布式數(shù)據(jù)庫架構(gòu)。內(nèi)存數(shù)據(jù)庫的分布式架構(gòu)在現(xiàn)有技術(shù)中有不同的實(shí)現(xiàn)方式。而在本實(shí)施例中可以通過使用內(nèi)存數(shù)據(jù)庫和分布式數(shù)據(jù)庫代理的整合來實(shí)現(xiàn),例如,H2是ー個(gè)高性能的內(nèi)存數(shù)據(jù)庫,Amoeba是分布式數(shù)據(jù)庫代理,在現(xiàn)有技術(shù)中,Amoeba已經(jīng)可以和Mysql進(jìn)行整合,而對(duì)于Amoeba而言,Mysql節(jié)點(diǎn)和H2節(jié)點(diǎn)作為ー個(gè)存儲(chǔ)是ー樣的,因此,可以將現(xiàn)有技術(shù)中的Amoeba與Mysql的整合移植到Amoeba與H2的整合中,通過Amoeba和H2的整合可以實(shí)現(xiàn)基于內(nèi)存數(shù)據(jù)庫的分布式數(shù)據(jù)庫架構(gòu)。在本實(shí)施例中還提供一種重復(fù)數(shù)據(jù)處理裝置,該數(shù)據(jù)處理裝置用于實(shí)現(xiàn)上述實(shí)施例中提及的實(shí)施方式,已經(jīng)進(jìn)行過說明的不再贅述,如以下所使用的,術(shù)語“模塊”可以實(shí)現(xiàn)預(yù)定功能的軟件和/或硬件的組合。盡管以下實(shí)施例所描述的系統(tǒng)和方法較佳地以軟件來實(shí)現(xiàn),但是硬件,或者軟件和硬件的組合的實(shí)現(xiàn)也是可能并被構(gòu)想的,下面結(jié)合圖3對(duì)該裝置中涉及到的模塊進(jìn)行說明。圖3是根據(jù)本申請(qǐng)實(shí)施例的重復(fù)數(shù)據(jù)處理裝置的結(jié)構(gòu)示意圖,如圖3所示,該裝置包括處理模塊300,比較模塊302和寫入模塊304。其中,處理模塊300,用于將待比較數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)處理成與重復(fù)數(shù)據(jù)庫中的數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)相同,其中,重復(fù)數(shù)據(jù)庫是將數(shù)據(jù)庫中的數(shù)據(jù)按照預(yù)設(shè)的數(shù)據(jù)結(jié)構(gòu)進(jìn)行處理后通過內(nèi)存映射形成的;比較模塊302連接至處理模塊300,該模塊用于將處理之后的待比較數(shù)據(jù)與重復(fù)數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行比較,確定待比較數(shù)據(jù)是否為重復(fù)數(shù)據(jù);寫入模塊304連接至比較模塊302,該模塊用于在待比較數(shù)據(jù)不是重復(fù)數(shù)據(jù)的情況下,將待比較數(shù)據(jù)寫入數(shù)據(jù)庫。
優(yōu)選地,在處理之后的待比較數(shù)據(jù)包括用于進(jìn)行完全匹配的第一信息和用于進(jìn)行相似度匹配的第二信息的情況下,比較模塊302,用于在待比較數(shù)據(jù)的第一信息與重復(fù)數(shù)據(jù)庫中的數(shù)據(jù)的第一信息完全一致,并且待比較數(shù)據(jù)的第二信息與重復(fù)數(shù)據(jù)庫中的該數(shù)據(jù)的第二信息相似度超過閾值的情況下,確定待比較數(shù)據(jù)為重復(fù)數(shù)據(jù)。優(yōu)選地,在處理之后的待比較數(shù)據(jù)還包括一張或多張圖片大小的情況下,比較模塊302,用于在待比較數(shù)據(jù)的第一信息與重復(fù)數(shù)據(jù)庫中的數(shù)據(jù)的第一信息完全一致,并且待比較數(shù)據(jù)的第二信息與重復(fù)數(shù)據(jù)庫中的該數(shù)據(jù)的第二信息相似度超過閾值的情況下,根據(jù)待比較數(shù)據(jù)中的一張或多張圖片的大小與重復(fù)數(shù)據(jù)庫中的該數(shù)據(jù)的一張或多張圖片的大小的關(guān)系,確定待比較數(shù)據(jù)為重復(fù)數(shù)據(jù)的方式,其中,確定其為重復(fù)數(shù)據(jù)的方式包括待比較數(shù)據(jù)與重復(fù)數(shù)據(jù)庫中的該數(shù)據(jù)完全相同、待比較數(shù)據(jù)包含重復(fù)數(shù)據(jù)庫中的該數(shù)據(jù)、或者重復(fù)數(shù)據(jù)庫中的該數(shù)據(jù)包括待比較數(shù)據(jù),但不限于此。圖4是根據(jù)本申請(qǐng)實(shí)施例優(yōu)選的重復(fù)數(shù)據(jù)處理裝置的結(jié)構(gòu)示意圖,如圖4所示,該優(yōu)選的重復(fù)數(shù)據(jù)處理裝置包括圖3所示的處理模塊300,比較模塊302,寫入模塊304,還包括預(yù)處理模塊306,其中,預(yù)處理模塊306連接至處理模塊300,該模塊用于對(duì)待比較數(shù)據(jù)進(jìn)行預(yù)處理,其中,預(yù)處理包括以下至少之一大小寫轉(zhuǎn)換、全半角轉(zhuǎn)換、特殊字符過濾、形音詞替換、無意義詞替換、關(guān)鍵詞抽取、去除HTML標(biāo)記。在本實(shí)施例中,還提供了一種重復(fù)數(shù)據(jù)處理系統(tǒng),該系統(tǒng)包括一個(gè)或多個(gè)上述的重復(fù)數(shù)據(jù)處理裝置之外,還包括分發(fā)裝置,該分發(fā)裝置用于根據(jù)一個(gè)或多個(gè)重復(fù)數(shù)據(jù)處理裝置的負(fù)載向一個(gè)或多個(gè)重復(fù)數(shù)據(jù)處理裝置發(fā)送待比較數(shù)據(jù)。在以上實(shí)施例及優(yōu)選實(shí)施方式中,通過內(nèi)存映射的方式(即使是海量數(shù)據(jù)也只需要一次內(nèi)存映射)快速定位、對(duì)商品信息的預(yù)處理,以及精確匹配和相似度匹配相結(jié)合的比較方式,從源頭上的永久清理重復(fù)數(shù)據(jù),實(shí)現(xiàn)了信息入庫前的去重處理,提高效率,排除不必要的干擾,提高匹配的準(zhǔn)確度。需要說明的是,這些技術(shù)效果并不是上述所有的實(shí)施方式所具有的,有些技術(shù)效果是某些優(yōu)選實(shí)施方式才能取得的。下面結(jié)合大型的電子商務(wù)網(wǎng)站中的商品信息的去重處理對(duì)本申請(qǐng)的一個(gè)優(yōu)選的具體實(shí)施進(jìn)行說明。需要說明的是,以下實(shí)施例是以商品信息為例進(jìn)行的說明,但是并不限于此,對(duì)于其他信息的去重處理,也可以采用以下實(shí)施例中的實(shí)施方式。在本優(yōu)選實(shí)施例中,提供了ー種快速檢測(cè)清理重復(fù)信息系統(tǒng),該系統(tǒng)是后臺(tái)審核系統(tǒng)的ー個(gè)子系統(tǒng),其中,被比對(duì)信息(即待比較信息)會(huì)通過消息隊(duì)列發(fā)送到本系統(tǒng)中處理。圖5是根據(jù)本申請(qǐng)優(yōu)選實(shí)施例的快速檢測(cè)清理重復(fù)信息子系統(tǒng)的結(jié)構(gòu)示意圖,如圖5所示,該清理重復(fù)子系統(tǒng)包括去重信息監(jiān)聽器、去重分發(fā)組件(實(shí)現(xiàn)上述分發(fā)裝置的功能)、一個(gè)或多個(gè)去重監(jiān)聽器(也可以理解為執(zhí)行去重功能的服務(wù)器)和數(shù)據(jù)庫,下面結(jié)合圖5對(duì)商品信息的重復(fù)信息的清理過程進(jìn)行說明。需要說明的是,在實(shí)施時(shí),去重監(jiān)聽器可以是一個(gè)或多個(gè)專用于處理去重邏輯的服務(wù)器,當(dāng)然,如果該去重監(jiān)聽器自身的內(nèi)存足夠大,也可以兼做內(nèi)存數(shù)據(jù)庫。后臺(tái)信息審核監(jiān)聽器執(zhí)行所有與信息審核相關(guān)的其他處理邏輯,然后,待審核信息通過消息隊(duì)列流入去重信息監(jiān)聽器,然后,去重分發(fā)組件會(huì)根據(jù)發(fā)布者的ID (例如,可以根據(jù)ID的首字母來確定將該信息發(fā)送到哪個(gè)去重監(jiān)聽器中)和/或每臺(tái)服務(wù)器的負(fù)載將待審核信息分發(fā)到不同的消息隊(duì)列中(在實(shí)施時(shí),可以優(yōu)選的通過負(fù)載均衡的方式來保證 每臺(tái)服務(wù)器處理量均分),每個(gè)消息隊(duì)列由一個(gè)去重監(jiān)聽器來處理。其中,去重信息監(jiān)聽器、去重分發(fā)組件和去重監(jiān)聽器執(zhí)行清理重復(fù)的邏輯,該清理重復(fù)邏輯包括預(yù)處理、判重和去重操作,并根據(jù)操作結(jié)果決定是否更新數(shù)據(jù)庫。重復(fù)信息被清理后,優(yōu)選地,可以記錄相關(guān)日志,這樣可以通過ー個(gè)專門的日志查詢界面查詢被清理的信息。作為ー個(gè)較優(yōu)的實(shí)施例,上述系統(tǒng)可以是ー個(gè)信息異步消息系統(tǒng),該系統(tǒng)基于異步、非阻塞的消息傳遞機(jī)制,能夠與其他子系統(tǒng)實(shí)現(xiàn)松耦合,該松耦合可以實(shí)現(xiàn)可插拔的方式,這表示上述的去重系統(tǒng)可以作為子系統(tǒng)方便的對(duì)接到其他系統(tǒng)中。更優(yōu)地,上述的異步、非阻塞的消息傳遞機(jī)制可以提高呑吐量和處理速度。再輔助以負(fù)載均衡,可以適合大吞吐量操作。下面對(duì)本優(yōu)選實(shí)施例中的商品信息的預(yù)處理過程進(jìn)行說明,該預(yù)處理過程是在商品信息比對(duì)之前進(jìn)行的,在本優(yōu)選實(shí)施例中,以針對(duì)信息的文本部分的預(yù)處理過程為例進(jìn)行說明??梢酝ㄟ^以下幾個(gè)模塊的至少之ー來實(shí)現(xiàn)預(yù)處理過程,當(dāng)然,如果采用了下面的所有模塊會(huì)取得更好的效果特殊字符過濾模塊,用于過濾指定字符表中的特殊字符(例如,換行符、I、一 、羅馬字符等)。形音詞替換模塊,用于根據(jù)字表對(duì)形,音,意相似的字詞進(jìn)行轉(zhuǎn)換(例如,“像”和“相”、“千克”和“kg”等)。簡(jiǎn)單無意義詞替換模塊,用于對(duì)簡(jiǎn)單無意義詞進(jìn)行替換(例如,的、得、(圖)等)。核心關(guān)鍵字抽取模塊,用于根據(jù)字符表將指定字符(或稱為核心關(guān)鍵字)從文本中快速分離出來。需要說明的是,上述模塊的處理方式可以采用基于字典的方式,S卩,根據(jù)各自的處理邏輯,維護(hù)處理規(guī)則對(duì)應(yīng)的字典文件,系統(tǒng)啟動(dòng)時(shí)將對(duì)應(yīng)的字典文件加載在內(nèi)存中。下面結(jié)合附圖以信息的標(biāo)題、詳細(xì)說明和屬性參數(shù)為例,對(duì)信息的預(yù)處理過程進(jìn)行說明。圖6是根據(jù)本申請(qǐng)優(yōu)選實(shí)施的對(duì)標(biāo)題預(yù)處理方法的流程圖,如圖6所示,該處理過程包括如下步驟
步驟S602,將處理前的標(biāo)題的全角轉(zhuǎn)換為半角,大寫轉(zhuǎn)換為小寫;步驟S604,對(duì)標(biāo)題中簡(jiǎn)單無意義詞進(jìn)行替換;步驟S606,對(duì)特殊字符進(jìn)行過濾;步驟S608,對(duì)標(biāo)題中的形音詞進(jìn)行替換。圖7是根據(jù)本申請(qǐng)優(yōu)選實(shí)施的對(duì)詳細(xì)說明預(yù)處理方法的流程圖,如7所示,該處理過程包括如下步驟步驟S702,除去常見的HTML標(biāo)記(保留圖片標(biāo));步驟S704,轉(zhuǎn)換全角為半角,大寫為小寫;步驟S706,特殊字符過濾; 步驟S708,抽取核心關(guān)鍵詞作為精確匹配用,剩下的部分做相似度匹配用。圖8是根據(jù)本申請(qǐng)優(yōu)選實(shí)施的對(duì)產(chǎn)品屬性參數(shù)的預(yù)處理方法的流程圖,如8所示,該處理過程包括步驟S802,轉(zhuǎn)換全角為半角,大寫為小寫;步驟S804,特殊字符過濾;步驟S806,替換形音詞。通過對(duì)待比較信息的關(guān)鍵部分(標(biāo)題,詳細(xì)說明,屬性參數(shù),圖片等)做一系列的預(yù)處理,使得商品信息可以排除很多不必要的干擾,從而大大提高匹配精確度。在本優(yōu)選實(shí)施例中,提供了一個(gè)基于分布式緩存的信息重復(fù)比對(duì)庫,通過采用內(nèi)存映射的方式來代替數(shù)據(jù)庫的直接循環(huán)查詢比對(duì)。圖9是根據(jù)本申請(qǐng)優(yōu)選實(shí)施例的基于分布式緩存的信息重復(fù)比對(duì)庫及其輸入輸出的示意圖,下面結(jié)合圖9對(duì)利用該信息重復(fù)比對(duì)庫對(duì)海量商品信息的處理過程進(jìn)行說明,圖9示出的邏輯結(jié)構(gòu)Map結(jié)構(gòu)(即,在內(nèi)存中維護(hù)的一個(gè)鍵-值對(duì)),其結(jié)構(gòu)為Key = MD5 (信息發(fā)布者ID+核心關(guān)鍵字串+專業(yè)化屬性+標(biāo)題),其中的信息發(fā)布者ID、核心關(guān)鍵字串、專業(yè)化屬性和標(biāo)題是示例性說明,也可以對(duì)其他的關(guān)鍵字段或者關(guān)鍵字段的組合進(jìn)行MD5的運(yùn)算。Value = list of〈信息ID,圖片大小列表,經(jīng)過預(yù)處理的詳細(xì)說明 >,其中的信息ID、圖片大小列表、經(jīng)過預(yù)處理的詳細(xì)說明也是示例性說明,并不限于此。其中,Key是一串把一條商品信息所有需要精確匹配的部分合并生成的MD5信息摘要,由于所用到的關(guān)鍵字段在之前的預(yù)處理過程中進(jìn)行了預(yù)處理,使得該結(jié)構(gòu)可以簡(jiǎn)單、快速地實(shí)現(xiàn)精確匹配。同時(shí)MD5串本身大大減少了內(nèi)存占用。當(dāng)Key被匹配到之后,再通過相似度算法對(duì)Value部分進(jìn)行相似度匹配,如果相似度超過閾值,則被認(rèn)為是重復(fù)信息。在實(shí)際使用過程中對(duì)應(yīng)哪些部分需要精確匹配是根據(jù)實(shí)際情況而定的,例如,某些情況下只要信息的標(biāo)題不一樣就認(rèn)為是重復(fù)信息;而在另外情況下標(biāo)題相同的情況下還需要發(fā)布者ID進(jìn)行完全比配才可以判定該信息是否為重復(fù)信息。因此,在實(shí)施時(shí),可以留有預(yù)先自定義需要精確匹配的部分的接口,例如,可以用專門的配置文件來記錄需要進(jìn)行完全匹配的部分,這樣就實(shí)現(xiàn)了靈活地指定不同的需要進(jìn)行完全匹配的組合。更優(yōu)地,重復(fù)庫本身也可以通過最近最少使用算法(Least Recently Used,簡(jiǎn)稱為L(zhǎng)RU)控制容量上限,例如,對(duì)于重復(fù)庫中的一條信息B已經(jīng)存放了一個(gè)月沒有被匹配到時(shí),那么就可以將該信息從內(nèi)存數(shù)據(jù)庫中刪除,這樣可以有效控制內(nèi)存數(shù)據(jù)庫的大小,節(jié)約內(nèi)存。在本優(yōu)選實(shí)施例中,基于分布式的緩存系統(tǒng),通過生成MD5,以及精確匹配和相似度匹配相結(jié)合的方式。克服了單臺(tái)服務(wù)器訪問瓶頸,以及容量瓶頸。從而實(shí)現(xiàn)了精確快速匹配,并且實(shí)現(xiàn)了自身線性擴(kuò)展,兼顧效率和準(zhǔn)確性,同時(shí),精確匹配部分可以通過規(guī)則自定義,實(shí)現(xiàn)了系統(tǒng)匹配的最大靈活性和比對(duì)效率。更優(yōu)地,為了提高呑吐量,還可以采用上述已經(jīng)進(jìn)行過說明的異步消息處理機(jī)制。圖10是根據(jù)本申請(qǐng)優(yōu)選實(shí)施例的重復(fù)判斷的流程圖,下面結(jié)合圖10該流程進(jìn)行說明。為了進(jìn)行更清楚的說明,進(jìn)行如下約定(I)被比對(duì)信息B進(jìn)入系統(tǒng),預(yù)處理后與重復(fù)庫中的信息A比對(duì)。(2)M,N]表示處理結(jié)果,M為數(shù)據(jù)庫中存在哪些信息,N為重復(fù)庫中存在哪些信息。例如A,A表示處理后A仍存在數(shù)據(jù)庫和重復(fù)庫中,此時(shí)B已被清除,既不存在于數(shù)據(jù)庫中,也不存在于重復(fù)庫中。 (3) A表示更新信息A的審核通過時(shí)間為系統(tǒng)當(dāng)前時(shí)間。(4) A.MD5表示A (例如,發(fā)布者ID+核心關(guān)鍵字串+專業(yè)化屬性+標(biāo)題)的MD5值。(5) A. Picl表不A信息的第一張圖片的大小,A. PicSet表不A信息除了第一張圖片的所有其他圖片大小的集合。(6) SimiIar (A, B)表示A與B是否相似,其優(yōu)選的ー個(gè)判定方法為zip(A+B)/zip (A) +zip (A+B) /zip (B) < 2. I,其中,zip (A)表示對(duì)A的詳細(xì)說明做zip壓縮得到的大小,當(dāng)然,zip僅僅是壓縮算法的ー個(gè)示例性說明,并不限于此,也可以采用其他的壓縮算法。(7) A與B相交表示A和B不是重復(fù)相似信息,A == B表示A和B重復(fù)相似信息,A包含B表示A包含B的所有內(nèi)容,B包含A表示B包含A的所有內(nèi)容;(8)NEW/M0D表示信息的狀態(tài)待審核的新信息/修改后待審核的信息;APP/PUB表示信息的狀態(tài)后臺(tái)審核通過的信息/已經(jīng)對(duì)外發(fā)布上網(wǎng)的信息;TBD/DEL/EXP表示信息的狀態(tài)后臺(tái)審核未通過的信息/被后臺(tái)審核系統(tǒng)刪除的信息/已過期的在線信息。如圖10所示,該流程包括如下步驟步驟S1002,判斷A. MD5是否等于B. MD5,如果是,則A與B相交,否則,執(zhí)行步驟S1004 ;步驟S1004,判斷 A 與 B 是否相似,例如,zip (A+B) /zip (A) +zip (A+B) /zip (B)是否小于ー個(gè)閾值(例如,2. I),如果不相似,則A與B相交,否則,執(zhí)行步驟S1006 ;步驟S1006,判斷A的第一張圖片的大小是否等于B的第一張圖片的大小,如果不相等,SP,A.Picl ! =8. 化1,則六與8相交,否則,執(zhí)行步驟51008;步驟S1008,判斷A的除了第一張圖片的所有其他圖片的大小的集合與B的除了第一張圖片的所有其他圖片的大小的集合是否相等,如果相等,即A. PicSet. equals (B.PicSet),則A = = B ;如果A的除了第一張圖片的所有其他圖片的大小的集合包含B的除了第一張圖片的所有其他圖片的大小的集合,即A. PicSet. contains (B. PicSet),則A包含B;如果B的除了第一張圖片的所有其他圖片的大小的集合包含A的除了第一張圖片的所有其他圖片的大小的集合,即B. PicSet. contains (A. PicSet),則B包含A。在該流程中,也可以加入控制重復(fù)庫大小的步驟,例如,判斷B的時(shí)間戳(timestamp)離當(dāng)前時(shí)間是否超出指定值,如果是,則按B的信息ID查找重復(fù)庫,并將B從重復(fù)庫中刪除。該步驟的執(zhí)行時(shí)間不受到限制,例如,可以在服務(wù)器的負(fù)載低于閾值時(shí)進(jìn)行。上述重復(fù)判斷可以用代碼表示如下a) IF A. MD5 ! = B. MD5 => A 與 B 相交b) ELSEIF ! Similar (A, B) = > A 與 B 相交c)ELSEIF A. Picl ! = B. Picl => A 與 B 相交d) ELSEIF A. PicSet. equals (B. PicSet) = > A==Be) ELSEIF A. PicSet. contains (B. PicSet) = > A 包含 Bf) ELSEIF B. PicSet. contains (A. PicSet) = > B 包含 Ag) ELSE A 與 B 相交圖11是根據(jù)本申請(qǐng)優(yōu)選實(shí)施例的A包含B時(shí)的重復(fù)處理方法的流程圖,需要說明的是,該流程中的相關(guān)約定與圖10相同。下面結(jié)合圖11對(duì)A包含B時(shí)的重復(fù)處理方法進(jìn)行說明步驟51102,判斷六是否為肥1/^00,如果是,則4^(表示在數(shù)據(jù)庫和重復(fù)庫中均保存A),否則,執(zhí)行步驟SI 104 ;步驟SI 104,判斷A是否為APP/PUB,如果是,則 A,A(表示在數(shù)據(jù)庫中更新信息A的審核通過時(shí)間為系統(tǒng)當(dāng)前時(shí)間,并且在重復(fù)庫中保存A),否則,執(zhí)行步驟S1106 ;步驟51106,判斷六是否為了80/1^17^乂 ,如果是,則^ 8,8(表示在數(shù)據(jù)庫中保存A并且在數(shù)據(jù)庫中更新信息B的審核通過時(shí)間為系統(tǒng)當(dāng)前時(shí)間,在重復(fù)庫中保存B)。需要說明的是,上述的步驟不一定按照步驟S1102至步驟S1106的順序執(zhí)行,按照其他的順序執(zhí)行也可以取得同樣的效果,上述的步驟S1102至步驟S1106僅僅是示例性說明。圖12是根據(jù)本申請(qǐng)優(yōu)選實(shí)施例的A = = B時(shí)的重復(fù)處理方法的流程圖,需要說明的是,該流程為圖10所示的后續(xù)流程,相關(guān)的約定與圖10相同。下面結(jié)合圖12對(duì)A==B時(shí)的重復(fù)處理方法進(jìn)行說明步驟S1202,判斷A是否為NEW/M0D,如果是,則B,B,否則,執(zhí)行步驟S1204 ;步驟S1204,判斷A是否為APP/PUB,如果是,則 A,A,否則,執(zhí)行步驟S1206 ;步驟S1206,判斷A是否為TBD/DEL/EXP,如果是,則AB,B(表示在數(shù)據(jù)庫中保存A和B,而在重復(fù)庫中保存B)。需要說明的是,上述的步驟不一定按照步驟S1202至步驟S1206的順序執(zhí)行,按照其他的順序執(zhí)行也可以取得同樣的效果,上述的步驟S1202至步驟S1206僅僅是示例性說明。除圖10和圖11所示出的A包含B和A== B的情況之外,可以認(rèn)為A和B相交,此時(shí)AB,AB(表示A和B均在數(shù)據(jù)庫和重復(fù)庫中保存)。上述重復(fù)處理的流程可以用代碼表示如下a) IF A 包含 B
i. IF A 為 NEW/MOD =>A, Aii LSEIF A 為 APP/PUB => A,Aiii ELSE A 為 TBD/DEL/EXP =>A B,Bb) ELSEIF A==Bi. IF A 為 NEW/MOD =>B,Bii ELSE IF A 為 APP/PUB = > A,Aiii ELSE A 為 TBD/DEL/EXP = >AB,Bc)ELSE A 與 B 相交=>AB,AB
在另外ー個(gè)實(shí)施例中,還提供了ー種重復(fù)數(shù)據(jù)處理軟件,該軟件用于執(zhí)行上述實(shí)施例及優(yōu)選實(shí)施例中描述的技術(shù)方案。在另外ー個(gè)實(shí)施例中,還提供了ー種存儲(chǔ)介質(zhì),該存儲(chǔ)介質(zhì)中存儲(chǔ)有上述重復(fù)數(shù)據(jù)處理軟件,該存儲(chǔ)介質(zhì)包括但不限干光盤、軟盤、硬盤、可擦寫存儲(chǔ)器等。顯然,本領(lǐng)域的技術(shù)人員應(yīng)該明白,上述的本申請(qǐng)的各模塊或各步驟可以用通用的計(jì)算裝置來實(shí)現(xiàn),它們可以集中在單個(gè)的計(jì)算裝置上,或者分布在多個(gè)計(jì)算裝置所組成的網(wǎng)絡(luò)上,可選地,它們可以用計(jì)算裝置可執(zhí)行的程序代碼來實(shí)現(xiàn),從而可以將它們存儲(chǔ)在存儲(chǔ)裝置中由計(jì)算裝置來執(zhí)行,或者將它們分別制作成各個(gè)集成電路模塊,或者將它們中的多個(gè)模塊或步驟制作成單個(gè)集成電路模塊來實(shí)現(xiàn)。這樣,本申請(qǐng)不限制于任何特定的硬件和軟件結(jié)合。以上所述僅為本申請(qǐng)的優(yōu)選實(shí)施例而已,并不用于限制本申請(qǐng),對(duì)于本領(lǐng)域的技術(shù)人員來說,本申請(qǐng)可以有各種更改和變化。凡在本申請(qǐng)的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本申請(qǐng)的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種重復(fù)數(shù)據(jù)處理方法,其特征在于包括以下步驟 將待比較數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)處理成與重復(fù)數(shù)據(jù)庫中的數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)相同,其中,所述重復(fù)數(shù)據(jù)庫是將數(shù)據(jù)庫中的數(shù)據(jù)按照預(yù)設(shè)的數(shù)據(jù)結(jié)構(gòu)進(jìn)行處理后通過內(nèi)存映射形成的; 將處理之后的所述待比較數(shù)據(jù)與所述重復(fù)數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行比較,確定所述待比較數(shù)據(jù)是否為重復(fù)數(shù)據(jù); 在所述待比較數(shù)據(jù)不是重復(fù)數(shù)據(jù)的情況下,將所述待比較數(shù)據(jù)寫入所述數(shù)據(jù)庫。
2.根據(jù)權(quán)利要求I所述的方法,其特征在于,在處理之后的所述待比較數(shù)據(jù)包括用于進(jìn)行完全匹配的第一信息和用于進(jìn)行相似度匹配的第二信息的情況下,確定所述待比較數(shù)據(jù)是否為重復(fù)數(shù)據(jù)包括 在所述待比較數(shù)據(jù)的第一信息與所述重復(fù)數(shù)據(jù)庫中的數(shù)據(jù)的第一信息完全一致,并且所述待比較數(shù)據(jù)的第二信息與所述重復(fù)數(shù)據(jù)庫中的該數(shù)據(jù)的第二信息相似度超過閾值的情況下,確定所述待比較數(shù)據(jù)為重復(fù)數(shù)據(jù)。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,在處理之后的所述待比較數(shù)據(jù)還包括一張或多張圖片的大小的情況下,確定所述待比較數(shù)據(jù)是否為重復(fù)數(shù)據(jù)包括 在所述待比較數(shù)據(jù)的第一信息與所述重復(fù)數(shù)據(jù)庫中的數(shù)據(jù)的第一信息完全一致,并且所述待比較數(shù)據(jù)的第二信息與所述重復(fù)數(shù)據(jù)庫中的該數(shù)據(jù)的第二信息相似度超過閾值的情況下,根據(jù)所述待比較數(shù)據(jù)中的一張或多張圖片的大小與所述重復(fù)數(shù)據(jù)庫中的該數(shù)據(jù)的一張或多張圖片的大小的關(guān)系,確定所述待比較數(shù)據(jù)為重復(fù)數(shù)據(jù)的方式,其中,所述重復(fù)數(shù)據(jù)的方式包括所述待比較數(shù)據(jù)與所述重復(fù)數(shù)據(jù)庫中的該數(shù)據(jù)完全相同、所述待比較數(shù)據(jù)包含所述重復(fù)數(shù)據(jù)庫中的該數(shù)據(jù)、或者所述重復(fù)數(shù)據(jù)庫中的該數(shù)據(jù)包括所述待比較數(shù)據(jù)。
4.根據(jù)權(quán)利要求2所述的方法,其特征在于, 所述第一信息至少包括將數(shù)據(jù)中需要進(jìn)行完全匹配的部分中的一個(gè)或多個(gè)形成一個(gè)組合并將所述組合通過散列算法或加密算法所得到的值;和/或, 所述第二信息至少包括將數(shù)據(jù)中需要進(jìn)行相似度匹配的部分通過壓縮算法所得到的值。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,形成所述組合的一個(gè)或多個(gè)部分是預(yù)先配置的。
6.根據(jù)權(quán)利要求2至5中任一項(xiàng)所述的方法,其特征在于,所述第一信息和所述第二信息在所述重復(fù)數(shù)據(jù)庫中通過鍵-值對(duì)的方式保存。
7.根據(jù)權(quán)利要求I至5中任一項(xiàng)所述的方法,其特征在于,在將所述待比較數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)處理成與所述重復(fù)數(shù)據(jù)庫中的數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)相同之前,還包括 對(duì)所述待比較數(shù)據(jù)進(jìn)行預(yù)處理,其中,所述預(yù)處理包括以下至少之一大小寫轉(zhuǎn)換、全半角轉(zhuǎn)換、特殊字符過濾、形音詞替換、無意義詞替換、關(guān)鍵詞抽取、去除HTML標(biāo)記。
8.根據(jù)權(quán)利要求I至5中任一項(xiàng)所述的方法,其特征在于,在將所述待比較數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)處理成與所述重復(fù)數(shù)據(jù)庫中的數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)相同之前,還包括 接收所述待比較數(shù)據(jù),其中,所述待比較數(shù)據(jù)是經(jīng)過負(fù)載均衡處理之后發(fā)送過來的。
9.一種重復(fù)數(shù)據(jù)處理裝置,其特征在于,包括 處理模塊,用于將待比較數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)處理成與重復(fù)數(shù)據(jù)庫中的數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)相 同,其中,所述重復(fù)數(shù)據(jù)庫是將數(shù)據(jù)庫中的數(shù)據(jù)按照預(yù)設(shè)的數(shù)據(jù)結(jié)構(gòu)進(jìn)行處理后通過內(nèi)存映射形成的; 比較模塊,用于將處理之后的所述待比較數(shù)據(jù)與所述重復(fù)數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行比較,確定所述待比較數(shù)據(jù)是否為重復(fù)數(shù)據(jù); 寫入模塊,用于在所述待比較數(shù)據(jù)不是重復(fù)數(shù)據(jù)的情況下,將所述待比較數(shù)據(jù)寫入所述數(shù)據(jù)庫。
10.根據(jù)權(quán)利要求9所述的裝置,其特征在于,在處理之后的所述待比較數(shù)據(jù)包括用于進(jìn)行完全匹配的第一信息和用于進(jìn)行相似度匹配的第二信息的情況下, 所述比較模塊,用于在所述待比較數(shù)據(jù)的第一信息與所述重復(fù)數(shù)據(jù)庫中的數(shù)據(jù)的第一信息完全一致,并且所述待比較數(shù)據(jù)的第二信息與所述重復(fù)數(shù)據(jù)庫中的該數(shù)據(jù)的第二信息相似度超過閾值的情況下,確定所述待比較數(shù)據(jù)為重復(fù)數(shù)據(jù)。
11.根據(jù)權(quán)利要求10所述的裝置,其特征在于,在處理之后的所述待比較數(shù)據(jù)還包括一張或多張圖片大小的情況下, 所述比較模塊,用于在所述待比較數(shù)據(jù)的第一信息與所述重復(fù)數(shù)據(jù)庫中的數(shù)據(jù)的第一信息完全一致,并且所述待比較數(shù)據(jù)的第二信息與所述重復(fù)數(shù)據(jù)庫中的該數(shù)據(jù)的第二信息相似度超過閾值的情況下,根據(jù)所述待比較數(shù)據(jù)中的一張或多張圖片的大小與所述重復(fù)數(shù)據(jù)庫中的該數(shù)據(jù)的一張或多張圖片的大小的關(guān)系,確定所述待比較數(shù)據(jù)為重復(fù)數(shù)據(jù)的方式,其中,所述重復(fù)數(shù)據(jù)的方式包括所述待比較數(shù)據(jù)與所述重復(fù)數(shù)據(jù)庫中的該數(shù)據(jù)完全相同、所述待比較數(shù)據(jù)包含所述重復(fù)數(shù)據(jù)庫中的該數(shù)據(jù)、或者所述重復(fù)數(shù)據(jù)庫中的該數(shù)據(jù)包括所述待比較數(shù)據(jù)。
12.根據(jù)權(quán)利要求10所述的裝置,其特征在于, 所述第一信息至少包括將數(shù)據(jù)中需要進(jìn)行完全匹配的部分中的一個(gè)或多個(gè)形成一個(gè)組合并將所述組合通過散列算法或加密算法所得到的值;和/或, 所述第二信息至少包括將數(shù)據(jù)中需要進(jìn)行相似度匹配的部分通過壓縮算法所得到的值。
13.根據(jù)權(quán)利要求9至12中任一項(xiàng)所述的裝置,其特征在于,還包括 預(yù)處理模塊,用于對(duì)所述待比較數(shù)據(jù)進(jìn)行預(yù)處理,其中,所述預(yù)處理包括以下至少之一大小寫轉(zhuǎn)換、全半角轉(zhuǎn)換、特殊字符過濾、形音詞替換、無意義詞替換、關(guān)鍵詞抽取、去除HTML標(biāo)記。
14.一種重復(fù)數(shù)據(jù)處理系統(tǒng),其特征在于,包括一個(gè)或多個(gè)權(quán)利要求9至13中任一項(xiàng)所述的重復(fù)數(shù)據(jù)處理裝置、以及分發(fā)裝置,其中所述分發(fā)裝置用于根據(jù)所述一個(gè)或多個(gè)重復(fù)數(shù)據(jù)處理裝置的負(fù)載向所述一個(gè)或多個(gè)重復(fù)數(shù)據(jù)處理裝置發(fā)送待比較數(shù)據(jù)。
全文摘要
本申請(qǐng)公開了一種重復(fù)數(shù)據(jù)處理方法、裝置及系統(tǒng),該方法包括將待比較數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)處理成與重復(fù)數(shù)據(jù)庫中的數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)相同,其中,重復(fù)數(shù)據(jù)庫是將數(shù)據(jù)庫中的數(shù)據(jù)按照預(yù)設(shè)的數(shù)據(jù)結(jié)構(gòu)進(jìn)行處理后通過內(nèi)存映射形成的;將處理之后的待比較數(shù)據(jù)與重復(fù)數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行比較,確定待比較數(shù)據(jù)是否是重復(fù)數(shù)據(jù)。通過本申請(qǐng)?zhí)岣吡朔?wù)器進(jìn)行去重處理時(shí)的效率,節(jié)約了服務(wù)器資源。
文檔編號(hào)G06F17/30GK102831127SQ201110164850
公開日2012年12月19日 申請(qǐng)日期2011年6月17日 優(yōu)先權(quán)日2011年6月17日
發(fā)明者何一昕, 葉瑞海, 吳協(xié)堯, 張文波 申請(qǐng)人:阿里巴巴集團(tuán)控股有限公司