APP下载

Web数据清洗及其系统框架研究

2014-04-29王琛

计算机时代 2014年12期
关键词:质量评估数据质量

王琛

摘  ;要: 数据清洗是提高数据质量的有效手段。分析了从Web上抽取的数据存在的质量问题或错误,针对错误类型,给出属性错误(包括不完整数据和异常数据)和重复与相似重复记录的描述,并提出相应的清洗方法;设计了一个数据清洗系统框架,该框架由数据预处理、数据清洗引擎和质量评估三大部分组成,可以针对不同的错误类型,完成不同的清洗任务。实验表明,该框架具有通用性和可扩展性。

关键词: 数据质量; 数据清洗; 属性错误; 重复记录; 质量评估

中图分类号:TP391  ;  ;  ;  ;  ;文献标志码:A  ;  ; 文章编号:1006-8228(2014)12-42-03

Research on Webdata cleaning and its system framework

Wang Chen

(School of Information Media and Art,Jiangsu Institute of Architectural Technology, Xuzhou, Jiangsu 221116, China)

Abstract: Data cleaning is an effective means to improve the quality of data. The quality problems and the errors appearing when extracting data from Web are analyzed. According to the error type, the attribute (including incomplete data and abnormal data) and records on repeat, similar repeat are described. The corresponding cleaning method is given. A framework of data cleaning is constructed, including data preprocessing, data cleaning engines and quality assessment. When being faced with different types of errors, it can complete the task of cleaning differently. The experiment results show that the framework has great generality and extensibility.

Key words: data quality; data cleaning; attribute error; duplicate records; quality assessment

0 引言

Web信息集成的目的是获取Web上的丰富数据资源,将其集成为用户或某个应用所需要的有效信息。但是从Web上抽取的大量数据,往往存在一定的数据质量问题,如拼写错误,空值,不合法数据,数据重复,以及不完整数据等等。因此必须进行数据清洗,消除数据的不一致与重复错误,提高数据的可用性,保证信息的质量,才能实现有效数据的高效查询,以及用于后续的数据挖掘与知识发现。

本文针对前期从Web中抽取到的大量数据,检测并消除其中存在的属性错误和重复与相似重复记录问题,提出一种通用的数据清洗系统框架,从而保证数据的可信度和可用性[1-2]。

1 属性错误

清洗属性错误主要用来解决不同数据源之间的数据不一致问题。属性错误主要包括两部分:不完整数据和异常数据。

1.1 不完整数据

不完整数据是指数据库中的某条记录的属性出现空值或缺失值的现象,如表1所示。

表1  ;不完整数据

这种现象主要是由数据源模式和抽取方式不同造成的,也是数据在抽取过程中出现质量问题的重要因素。如果某条记录中的关键字或者数值型属性不完整,则有可能导致错误数据模型的建立,还会引起决策支持系统的错误。因此,对于多个属性值为空或者其关键字属性为空的记录,应直接进行删除清洗。其余的不完整数据可以采用常量值替代、统计、分类和使用估算值的方法[3]进行清洗。

1.2 异常数据

异常数据是指数据库中的某条记录的属性出现不精确,错误的值,或者属性值违反业务规则,以及同一属性采用不同的表现形式等现象,如表2所示。

表2是从当当、卓越网站抽取到的相关图书数据,其中错误的数据为:“IT”(ID:2,属性:类别),《WTO服务贸易法专论》不属于IT类别;违反业务规则的数据为:“47”(ID:1,属性:售价),此值与定价和折扣两个字段的数值不符;数据发生的一致性错误为:ID为1的记录(属性:出版日期),出版日期为2012年9月1日,而ID为2的记录为2006-4-1,同一属性采用了不同的表示形式。

表2  ;异常数据

一般采用层次聚类的方法,对异常数据进行检测与清洗。首先将数据集的记录分成若干组,使同一组的数据具有较高相似度,不同组中的数据记录差别较大,散落在外,不能归并到任何一类中的数据称为“孤立点”;然后判断是否有“孤立点”存在,若存在,则判断该孤立点是否存在错误数据,若不存在,则根据规则库再次判断是否存在异常数据;最后,对获取的错误数据进行清洗处理,修正错误。

2 重复与相似重复记录

Web上的异构数据由于模式不同,数据的不完整,数据的缩写等问题,在进行Web抽取时,会获得大量重复数据,这些重复记录不但导致数据冗余,占用大量存储空间,而且还会给用户提供很多相似信息,造成检索结果的不准确性。数据清洗的核心工作就是要准确高效地检测并消除数据源中的重复数据,并进行归并。

在关系数据库中,属性值完全相同的记录,即为重复记录,它们表示同一对象;有些记录不完全相同,有些属性也不完全相同,但是它们表示同一对象,此类记录称为相似重复记录[4-5],例如表3。

表3  ;相似重复记录

表3中的三条记录来源于Web上不同数据源,仔细比较可知,这三条记录中的出版日期、所属类别、出版社这三个属性值存在不同。例如,针对出版日期属性,三条记录的描述格式存在差异,可以根据规则库中的相关函数将其转化成统一的格式,如“2012-9-1”;针对出版社属性,显然“清华”、“清华大学”均是“清华大学出版社”的缩写,可以根据数据字典中的定义将其统一为“清华大学出版社”;针对所属类别属性,“.Net”与“asp.net”均属于“IT>;程序设计”中的子类,也可进行统一。由此可知,表3中列出的三条记录为相似重复记录。

但是数据清洗过程中,相似重复记录的检测过程非常复杂,主要通过判断记录之间的相似性来达到获得重复记录目的。具体实施为:首先优选记录集中的特征属性,设定权重值,根据权重值对记录集进行聚类分组,使相似的记录尽量排在相邻的位置;再比较各组记录中对应字段的相似度,完成字段匹配;最后通过计算各字段的权重,利用加权的方式,得到记录的相似度,当超过某一阈值,则认为是相似的,从而完成记录匹配。

3 数据清洗系统框架

数据清洗系统框架主要包括:数据预处理、数据清洗引擎和质量评估三大部分,如图1所示。

图1  ;数据清洗系统框架模型

3.1 数据预处理

数据预处理主要包括数据分析与数据标准化两个模块。

⑴ 数据分析模块

本模块用来对从Web中抽取到的数据进行整体分析,获得可能会出现的数据质量问题和错误类型,以便后续选择适合的清洗规则和清洗算法。

⑵ 数据标准化

Web上的数据来源于不同的数据源,存储的形式不同,同一数据的表达方式不同,缩写的样式也存在不同,因此,在清洗之前,要对数据进行标准化,从而提高后续清洗操作执行的有效性。

本模块包括规范数据格式,统一数据表达方式和统一缩写三项工作,例如将日期类型的字段统一为ISO8601国际标准,并使用YYYY-MM-DD的格式[6]。

3.2 数据清洗引擎

数据清洗引擎主要包括数据检测、数据清洗两大模块。

⑴ 数据检测模块

数据检测模块用来检测属性错误(包括不完整数据和异常数据)和重复与相似重复记录。进行统计后,获得全面的脏数据信息,并归档。其中对于重复与相似重复记录可以采用特征属性的选择、属性权重的设定、聚类排序、字段匹配和记录匹配等检测操作。

⑵ 数据清洗模块

对检测出的脏数据进行清洗,对不完整数据采用删除、常量值替代、统计、分类、使用估算值填充的清洗方法;对异常数据可采用聚类、基于规则库的清洗等,从而完成属性错误问题的修正;对检测到的重复记录进行归并或清除工作。

这些工作均由算法库或规则库提供的预先定义好的清洗算法和清洗规则实行。当然在实际的操作工程中,可以随时调整或更新自定义的算法和规则。对于无法自动清洗的数据,可提交给用户,由其手动处理。通常先清洗异常错误,再清洗重复记录,最后清洗不完整数据。

3.3 质量评估

质量评估主要是使用包含在评估库中的评估方法和标准对数据清洗效果进行评估,并将结果反馈给用户,来检测是否达到了预定的清洗要求。通常用户需要反复的评估和清洗才能满足需求,最后获得干净数据。

4 实验结果与分析

实验中所用到的数据是从亚马逊、淘宝、china-pub等网站中抽取到的12700多条图书记录所形成的关系数据集。每条记录优选12个属性,形成如表4的字段信息。

表4  ;图书元数据信息

说明:字段名即关系表中的属性

经过数据清洗后,脏数据与干净数据的对比如表5。

实验表明,该清洗框架可以清洗属性值错误、数据不精确、数据描述不规范等属性错误和重复记录问题,通过调用数据清洗引擎,可以对不同类型的错误,采用不同的清洗过程进行处理。能够消除大部分的错误,从而提高数据质量。

5 结束语

数据清洗的目的就是利用现有的技术和手段,消除或减少数据中的错误与不一致问题,将其转化成为满足数据质量要求的数据。

本文分析了从Web上抽取到的数据存在的质量问题,给出包括不完整数据和异常数据在内的属性错误以及重复与相似重复记录的描述,并提出对应的清洗方法;设计了一个由数据预处理、数据清洗引擎和质量评估三部分共五个模块组成的数据清洗系统框架,可以针对不同类型的脏数据,完成不同的清洗任务。实验表明,该框架具有通用性和可扩展性。

参考文献:

[1] Ragm,E., Do,H,H. Data cleaning: problems and current apporaches.

IEEE Data Engineering Bulletin,2005.23(4):3-13

[2] Pair Wand, Rihard Y Wang. Anchoring Data Quality Dimensions

in Ontological Foundations[J]. COMMUNICATIONS OF THE ACM,2006.39(11):86-95

[3] Batista G E A P A, Monard M C. An analysis of four missing data

treatment methods for supervised learning .Applied Artificial Intelligence,2003.17(5-6):519-533

[4] 佘春红,许向阳.关系数据库中近似重复记录的识别[J].计算机应用

研究,2003.20(9):36-37

[5] 陈伟,丁秋林.数据清理中编辑距离的应用及Java编程实现[J].电脑

与信息技术,2003.17(6):33-35

[6] 张建中等.对基于SNM数据清洗算法的优化[J].中南大学学报(自然

科学版),2010.41(6):2240-2245

猜你喜欢

质量评估数据质量
基于组合分类算法的源代码注释质量评估方法
电子商务平台数据质量控制系统及仿真模型分析
强化统计执法提高数据质量
浅析统计数据质量
金融统计数据质量管理的国际借鉴与中国实践
浅谈统计数据质量控制
中国上市公司会计信息质量研究
澳大利亚研究生课程的外部质量评估
“学生学习结果评价”:美国高校教学质量评估的有效范式
建筑工程专业教育质量评估