一种海量半结构化数据的处理方法技术

技术编号:20681033 阅读:52 留言:0更新日期:2019-03-27 18:55
本发明专利技术公开了一种海量半结构化数据的处理方法,所述方法包括表头识别和表头分类;所述表头识别发现表头信息以及定位单元格的属性,在excel表格中定位到表头所在行,如果该excel表格没有表头则以列索引值作为该sheet表的表头信息;在表头识别过程中,通过属性校验和数据类型校验来定位该单元格的属性;所述表头分类通过表头属性对字段角色进行分类,用以将已经定位到的表头单元格属性结合相关数据项进行打标分类。本发明专利技术所公开的方法,对于无表头或是有合并单元格的表头情况依然能够解决,对于重复属性能根据表头放进模型进行有效区分。

【技术实现步骤摘要】
一种海量半结构化数据的处理方法
本专利技术公开了一种海量半结构化数据的处理方法,涉及数据处理方法

技术介绍
随着信息化战略整体成效的不断呈现,各行各业的信息化能应用产生了大量的数据。在海量数据中,有规则的“关系型”数据往往是比较好处理的,“非关系型”数据却常常被人忽视。对于excel表格这类“非关系型”数据而言,我们不难发现这类文件所承载的信息量还是很大的,并且具有更强的真实性和鲜活性。市面上绝大多数的对于excel表格的处理,多半是通过手动录入后人工识别的方法来寻找表头,而真正的痛点也就在于找到一个sheet的表头所在行。在众多的excel表中隐藏着很多的有用信息,但每个excel表单格式规范均不统一,即便是同一个excel表中也会有多个sheet样式不同的情况出现。试想通过人工筛选的方法从中这些表格中提取出有用字段信息必然费时费力。
技术实现思路
本专利技术所要解决的技术问题是:针对现有技术的缺陷,提供一种海量半结构化数据的处理方法,将各类杂乱无章的excel表格数据整理成规则的json格式文件,便于后续的入库或相关操作。本专利技术所公开的方法能够做到精准识别出每个sheet样式的表头所在行,然后通过对该行每个单元格所在列的数据项去校验该表头单元格的属性。通过机器学习相关模型能对识别出的属性进行分类。可作为EXCEL表格的处理方法。本专利技术为解决上述技术问题采用以下技术方案:一种海量半结构化数据的处理方法,所述方法包括表头识别和表头分类,其中,所述表头识别发现表头信息以及定位单元格的属性,在excel表格中定位到表头所在行,如果该excel表格没有表头则以列索引值作为该sheet表的表头信息;在表头识别过程中,通过属性校验和数据类型校验来定位该单元格的属性;所述表头分类通过表头属性对字段角色进行分类,用以将已经定位到的表头单元格属性结合相关数据项进行打标分类。作为本专利技术的进一步优选方案,表头识别过程中,所述属性校验的方法为:根据校验算法对数据进行校验,以判别该单元格所包含数据是否为可用数据,并进一步判断数据的数据类型;所述数据类型校验中,表格的数据类型包括空、文本、数值、日期、逻辑和出错六种。作为本专利技术的进一步优选方案,表头识别过程中,将Excel表格中每行数据分为数据项和非数据项,其中,所述数据项是该行数据指包含任意一种属性,或者,该行数据中单元格数据类型为日期数字或者布尔;所述非数据项是指该行数据为表头所在行,并且为字符型的单元格的个数应该等于整张sheet表中的有效列数或者占比整张sheet表的有效列数的比率大于设定的阈值。作为本专利技术的进一步优选方案,表头识别过程中:401、当确定表格中的某行数据为数据项时,判断该行的上一行为表头;402、如果表格中的某行数据所对应属性类型超过有效列的一半,并且至少包含一种校验属性或者布尔型和日期数字型数据的数量大于设定的阈值,则判断该行是假定数据项;403、经过402的判断后,如果该假定数据项的上一行有效列大于90%,则判断该行为数据项,否则为备份表头;404、找到表头所在行之后,对表头所在行中单元格的所在列,随机抽取该列的数据项进行属性校验,从而确定该列属性;405、多个属于同一种属性的列,通过SVM模型,根据设定的标签属性对重复属性进行划分,通过固化类别来进行分类处理。所述步骤405中,对于未确定字段,在数据输出结构中设置其他有效属性类别进行存放。本专利技术采用以上技术方案与现有技术相比,具有以下技术效果:1、对于无表头或是有合并单元格的表头情况依然能够解决。2、对于多个属于同一种属性的列能根据表头放进模型进行有效区分。附图说明图1是本专利技术的流程示意图。图2是本专利技术中,提取的结构化数据示意图。具体实施方式下面详细描述本专利技术的实施方式,所述实施方式的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施方式是示例性的,仅用于解释本专利技术,而不能解释为对本专利技术的限制。下面结合附图对本专利技术的技术方案做进一步的详细说明:本专利技术所公开的方法主要包括表头识别与表头分类两大类,所述表头识别用以发现表头信息以及定位单元格的属性,所述表头分类是通过表头属性对字段角色进行分类。表头识别模块负责提供精准的表头定位,而表头分类模块则负责将已经定位到的表头单元格属性结合相关数据项进行打标分类。表头识别主要是能够从各种样式的excel表格中精准定位到表头所在行,如果该表没有表头则以列索引值作为该sheet页的表头信息。在各类excel表格文件中,每个单元格都可以通过属性校验和数据类型校验来定位该单元格的基本特性。属性校验是指:根据相关校验算法对需要的数据进行校验,以判别该单元格所包含数据是否为可用数据,如果可用应该是哪一类数据;数据类型校验是指:在excel表中,除单元格所包含数据具有一定属性外,表格本身也具有一定的数据类型,如空、文本、数值、日期、逻辑和出错共六种类型。每种数据类型均由数据录入时自定义而来。对于一个普通sheet表而言,可将每行数据大体分为数据项和非数据项两种类型。其中,数据项是指包含任意一种属性,或者单元格数据类型为日期、布尔等。非数据项主要是指表头所在行,因为在有表头信息的前提下该行处在首个数据项上方,理论上该行中的每个单元格数据类型多半为文本型,并且为字符型的单元格的个数应该等于整张sheet表的有效列数或者占比整张sheet表的有效列数的比率大于某个阈值。本专利技术的具体流程如图1所示:如果能确定该行是数据项,那么该行上面的即为表头,表头所在行的单元格属性一般为字符型,并且列数接近表格有效列。如果该行所对应属性类型超过有效列的一半,并且至少包含一种校验属性或者布尔型和日期数字型包含较多,则认为该行是假定数据项。如果该假定数据项的上一行有效列大于90%,则该行为数据项,否则为备份表头。对于有效列大于50%的行可将其加入到备份表头当中。找到表头所在行之后,对表头所在行中单元格的所在列,随机抽取该列的数据项,最多50个进行属性校验,从而确定该列属性。对于重复属性的有值列,通过SVM模型,根据事先已打好的标签属性对重复属性进行划分,目前是通过固化类别来进行分类处理。对于未确定字段则放在其他有效属性里头。提取的结构化数据如图2所示,其中类别和属性均为自己定义选取。上面结合附图对本专利技术的实施方式作了详细说明,但是本专利技术并不限于上述实施方式,在本领域普通技术人员所具备的知识范围内,还可以在不脱离本专利技术宗旨的前提下做出各种变化。以上所述,仅是本专利技术的较佳实施例而已,并非对本专利技术作任何形式上的限制,虽然本专利技术已以较佳实施例揭露如上,然而并非用以限定本专利技术,任何熟悉本专业的技术人员,在不脱离本专利技术技术方案范围内,当可利用上述揭示的
技术实现思路
做出些许更动或修饰为等同变化的等效实施例,但凡是未脱离本专利技术技术方案内容,依据本专利技术的技术实质,在本专利技术的精神和原则之内,对以上实施例所作的任何简单的修改、等同替换与改进等,均仍属于本专利技术技术方案的保护范围之内。本文档来自技高网
...

【技术保护点】
1.一种海量半结构化数据的处理方法,其特征在于:所述方法包括表头识别和表头分类,其中,所述表头识别发现表头信息以及定位单元格的属性,在excel表格中定位到表头所在行,如果该excel表格没有表头则以列索引值作为该sheet表的表头信息;在表头识别过程中,通过属性校验和数据类型校验来定位该单元格的属性;所述表头分类通过表头属性对字段角色进行分类,用以将已经定位到的表头单元格属性结合相关数据项进行打标分类。

【技术特征摘要】
1.一种海量半结构化数据的处理方法,其特征在于:所述方法包括表头识别和表头分类,其中,所述表头识别发现表头信息以及定位单元格的属性,在excel表格中定位到表头所在行,如果该excel表格没有表头则以列索引值作为该sheet表的表头信息;在表头识别过程中,通过属性校验和数据类型校验来定位该单元格的属性;所述表头分类通过表头属性对字段角色进行分类,用以将已经定位到的表头单元格属性结合相关数据项进行打标分类。2.如权利要求1所述的一种海量半结构化数据的处理方法,其特征在于:表头识别过程中,所述属性校验的方法为:根据校验算法对数据进行校验,以判别该单元格所包含数据是否为可用数据,并进一步判断数据的数据类型;所述数据类型校验中,表格的数据类型包括null、string、number、date、boolean和error六种。3.如权利要求1所述的一种海量半结构化数据的处理方法,其特征在于:表头识别过程中,将Excel表格中每行数据分为数据项和非数据项,其中,所述数据项是该行数据指包含任意一种属性,或者,该行数据中单元格数据类型为日期数字或...

【专利技术属性】
技术研发人员:陈白雪杨万刚张礼华杨光宋万军刘宇
申请(专利权)人:南京烽火星空通信发展有限公司
类型:发明
国别省市:江苏,32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1