欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種基于分詞與索引技術(shù)的重復記錄檢測方法與流程

文檔序號:11386737閱讀:268來源:國知局
一種基于分詞與索引技術(shù)的重復記錄檢測方法與流程

本發(fā)明涉及數(shù)據(jù)清洗技術(shù)領域,涉及一種檢測重復記錄的方法,尤其涉及一種基于分詞與索引技術(shù)的重復記錄檢測方法。

背景介紹

信息化的發(fā)展使得數(shù)據(jù)增長的速率逐年上升,在信息系統(tǒng)中數(shù)據(jù)冗余會影響系統(tǒng)的使用效果。如果通過純?nèi)斯さ姆绞教幚磉@些冗余的數(shù)據(jù),勢必造成大量的資源浪費與成本消耗。因此,重復數(shù)據(jù)的檢測與處理技術(shù)是數(shù)據(jù)處理領域的重要技術(shù)點之一。重復數(shù)據(jù)檢測與處理的核心是重復數(shù)據(jù)的檢測方法,其目標在于滿足精度要求的同時盡可能提高檢測的效率,能夠快速有效地識別出潛在的重復數(shù)據(jù)并進行處理。隨著數(shù)據(jù)庫技術(shù)的日益發(fā)展與完善,越來越多的數(shù)據(jù)以數(shù)據(jù)庫記錄的形式存在于信息系統(tǒng)中,對記錄的重復檢測提出了越來越高的要求。

重復記錄檢測的方法核心涉及兩個方面的研究,一方面重點關注檢測精度,研究重復記錄的判別方法;另一方面重點關注檢測效率,研究候選記錄對比較的控制。候選記錄對比較的控制方式有三種。第一種是循環(huán)遍歷法,這種方法下包括不同分組在內(nèi)的所有記錄兩兩之間都需要進行比較。第二種是鄰近排序法,按照某個或者某些關鍵字段對記錄進行排序后,每條記錄都以一定的規(guī)則和鄰近的記錄進行比較。第三種是基于散列的方法,需要將記錄映射為一個標識符,具有相同標識符的記錄形成一個聚類,聚類中的記錄兩兩比較。第一種循環(huán)遍歷法主要特征是循環(huán)遍歷所有的記錄,每一次遍歷,都會以該記錄為中心記錄,然后和所有其他未比較過的記錄進行兩兩比較。這種方法下,任何兩條記錄都至少進行過一次比較,因此時間復雜度為o(n2),計算代價過高,效率低,不能處理增量數(shù)據(jù)對記錄集帶來的影響;第二種鄰近排序法主要特征是選取記錄中的一個或者多個字段對總體的記錄集進行排序,對于排序后的記錄集,指定大小固定或者動態(tài)變化的窗口,每條記錄周圍的數(shù)據(jù)根據(jù)窗口大小分為處于窗口內(nèi)部的鄰近記錄和處于窗口外部的無關記錄,每條記錄都只和窗口內(nèi)部的有限條鄰近記錄進行兩兩比較。這種方法的缺點是檢測的準確率嚴重依賴于排序字段或關鍵字,如果選取不當將會造成很多潛在的重復記錄在排序后的記錄集中相隔距離過遠,不能夠落于指定的鄰近范圍內(nèi),導致這些本應該被檢測出的重復記錄不能夠被有效發(fā)現(xiàn),降低了檢測的準確率;且用以指定鄰近范圍的滑動窗口大小難以確定,如果窗口過小,會影響檢測的準確率;反之,如果窗口過大,會降低檢測的效率;較大的檢測記錄集會造成時間代價或內(nèi)存代價較高;在檢測時,每次都必須讀取所有的數(shù)據(jù),不能適應動態(tài)、實時檢測的要求;第三種基于散列法,主要技術(shù)特征是對記錄進行數(shù)據(jù)壓縮,為每條記錄構(gòu)造出一個對應的散列碼(hashcode)。對于擁有相同或者相近的hash值的記錄,則視為重復記錄。這種方法避免了記錄之間的兩兩比較,不以記錄值直接判定,而是通過映射的方式尋找重復記錄,其缺點是難以找到合適的能夠有效避免hash沖突的hash函數(shù),hash計算方法復雜,而且計算獲得的hash碼存在隨機性,不能保證檢測結(jié)果的冪等性;hash函數(shù)只能為記錄生成一個特定的散列碼,壓縮的信息會讓近似重復的記錄之間的相似性信息缺失,不能很好的反映記錄中各個字段之間與內(nèi)部的差異與聯(lián)系。



技術(shù)實現(xiàn)要素:

本發(fā)明技術(shù)解決問題:為了克服上述技術(shù)的不足,提供一種基于分詞與索引技術(shù)的重復記錄檢測方法,提升了檢測的效率

本發(fā)明技術(shù)解決方案:一種基于分詞與索引技術(shù)的重復記錄檢測方法,步驟如下:

步驟1,獲取待處理記錄集r,從記錄集的所有字段中選取待分詞的字段集合f;

步驟2,遍歷待處理記錄集,根據(jù)步驟1中選取出的待分詞字段集合f,對每一條記錄的待分詞字段中的字段值進行分詞,得到每條記錄的分詞集合w;

遍歷待處理記錄集r同時,根據(jù)獲得的分詞集合w,建立并擴充待處理記錄集的逆向索引,根據(jù)獲得的逆向索引,建立并擴充待處理記錄集的正向鏈集合;遍歷結(jié)束,得到構(gòu)建完成的逆向索引和正向鏈集合,并將得到的逆向索引持久化存儲;

所述逆向索引結(jié)構(gòu)為wi={r1,r2,,,rm},等號左邊為鍵,等號右邊為值,其中鍵為分詞過程中出現(xiàn)過的某一個分詞wi,值為包含該分詞wi的記錄對應的記錄索引集合,集合中的rm為待處理記錄的索引值;借助逆向索引能夠根據(jù)某個分詞查詢到包含該分詞的所有待處理記錄的索引值rm,根據(jù)查詢到的索引值rm進而查詢到對應的待處理記錄;

所述正向鏈集合結(jié)構(gòu)為rj={{r11,r12,,,r1m},,,{rk1,rk2,,,rkm}},其中等號左邊為鍵,等號右邊為值,鍵rj為待處理記錄的索引值,值為由集合元素組成的集合,值中集合元素的個數(shù)等于通過rj索引到的待處理記錄的分詞集合wj中的分詞數(shù),每個集合元素即為以wi為鍵的逆向索引的值;

步驟3,設置閾值,遍歷記錄待處理集r,根據(jù)步驟2中的正向鏈集合,獲得候選記錄對集合,每個候選記錄對的結(jié)構(gòu)為{r1,r2},其中r1、r2為待處理記錄的索引;

步驟4,采用記錄重復性計算算法,對所有的候選記錄對{r1,r2}對應的待處理記錄是否重復進行計算,最終得到候選記錄對是否重復的結(jié)果,存儲檢測結(jié)果;

步驟5若發(fā)生增加記錄、修改記錄、刪除記錄的增量記錄,則對增量記錄進行實時處理。

所述步驟2中,遍歷待處理記錄集r同時,根據(jù)獲得的分詞集合w,建立并擴充待處理記錄集的逆向索引,根據(jù)獲得的逆向索引,建立并擴充待處理記錄集的正向鏈集合的步驟如下:

(11)從待處理記錄集r中取出一條記錄,記錄的索引為rk;

(12)根據(jù)步驟1中的字段集合f,對記錄的待分詞字段值進行分詞,分詞集合結(jié)果words={w1,w2,,,wi},wi表示分詞,i表示該記錄分詞數(shù)量;

(13)判斷wi是否已經(jīng)出現(xiàn)過;

(14)如果未出現(xiàn)過,則構(gòu)建逆向索引wi={},記錄索引集合中的元素會隨著遍歷逐添加;

(15)將當前記錄索引rk添加到wi對應的記錄索引集合中;以當前記錄索引rk為鍵,建立rk與wi的記錄索引集合的映射關系,即rj鏈向wi的記錄索引集合,當遍歷結(jié)束,rk會根據(jù)記錄的分詞結(jié)果,鏈向多個記錄索引集合;

(16)遍歷待處理數(shù)據(jù)集結(jié)束,逆向索引與正向鏈集合構(gòu)建完成。

所述步驟3中,獲得候選記錄對集合的過程如下:

(21)確定候選記錄對的篩選標準;

(22)依次取出待處理記錄集中r的記錄rq;

(23)初始化候選記錄對集合candidate為空;

(24)根據(jù)步驟3計算出的正向鏈集合,獲得以記錄rq為鍵的正向鏈集合的值,即記錄rq對應的所有記錄索引集合,每個記錄索引集合代表與記錄rq出現(xiàn)過某個相同分詞的所有記錄索引值;

(25)對所有記錄索引集合中出現(xiàn)的記錄進行統(tǒng)計;

(26)根據(jù)步驟(25)的統(tǒng)計結(jié)果和步驟(21)設定的篩選標準,判斷統(tǒng)計結(jié)果中哪些記錄滿足和記錄rq構(gòu)成候選記錄對的條件;

(27)將所有滿足條件的記錄分別和記錄rq組成候選記錄對添加到candidate集合中。

所述步驟5,對增量記錄進行實時處理的過程如下:

獲取增量記錄集中的一條記錄,對該增量記錄進行分詞處理;

若增量記錄對應的是增加記錄,如果分詞不存在,則構(gòu)建新的逆向索引,如果分詞存在,則取出存儲的逆向索引,將該記錄索引加入逆向索引中的記錄索引集合中,構(gòu)建該記錄的正向鏈集合;

對正向鏈集合中出現(xiàn)的記錄索引進行統(tǒng)計,根據(jù)記錄的正向鏈集合和設定的候選記錄對刪選標準,篩選出候選記錄對;

采用記錄重復性計算算法,對候選記錄對是否重復進行檢測,存儲結(jié)果;

若增量記錄對應的是刪除操作,則刪除所有已存儲的該記錄的記錄索引,如果存在已檢測出的重復記錄,則刪除該重復記錄檢測結(jié)果;

若增量記錄對應的是更新操作,則對被更新的原記錄執(zhí)行一次刪除操作,將更新后的記錄當作新的紀錄,執(zhí)行一次增加操作。

本發(fā)明與現(xiàn)有技術(shù)相比的優(yōu)點在于:

(1)本發(fā)明通過分詞判斷重復程度選擇候選重復記錄集,有效避免了記錄的兩兩比較,提升了檢測的效率。

(2)通過分詞兼顧了字段的首尾以及內(nèi)部的具體值的特點,能完整表現(xiàn)字段值的特征,避免了記錄因為排序而相距甚遠,不能夠以有限的窗口覆蓋潛在重復記錄對的問題,體現(xiàn)出的優(yōu)點是在維持較低的計算復雜度的同時,提高了檢測的精度。

(3)每條記錄通過分詞被建立了多個映射關系,綜合處理每個集合篩選候選重復記錄,不需要復雜的hash函數(shù)的計算,也能夠避免單一的散列值忽略了記錄其他有用信息,提高了檢測效率。

(4)構(gòu)建的正向鏈集合,可以存儲于持久化存儲介質(zhì)中,對于增量數(shù)據(jù)可以實時更新構(gòu)建完成的集合,實時地對增量數(shù)據(jù)進行重復檢測,更新最新的檢測結(jié)果,從而實現(xiàn)對增量數(shù)據(jù)的處理和動態(tài)檢測的支持。

附圖說明

圖1為構(gòu)建正向鏈集合的流程圖;

圖2為基于構(gòu)建的正向鏈集合,進行候選記錄對計算與比較;

圖3為逆向索引數(shù)據(jù)結(jié)構(gòu)示意圖;

圖4為正向鏈集合數(shù)據(jù)結(jié)構(gòu)示意圖。

具體實施方式

在闡述本發(fā)明之前先對術(shù)語進行說明。

假設存在四條記錄,其分詞結(jié)果如下所示:

1:w1w2w3

2:w2w4w5w6

3:w1w3w4w6

4:w2w3w4w6

逆向索引

如圖3所示,所述逆向索引結(jié)構(gòu)為wi={r1,r2,,,rm},等號左邊為鍵,等號右邊為值。其中鍵為分詞過程中出現(xiàn)過的某一個分詞wi,值為包含該分詞wi的記錄對應的記錄索引集合,集合中的rm為待處理記錄的索引值;借助逆向索引能夠根據(jù)某個分詞查詢到包含該分詞的所有待處理記錄的索引值rm,根據(jù)查詢到的索引值rm進而查詢到對應的待處理記錄。

正向鏈集合

如圖4所示,所述正向鏈集合結(jié)構(gòu)為rj={{r11,r12,,,r1m},,,{rk1,rk2,,,rkm}},其中等號左邊為鍵,等號右邊為值,鍵rj為待處理記錄的索引值,值為由集合元素組成的集合,值中集合元素的個數(shù)等于通過rj索引到的待處理記錄的分詞集合wj中的分詞數(shù),每個集合元素即為以wi為鍵的逆向索引的值。

如圖1所示,本發(fā)明具體實施方式如下:

步驟1,獲取待處理記錄集r,從記錄集的所有字段中選取待分詞的字段集合f;

步驟2,遍歷待處理記錄集,根據(jù)步驟1中選取出的待分詞字段集合f,對每一條記錄的待分詞字段中的字段值進行分詞,得到每條記錄的分詞集合w;

遍歷待處理記錄集r同時,根據(jù)獲得的分詞集合w,建立并擴充待處理記錄集的逆向索引,根據(jù)獲得的逆向索引,建立并擴充待處理記錄集的正向鏈集合;遍歷結(jié)束,得到構(gòu)建完成的逆向索引和正向鏈集合,并將得到的逆向索引持久化存儲;

步驟3,設置閾值,遍歷記錄待處理集r,根據(jù)步驟(2)中的正向鏈集合,獲得候選記錄對集合,每個候選記錄對的結(jié)構(gòu)為{r1,r2},其中r1、r2為待處理記錄的索引;

步驟4,采用記錄重復性計算算法,對所有的候選記錄對{r1,r2}對應的待處理記錄是否重復進行計算,最終得到候選記錄對是否重復的結(jié)果,存儲檢測結(jié)果;

步驟5若發(fā)生增加記錄、修改記錄、刪除記錄的增量記錄,則對增量記錄進行實時處理。

所述步驟2中,遍歷待處理記錄集r同時,根據(jù)獲得的分詞集合w,建立并擴充待處理記錄集的逆向索引,根據(jù)獲得的逆向索引,建立并擴充待處理記錄集的正向鏈集合的步驟如下:

(11)從待處理記錄集r中取出一條記錄,記錄的索引為rk;

(12)根據(jù)步驟1中的字段集合f,對記錄的待分詞字段值進行分詞,分詞集合結(jié)果words={w1,w2,,,wi},wi表示分詞,i表示該記錄分詞數(shù)量;

(13)通過字符串匹配的方式,查找wi,判斷wi是否已經(jīng)出現(xiàn)過;

(14)如果未出現(xiàn)過,則構(gòu)建逆向索引wi={},記錄索引集合中的元素會隨著遍歷逐漸添加;

(15)將當前記錄索引rk添加到wi對應的記錄索引集合中;以當前記錄索引rk為鍵,建立rk與wi的記錄索引集合的映射關系,即rj鏈向wi的記錄索引集合,當遍歷結(jié)束,rk會根據(jù)記錄的分詞結(jié)果,鏈向多個記錄索引集合;

(16)遍歷待處理數(shù)據(jù)集結(jié)束,逆向索引與正向鏈集合構(gòu)建完成。

所述步驟3中,獲得候選記錄對集合的過程如下(如圖2所示):

(21)如圖2所示,首先確定候選記錄對的篩選標準,本實施例使用基于閾值的篩選標準,即判斷出現(xiàn)的記錄是否滿足重復程度閾值threshold。

記num1為兩條記錄的分詞集合的交集中分詞的個數(shù),num2為兩條記錄的分詞集合的并集中分詞的個數(shù),則存在判斷num1/num2>threshold?。當num1/num2大于threshold時,兩條記錄為候選記錄對,否則不是。

(22)依次取出待處理記錄集中r的記錄rq;

(23)初始化候選記錄對集合candidate為空;

(24)根據(jù)步驟2計算出的正向鏈集合,獲得以記錄rq為鍵的正向鏈集合的值,即記錄rq對應的所有記錄索引集合,每個記錄索引集合代表與記錄rq出現(xiàn)過某個相同分詞的所有記錄索引值。是否取出所有記錄索引集合的判斷依據(jù)為圖2所示“是否還存在記錄索引集合”;

(25)對所有記錄索引集合中出現(xiàn)的記錄進行統(tǒng)計,即統(tǒng)計每條記錄出現(xiàn)過的分詞,獲得rq對應的記錄索引集合中的記錄和rq比較時的num1和num2;

(26)根據(jù)步驟(25)的統(tǒng)計結(jié)果num1和num2和步驟(21)設定的篩選標準threshold,判斷統(tǒng)計結(jié)果中哪些記錄能夠和記錄rq構(gòu)成候選記錄對;

(27)將滿足num1/num2>threshold的記錄與記錄rq組成候選記錄對,添加到candidate集合中。

所述步驟5,對增量記錄進行實時處理的過程如下:

獲取增量記錄集中的一條記錄,對該增量記錄進行分詞處理;

若增量記錄對應的是增加記錄,如果分詞不存在,則構(gòu)建新的逆向索引,如果分詞存在,則取出數(shù)據(jù)庫中存儲的逆向索引,將該記錄索引加入逆向索引中的記錄索引集合中,構(gòu)建該記錄的正向鏈集合;

對正向鏈集合中出現(xiàn)的記錄索引進行統(tǒng)計,根據(jù)記錄的正向鏈集合和設定的候選記錄對刪選標準,篩選出候選記錄對;

采用記錄重復性計算算法,對候選記錄對是否重復進行檢測,存儲結(jié)果至數(shù)據(jù)庫中;

若增量記錄對應的是刪除操作,則刪除所有已存儲于數(shù)據(jù)庫中的該記錄的記錄索引,如果存在已檢測出的重復記錄,則刪除該重復記錄檢測結(jié)果;

若增量記錄對應的是更新操作,則對被更新的原記錄執(zhí)行一次刪除操作,將更新后的記錄當作新的紀錄,執(zhí)行一次增加操作。

提供以上實施例僅僅是為了描述本發(fā)明的目的,而并非要限制本發(fā)明的范圍。本發(fā)明的范圍由所附權(quán)利要求限定。不脫離本發(fā)明的精神和原理而做出的各種等同替換和修改,均應涵蓋在本發(fā)明的范圍之內(nèi)。

當前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
浑源县| 定结县| 海淀区| 钟山县| 夏津县| 彭泽县| 玉溪市| 东辽县| 毕节市| 武清区| 读书| 崇义县| 花莲县| 清徐县| 闻喜县| 高碑店市| 秀山| 岑溪市| 七台河市| 庆安县| 璧山县| 昌江| 刚察县| 凤冈县| 开化县| 厦门市| 平江县| 沙坪坝区| 华池县| 汕头市| 隆回县| 彰化县| 元江| 辉南县| 乐安县| 绩溪县| 滨州市| 贵溪市| 页游| 军事| 郓城县|