摘要:數(shù)據(jù)清洗是數(shù)據(jù)分析、數(shù)據(jù)挖掘等研究的起點。本文對數(shù)據(jù)清洗的研究進行了綜述。首先闡述了數(shù)據(jù)清洗與數(shù)據(jù)質(zhì)量的關系,然后說明了數(shù)據(jù)清洗的概況,并分析了數(shù)據(jù)清洗的步驟及方法,最后簡要介紹了國內(nèi)外關于數(shù)據(jù)清洗的研究近況,同時對中文數(shù)據(jù)清洗研究做了展望。
關鍵詞:臟數(shù)據(jù);數(shù)據(jù)清洗;數(shù)據(jù)質(zhì)量;相似重復數(shù)據(jù);清洗步驟
中國分類號:TP391 文獻標識碼:A
文章編號:1009-3044(2020)20-0044-04
A Review of The Development of Data Cleaning
LIAO Shu-yan
( Central China Normal University, Wuhan 430079, China)
Abstract: Data cleaning is the starting point of data analysis, data mining and so on. In this paper, the research of data cleaning isreviewed. Firstly, the relationship between data cleaning and data quality is explained, and then the data cleaning is described. andthe steps and algorithms of data cleaning are analyzed, and the research situation on data cleaning at home and abroad is brieflY- in-troduced. and the research on Chinese data cleaning is a prospect.
Key words: dirtV data; data cleaning; data quality; similar duplicate data; cleaning steps
1引言
數(shù)據(jù)是信息時代的標志性產(chǎn)物,逐漸獨立于軟件產(chǎn)品,甚至主導了某些軟件產(chǎn)品的發(fā)展。在互聯(lián)網(wǎng)蓬勃發(fā)展的時代,人們能夠從各個方面獲得海量數(shù)據(jù)。在獲得數(shù)據(jù)之后,人們往往希望能對這些數(shù)據(jù)進行不同的處理,并從中抽取出有價值的信息。為了得到滿足人們需要的有價值的信息,就要求所獲得的數(shù)據(jù)具有可靠性,同時能夠準確反映實際情況。但是實際上,人們獲得的第一手數(shù)據(jù)通常是“臟數(shù)據(jù)”。“臟數(shù)據(jù)”主要指不一致或不準確數(shù)據(jù)、陳舊數(shù)據(jù)以及人為造成的錯誤數(shù)據(jù)等[1]。如果對臟數(shù)據(jù)不加以必要的清洗處理就直接分析,那么從這些數(shù)據(jù)中得出的最終結論或規(guī)律必然是不準確。數(shù)據(jù)清潔的重要性由此凸顯出來一它能提高數(shù)據(jù)的公信力和準確度,因而對數(shù)據(jù)清洗的研究就顯得至關重要。
2數(shù)據(jù)清洗與數(shù)據(jù)質(zhì)量的關系
數(shù)據(jù)清洗過程的主要加工處理對象是臟數(shù)據(jù)。臟數(shù)據(jù)本身具有的不一致和不準確性等特點,直接影響了數(shù)據(jù)的顯式和隱式價值,即直接影響了數(shù)據(jù)的質(zhì)量。良好的數(shù)據(jù)清洗過程,能有效地剔去臟數(shù)據(jù)中的糟粕,使其內(nèi)含的價值顯露。因此數(shù)據(jù)清洗在提高數(shù)據(jù)質(zhì)量上起著決定性的作用。
數(shù)據(jù)質(zhì)量指的是數(shù)據(jù)的準確性、及時性、一致性和完整性,這幾個指標在信息系統(tǒng)中得到滿足的程度[2]。通常將數(shù)據(jù)質(zhì)量問題分為四類:單數(shù)據(jù)源模式層問題、單數(shù)據(jù)源實例層問題、多數(shù)據(jù)源模式層問題和多數(shù)據(jù)源實例層問題[3]。缺乏完整性約束以及架構設計差是導致單數(shù)據(jù)源模式層問題出現(xiàn)的重要原因。由數(shù)據(jù)記錄異常引發(fā)的單數(shù)據(jù)源實例層問題,主要包括拼寫錯誤、冗余記錄、數(shù)據(jù)內(nèi)部的字段矛盾等。由異構數(shù)據(jù)模型和架構設計引發(fā)的多數(shù)據(jù)源模式層的問題,主要包括命名沖突、結構沖突等。由重疊不一致的數(shù)據(jù)引發(fā)的多數(shù)據(jù)源實例層的問題,主要包括聚合不一致、時間不一致等。數(shù)據(jù)質(zhì)量問題的分類如圖1所示。數(shù)據(jù)清洗是一種提高數(shù)據(jù)質(zhì)量的可行有效的技術方法,它主要用于處理在數(shù)據(jù)質(zhì)量問題(例如冗余記錄和聚合不一致記錄)中,出現(xiàn)在實例層的臟數(shù)據(jù)。數(shù)據(jù)清洗具有一定的局限性,它需要與在模式層處理臟數(shù)據(jù)的數(shù)據(jù)整合技術共同使用,以充分提高數(shù)據(jù)的質(zhì)量。
3數(shù)據(jù)清洗概況
3.1數(shù)據(jù)清洗的概念
由于數(shù)據(jù)清洗的應用領域多、應用范圍廣,因此尚未形成公認的定義。本文采用王曰芬教授[4]對數(shù)據(jù)清洗的定義:數(shù)據(jù)清洗為清除錯誤和不一致數(shù)據(jù)的過程,并需要解決孤立點和元組重復問題。從這個定義可以看出,數(shù)據(jù)清洗是一個復雜的過程,不僅僅要檢測出數(shù)據(jù)中存在的差錯、清除數(shù)據(jù)中存在的不一致,更重要的是對數(shù)據(jù)進行整合和分解,將臟數(shù)據(jù)轉變成干凈數(shù)據(jù),供數(shù)據(jù)分析及數(shù)據(jù)挖掘使用,以便更好地找出數(shù)據(jù)之間的關聯(lián),挖掘其內(nèi)在價值。
3.2數(shù)據(jù)清洗的對象
數(shù)據(jù)清洗的對象可分成宏觀層面對象以及微觀層面對象。從宏觀層面上,數(shù)據(jù)清洗用于許多特定領域,如經(jīng)濟領域、政治領域等。從微觀層面上看,數(shù)據(jù)清洗主要用于解決數(shù)據(jù)質(zhì)量中在實例層出現(xiàn)的問題,如時間不一致等。
4數(shù)據(jù)清洗步驟
目前比較成熟的數(shù)據(jù)清洗框架已經(jīng)有很多了,例如Trilli-um模型、AJAX模型等。這些模型雖然有所差異,但其中數(shù)據(jù)清洗的一般步驟大致相同,可以分為五個步驟。
1)需求分析。此階段的目的是通過分析數(shù)據(jù)的作用領域與運用環(huán)境,來明確有效數(shù)據(jù)的格式,并據(jù)此得到數(shù)據(jù)清洗的目標。
2)預處理。通過數(shù)據(jù)分析技術,從實例層和模式層出發(fā),識別數(shù)據(jù)中存在的邏輯錯誤、不一致等數(shù)據(jù)質(zhì)量問題,將獲取的數(shù)據(jù)質(zhì)量信息整理歸檔。
3)確定清洗規(guī)則。根據(jù)預處理結果獲得的數(shù)據(jù)質(zhì)量信息,分析臟數(shù)據(jù)產(chǎn)生的根本原因,從而定義數(shù)據(jù)清洗規(guī)則。數(shù)據(jù)清洗規(guī)則包括空值數(shù)據(jù)清洗規(guī)則、異常數(shù)據(jù)清洗規(guī)則、冗余數(shù)據(jù)清洗規(guī)則[5]等。不同的數(shù)據(jù)集的特性差異明顯,因此數(shù)據(jù)清洗要選擇適合數(shù)據(jù)集特點的規(guī)則。
4)清洗與修正。為避免錯誤的清洗導致數(shù)據(jù)遺失,在清洗之前有必要對數(shù)據(jù)進行備份。根據(jù)選擇的清洗規(guī)則或模型,對數(shù)據(jù)進行清洗。不同的清洗規(guī)則作用于相同的數(shù)據(jù)集所得的效果不盡相同。分析清洗后的效果,若不盡人意,則可能需要重新選擇清洗規(guī)則,再次清洗。根據(jù)最終清洗結果,修正已經(jīng)歸檔的數(shù)據(jù)質(zhì)量信息。
5)檢驗。使用相應的檢驗操作,驗證經(jīng)過清洗后的數(shù)據(jù)是否符合預期要求。若不符合任務要求,可適當修改清洗規(guī)則或模型,重新進行數(shù)據(jù)清洗過程,并重新對結果進行檢驗評估。
5數(shù)據(jù)清洗方法
數(shù)據(jù)清洗技術與數(shù)據(jù)整合技術相輔相成,都用于解決數(shù)據(jù)質(zhì)量問題。因此目前大多數(shù)數(shù)據(jù)清洗方法都內(nèi)含了數(shù)據(jù)整合技術,主要從兩個方面對臟數(shù)據(jù)進行處理,一是從模式層著手,二是從實例層著手。從這兩個方面對臟數(shù)據(jù)進行分析與修正,以提高數(shù)據(jù)的質(zhì)量。
5.1模式層的清洗方法
結構沖突和屬性約束是導致模式層臟數(shù)據(jù)出現(xiàn)的主要原因。針對這兩個方面,目前的清洗方法有面向結構沖突的清洗方法以及面向噪聲數(shù)據(jù)的清洗方法[6]。
5.1.1面向結構沖突的清洗方法
為解決結構沖突中的類型沖突、關鍵字沖突等,當前使用的主要清洗方法為人工手動清洗。與程序相比,人工手動清洗的方法更能夠識別數(shù)據(jù)中隱藏的結構沖突。盡管人工手動清洗方法的準確性很高,但面對內(nèi)容過多的數(shù)據(jù)集,人工手動清洗的方法既費時又費力,效率也不高。
為解決結構沖突中的依賴沖突,目前采用的主要方法是函數(shù)依賴方法。此方法用于查找發(fā)現(xiàn)違反了函數(shù)依賴關系的數(shù)據(jù)從而進行清洗,但這種方法只能在滿足依賴關系的場合下使用,具有局限性。
5.1.2面向噪聲數(shù)據(jù)的清洗方法
噪聲數(shù)據(jù)的處理方法有分箱方法、人機組合方法、簡單規(guī)則庫方法等。
分箱方法是指通過檢查周圍的值來提高存儲的數(shù)據(jù)的擬合度。它屬于局部平滑方法,可以離散化數(shù)據(jù)并增加粒度,適用于數(shù)字型數(shù)據(jù)。
人機組合方法是指先參照計算機檢測到的可疑數(shù)據(jù),再由相關人員根據(jù)專業(yè)知識對數(shù)據(jù)進行修改。此方法大大提高了數(shù)據(jù)清洗的效率,但不適用于大數(shù)據(jù)集。
簡單規(guī)則庫方法則是指通過建立某些規(guī)則以達到數(shù)據(jù)約束的目的。清洗時,檢查數(shù)據(jù)是否符合相應的規(guī)則,如果不符合則進行修正。此方法適用于規(guī)則性強的數(shù)據(jù),并根據(jù)數(shù)據(jù)的規(guī)則來建立簡易規(guī)則庫,具有一定的局限性。
5.2實例層的清洗方法
數(shù)據(jù)本身的錯誤是導致實例層數(shù)據(jù)不干凈的主要原因。實例層數(shù)據(jù)清洗的核心在于檢測。檢測的主要內(nèi)容包括屬性值的檢測、重復數(shù)據(jù)檢測以及離群點檢測。
5.2.1面向?qū)傩灾禉z測的方法
屬性值的檢測主要是屬性錯誤值和空值。用于檢測屬性錯誤值的方法包括統(tǒng)計方法、聚類方法等[7]。用于空值檢測的方法主要是人工法、代表性函數(shù)值填充法等。
5.2.2面向重復數(shù)據(jù)檢測的方法
重復數(shù)據(jù)的檢測方法有很多,根據(jù)檢測內(nèi)容進行分類,可以分為基于字段的檢測和基于記錄的檢測。
基于字段的檢測算法有Levenshtein Distance算法、余弦相似度函數(shù)算法[8]等。Levenshtein DistanCe算法易于實現(xiàn)。余弦相似度算法更多地用于檢測文本的相似度。通過該算法獲得的相似性度量的值越小,說明個體間越相似。
基于記錄的檢測算法有N-Crams算法、聚類算法、SNM算法、MPN算法等[9]。N-Crams算法生成一個哈希表,然后根據(jù)哈希表來判斷記錄之間的相似性;聚類算法通過計算將相似的數(shù)據(jù)歸為一類;SNM算法實現(xiàn)較為容易,但在很大程度上取決于關鍵字,依賴性較強;MPN算法的優(yōu)點是它可以更為全面地收集重復的數(shù)據(jù),但使用起來較為煩瑣。
5.2.3面向離群點檢測的方法
離群點檢測是用于檢測與其他數(shù)據(jù)點明顯不同的對象,這樣的對象也被稱為離群值。離群點檢測算法主要包括基于統(tǒng)計模型的算法、基于接近度的算法、基于密度的算法以及基于聚類的算法等?;诮y(tǒng)計模型算法的檢測步驟為:首先建立數(shù)據(jù)模型,然后根據(jù)模型進行分析,最終得到離群點。基于接近度的算法主要定義對象之間的接近度。基于密度的算法核心是檢測物體的局部密度,當它的局部密度低于大多數(shù)鄰域內(nèi)對象時,則被判斷為離群點。基于聚類算法用于查找局部強烈關聯(lián)的對象組,而孤立點是與其他對象沒有強烈關聯(lián)的對象。檢測完成之后,根據(jù)數(shù)據(jù)檢測結果對錯誤數(shù)據(jù)進行校正,以達到清洗的目的。
6數(shù)據(jù)清洗國內(nèi)外研究現(xiàn)狀
6.1國外研究現(xiàn)狀
數(shù)據(jù)清洗的研究最早出現(xiàn)在美國,從對全美社會保險號錯誤的糾正開始[10]。數(shù)據(jù)清洗的早期研究主要集中在英文信息數(shù)據(jù)上。研究的內(nèi)容主要涉及:1)異常數(shù)據(jù)的檢測與消除;2)近似重復數(shù)據(jù)的檢測與消除;3)數(shù)據(jù)整合;4)特定領域的數(shù)據(jù)清洗。為了滿足信息產(chǎn)業(yè)和商業(yè)業(yè)務發(fā)展的需求,國外市場已經(jīng)在相關的領域開發(fā)了清洗軟件。
6.2國內(nèi)研究現(xiàn)狀
由于中英文語法的差異,國外有關數(shù)據(jù)清洗的研究并不完全適用于中文數(shù)據(jù)清洗。國內(nèi)有關數(shù)據(jù)清洗的研究起步較晚,并將長期處于起步發(fā)展階段。同時,國內(nèi)對數(shù)據(jù)清洗的研究主要是對外文清洗方法的改進,結合中文語法的特點,將其運用于中文數(shù)據(jù)清洗中。研究的內(nèi)容主要在數(shù)據(jù)倉庫、決策支持、數(shù)據(jù)挖掘等方面[11]。
國內(nèi)對于數(shù)據(jù)清洗的研究團隊主要有:
1)處理數(shù)據(jù)重復問題:復旦大學的周傲英教授團隊[12]、沈陽航空工業(yè)學院的夏秀峰教授[13]、李蜀瑜博士[14]、東南大學的董逸生教授的團隊[15];
2)處理數(shù)據(jù)集成問題:北京大學的楊冬青教授的團隊[16]、武漢理工大學的袁景凌副教授[17]、東南大學的董逸生教授團隊、復旦大學的周傲英教授團隊;
3)處理特定領域問題:中科院的劉清[18]、山東理工大學的王曉原教授[19]、西安理工大學張璟教授[20]、沈陽航空航天大學的夏秀峰教授團隊。
7中文數(shù)據(jù)清洗展望
國內(nèi)對于數(shù)據(jù)清洗的理論研究尚未成熟,因此鮮有中文數(shù)據(jù)清洗軟件在市場流行。但在大數(shù)據(jù)盛行的時代,中文數(shù)據(jù)清洗的研究仍有廣闊的發(fā)展前景,針對不同領域的數(shù)據(jù)清洗仍將是研究重點。
參考文獻:
[1] Fan Wenfei.Extending dependencies with conditions for datacleaning[C]//8th IEEE International Conference on Computerand Information Technology,2008: 185-190.
[2] Aebi Daniel. Perrochon Louis. Towards Improving Data Quality[M].1993:278-281.
[3] RAHM E,DO H H.Data cleaning:problems and current ap-proaches[J]. 2000,23(4):3-13.
[4]王曰芬,章成志,張蓓蓓,等.數(shù)據(jù)清洗研究綜述[J].現(xiàn)代圖書情報技術,2007(12):50-56.
[5]趙月琴,范通讓.科技創(chuàng)新大數(shù)據(jù)清洗框架研究[J].河北省科學院學報,2018,35(2):35-42.
[6]葉鷗,張璟,李軍懷.中文數(shù)據(jù)清洗研究綜述[J].計算機工程與應用2012,48(14):121-129.
[7] Maletic J I,Marcus A.Data cleansing: beyond integrity analysis[J].Division of Computer Science,2000.
[8] Salon G,Mcgill M J.lntroduction to modern information retriev-al[M].New York: McGraw-Hill Book Co,1983.
[9]蔣園,韓旭,馬丹璇,等.相似重復數(shù)據(jù)檢測的數(shù)據(jù)清洗算法優(yōu)化[J/OL].計算機技術與發(fā)展,2019(10):1-9.
[10] Calhardas H,F(xiàn)lorescu D.An Extensible Framework for Da-ta Clean-ing[C]. In: Proceedings of the 16 th IEEE International Conf erence on Dat a Engineering. San Di ego, Califor-nia.2000:312-312.
[11]王曰芬,章成志,張蓓蓓,吳婷婷.數(shù)據(jù)清洗研究綜述[J].現(xiàn)代圖書情報技術,2007(12):50-56.
[12]邱越峰,田增平,李文,等.一種高效的檢測相似重復記錄的方法[J].計算機學報,2001,24(1):69-77.
[13]劉哲,夏秀峰,宋曉燕,等.一種中文地址類相似重復信息的檢測方法[J].小型微型計算機系統(tǒng),2008,29(4):726-729.
[14]石彥華,李蜀瑜.聚類反饋學習的數(shù)據(jù)清洗研究[J].計算機工程與應用,2011,47(30):127-131.
[15]韓京宇,徐立臻,董逸生.一種大數(shù)據(jù)量的相似記錄檢測方法[J].計算機研究與發(fā)展,2005,42(12): 2206-2212.
[16]方幼林,楊冬青,唐世渭,等.數(shù)據(jù)轉換過程的串行化方法[J].計算機工程與應用,2003,39(17):4-6,187.
[17]袁景凌,徐麗麗,苗連超.基于XML的虛擬法異構數(shù)據(jù)集成方法研究[J].計算機應用研究,2009,26(1):172-174.
[18]張晉輝,劉清.基于推理機的SCI地址字段數(shù)據(jù)清洗方法設計[J].情報科學,2010,28(5):741-746.
[19]王曉原,張敬磊,吳芳.交通流數(shù)據(jù)清洗規(guī)則研究[J].計算機工程,2011,37(20):191-193.
[20]劉嘉,張璟,李軍懷.一種基于Token匹配的中文數(shù)據(jù)清洗方法[J].計算機應用與軟件,2009,26(11):4345,53.
【通聯(lián)編輯:梁書】
收稿日期:2020-03-23
基金項目:文章由“華中師范大學大學生創(chuàng)新創(chuàng)業(yè)訓練計劃項目資助”(項目編號為20190410005)
作者簡介:廖書妍(1999-),女,福建長汀縣人,華中師范大學計算機學院本科生,主要研究方向為軟件工程。