自动检测半结构化数据质量问题的分析系统及分析方法
未命名
10-19
阅读:115
评论:0
1.本发明涉及半结构化数据处理领域,具体涉及一种自动检测半结构化数据质量问题的分析系统及分析方法。
背景技术:
2.现实世界中,企业与个人通常分析数据后进行价值判断与经济决策,原始数据的数据质量高低直接影响了这一过程的可靠性、可解释性、真实性。现实生活中的数据通常包含了各种数据质量问题,如缺失值、不一致值、或重复值等。这些数据质量问题有多种源头,如人工误差、数据整合、不规范的编码风格等。分析低质量的数据所得的结论往往存在错误,可能导致重大经济损失。因此,在使用数据之前必须要先发现并解决数据质量问题。
3.目前,大多工业界与学术界的工作主要集中于解决表格数据的质量问题。表格数据属于结构化数据,具有明确定义的结构,符合预先定义的数据模型。然而,随着网络发展,半结构化数据(semi-structured data)被更频繁地使用,因此保证其数据质量至关重要。例如,在数据分析场景下,数据工作者需要将数据清洗作为决策分析的前置步骤。此外,在nosql数据库质量维护的场景下,数据管理者需要保证数据质量符合预设标准。json数据作为一种典型的、常用的半结构化数据,具有明显的层级结构特征,是网络传输、内容存储的主流格式。然而,面向半结构化数据质量的研究屈指可数。
4.半结构化数据与结构化数据相比,主要有以下两方面的不同:
5.其一是半结构化数据不遵循特定模式。半结构化数据在生成之时往往没有预先定义模式,并且它的模式可以随时变化,例如json中某个属性可以被增加、删除、或者改变。
6.其二是半结构化数据呈层级结构,且每一层都包含了特定信息。结构化数据通常将数据展示为扁平的表,但是半结构化数据可以层层嵌套,包含的信息更加丰富多样。
7.一方面,以上两个特性让半结构化数据便于网络信息传输;另一方面,这又让半结构化数据的清洗过程更加困难耗时,用户也更难以发现并解决隐匿在层级结构下的数据质量问题。因此,帮助用户自动检测半结构化数据中的数据质量问题是一个具有挑战性的研究问题。
8.目前,不少研究工作提出了用于指导半结构化数据数据质量管理的方法或框架,这些工作主要集中于json数据,可大致分为三类:(1)第一类是数据剖析(data profiling),如openrefine,profiler等工具支持生成统计信息,如数据类型、结构、模式、统计学指标等,帮助用户发现问题数据,但这类工具不支持处理半结构化数据;又如jsondiscoverer、steed、json crack、schemadrill等工具能够从半结构化数据中抽取并可视化模式,但这类工具不支持检测数据质量问题;(2)第二类是数据质量监测,目前学术界尚未总结出公认的数据质量描述维度,因为“数据质量”这个词往往依赖语境且暗含了“适合使用”的原则。laranjeiro等人(laranjeiro n,soydemir s n,bernardino j.a survey on data quality:classifying poor data[c]//proceedings of the ieee pacific rim international symposium on dependable computing.)调研并总结了常用的数据质量描
述维度,如准确度、完整性、一致性。此外,数据质量监测是一个循环往复的过程,主要包括三种实现方式,分别是:使用组织化的控制机制、持续检测是否违反规则、周期性监测并可视化监测结果;(3)第三类是数据清洗(data cleansing),如data chamaleon就是一个使用领域特定语言对json数据进行转换操作的框架,但它不支持数据质量问题的自动检测,并且使用领域特定语言编码对新手来说有一定的学习成本;又如json formatter&validator、json cleaner、jsonformatter.io等商业产品,它们仅能够解决json数据格式上的错误(如重复属性,尾随逗号,单双引号等)、格式化json数据,涵盖的数据质量范围颇窄。
技术实现要素:
[0009]
为了检测半结构化数据中的数据质量问题并持续监测变动后的数据,本发明提出一种自动检测半结构化数据质量问题的分析系统及分析方法,接收用户上传的原始json数据,进行类型推断、相似度计算、类型聚合,生成一棵聚合模式树,并利用聚合模式树与原始json数据自动检测半结构化数据质量问题并支持用户配置数据转换操作参数。本发明能够大大提高数据工作者处理半结构化数据质量问题的效率,支持自动检测数据质量问题,支持用户交互式配置参数解决数据质量问题。并且,本发明具有良好的泛化性和通用性,如可以迁移到其他类型的半结构化数据上,如xml。
[0010]
本发明的目的通过如下的技术方案来实现:
[0011]
一种自动检测半结构化数据质量问题的分析系统,该系统包括:
[0012]
解析模式模块,该模块接收用户输入的原始json数据或经过若干次清洗后的json数据,并对json数据依次执行类型推断、相似度计算、类型聚合,输出一棵描述聚合模式的树状结构的中间数据,即聚合模式树;
[0013]
数据质量问题检测模块,该模块接收所述json数据以及所述解析模式模块输出的聚合模式树,并基于半结构化数据质量的空间,从两个维度对数据质量进行分类;并对空间内的每一个数据质量问题,对应地给出基于规则的检测当前数据质量问题的方法,最终得到包含当前数据质量问题的名称、具体分类、涉及聚合模式树中的节点编码以及节点相关数据在内的信息;
[0014]
可视化生成模块,该模块的输入为所述解析模式模块和数据质量问题检测模块的输出,通过编码映射与布局生成后,生成一种数据质量问题与模式的可视化视图;
[0015]
数据清洗模块,用于根据用户自由设置的配置或系统推荐的配置对用户输入的json数据进行清洗操作,并提供数据清洗前后的预览操作,帮助用户明确定位当前数据质量问题的源头。
[0016]
进一步地,所述解析模式模块包括类型推断子模块、相似度计算子模块和类型聚合子模块;
[0017]
所述类型推断子模块针对json数据的六个数据类型进行推断,分别为字符串string、布尔值boolean、空值null、数值number、字典dict、数组array这六种类型;其中,string、boolean、null、number为简单数据类型,dict、array为复杂数据类型;
[0018]
所述相似度计算子模块用于计算所述复杂数据类型的相似度;
[0019]
所述类型聚合子模块,用于根据相似度计算结果,将相似度不小于预设阈值的两
种复杂数据类型进行合并,json数据本质上是一棵树,遍历过程中当前节点为数组、字典或简单数据类型,对这三种情况分类处理;由于节点类型存在多种嵌套情况,因此类型聚合是一个递归的过程;特殊地,在json数据的树根,仅考虑根节点为数组或字典两种情况;
[0020]
如果当前节点为字典,则进行字典内部合并;首先按照属性值的类型对当前字典下的子节点进行分组,对当前节点的子节点分组后的结果依次遍历按照字典、数组、简单数据类型分类讨论:
[0021]
(a)如果子节点是字典,先对当前组内的每个字典进行字典内部合并,然后查看完成内部合并后的字典能否进一步地在字典之间进行合并;如果相似度不小于预设阈值,则进一步在字典之间进行合并;否则,不再进行字典之间的合并;
[0022]
(b)如果子节点是数组,则先对当前数组内的内各数据类型进行数组内部合并,然后根据相似度阈值决定内部合并后的数组是否在数组之间进一步进行数组合并;
[0023]
(c)如果子节点为简单数据类型,则直接初始化为聚合模式树的节点信息,并放入最终结果;
[0024]
如果当前节点为数组,则进行数组内部合并;首先按照数组元素类型推断后的子节点进行分组,对当前节点的子节点分组后的结果依次遍历按照字典、数组、简单数据类型分类讨论:这三种数据类型的处理流程与当前节点为字典时的三种数据类型的处理流程相同;
[0025]
如果当前节点为简单数据类型,则直接初始化为聚合模式树的节点信息,并放入最终结果;此时,当前节点没有子节点,无需进一步聚合。
[0026]
进一步地,所述相似度计算使用雅卡尔指数,阈值为默认设定的0-1范围内的数据或用户手动输入的数据。
[0027]
进一步地,所述数据质量问题检测模块从两个维度对数据质量问题进行分类,第一个维度侧重描述数据质量,分别为一致性、重复性、冗余性、完整性、准确性与模式;第二个维度侧重描述json数据中的数据对象,分别是属性键、属性值、属性键值对、结构。
[0028]
进一步地,所述数据质量问题检测模块将空间内检测出的每个数据质量问题按照能够准确检测出、能够粗略检测出、难以被检测出这三个类别分别标记为
①
、
②
、
③
;对于能够准确检测出和能够粗略检测出的数据质量问题,所述数据质量问题检测模块都对应地给出基于规则的检测方法;对于难以被检测出的数据质量问题,需要用户选中树中节点并声明该问题。
[0029]
进一步地,所述基于规则的检测当前数据质量问题的方法分为两类:
[0030]
第一类为基于决定性规则,利用聚合模式树直接判断;
[0031]
第二类为基于启发性规则,直接对输入的json进行遍历并结合聚合模式树同时判断。
[0032]
进一步地,每个检测到的数据质量问题,都输出包含当前数据质量问题的名称、涉及聚合模式树中的节点编码;树中节点的编码用于定位节点以及节点相关的数据。
[0033]
一种自动检测半结构化数据质量问题的分析方法,该方法基于分析系统来实现;
[0034]
该方法包括如下步骤:
[0035]
步骤一:所述解析模式模块接收用户输入的原始json数据或经过若干次清洗后的json数据,并对原始json数据依次执行类型推断、相似度计算、类型聚合,输出一棵描述聚
合模式的树状结构的中间数据,即聚合模式树;
[0036]
步骤二:所述数据质量问题检测模块接收原始json数据和所述聚合模式树,基于半结构化数据质量的空间,从两个维度对数据质量进行分类;并对空间内的每一个数据质量问题,对应地给出基于规则的检测当前数据质量问题的方法,最终得到包含当前数据质量问题的名称、具体分类、涉及聚合模式树中的节点编码以及节点相关数据在内的信息;
[0037]
步骤三:所述可视化生成模块将步骤一和步骤二得到的结果,通过编码映射与布局生成后,生成一种数据质量问题与模式的可视化视图;
[0038]
步骤四:所述数据清洗模块基于可视化的数据质量问题对用户输入的原始json数据或经过若干次清洗后的json数据进行清洗操作;
[0039]
步骤五:将清洗后的json数据再次重复步骤一~步骤四,直至没有数据质量问题被检测出或达到迭代终止条件,输出高质量json数据。
[0040]
本发明的有益效果如下:
[0041]
(1)本发明能够帮助用户快速且有效地定位半结构化数据中的数据质量问题,并支持推荐转换操作与生成模式参数、用户交互式配置表单对数据质量问题进行转换操作,重复直至得到一份干净的json数据。
[0042]
(2)本发明采用基于相似度的模式聚合方法,获得聚合模式树,让用户能够快速概览json模式。
[0043]
(3)本发明将json模式与json数据质量问题的可视化结合在一起,分别将json模式可视化为一棵树、json数据质量问题可视化为包裹树中节点的气泡,让用户在json数据结构的语境下更好地发现并解决数据质量问题。
附图说明
[0044]
图1为本发明实施例的自动检测半结构化数据质量问题的分析方法的流程示意图。
[0045]
图2为本发明实施例的自动检测半结构化数据质量问题的分析系统的界面展示图。
具体实施方式
[0046]
下面根据附图和优选实施例详细描述本发明,本发明的目的和效果将变得更加明白,应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0047]
本发明实施例的自动检测半结构化数据质量问题的分析系统,旨在协助用户清洗半结构化数据中存在的数据质量问题,获得一份高质量的数据。该系统包括解析模式模块、数据质量问题检测模块、可视化生成模块和数据清洗模块。
[0048]
一、解析模式模块
[0049]
该模块包括类型推断子模块、相似度计算子模块、类型聚合子模块。该模块的输入为用户上传或复制到编辑器内的原始json数据或经过若干次清洗后的json数据。该模块通过执行类型推断(旨在将具体的数据转换为数据类型,也即json的6种数据类型)、相似度计算(旨在计算数组或字典之间的相似度)、类型聚合(旨在将不小于相似度阈值的数组或字典聚合)三个子模块,最终输出为一棵描述聚合模式树状结构的中间数据,即聚合模式树。
该树中的每个节点包括当前节点的所有原始数据信息、描述聚合情况的正则信息、描述当前节点聚合后所有类型的信息、子节点信息等。
[0050]
作为其中一种实施方式,本实施例中,当用户上传原始的json数据或者输入迭代后的经过若干次清洗后的json数据后,第一步类型推断主要针对json的六个数据类型进行推断,分别为string,boolean,null,number,dict,array这六种类型。其中string,boolean,null,number为简单数据类型,dict,array为复杂数据类型。以[1,"s"]为例,推断结果为[number,string]。第二步为相似度计算,该步骤作用于复杂数据类型,用于判断当前复杂数据类型能否在给定的阈值聚合,对于dict依据字典内键名是否相同判断,对于array依据数组内聚合后的元素类型是否相同判断。相似度计算使用雅卡尔指数(jaccard index),阈值为初始默认设定的0-1范围内的数据或用户手动输入的数据。以图1中的输入json为例,数组下的两个字典键名一个为title/genres/score,另一个为title/genre/score。它们的并集为title/genres/score/genre,长度4;它们的交集为title/score,长度为2,因此其相似度为2/4=0.5,如果初始阈值设置为0.5,则这两个字典可以合并。
[0051]
第三步类型聚合依赖于相似度的计算结果,对数组和字典进行类型聚合,由于节点类型可能存在父节点数组嵌套子节点数组、父节点字典嵌套子节点数组、父节点数组嵌套子节点字典等多种嵌套情况等多种嵌套情况,因此类型聚合过程是一个自顶向下的递归过程,特殊地,在json数据的树根,仅考虑根节点为数组或字典两种情况。按照当前节点为字典、数组或简单数据类型分情况讨论。
[0052]
如果当前节点是字典,则进行字典内部合并。首先按属性值的类型对当前字典下的键(也即子节点)进行分组,(当前节点的子节点)分组后的结果依次遍历按照字典、数组、简单数据类型分类讨论:
[0053]
(a)如果子节点是字典,先对当前组内的每个字典进行字典内部合并,然后查看完成内部合并后的字典能否进一步地在字典之间进行合并,字典之间能否进行合并主要依赖于相似度,如果相似度不小于预设阈值,则可以合并,否则不可以合并。
[0054]
(b)如果子节点是数组,同样地,先对当前数组内的内各数据类型进行数组内部合并,根据相似度阈值决定内部合并后的数组是否在数组之间进一步进行数组合并;
[0055]
(c)如果子节点是简单数据类型,则直接初始化为模式树的节点信息,并放入最终结果。
[0056]
如果当前节点为数组,则进行数组内部合并;首先按照数组元素类型推断后的子节点进行分组,对当前节点的子节点分组后的结果依次遍历按照字典、数组、简单数据类型分类讨论:这三种数据类型的处理流程与当前节点为字典时的三种数据类型的处理流程相同;
[0057]
如果当前节点为简单数据类型,则直接初始化为聚合模式树的节点信息,并放入最终结果;此时,当前节点没有子节点,无需进一步聚合。
[0058]
以图1中的输入json为例,合并后的两个字典是一个带有四个属性键,分别为title,genres,genre,score的字典,genre和genres只出现在一个字典中,因此带有
‘
?’标记;score字典下的rating属性有多个不同的类型(分别是str和num),因此带有
‘
|’标记;genres对应的数组中出现多次字符串类型,因此用
‘
*’标记。生成聚合模式后的输出是一棵描述聚合后数据结构的树,同时这棵树还包括了当前节点的其他信息,如当前节点所对应
的所有原始数据的数据路径、当前节点数据类型的描述图符等。
[0059]
二、数据质量问题检测模块
[0060]
该模块的输入为聚合模式树以及解析模式模块的输入。并基于半结构化数据质量的空间,从两个维度对数据质量进行分类;并对空间内的每一个数据质量问题,对应地给出基于规则的检测当前数据质量问题的方法,最终得到包含当前数据质量问题的名称、具体分类、涉及聚合模式树中的节点编码以及节点相关数据在内的信息。
[0061]
作为其中一种实施方式,首先基于真实世界的json数据并与数据专家讨论,总结出一个半结构化数据质量的空间。对于空间内的每一个数据质量问题,都会对应地给出基于规则的检测当前数据质量问题的方法。数据质量问题的检测也可以分为两类,第一类基于决定性规则,利用聚合模式树直接判断;第二类基于启发性规则,直接对输入的json进行遍历并结合聚合模式树一起判断。
[0062]
在该实施例中,基于现实世界收集到的119份json数据以及专家采访,总结得出如表1所示的数据问题质量表,共涉及27个数据质量问题。该表从两个角度对数据质量问题进行分类。第一个维度是侧重描述数据质量,分别是一致性、重复性、冗余性、完整性、准确性与模式。第二个维度侧重描述json数据中的数据对象,分别是属性键、属性值、属性键值对、结构。一致性类别下包含5个数据质量问题,以键不一致为例,它表示在数组下的字典中,存在表示相同实体的不同的键。重复性类别下同样包含5个问题,以键重复为例,它代表在一个字典下存在多个重复的、名称相同的键。冗余性类别下同样有5个问题,但它和重复性的区别在于,冗余性并不要求冗余的对象完全相同。以冗余的外部结构为例,它意味着跨层级的数据使用了不同的复杂数据结构表示同样的信息。完整性类别包含3个问题,以键缺失为例,它代表数组下的某个字典中不存在其他字典中的键。准确性类别更多侧重于数据上的准确,以分布离群值为例,它代表数组下的字典中相同键的值的数据中存在离群值。模式用于衡量当前数据的设计结构是否让人容易理解,以层级键为例,它表示层级结构被表示在键名中。
[0063]
表1实施例中按照两个维度总结得到的半结构化数据质量问题表
[0064][0065]
对于空间内的每一个数据质量问题,数据质量问题检测模块都能够按照准确检测出、能够粗略检测出、难以被检测出这三个类别分别被标记为
①
、
②
、
③
。对于能够准确或粗略检测出的数据质量问题,都会对应地给出基于规则的检测方法。对于难以被检测出的数据质量问题,需要用户选中树中节点并声明该问题。数据质量问题的检测也分为两类,第一类基于决定性规则,利用聚合模式树直接判断;第二类基于启发性规则,直接对输入的json进行遍历并结合聚合模式树同时判断。每一个检测到的数据质量问题,都会包含当前数据质量问题的名称、涉及聚合模式树中的节点编码。树中节点的编码用于定位节点以及节点相关的数据。例如,模式类别下的层级键使用决定性规则进行检测,它的输入是聚合模式树
中的节点,对于每一个节点,检查它的所有孩子的属性键名是否拥有公共前缀,记录拥有公共前缀的节点编号及其相关数据。又如,在检测重复性类别下的键值对全部重复的问题时使用启发性规则。该规则首先会遍历原始json数据,由于重复键值对出现在数组下的字典中,因此遍历过程中会记录遇到的所有子元素为字典的数组的路径。遍历完成后,依次检查所有记录的路径所代表的字典组成的数组,首先获取这些字典所有属性键的集合,接着遍历并将当前数组中字典下所有属于该属性键的值以集合的形式存储在一起。最后,在遍历完成后,如果属于该键的值的个数等于当前数组的长度且去重后属于该键的值的个数等于1,则认为该数组下的每一个字典所属的键都相同。此时需要在模式树中匹配当前路径所对应的节点,并记录对应节点的数据。
[0066]
三、可视化生成模块
[0067]
该模块的输入为所述解析模式模块和数据质量问题检测模块的输出,通过编码映射(旨在将输入数据映射为图形绘制相关的信息)与布局生成(旨在确定模式树中节点及其内部构成元素的位置以及包裹节点的气泡的位置)后,生成一种数据质量问题与模式的可视化视图。输入聚合模式树作为输入,主要用于可视化聚合模式,树中的节点使用长方形编码,节点周围包含了属性键、数据类型、数据分布等信息。数据质量问题检测模块的输出作为输入,主要用于可视化当前json数据中的数据质量问题,一方面,数据质量维度的问题使用饼状图进行可视化,数据对象维度的问题使用堆叠柱状图进行可视化;另一方面,每一个数据质量所关联的节点,在树中使用不同颜色编码的气泡将它们包裹。
[0068]
作为其中一种实施方式,首先,解析模式模块输出的聚合模式树首先通过编码映射子模块被预处理为包含可视化编码形式的格式,比如节点所包含的类型、节点的大小或颜色、图符的位置等。接着,使用d3.js中的tree layout在svg画布上布局每一个节点,同时依据定位后的节点通过collins等人(collins c,penn g,carpendale s.bubble sets:revealing set relations with isocontours over existing visualizations[j].ieee transactions on visualization and computer graphics,2009,15(6):1009
–
1016.)提出的bubble set算法实现凸包,包裹树中的节点。树中的每一个节点都用定宽定高的长方形编码,节点内含当前节点的属性键名称、当前节点的类型图标,如果当前节点内有多种数据类型,则垂直排列这些图标,图标大小会遵循长方形的固定高度均匀分配。节点的左侧,也就是边的尾部上方会有四个正则符号用于表示当前聚合节点的信息,如加号
‘
+’代表当前节点是否有多个属性键名称、问号
‘
?’代表当前属性键是否出现了一次或零次等。节点的上方的基础图表描述当前节点所关联的数据的分布,当前节点中的每个数据类型有对应的一张图表,例如某节点中存在三种数据类型,则节点上方就有三张图表。此外,不同的数据类型对应不同的可视化方式。例如,字符串类型分别使用类别频率的柱状图与字符串长度频率的直方图,数组类型仅使用横轴代表元素大小,纵轴代表元素最大深度,颜色编码元素出现次数的热力图。为了方便展示,用户鼠标悬浮在图表上后右上角会出现一个小图标,提示用户当前数据类型有另一种展示方式,用户可以自由切换。然后,数据质量问题检测模块的输出用来可视化当前json数据中的数据质量问题,一方面,数据质量维度的问题使用饼状图进行可视化,数据对象维度的问题使用堆叠柱状图进行可视化;另一方面,每一个数据质量问题所关联的节点,在树中依据不同的数据质量维度使用不同颜色编码的气泡将它们包裹。对于当前json数据数据质量问题的可视化需要在树中节点布局完成之后,因为每个
数据质量问题所关联的节点位置确定之后才可以确定它们包裹的气泡的位置。具体的展示结果如图2所示。
[0069]
四、数据清洗模块
[0070]
该模块的输入为用户自由设置的配置或系统推荐的配置参数。该模块基于配置参数对用户输入的json数据进行清洗操作,并提供数据清洗前后的预览操作,帮助用户明确定位当前数据质量问题的源头。
[0071]
作为其中一种实施方式,当用户通过交互式操作点击聚合模式视图中的某个气泡或者直接选中了某个数据质量问题的名称时,系统会自动展示当前数据质量问题相关的参数配置表单。默认地,对于每一个数据质量问题,都会有推荐的转换操作及其对应的参数配置,用户可直接使用。用户可以预览清洗前后的数据变化,定位问题源头。
[0072]
本发明实施例中的自动检测半结构化数据质量问题的分析系统是一个基于web的客户端-服务器应用系统,名为jsoncurer。该系统的服务端实现上述分析方法中的“解析模式”、“数据质量问题检测”与“数据清洗”的功能,而客户端实现“可视化生成”功能。如图2所示,有三个视图,分别是数据视图、模式视图以及数据质量管理视图。其中数据质量管理视图下又分成四个子视图,分别为问题总览、可能的问题列表、问题详情、数据清洗。
[0073]
在数据视图中,用户可以上传json文件、或直接使用系统提供的样例数据。用户确认上传json文件后,json文件的内容会直接显示在数据视图中,然后模式视图中会呈现聚合模式树与数据质量问题的可视化,与此同时,数据质量管理视图会呈现当前json文件中基于规则检测到的数据质量问题的总览、问题列表与当前选中的数据质量问题的详情。在模式视图中,用户可以关闭或打开总览视图的开关来控制是否显示节点上方的数据分布图、调节数组或字典的相似度控制当前树的合并程度高低、点击节点上方数据分布图会高亮定位当前数据在数据视图中的位置(与左侧视图联动)、点击节点所包裹的气泡定位当前数据质量问题在数据质量管理视图列表中的位置并匹配其表单(与右侧视图联动)。在数据质量管理视图的可能的问题列表中选中想要查看的数据质量问题,模式视图会自动将中心转移到当前气泡(与中心视图联动)。此外,模式视图还支持放大缩小、移动画布、展开收起树中节点的交互操作。在数据管理视图的数据清洗子图中,当用户配置好数据转换参数后,可以点击预览按钮,数据视图会联动展示当前json数据的转换前后的变化。
[0074]
本发明的自动检测半结构化数据质量问题的分析方法,如图1所示,该方法基于上述的分析系统来实现;
[0075]
该方法包括如下步骤:
[0076]
步骤一:所述解析模式模块接收用户输入的原始json数据或经过若干次清洗后的json数据,并对原始json数据依次执行类型推断、相似度计算、类型聚合,输出一棵描述聚合模式的树状结构的中间数据,即聚合模式树;
[0077]
步骤二:所述数据质量问题检测模块接收原始json数据和所述聚合模式树,基于半结构化数据质量的空间,从两个维度对数据质量进行分类;并对空间内的每一个数据质量问题,对应地给出基于规则的检测当前数据质量问题的方法,最终得到包含当前数据质量问题的名称、具体分类、涉及聚合模式树中的节点编码以及节点相关数据在内的信息;
[0078]
步骤三:所述可视化生成模块将步骤一和步骤二得到的结果,通过编码映射与布局生成后,生成一种数据质量问题与模式的可视化视图;
[0079]
步骤四:所述数据清洗模块基于可视化的数据质量问题对用户输入的原始json数据或经过若干次清洗后的json数据进行清洗操作;
[0080]
步骤五:将清洗后的json数据再次重复步骤一~步骤四,直至没有数据质量问题被检测出或达到迭代终止条件,输出高质量json数据。
[0081]
本领域普通技术人员可以理解,以上所述仅为发明的优选实例而已,并不用于限制发明,尽管参照前述实例对发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实例记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在发明的精神和原则之内,所做的修改、等同替换等均应包含在发明的保护范围之内。
技术特征:
1.一种自动检测半结构化数据质量问题的分析系统,其特征在于,该系统包括:解析模式模块,该模块接收用户输入的原始json数据或经过若干次清洗后的json数据,并对json数据依次执行类型推断、相似度计算、类型聚合,输出一棵描述聚合模式的树状结构的中间数据,即聚合模式树;数据质量问题检测模块,该模块接收所述json数据以及所述解析模式模块输出的聚合模式树,并基于半结构化数据质量的空间,从两个维度对数据质量进行分类;并对空间内的每一个数据质量问题,对应地给出基于规则的检测当前数据质量问题的方法,最终得到包含当前数据质量问题的名称、具体分类、涉及聚合模式树中的节点编码以及节点相关数据在内的信息;可视化生成模块,该模块的输入为所述解析模式模块和数据质量问题检测模块的输出,通过编码映射与布局生成后,生成一种数据质量问题与模式的可视化视图;数据清洗模块,用于根据用户自由设置的配置或系统推荐的配置对用户输入的json数据进行清洗操作,并提供数据清洗前后的预览操作,帮助用户明确定位当前数据质量问题的源头。2.根据权利要求1所述的自动检测半结构化数据质量问题的分析系统,其特征在于,所述解析模式模块包括类型推断子模块、相似度计算子模块和类型聚合子模块;所述类型推断子模块针对json数据的六个数据类型进行推断,分别为字符串string、布尔值boolean、空值null、数值number、字典dict、数组array这六种类型;其中,string、boolean、null、number为简单数据类型,dict、array为复杂数据类型;所述相似度计算子模块用于计算所述复杂数据类型的相似度;所述类型聚合子模块,用于根据相似度计算结果,将相似度不小于预设阈值的两种复杂数据类型进行合并,json数据本质上是一棵树,遍历过程中当前节点为数组、字典或简单数据类型,对这三种情况分类处理;由于节点类型存在多种嵌套情况,因此类型聚合是一个递归的过程;特殊地,在json数据的树根,仅考虑根节点为数组或字典两种情况;如果当前节点为字典,则进行字典内部合并;首先按照属性值的类型对当前字典下的子节点进行分组,对当前节点的子节点分组后的结果依次遍历按照字典、数组、简单数据类型分类讨论:(a)如果子节点是字典,先对当前组内的每个字典进行字典内部合并,然后查看完成内部合并后的字典能否进一步地在字典之间进行合并;如果相似度不小于预设阈值,则进一步在字典之间进行合并;否则,不再进行字典之间的合并;(b)如果子节点是数组,则先对当前数组内的内各数据类型进行数组内部合并,然后根据相似度阈值决定内部合并后的数组是否在数组之间进一步进行数组合并;(c)如果子节点为简单数据类型,则直接初始化为聚合模式树的节点信息,并放入最终结果;如果当前节点为数组,则进行数组内部合并;首先按照数组元素类型推断后的子节点进行分组,对当前节点的子节点分组后的结果依次遍历按照字典、数组、简单数据类型分类讨论:这三种数据类型的处理流程与当前节点为字典时的三种数据类型的处理流程相同;如果当前节点为简单数据类型,则直接初始化为聚合模式树的节点信息,并放入最终结果;此时,当前节点没有子节点,无需进一步聚合。
3.根据权利要求1所述的自动检测半结构化数据质量问题的分析系统,其特征在于,所述相似度计算使用雅卡尔指数,阈值为默认设定的0-1范围内的数据或用户手动输入的数据。4.根据权利要求1所述的自动检测半结构化数据质量问题的分析系统,其特征在于,所述数据质量问题检测模块从两个维度对数据质量问题进行分类,第一个维度侧重描述数据质量,分别为一致性、重复性、冗余性、完整性、准确性与模式;第二个维度侧重描述json数据中的数据对象,分别是属性键、属性值、属性键值对、结构。5.根据权利要求1所述的自动检测半结构化数据质量问题的分析系统,其特征在于,所述数据质量问题检测模块将空间内检测出的每个数据质量问题按照能够准确检测出、能够粗略检测出、难以被检测出这三个类别分别标记为
①
、
②
、
③
;对于能够准确检测出和能够粗略检测出的数据质量问题,所述数据质量问题检测模块都对应地给出基于规则的检测方法;对于难以被检测出的数据质量问题,需要用户选中树中节点并声明该问题。6.根据权利要求1所述的自动检测半结构化数据质量问题的分析系统,其特征在于,所述基于规则的检测当前数据质量问题的方法分为两类:第一类为基于决定性规则,利用聚合模式树直接判断;第二类为基于启发性规则,直接对输入的json进行遍历并结合聚合模式树同时判断。7.根据权利要求6所述的自动检测半结构化数据质量问题的分析系统,其特征在于,每个检测到的数据质量问题,都输出包含当前数据质量问题的名称、涉及聚合模式树中的节点编码;树中节点的编码用于定位节点以及节点相关的数据。8.一种自动检测半结构化数据质量问题的分析方法,其特征在于,该方法基于权利要求1所述的分析系统来实现;该方法包括如下步骤:步骤一:所述解析模式模块接收用户输入的原始json数据或经过若干次清洗后的json数据,并对原始json数据依次执行类型推断、相似度计算、类型聚合,输出一棵描述聚合模式的树状结构的中间数据,即聚合模式树;步骤二:所述数据质量问题检测模块接收原始json数据和所述聚合模式树,基于半结构化数据质量的空间,从两个维度对数据质量进行分类;并对空间内的每一个数据质量问题,对应地给出基于规则的检测当前数据质量问题的方法,最终得到包含当前数据质量问题的名称、具体分类、涉及聚合模式树中的节点编码以及节点相关数据在内的信息;步骤三:所述可视化生成模块将步骤一和步骤二得到的结果,通过编码映射与布局生成后,生成一种数据质量问题与模式的可视化视图;步骤四:所述数据清洗模块基于可视化的数据质量问题对用户输入的原始json数据或经过若干次清洗后的json数据进行清洗操作;步骤五:将清洗后的json数据再次重复步骤一~步骤四,直至没有数据质量问题被检测出或达到迭代终止条件,输出高质量json数据。
技术总结
本发明公开了一种自动检测半结构化数据质量问题的分析系统及分析方法,该分析方法以半结构化数据中的JSON数据为具体研究对象,包括解析模式模块将半结构化数据解析为聚合模式树;数据质量问题监测模块依据聚合模式树和数据质量空间自动检测数据潜在的数据质量问题;可视化生成模块将聚合模式树与数据质量问题可视化,帮助用户交互式发现并查看数据质量问题;数据清洗模块用于用户配置并解决数据质量问题。该系统能够帮助用户快速且有效地定位并清洗半结构化数据的数据质量问题。并清洗半结构化数据的数据质量问题。并清洗半结构化数据的数据质量问题。
技术研发人员:巫英才 徐新怡 熊凯
受保护的技术使用者:浙江大学
技术研发日:2023.05.23
技术公布日:2023/9/23
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
上一篇:目标检测方法、装置、电子设备和存储介质 下一篇:一种心理宣泄装置的制作方法
