本發(fā)明屬于數(shù)據(jù)質(zhì)量和數(shù)據(jù)集成領(lǐng)域,主要涉及一種基于多路分塊的漸近式實(shí)體識(shí)別方法。
背景技術(shù):
:大數(shù)據(jù)時(shí)代,數(shù)據(jù)的一個(gè)重要特點(diǎn)是多樣性,描述真實(shí)世界同一實(shí)體的數(shù)據(jù)對(duì)象在單個(gè)或多個(gè)數(shù)據(jù)源中可能以不同的形式重復(fù)地出現(xiàn),由此導(dǎo)致了數(shù)據(jù)質(zhì)量的低質(zhì)化,降低了數(shù)據(jù)的可用性和價(jià)值,成為大數(shù)據(jù)集成、處理、分析和挖掘的一個(gè)瓶頸。實(shí)體識(shí)別作為數(shù)據(jù)質(zhì)量的一個(gè)重要方面,通過(guò)分析臟數(shù)據(jù)集,將描述同一實(shí)體的重復(fù)數(shù)據(jù)對(duì)象分到同一個(gè)組,從而達(dá)到提高數(shù)據(jù)質(zhì)量的目的。實(shí)體識(shí)別通常處理結(jié)構(gòu)化數(shù)據(jù)對(duì)象,包括關(guān)系型數(shù)據(jù)庫(kù)中的數(shù)據(jù)記錄、CSV文件中的數(shù)據(jù)記錄、XML文件中數(shù)據(jù)記錄等。實(shí)體識(shí)別,也稱為實(shí)體解析、實(shí)體匹配、記錄連接、重復(fù)探測(cè)、記錄去重、實(shí)體辨析、引用消歧、重復(fù)數(shù)據(jù)刪除、合并與清除等。實(shí)體識(shí)別在多個(gè)領(lǐng)域有著廣泛的應(yīng)用需求,包括客戶關(guān)系管理、人口普查、醫(yī)療衛(wèi)生、網(wǎng)購(gòu)比價(jià)、國(guó)家安全、引文數(shù)據(jù)庫(kù)、垃圾郵件檢測(cè)、關(guān)聯(lián)的數(shù)據(jù)、機(jī)器閱讀等。數(shù)據(jù)冗余的存在,是實(shí)體識(shí)別的直接原因。數(shù)據(jù)冗余可以分為兩類:(1)描述同一真實(shí)世界實(shí)體的數(shù)據(jù)對(duì)象可能會(huì)被多次加入到同一數(shù)據(jù)源,這類冗余稱為單數(shù)據(jù)源的冗余;(2)當(dāng)把來(lái)自多個(gè)數(shù)據(jù)源的數(shù)據(jù)進(jìn)行集成時(shí),來(lái)自不同數(shù)據(jù)源的數(shù)據(jù)對(duì)象可能對(duì)應(yīng)相同的實(shí)體,這類冗余稱為跨數(shù)據(jù)源的冗余。實(shí)體識(shí)別主要包括三個(gè)步驟:數(shù)據(jù)分塊、數(shù)據(jù)對(duì)象相似度計(jì)算和數(shù)據(jù)對(duì)象對(duì)匹配決定。首先,數(shù)據(jù)分塊也稱為數(shù)據(jù)索引,用于縮小搜索空間,減少無(wú)用的數(shù)據(jù)對(duì)象比較,提升識(shí)別速度;數(shù)據(jù)分塊是一個(gè)可選步驟。其次,計(jì)算數(shù)據(jù)對(duì)象之間的相似度是實(shí)體識(shí)別的一個(gè)重要環(huán)節(jié),如果一個(gè)數(shù)據(jù)對(duì)象對(duì)的相似度越大,該數(shù)據(jù)對(duì)象對(duì)匹配的可能性越大;相似度計(jì)算要用到相似度計(jì)算函數(shù)。最后,當(dāng)獲得了數(shù)據(jù)對(duì)象相似度之后,需要利用數(shù)據(jù)對(duì)象相似度來(lái)決定數(shù)據(jù)對(duì)象之間是否匹配(重復(fù)),當(dāng)前已有多種匹配決定的方法。作為數(shù)據(jù)挖掘和數(shù)據(jù)分析的一個(gè)必要的預(yù)處理步驟,傳統(tǒng)的實(shí)體識(shí)別方法將整個(gè)臟數(shù)據(jù)集作為輸入,處理完成后輸出識(shí)別結(jié)果。然而,當(dāng)前出現(xiàn)了很多應(yīng)用要求(近似的)實(shí)時(shí)數(shù)據(jù)分析,傳統(tǒng)的實(shí)體識(shí)別技術(shù)無(wú)法滿足這一需求。在給定較短時(shí)間,漸近式實(shí)體識(shí)別可以盡最大可能地優(yōu)化識(shí)別結(jié)果,從而解決前面的需求。例如,金融新聞的信息流應(yīng)用通常很強(qiáng)調(diào)實(shí)時(shí)性,以便于聽(tīng)眾及時(shí)地進(jìn)行相應(yīng)的金融業(yè)務(wù)處理。股票市場(chǎng)的金融數(shù)據(jù)變化特別快,每隔一段時(shí)間就會(huì)生成新的數(shù)據(jù);金融數(shù)據(jù)會(huì)涉及大量公司和個(gè)人的名字,而短時(shí)間內(nèi),不可能將這些數(shù)據(jù)全部識(shí)別出來(lái)。信息流應(yīng)用在發(fā)布金融新聞之前,需要在較短的時(shí)間內(nèi)識(shí)別出大量的公司和個(gè)人的名字。為了解決這類應(yīng)用需求,新的實(shí)體識(shí)別方法應(yīng)該在給定的短時(shí)間內(nèi)處理得到盡量多的匹配的數(shù)據(jù)對(duì)象對(duì)。漸近式實(shí)體識(shí)別。相對(duì)于傳統(tǒng)的實(shí)體識(shí)別,漸近式實(shí)體識(shí)別需要額外滿足以下兩個(gè)條件:(1)早期的識(shí)別結(jié)果更好。給定任意一個(gè)較短的時(shí)間t,漸近式實(shí)體識(shí)別方法能夠比傳統(tǒng)的實(shí)體識(shí)別方法識(shí)別出更多的重復(fù)數(shù)據(jù)對(duì)象對(duì)。時(shí)間段t遠(yuǎn)小于完全的實(shí)體識(shí)別運(yùn)行時(shí)間。(2)相同的最終識(shí)別結(jié)果。如果傳統(tǒng)的實(shí)體識(shí)別方法和漸近式實(shí)體識(shí)別方法都運(yùn)行到自然終止,兩者應(yīng)該產(chǎn)生相同的識(shí)別結(jié)果。技術(shù)實(shí)現(xiàn)要素:針對(duì)已有漸近式實(shí)體識(shí)別方法的不足,本發(fā)明提供了一種高效的基于多路分塊的漸近式實(shí)體識(shí)別方法。本發(fā)明采用的技術(shù)方案是:一種基于多路分塊的漸近式實(shí)體識(shí)別方法,包括以下步驟:步驟1.多路分塊。本步驟的主要目的是利用多個(gè)分塊鍵K={ki|0≤i≤|K|},生成多路分塊結(jié)果,主要分為以下兩個(gè)子步驟。子步驟1.單路分塊。給定一個(gè)臟數(shù)據(jù)集R={r}和一個(gè)分塊的鍵k,根據(jù)一個(gè)數(shù)據(jù)對(duì)象r的鍵值r.k將r分到一個(gè)塊b=d(r.k)。d(*)是一個(gè)分配函數(shù)。分塊結(jié)果集合B是不相交的,子步驟2.多路分塊。利用子步驟1的結(jié)果進(jìn)行多路分塊。給定一個(gè)臟數(shù)據(jù)集R={r}和一個(gè)分塊鍵的集合K={ki|0≤i≤|K|},Bi是利用鍵ki生成的單路分塊結(jié)果集合,那么根據(jù)K生成的多路分塊結(jié)果集合是Bm=B1∪B2∪…∪B|K|。Bm是一個(gè)相交的集合,每個(gè)數(shù)據(jù)對(duì)象最多可能出現(xiàn)在|K|個(gè)不同塊中。步驟2.候選隊(duì)列生成。本步驟的主要目的是去除掉分塊冗余、生成候選隊(duì)列,主要分為以下四個(gè)子步驟。子步驟1.塊信用度初始化。塊中的一對(duì)數(shù)據(jù)對(duì)象稱為候選數(shù)據(jù)對(duì)象對(duì)或候選對(duì),記作<ri,rj>,ri,rj∈b。一個(gè)塊是一個(gè)數(shù)據(jù)對(duì)象的集合,塊b的勢(shì)是b中不同數(shù)據(jù)對(duì)象對(duì)的總數(shù)目,記作在實(shí)體識(shí)別過(guò)程中,一個(gè)塊b中所有已識(shí)別的數(shù)據(jù)對(duì)象對(duì)組成已識(shí)別的集合,記作Ξ(b)。Ξ(b)中所有匹配(重復(fù))數(shù)據(jù)對(duì)象對(duì)組成匹配的集合,記作Ξ+(b)。給定一個(gè)塊b,該塊的信用度與該塊當(dāng)前的匹配的集合大小成正相關(guān),與該塊的勢(shì)成負(fù)相關(guān),σd(b)=(|Ξ+(b)|+1)/(||b||+1)(1)利用上述公式計(jì)算多路分塊結(jié)果集合是Bm中的每個(gè)塊的塊信用度。子步驟2.分塊冗余消除。通過(guò)構(gòu)建分塊圖來(lái)消除多路分塊帶來(lái)的冗余。給定一個(gè)多路分塊的結(jié)果集合Bm,存在一個(gè)無(wú)向圖G=(V,E),稱為分塊圖。V是結(jié)點(diǎn)集合,任意結(jié)點(diǎn)v∈V對(duì)應(yīng)Bm中的一個(gè)數(shù)據(jù)對(duì)象。E是邊集合,對(duì)于任意邊e(vi,vj)∈E(記作eij),數(shù)據(jù)對(duì)象vi,vj至少共同出現(xiàn)在Bm中一個(gè)塊內(nèi)。r和v都可以表示數(shù)據(jù)對(duì)象,R和V都可以表示數(shù)據(jù)集。通過(guò)遍歷分塊圖的邊生成候選對(duì)集合P,每條邊對(duì)應(yīng)的兩個(gè)數(shù)據(jù)對(duì)象對(duì)應(yīng)一個(gè)唯一的候選對(duì)。子步驟3.候選對(duì)的信用度初始化。給定一個(gè)候選對(duì)<ri,rj>,它的信用度估計(jì)該候選對(duì)的匹配可能性。候選對(duì)的信用度是將該候選對(duì)的共現(xiàn)塊提供的匹配可能性進(jìn)行聚集,并利用鍵總數(shù)進(jìn)行歸約,利用上述公式計(jì)算候選對(duì)集合P中每一個(gè)候選對(duì)的信用度。子步驟4.候選對(duì)排序。將候選對(duì)集合P中的候選對(duì)按照信用度降序排列,并依次插入到候選隊(duì)列Q中。步驟4.迭代地處理候選數(shù)據(jù)對(duì)象對(duì)。本步驟的主要目的是迭代地處理候選數(shù)據(jù)對(duì)象對(duì),并逐漸地輸出最新被識(shí)別出的重復(fù)的數(shù)據(jù)對(duì)象對(duì)。子步驟1.候選對(duì)比較。從候選隊(duì)列Q隊(duì)首取一個(gè)候選對(duì)<vi,vj>,用實(shí)體識(shí)別匹配函數(shù)對(duì)<vi,vj>進(jìn)行比較。如果<vi,vj>被判定為重復(fù)的,那么執(zhí)行如下操作:調(diào)用Look-around函數(shù)來(lái)直接識(shí)別更多的候選對(duì)。將識(shí)別出的重復(fù)的數(shù)據(jù)對(duì)象對(duì)輸出。Look-around函數(shù):當(dāng)識(shí)別出重復(fù)數(shù)據(jù)對(duì)象對(duì)<vi,vj>和<vj,vk>,那么直接將<vi,vk>判定為重復(fù)數(shù)據(jù)對(duì)象對(duì),節(jié)省了一次數(shù)據(jù)對(duì)象對(duì)比較。子步驟2.候選對(duì)的信用度更新。根據(jù)識(shí)別結(jié)果,找出最新被識(shí)別為重復(fù)的數(shù)據(jù)對(duì)象對(duì)所在的塊,稱為受影響的塊。由于這些受影響的塊中被識(shí)別為重復(fù)數(shù)據(jù)對(duì)象的比例提高了,根據(jù)公式(1)來(lái)更新這些受影響的塊的動(dòng)態(tài)的塊信用度。這些受影響的塊所包含的未識(shí)別的候選對(duì)稱為受影響的候選對(duì),根據(jù)公式(2),利用新的塊信用度來(lái)更新這些受影響的候選對(duì)的信用度。子步驟3.候選隊(duì)列調(diào)整。根據(jù)新的候選對(duì)的信用度來(lái)重新對(duì)候選隊(duì)列進(jìn)行降序排列。重復(fù)上述三個(gè)子步驟,直到時(shí)間預(yù)算用完或候選隊(duì)列為空。本發(fā)明的優(yōu)點(diǎn)是:采用本發(fā)明的漸近式實(shí)體識(shí)別方法,給定較短時(shí)間預(yù)算(遠(yuǎn)低于實(shí)體識(shí)別總時(shí)間),可以識(shí)別出更多的重復(fù)的數(shù)據(jù)對(duì)象;通過(guò)動(dòng)態(tài)地估計(jì)塊的冗余度來(lái)更新候選對(duì)的信用度,實(shí)時(shí)地選擇最可能匹配的候選對(duì)來(lái)進(jìn)行識(shí)別,保證了高漸近性。附圖說(shuō)明圖1是本發(fā)明總體流程圖。圖2是具體實(shí)施方式第2步中塊集合對(duì)應(yīng)的分塊圖GB。圖3是本發(fā)明與已有的其它兩個(gè)方法的實(shí)時(shí)召回率對(duì)比圖。圖4是本發(fā)明與已有的其它兩個(gè)方法的漸近性質(zhì)量對(duì)比圖。具體實(shí)施方式下面是本發(fā)明的一個(gè)具體實(shí)施的例子。如表1所示,有一個(gè)包含7條記錄的樣例數(shù)據(jù)集。這是一個(gè)臟數(shù)據(jù)集,對(duì)應(yīng)的真實(shí)識(shí)別結(jié)果是{{r1,r2,r3,r4},{r5},{r6},{r7}}。當(dāng)前要求漸近地識(shí)別這個(gè)臟數(shù)據(jù)集,也就是說(shuō),給定較短的運(yùn)行時(shí)間,盡量識(shí)別出最多的重復(fù)記錄對(duì)。表1樣例臟數(shù)據(jù)集,包含7條個(gè)人記錄,屬性有姓名、年齡、工作和所在城市。ID姓名年齡工作城市r1JohnYoung29WaiterPostonr2JohnJoung29WaiterBostonr3JonYoung-WaiterBostonr4JohnYoung29WaiterBostonr5BobBrown27WaiterAustinr6JeffAllen29-Bostonr7WillGreen29TeacherBoston1.首先,進(jìn)行多路分塊。對(duì)于表1中的臟數(shù)據(jù)集,分別把姓名、年齡、工作和城市作為鍵進(jìn)行多路分塊,得到如下結(jié)果集合,Bm=Bsurname∪Bage∪Bjob∪BcityBsurname={bs1={r1,r3,r4},bs2={r2},bs3={r5},bs4={r6},bs5={r7}}Bage={ba1={r1,r2,r4,r6,r7},ba2={r5}}Bjob={bj1={r1,r2,r3,r4,r5},bj2={r7}}Bcity={bc1={r2,r3,r4,r6,r7},bc2={r1},bc3={r5}}2.接著,通過(guò)構(gòu)建分塊圖來(lái)消除冗余。上述塊集合Bm中共有33個(gè)候選對(duì),存在冗余。比如,候選對(duì)<r1,r4>同時(shí)出現(xiàn)在塊bs1,ba1和bj1中。構(gòu)建分塊圖,從而去除Bm的分塊冗余。如附圖3所示,得到Bm對(duì)應(yīng)的分塊圖GB,圖GB中的每條邊對(duì)應(yīng)一個(gè)唯一的候選對(duì)。由附圖3可知,去除掉分塊冗余后,候選對(duì)數(shù)目從33降至19。3.然后,初始化塊信用度和候選對(duì)的信用度,并生成候選隊(duì)列。計(jì)算機(jī)初始的塊信用度和候選對(duì)的信用度,如下,塊信用度:σd(bs1)=1/4,σd(ba1)=1/11,σd(bj1)=1/11,σd(bc1)=1/11。候選對(duì)的信用度(降序):σd(<r1,r4>)=0.108,σd(<r3,r4>)=0.108,σd(<r1,r3>)=0.085,σd(<r2,r4>)=0.068,σd(<r6,r7>)=0.045,σd(<r2,r3>)=0.045,σd(<r1,r2>)=0.045,…根據(jù)上述候選對(duì)的信用度,后續(xù)應(yīng)該先處理<r1,r4>或<r3,r4>。根據(jù)真實(shí)識(shí)別結(jié)果{{r1,r2,r3,r4},{r5},{r6},{r7}}可知,這兩個(gè)候選對(duì)都是重復(fù)(匹配)的。由此可見(jiàn),初始的候選對(duì)的排序是非常有效的。將候選對(duì)按照信用度降序排列并依次插入到候選隊(duì)列。4.進(jìn)入迭代的漸近式處理階段。逐輪觀察迭代階段。表2呈現(xiàn)了本發(fā)明處理表1中臟數(shù)據(jù)集的前6輪迭代。根據(jù)真實(shí)識(shí)別結(jié)果{{r1,r2,r3,r4},{r5},{r6},{r7}},前6輪中每輪都識(shí)別出一個(gè)重復(fù)數(shù)據(jù)對(duì)象對(duì)。因此,假如實(shí)體識(shí)別預(yù)算設(shè)定為6次數(shù)據(jù)對(duì)象對(duì)比較的話,本發(fā)明方法可以在預(yù)算范圍內(nèi)識(shí)別出所有的重復(fù)數(shù)據(jù)對(duì)象對(duì),說(shuō)明本發(fā)明方法的漸近性非常高。表2每輪迭代中,塊信用度和候選隊(duì)列隊(duì)首的候選對(duì)。迭代輪數(shù)σd(bs1)σd(ba1)σd(bj1)σd(bc1)隊(duì)首候選對(duì)11/41/111/111/11<r1,r4>22/42/112/111/11<r3,r4>33/42/113/112/11<r1,r3>412/114/112/11<r2,r4>513/115/113/11<r2,r3>613/116/114/11<r1,r2>………………當(dāng)前第1頁(yè)1 2 3