一種基于互聯(lián)網(wǎng)信息的數(shù)據(jù)清洗系統(tǒng)的制作方法
【專利摘要】本發(fā)明公開了一種基于互聯(lián)網(wǎng)信息的數(shù)據(jù)清洗系統(tǒng),包括數(shù)據(jù)質(zhì)量問題檢測模塊,對臟數(shù)據(jù)進行檢測,干凈元組直接送入清洗后的數(shù)據(jù)庫,正確元組送入關(guān)鍵字生成模塊,存在空缺值、錯誤值、沖突值的錯誤元組送入可行元組檢測模塊;關(guān)鍵字生成模塊;網(wǎng)絡(luò)模式獲取模塊;可行元組檢測模塊;數(shù)據(jù)清洗模塊,利用模式在互聯(lián)網(wǎng)上進行搜索,即可找到推薦值或錯誤值對應(yīng)的正確值,并放入清洗后的數(shù)據(jù)庫中;其他策略清洗模塊;和清洗后的數(shù)據(jù)庫。本發(fā)明的系統(tǒng)能從數(shù)據(jù)中發(fā)現(xiàn)錯誤數(shù)據(jù),并且能夠從互聯(lián)網(wǎng)中發(fā)現(xiàn)和這些數(shù)據(jù)相關(guān)的信息加以提取,從而獲得用于數(shù)據(jù)清洗的數(shù)據(jù),大大提高了數(shù)據(jù)清洗的準(zhǔn)確度,而且去除人的反饋,無需用戶參與,降低了成本。
【專利說明】一種基于互聯(lián)網(wǎng)信息的數(shù)據(jù)清洗系統(tǒng)
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及一種數(shù)據(jù)清洗系統(tǒng),具體涉及一種基于互聯(lián)網(wǎng)信息的數(shù)據(jù)清洗系統(tǒng)。
【背景技術(shù)】
[0002] 當(dāng)海量的數(shù)據(jù)聚集之后,當(dāng)前的信息系統(tǒng)無法保證其制造或者收集到的數(shù)據(jù)的質(zhì) 量能滿足用戶的需求。一些因素如:內(nèi)容過時、輸入錯誤、重復(fù)輸入、屬性值沖突等嚴(yán)重影響 著數(shù)據(jù)的質(zhì)量。而數(shù)據(jù)的質(zhì)量又嚴(yán)重影響著用戶的分析與決策,因此這一問題值得引起數(shù) 據(jù)為中心應(yīng)用的重視。為了克服種種因數(shù)據(jù)的質(zhì)量所引發(fā)的問題,數(shù)據(jù)清洗技術(shù)至關(guān)重要。 數(shù)據(jù)清洗技術(shù)當(dāng)前尚沒有公認(rèn)的準(zhǔn)確定義,但從字面上就可以看出它的目標(biāo)是希望把"臟" 數(shù)據(jù)"清洗"干凈,以提高數(shù)據(jù)的質(zhì)量。
[0003] 文獻 FanW. Dependencies revisited for improving data quality[C]// Proceedings of the twenty-seventh ACM SIGMOD-SIGACT-SIGART symposium on Principles of database systems. ACM, 2008:159-170 中的方法清洗的過程當(dāng)中,若系統(tǒng) 遭遇到無法處理的情況時,需要向人來報告,然后通過人的反饋操作進行下一步的清洗過 程。這種方法的優(yōu)點是由于人的參與準(zhǔn)確性會大大提高,但算法的時間消耗可能會很巨 大,而且對依賴關(guān)系的規(guī)則和不同的人的主觀判斷的依賴性過強。文獻考明軍,張煒,高 宏.沖突數(shù)據(jù)中的真值發(fā)現(xiàn)算法[J].計算機研究與發(fā)展,2010, 47:188-192中的方法去掉 了在數(shù)據(jù)清洗當(dāng)中的用戶的反饋,而改用機器學(xué)習(xí)的方法,即在清洗過程之前先讓機器學(xué) 習(xí)對的清洗操作,然后在后續(xù)的清洗過程不,不斷累積的學(xué)習(xí),此方法去除了人的反饋,提 升了算法的時間效率,但精確率有所下降,對清洗過程中所使用的依賴關(guān)系的依賴依然很 強。
【發(fā)明內(nèi)容】
[0004] 針對現(xiàn)有技術(shù)存在的不足,本發(fā)明目的是提供一種去除人的反饋,無需用戶參與, 準(zhǔn)確率高,成本低的基于互聯(lián)網(wǎng)信息的數(shù)據(jù)清洗系統(tǒng)。
[0005] 為了實現(xiàn)上述目的,本發(fā)明是通過如下的技術(shù)方案來實現(xiàn):
[0006] 本發(fā)明的一種基于互聯(lián)網(wǎng)信息的數(shù)據(jù)清洗系統(tǒng),包括
[0007] 數(shù)據(jù)質(zhì)量問題檢測模塊,用于對臟數(shù)據(jù)進行檢測得到干凈元組、正確元組和錯誤 元組,對于干凈元組送入清洗后的數(shù)據(jù)庫,對于正確元組送入關(guān)鍵字生成模塊,對于存在空 缺值、錯誤值、沖突值的錯誤元組送入可行元組檢測模塊;
[0008] 關(guān)鍵字生成模塊,用于生成需要向互聯(lián)網(wǎng)進行查詢的查詢語句集合,然后將所述 查詢語句集合發(fā)給網(wǎng)絡(luò)模式獲取模塊;
[0009] 網(wǎng)絡(luò)模式獲取模塊,用于與互聯(lián)網(wǎng)進行交互獲取文本依賴關(guān)系,所述文本依賴關(guān) 系即模式,并將所述模式發(fā)送到數(shù)據(jù)清洗模塊;
[0010] 可行元組檢測模塊,用于對錯誤元組進行判定,判斷出可行元組,問題元組中除去 可行元組即為不可行元組;對于可行元組送入數(shù)據(jù)清洗模塊,對于不可行元組送入其他策 略清洗模塊; toon] 數(shù)據(jù)清洗模塊,利用模式在互聯(lián)網(wǎng)上進行搜索,即可找到推薦值或錯誤值對應(yīng)的 正確值,并放入清洗后的數(shù)據(jù)庫中;
[0012] 其他策略清洗模塊,通過自動數(shù)據(jù)修復(fù)方法對不可行元組進行清洗,然后送入清 洗后的數(shù)據(jù)庫中;
[0013] 和清洗后的數(shù)據(jù)庫。
[0014] 上述關(guān)鍵字生成模塊生成查詢語句集合的方法如下:
[0015] (la)對獲取的正確元組分層抽樣獲取部分正確元組數(shù)據(jù);
[0016] (2a)對步驟(la)抽樣出來的正確元組數(shù)據(jù),將其屬性兩兩進行拼加,得到拼裝出 來的查詢語句集合Query。
[0017] 上述網(wǎng)絡(luò)模式獲取模塊獲取模式具體包括以下幾個步驟:
[0018] (lb)將步驟(2a)得到的查詢語句集合Query放到搜索引擎中;
[0019] (2b)對搜索引擎給出的返回結(jié)果Results集合進行斷句操作,利用最優(yōu)模糊匹配 進行挖掘即可獲得模式。
[0020] 步驟(2b)中,最優(yōu)模糊匹配的算法具體包括以下幾個步驟:
[0021] 首先將一個目標(biāo)字符串X中的每一個漢字插入到哈希表CharcHash中,然后遍歷 字符串集合Y的每一個字符串y,若通過哈希比較發(fā)現(xiàn)字符串y中含有目標(biāo)字符串X中的漢 字,記錄字符串y中出現(xiàn)的第一個和最后一個X中的漢字的位置start\end ;
[0022] 然后將start到end這一區(qū)間插入到另一個哈希表Dictionary中,并記錄出現(xiàn)次 數(shù),再將此區(qū)間依次向左向右擴張而成的字符串分別插入到哈希表Dictionary中;
[0023] 在插入結(jié)束后,將哈希表Dictionary中的所有元素按次數(shù)排序,再從次數(shù)最多的 元素中做包含比較,找到不被包含的短句即是最優(yōu)模糊匹配。
[0024] 步驟(2b)中,模式的挖掘具體包括以下幾個步驟:
[0025] 首先設(shè)置一個全局的記錄出現(xiàn)次數(shù)的哈希表PatternHashTable,所述哈希表 PatternHashTable中存放所有的模式;
[0026] 然后將步驟(2b)得到的最優(yōu)模糊匹配進行變形,將屬性值用標(biāo)識代替;
[0027] 最后將變形后的值插入到哈希表PatternHashTable中,以此類推,直到所有的變 形后的值都插入到此哈希表PatternHashTable中,接著將哈希表PatternHashTable內(nèi)所 有的值按出現(xiàn)的順序進行排序,即得到出現(xiàn)次數(shù)最多的Top-K個模式。
[0028] 在所述可行元組檢測模塊中,基于以下幾點因素選擇可行元組:
[0029] (lc)可通過正確元組從網(wǎng)絡(luò)上挖掘到模式集合S ;
[0030] (2c)在模式集合S中選擇存在問題的屬性有對應(yīng)的修復(fù)模式;
[0031] (3c)在模式集合S中過濾掉屬性同時錯誤的模式;
[0032] (4c)在模式集合S中過濾掉可使用函數(shù)依賴進行清洗的模式;
[0033] (4c)在模式集合S中過濾掉可使用真值發(fā)現(xiàn)算法進行清洗的模式;
[0034] 以上幾點必須同時成立時,即可通過正確元組從網(wǎng)絡(luò)上挖掘到模式、存在問題的 屬性有對應(yīng)的修復(fù)模式、模式中的屬性不能同時錯誤、無法使用函數(shù)依賴進行清洗、無法使 用真值發(fā)現(xiàn)算法進行清洗時才可使用所述數(shù)據(jù)清洗模塊對元組進行數(shù)據(jù)清洗。
[0035] 對于存在空缺值的錯誤元組,所述數(shù)據(jù)清洗模塊的清洗方法如下:
[0036] (Id)對于給定的屬性值和模式,將其組合內(nèi)容進行搜索,找到搜索結(jié)果中包含當(dāng) 前所要清洗的屬性值的任意文字的短句并記錄其出現(xiàn)次數(shù);
[0037] (2d)通過最優(yōu)模糊匹配找到最優(yōu)模糊匹配短句;
[0038] (3d)利用給定的屬性值和模式進行拆分即可找到推薦值。
[0039] 對于存在錯誤值的錯誤元組,所述數(shù)據(jù)清洗模塊的清洗方法如下:
[0040] (le)對于關(guān)系模式R,A = {Attrl, Attr2,…AttrK}為R的所有屬性 值的集合,對于給定的屬性值A(chǔ)ttrl、Attr2和它們的相關(guān)網(wǎng)絡(luò)模式Pattern,將 Attrl+Pattern+( Σ A_Attr2)和 Attr2+Pattern+( Σ A-Attrl)這兩個 Query 語句進行搜 索,對分別得到的Resultsl和Results2進行并集操作得到集合Results ;
[0041] (2e)分別挖掘Results中的關(guān)于Attrl+Pattern和Attr2+Pattern的最優(yōu)模糊匹 配 Sentencel 和 Sentence2 ;
[0042] (3e)選擇其中出現(xiàn)次數(shù)最多的做為最終的最優(yōu)模糊匹配短句Sentence ;
[0043] (4e)依據(jù)選擇的模式進行拆分,得到需要清洗的錯誤值對應(yīng)的正確值。
[0044] 對于存在沖突值的錯誤元組,所述數(shù)據(jù)清洗模塊的清洗方法如下:
[0045] (If)對于關(guān)系模式R,A = {Attrl, Attr2,…AttrK}為R的所有屬性值的集合, 已經(jīng)通過元組匹配和聚類的方法找到指代同一真實世界實體的元組集合T = {tl,t2,… ,tK},對于給定的屬性值A(chǔ)ttrl、Attr2和它們的相關(guān)網(wǎng)絡(luò)模式知識Pattern,需要對T集合 中的所有元組的屬性Attrl的所有不同表述進行清洗;
[0046] (2f)對 Attr2+Pattern+( Σ A_Attr2)的 Query 語句進行搜索;
[0047] (3f)對分別得到的Resultsl,Results2,…,ResultsK進行并集操作得到集合 Results ;
[0048] (4f)挖掘Results中的關(guān)于Attr2+Pattern的最優(yōu)模糊匹配Sentence ;
[0049] (5f)然后依據(jù)選擇的模式進行拆分,可得到需要清洗的錯誤值對應(yīng)的正確值。
[0050] 上述自動數(shù)據(jù)修復(fù)方法包括自動真值發(fā)現(xiàn)和匹配函數(shù)依賴的最小化修改、數(shù)據(jù)填 充。
[0051] 本發(fā)明的系統(tǒng)能從數(shù)據(jù)中發(fā)現(xiàn)錯誤數(shù)據(jù),并且能夠從互聯(lián)網(wǎng)中發(fā)現(xiàn)和這些數(shù)據(jù)相 關(guān)的信息加以提取,從而獲得用于數(shù)據(jù)清洗的數(shù)據(jù),進行有效的數(shù)據(jù)清洗,大大提高了數(shù)據(jù) 清洗的準(zhǔn)確度,而且去除人的反饋,無需用戶參與,降低了成本。
【專利附圖】
【附圖說明】
[0052] 圖1為本發(fā)明的系統(tǒng)原理框圖;
[0053] 圖2為本發(fā)明的網(wǎng)絡(luò)模式獲取模塊工作流程圖;
[0054] 圖3為本發(fā)明的在存在空缺值的情況下數(shù)據(jù)清洗模塊的工作流程圖。
【具體實施方式】
[0055] 為使本發(fā)明實現(xiàn)的技術(shù)手段、創(chuàng)作特征、達成目的與功效易于明白了解,下面結(jié)合
【具體實施方式】,進一步闡述本發(fā)明。
[0056] 空缺值:屬性值是空缺的。這種情況需要清洗算法來填補空白。
[0057] 錯誤值:屬性值存在,但被認(rèn)定是錯誤的。這種錯誤可以由FD/CFD算法來認(rèn)定。 這種情況需要清洗算法來修正錯誤值。
[0058] 沖突值:屬性值有多個可能的值,但是只有一個值是正確的。這種錯誤可以通過實 體識別的方法來找到那些指向同一真實世界實體的元組集合,如果這一集合中的同一位置 的屬性值有所不同,那么就出現(xiàn)了沖突。這種情況需要清洗算法來選擇或者制造一個真實 的屬性值,消除沖突。
[0059] 數(shù)據(jù)清洗:對數(shù)據(jù)的空缺值進行填補,對數(shù)據(jù)的錯誤值進行修正,對數(shù)據(jù)的沖突值 進行消除的過程叫做數(shù)據(jù)清洗。
[0060] 參見圖1,框架共分為三大部分,第一部分是數(shù)據(jù)質(zhì)量問題的檢測,第二部分是模 式的獲取部分,最后一部分是清洗部分。這兩大部分之間的聯(lián)系為模式的獲取部分最終將 其獲取得到的模式傳遞給清洗部分,用以支持其進行基于模式的數(shù)據(jù)清洗。這兩個部分只 共用一個模塊,那就是數(shù)據(jù)質(zhì)量問題檢測模塊。除此以外,兩個部分的運行在時間上存在先 后關(guān)系,即模塊的獲取部分其實是在在數(shù)據(jù)清洗部分開始之間就已經(jīng)完成,以下將分別介 紹兩大部分的內(nèi)部具體流程。
[0061] 模式獲取部分內(nèi)的數(shù)據(jù)流依次如下。首先對一個臟的數(shù)據(jù)源進行數(shù)據(jù)質(zhì)量問題檢 測模塊,對于其正確的元組流向關(guān)鍵字生成模塊,此時關(guān)鍵字生成模塊生成需要向網(wǎng)絡(luò)進 行查詢的關(guān)鍵字,然后將關(guān)鍵字發(fā)給模式獲取模塊,模式獲取模塊利用與互聯(lián)網(wǎng)的交互,挖 掘得到文本依賴關(guān)系,即模式。
[0062] 清洗部分內(nèi)的數(shù)據(jù)流依次如下。首先也是對臟數(shù)據(jù)源進行檢測,對正確的元組直 接送入清洗后的數(shù)據(jù)庫中,而對存在"空缺值、錯誤值、沖突值"這三種錯誤的元組送入可行 元組檢測模塊。在可行元組檢測模塊對存在錯誤的元組進行判定,若適合使用基于網(wǎng)絡(luò)的 數(shù)據(jù)清洗技術(shù)進行清洗,則利用之間挖掘的模式和已知的所有信息在互聯(lián)網(wǎng)上進行搜索, 獲得正確的值后,放入清洗后的數(shù)據(jù)庫中;對于不適合使用基于網(wǎng)絡(luò)的數(shù)據(jù)清洗技術(shù)進行 清洗的元組,使用其它策略對其進行清洗后,放入清洗后的數(shù)據(jù)庫中。
[0063] 下面依次對各個模塊進行介紹:
[0064] 一、關(guān)鍵字生成
[0065] 但如果是海量的數(shù)據(jù)需要進行處理,利用整個輸入文件用于模式知識搜索代價很 高,而且部分文件中即可找到所需求的模式知識,我們使用分層抽樣獲取部分元組數(shù)據(jù)。 [0066] 對于抽樣出來的元組數(shù)據(jù),我們將其屬性兩兩進行拼加,如對于元組"哈爾濱 工業(yè)大學(xué)I王樹國I黑龍江省哈爾濱市1150001",其拼裝出來的查詢語句集合為Query ={ "哈爾濱工業(yè)大學(xué)+王樹國","哈爾濱工業(yè)大學(xué)+黑龍江省哈爾濱市","哈爾濱工業(yè) 大學(xué)+150001","王樹國+黑龍江省哈爾濱市","王樹國+150001","黑龍江省哈爾濱市 +150001"}。然后就完成了查詢語句的拼裝,緊接著是將各個查詢語句放到互聯(lián)網(wǎng)中進行檢 索,來獲取模式。
[0067] 在關(guān)鍵字生成的模塊中,我們將通過數(shù)據(jù)質(zhì)量檢測的正確元組進行抽樣,然后對 抽樣出來的元組的屬性值進行組裝,然后組裝成的Query語句將會傳遞給下一個部分用來 從網(wǎng)絡(luò)上獲取模式。
[0068] 二、模式獲取
[0069] 基于網(wǎng)絡(luò)的模式的獲取部分是算法中非常核心的一步。在我們得到了 Query語句 之后,我們將其放到互聯(lián)網(wǎng)上進行搜索,在搜索結(jié)果中挖掘出文本依賴模式,這便是模式的 獲取過程。
[0070] 與網(wǎng)絡(luò)上的資源進行交互是模式獲取中的第一步。將組裝好的Query語句發(fā)送到 的搜索引擎,然后對搜索引擎給出的返回結(jié)果進行解析,將所有結(jié)果存儲起來,為之后的模 式挖掘提供數(shù)據(jù)基礎(chǔ)。參見圖2,下面介紹一個使用此方法的例子。使用HTTP REQUEST的 方式向百度發(fā)出搜索請求"http://www. baidu. com/s ? wd =哈爾濱工業(yè)大學(xué)+王樹國+ 黑龍江省哈爾濱市+150001fcn = 100",然后百度返回的結(jié)果是關(guān)于此搜索的前100個搜 索結(jié)果,此結(jié)果以HTML文件流的形式傳過來。將此文件解析成為Result的集合,其中每個 Result的數(shù)據(jù)結(jié)構(gòu)包含以下四個變量:title (標(biāo)題),brief (簡介),date (網(wǎng)頁日期), link(網(wǎng)頁地址),如下圖中所示為Query = "哈爾濱工業(yè)大學(xué)+王樹國"的檢索結(jié)果中的 Results集合中的一個合法項。
[0071] Result: {
[0072] title: "王樹國-哈爾濱工業(yè)大學(xué)校長" brief: "王樹國,1958年10月生,河北獻縣人,哈工大博士、教 授、博導(dǎo)^現(xiàn)為國家「863」...1999年任黑龍江省科技廳廳長,2002年 任哈爾濱工業(yè)大學(xué)校長。1987年至1989年他曾..." date: "2013-5-9" link : uhttp://www.maigoo.com/maigoociTis/2010/0123/dxky wsg.html }
[0073] 為了更加高效的進行模式挖掘,需要將檢索后的title和brief的內(nèi)容進行斷句 操作。然后在之后的步驟當(dāng)中,以斷開的句子為單位。漢語中的斷句操作較為簡單,只需要 在逗號,句號,問號,感嘆號(,。??。┏霈F(xiàn)的位置進行斷開操作即可。
[0074] 在與互聯(lián)網(wǎng)信息進行交互之后,可以得到各個Query語句查詢所得的Results集 合,接下來從這些Results集合中挖掘出模式。
[0075] 在得到Results集合并在其中進行過斷句操作之后,我們利用最優(yōu)模糊匹配的思 想,以模糊匹配為工具,進行模式的挖掘。
[0076] 最優(yōu)模糊匹配算法的目的是給定一個目標(biāo)字符串X、一個字符串集合Y和一個給 定的編輯距離的閾值Κ,在Υ中尋找X的最優(yōu)模糊匹配。最優(yōu)模糊匹配的算法如下:首先將 X中的每一個漢字插入到哈希表CharcHash中,然后遍歷字符串集合Υ的每一個字符串y, 若通過哈希比較發(fā)現(xiàn)y中含有X中的漢字,剛記錄y中出現(xiàn)的第一個和最后一個X中的漢 字的位置start\end,然后將start到end這一區(qū)間插入到另一個哈希表Dictionary中, 并記錄出現(xiàn)次數(shù),再將此區(qū)間依次向左向右擴張而成的字符串分別插入到Dictionary中。 在插入結(jié)束后,將Dictionary中的所有元素按次數(shù)排序,再從次數(shù)最多的元素中做包含比 較,找到不被包含的短句即是最優(yōu)模糊匹配。
[0077] 首先模式的挖掘是以所有的元組的挖掘為基礎(chǔ)的,需要設(shè)置一個全局的記錄出現(xiàn) 次數(shù)的哈希表PatternHashTable,這個哈希表中存放一切可能的模式。在對一個元組的所 有Query語句進行最優(yōu)模糊匹配之后,將得到的最優(yōu)模糊匹配進行變形,將屬性值用標(biāo)識 代替。例如,假設(shè)搜索的Query ={"哈爾濱工業(yè)大學(xué)+王樹國","哈爾濱工業(yè)大學(xué)+黑龍江省 哈爾濱市","哈爾濱工業(yè)大學(xué)+150001","王樹國+黑龍江省哈爾濱市","王樹國+150001", "黑龍江省哈爾濱市+150001"},得到了一個模糊匹配為"哈爾濱工業(yè)大學(xué)校長王樹國",將 其變形為"[屬性0]校長[屬性1] ",然后將變形后的值插入到PatternHashTable中,依次 類推,直到所有的變形后的值都插入到此表中。接著將表內(nèi)所有的值按出現(xiàn)的順序進行排 序,這時就能得到出現(xiàn)次數(shù)最多的Top-K個模式。
[0078] 三、可行元組的選擇
[0079] 可行元組的選擇是指選擇出那些適用于基于網(wǎng)絡(luò)模式的數(shù)據(jù)清洗技術(shù)的已經(jīng)確 定存在數(shù)據(jù)質(zhì)量問題的元組。在這一個模塊當(dāng)中,程序的輸入是所有錯誤的元組,輸出為適 用于基于網(wǎng)絡(luò)模式的數(shù)據(jù)清洗技術(shù)的那些元組。我們基于如下幾點因素選擇可行元組:
[0080] (1)可通過正確的元組從網(wǎng)絡(luò)上挖掘到模式。
[0081] (2)存在問題的屬性有對應(yīng)的修復(fù)模式。
[0082] (3)模式中的屬性不能同時錯誤。
[0083] (4)無法使用函數(shù)依賴進行清洗。
[0084] (5)無法使用真值發(fā)現(xiàn)算法進行有效的清洗。
[0085] 以上幾點必須同時成立時,即可通過正確的元組從網(wǎng)絡(luò)上挖掘到模式、存在問題 的屬性有對應(yīng)的修復(fù)模式、模式中的屬性不能同時錯誤、無法使用函數(shù)依賴進行清洗、無法 使用真值發(fā)現(xiàn)算法進行有效的清洗時才可使用基于網(wǎng)絡(luò)模式的數(shù)據(jù)清洗技術(shù)對元組進行 數(shù)據(jù)清洗。
[0086] 四、基于網(wǎng)絡(luò)模式的清洗
[0087] 對于需要使用基于網(wǎng)絡(luò)模式的清洗技術(shù)的元組,我們以其質(zhì)量存在的問題為標(biāo)準(zhǔn) 分為三種情況,分別是空缺值、錯誤值、沖突值,技術(shù)細節(jié)如下:
[0088] 空缺值清洗:對于給定的屬性值A(chǔ)ttrl和模式知識Pattern,將其組合內(nèi)容進行搜 索,找到搜索結(jié)果中包含當(dāng)前所要清洗的屬性值的任意文字的短句并記錄其出現(xiàn)次數(shù),通 過排序、模糊匹配和包含比較,找到最優(yōu)模糊匹配短句Sentence,再利用給定的屬性值和模 式知識進行拆分即可找到推薦值。
[0089] 參見圖3,例如,給定值為"X1 =哈爾濱工業(yè)大學(xué)",給定模式為"X1校長X2",組 合成" Query =哈爾濱工業(yè)大學(xué)校長",進行搜索,對結(jié)果進行解析、過濾、最優(yōu)模糊匹配后, 可得到" Sentence =哈爾濱工業(yè)大學(xué)校長王樹國",再利用給定的值和模式進行拆分,可得 到推薦值為"X2 =王樹國"。
[0090] 錯誤值清洗
[0091] 對于函數(shù)依賴可以修復(fù)的錯誤值情況,應(yīng)直接使用其進行修復(fù)。但若函數(shù)依賴只 能檢測出錯誤,無法對其進行修改的情況,我們可以使用基于網(wǎng)絡(luò)模式的數(shù)據(jù)清洗技術(shù)對 其進行清洗。
[0092] 函數(shù)依賴只能檢測出錯誤,無法對其進行修改的情況一般為函數(shù)依賴中定義的約 束以屬性值檢測中出現(xiàn)沖突的情況,即我們可以根據(jù)約束1和屬性1修改屬性2,也可以根 據(jù)約束2和屬性2修改屬性1的情況。對于這種情況,我們使用如下的基于網(wǎng)絡(luò)模式的數(shù) 據(jù)清洗技術(shù)。
[0093] 假設(shè)對于關(guān)系模式R,A = {Attrl, Attr2,…AttrK}為R的所有屬性值 的集合,對于給定的屬性值A(chǔ)ttrl、Attr2和它們的相關(guān)網(wǎng)絡(luò)模式知識Pattern, 將"六1:1:1'1+?31^61'11+(1六-六1:1^2)"和"六1:1^2+?31^61'11+(1六-六1:1:1'1)"這兩個( >)116^語句 進行搜索,對分別得到的Resultsl和Results2進行并集操作得到集合Results。分別挖 掘 Results 中的關(guān)于"Attrl+Pattern" 和"Attr2+Pattern" 的最優(yōu)模糊匹配 Sentencel 和 Sentence2,選擇其中出現(xiàn)次數(shù)最多的做為最終的最優(yōu)模糊匹配短句Sentence,然后依據(jù)選 擇的模式進行拆分,可得到需要清洗的錯誤值的對應(yīng)的正確值
[0094] 沖突值清洗
[0095] 對于真值發(fā)現(xiàn)可以修復(fù)得很好的沖突情況,應(yīng)該直接使用沖突發(fā)現(xiàn)的算法對其進 行清洗。但若真值發(fā)現(xiàn)的算法無法有效的進行清洗,我們可以使用基于網(wǎng)絡(luò)模式的數(shù)據(jù)清 洗技術(shù)。
[0096] 假設(shè)對于關(guān)系模式R,A = {Attrl, Attr2, --?AttrK}為R的所有屬性值的集合,已經(jīng) 通過元組匹配和聚類的方法找到指代同一真實世界實體的元組集合T = {tl,t2,…,tK}, 對于給定的屬性值A(chǔ)ttr 1、Attr2和它們的相關(guān)網(wǎng)絡(luò)模式知識Pattern,需要對T集合中的 所有元組的屬性八1:1:1'1的所有不同表述進行清洗,將"41:1^2+?31^61'11+(14-41:1^2)"( >)116巧 語句進行搜索,對分別得到的Resultsl, Results2,…,ResultsK進行并集操作得到集合 Results。挖掘Results中的關(guān)于"Attr2+Pattern"的最優(yōu)模糊匹配Sentence,然后依據(jù)選 擇的模式進行拆分,可得到需要清洗的錯誤值的對應(yīng)的正確值。
[0097] 對于輸入的實體集合,將其所有的元組的所有內(nèi)容分別進行搜索,找到搜索結(jié)果 中包含當(dāng)前所要清洗的屬性值的任意文字的短句并記錄其出現(xiàn)次數(shù),通過排序、包含比較 等操作,找到最優(yōu)模糊匹配,再對最優(yōu)模糊匹配的短句按出現(xiàn)的頻次進行比較,只保留最大 的頻次項,對此項進行拆分,即可得到當(dāng)前實體當(dāng)前屬性值的清洗結(jié)果。此清洗為相似性清 洗,可以找到與當(dāng)前屬性值不同的屬性,如搜索"哈爾濱工大+王樹國+哈爾濱+150001"和 "哈工大+王樹國+哈爾濱+150001",當(dāng)前要清洗的為第一個屬性,最有可能得到的出現(xiàn)次 數(shù)最多且不被其它短句包含的值應(yīng)為"哈爾濱工業(yè)大學(xué)",其中"業(yè)"、"學(xué)"這兩個字并沒有 在候選屬性值中出現(xiàn)。
[0098] 以上顯示和描述了本發(fā)明的基本原理和主要特征和本發(fā)明的優(yōu)點。本行業(yè)的技術(shù) 人員應(yīng)該了解,本發(fā)明不受上述實施例的限制,上述實施例和說明書中描述的只是說明本 發(fā)明的原理,在不脫離本發(fā)明精神和范圍的前提下,本發(fā)明還會有各種變化和改進,這些變 化和改進都落入要求保護的本發(fā)明范圍內(nèi)。本發(fā)明要求保護范圍由所附的權(quán)利要求書及其 等效物界定。
【權(quán)利要求】
1. 一種基于互聯(lián)網(wǎng)信息的數(shù)據(jù)清洗系統(tǒng),其特征在于,包括 數(shù)據(jù)質(zhì)量問題檢測模塊,用于對臟數(shù)據(jù)進行檢測得到干凈元組、正確元組和錯誤元組, 對于干凈元組送入清洗后的數(shù)據(jù)庫,對于正確元組送入關(guān)鍵字生成模塊,對于存在空缺值、 錯誤值、沖突值的錯誤元組送入可行元組檢測模塊; 關(guān)鍵字生成模塊,用于生成需要向互聯(lián)網(wǎng)進行查詢的查詢語句集合,然后將所述查詢 語句集合發(fā)給網(wǎng)絡(luò)模式獲取模塊; 網(wǎng)絡(luò)模式獲取模塊,用于與互聯(lián)網(wǎng)進行交互獲取文本依賴關(guān)系,所述文本依賴關(guān)系即 模式,并將所述模式發(fā)送到數(shù)據(jù)清洗模塊; 可行元組檢測模塊,用于對錯誤元組進行判定,判斷出可行元組,問題元組中除去可行 元組即為不可行元組;對于可行元組送入數(shù)據(jù)清洗模塊,對于不可行元組送入其他策略清 洗模塊; 數(shù)據(jù)清洗模塊,利用模式在互聯(lián)網(wǎng)上進行搜索,即可找到推薦值或錯誤值對應(yīng)的正確 值,并放入清洗后的數(shù)據(jù)庫中; 其他策略清洗模塊,通過自動數(shù)據(jù)修復(fù)方法對不可行元組進行清洗,然后送入清洗后 的數(shù)據(jù)庫中; 和清洗后的數(shù)據(jù)庫。
2. 根據(jù)權(quán)利要求1所述的基于互聯(lián)網(wǎng)信息的數(shù)據(jù)清洗系統(tǒng),其特征在于,所述關(guān)鍵字 生成模塊生成查詢語句集合的方法如下: (la) 對獲取的正確元組分層抽樣獲取部分正確元組數(shù)據(jù); (2a)對步驟(la)抽樣出來的正確元組數(shù)據(jù),將其屬性兩兩進行拼加,得到拼裝出來的 查詢語句集合Query。
3. 根據(jù)權(quán)利要求2所述的基于互聯(lián)網(wǎng)信息的數(shù)據(jù)清洗系統(tǒng),其特征在于, 所述網(wǎng)絡(luò)模式獲取模塊獲取模式具體包括以下幾個步驟: (lb) 將步驟(2a)得到的查詢語句集合Query放到搜索引擎中; (2b)對搜索引擎給出的返回結(jié)果Results集合進行斷句操作,利用最優(yōu)模糊匹配進行 挖掘即可獲得模式。
4. 根據(jù)權(quán)利要求3所述的基于互聯(lián)網(wǎng)信息的數(shù)據(jù)清洗系統(tǒng),其特征在于, 步驟(2b)中,最優(yōu)模糊匹配的算法具體包括以下幾個步驟: 首先將一個目標(biāo)字符串X中的每一個漢字插入到哈希表CharcHash中,然后遍歷字符 串集合Y的每一個字符串y,若通過哈希比較發(fā)現(xiàn)字符串y中含有目標(biāo)字符串X中的漢字, 記錄字符串y中出現(xiàn)的第一個和最后一個X中的漢字的位置start\end ; 然后將start到end這一區(qū)間插入到另一個哈希表Dictionary中,并記錄出現(xiàn)次數(shù), 再將此區(qū)間依次向左向右擴張而成的字符串分別插入到哈希表Dictionary中; 在插入結(jié)束后,將哈希表Dictionary中的所有元素按次數(shù)排序,再從次數(shù)最多的元素 中做包含比較,找到不被包含的短句即是最優(yōu)模糊匹配。
5. 根據(jù)權(quán)利要求4所述的基于互聯(lián)網(wǎng)信息的數(shù)據(jù)清洗系統(tǒng),其特征在于, 步驟(2b)中,模式的挖掘具體包括以下幾個步驟: 首先設(shè)置一個全局的記錄出現(xiàn)次數(shù)的哈希表PatternHashTable,所述哈希表 PatternHashTable中存放所有的模式; 然后將步驟(2b)得到的最優(yōu)模糊匹配進行變形,將屬性值用標(biāo)識代替; 最后將變形后的值插入到哈希表PatternHashTable中,以此類推,直到所有的變形后 的值都插入到此哈希表PatternHashTable中,接著將哈希表PatternHashTable內(nèi)所有的 值按出現(xiàn)的順序進行排序,即得到出現(xiàn)次數(shù)最多的Top-K個模式。
6. 根據(jù)權(quán)利要求5所述的基于互聯(lián)網(wǎng)信息的數(shù)據(jù)清洗系統(tǒng),其特征在于, 在所述可行元組檢測模塊中,基于以下幾點因素選擇可行元組: (lc) 可通過正確元組從網(wǎng)絡(luò)上挖掘到模式集合S ; (2c)在模式集合S中選擇存在問題的屬性有對應(yīng)的修復(fù)模式; (3c)在模式集合S中過濾掉屬性同時錯誤的模式; (4c)在模式集合S中過濾掉可使用函數(shù)依賴進行清洗的模式; (4c)在模式集合S中過濾掉可使用真值發(fā)現(xiàn)算法進行清洗的模式; 以上幾點必須同時成立時,即可通過正確元組從網(wǎng)絡(luò)上挖掘到模式、存在問題的屬性 有對應(yīng)的修復(fù)模式、模式中的屬性不能同時錯誤、無法使用函數(shù)依賴進行清洗、無法使用真 值發(fā)現(xiàn)算法進行清洗時才可使用所述數(shù)據(jù)清洗模塊對元組進行數(shù)據(jù)清洗。
7. 根據(jù)權(quán)利要求6所述的基于互聯(lián)網(wǎng)信息的數(shù)據(jù)清洗系統(tǒng),其特征在于,對于存在空 缺值的錯誤元組,所述數(shù)據(jù)清洗模塊的清洗方法如下: (ld) 對于給定的屬性值和模式,將其組合內(nèi)容進行搜索,找到搜索結(jié)果中包含當(dāng)前所 要清洗的屬性值的任意文字的短句并記錄其出現(xiàn)次數(shù); (2d)通過最優(yōu)模糊匹配找到最優(yōu)模糊匹配短句; (3d)利用給定的屬性值和模式進行拆分即可找到推薦值。
8. 根據(jù)權(quán)利要求6所述的基于互聯(lián)網(wǎng)信息的數(shù)據(jù)清洗系統(tǒng),其特征在于,對于存在錯 誤值的錯誤元組,所述數(shù)據(jù)清洗模塊的清洗方法如下: (le) 對于關(guān)系模式R,A = {Attrl,Attr2,…AttrK}為R的所有屬性值的集合,對于給 定的屬性值A(chǔ)ttrl、Attr2和它們的相關(guān)網(wǎng)絡(luò)模式Pattern,將Attrl+Pattern+( Σ A_Attr2) 和Attr2+Pattern+( Σ A-Attrl)這兩個Query語句進行搜索,對分別得到的Resultsl和 Results2進行并集操作得到集合Results ; (2e)分別挖掘Results中的關(guān)于Attrl+Pattern和Attr2+Pattern的最優(yōu)模糊匹配 Sentencel和 Sentence2 ; (3e)選擇其中出現(xiàn)次數(shù)最多的做為最終的最優(yōu)模糊匹配短句Sentence ; (4e)依據(jù)選擇的模式進行拆分,得到需要清洗的錯誤值對應(yīng)的正確值。
9. 根據(jù)權(quán)利要求6所述的基于互聯(lián)網(wǎng)信息的數(shù)據(jù)清洗系統(tǒng),其特征在于,對于存在沖 突值的錯誤元組,所述數(shù)據(jù)清洗模塊的清洗方法如下: (lf) 對于關(guān)系模式R,A = {Attrl, Attr2,…AttrK}為R的所有屬性值的集合,已經(jīng)通 過元組匹配和聚類的方法找到指代同一真實世界實體的元組集合T = {tl,t2,…,tK},對 于給定的屬性值A(chǔ)ttrl、Attr2和它們的相關(guān)網(wǎng)絡(luò)模式知識Pattern,需要對T集合中的所 有元組的屬性Attrl的所有不同表述進行清洗; (2f)對 Attr2+Pattern+( Σ A_Attr2)的 Query 語句進行搜索; (3f)對分別得到的Resultsl, Results2,…,ResultsK進行并集操作得到集合 Results ; (4f)挖掘Results中的關(guān)于Attr2+Pattern的最優(yōu)模糊匹配Sentence ; (5f)然后依據(jù)選擇的模式進行拆分,可得到需要清洗的錯誤值對應(yīng)的正確值。
10.根據(jù)權(quán)利要求1所述的基于互聯(lián)網(wǎng)信息的數(shù)據(jù)清洗系統(tǒng),其特征在于, 所述自動數(shù)據(jù)修復(fù)方法包括自動真值發(fā)現(xiàn)和匹配函數(shù)依賴的最小化修改、數(shù)據(jù)填充。
【文檔編號】G06F17/30GK104268216SQ201410495234
【公開日】2015年1月7日 申請日期:2014年9月24日 優(yōu)先權(quán)日:2014年9月24日
【發(fā)明者】王宏志, 王飛, 秦謙, 宋陽秋 申請人:江蘇名通信息科技有限公司