数据处理方法、装置、电子设备及存储介质
技术领域
本申请涉及计算机
技术领域
,更具体地,涉及一种数据处理方法、装置、电子设备及存储介质。背景技术
结构化数据对于数据后期处理具有重要的作用。而表格作为一种常用的数据展示方式,其中包含有大量的数据信息,因此,从表格中获得结构化数据成为数据处理任务中的一个重要分支,但是,相关技术中,在从部分表格中获得结构化数据时,存在结构化数据获得不准确的问题。
发明内容
鉴于上述问题,本申请实施例提出了一种数据处理方法、装置、电子设备及存储介质,以改善上述问题。
第一方面,本申请实施例提供了一种数据处理方法,方法包括:对待处理表格中的文本单元进行分类,得到待处理表格的各个键对应的文本单元,所得到的各个键对应的文本单元为第一文本单元;基于第一文本单元,得到存在主从关系的目标第一文本单元对;获取每个目标第一文本单元对包括的目标第一文本单元之间的主从关系;基于每个目标第一文本单元对包括的目标第一文本单元之间的主从关系,得到待处理表格对应的键结构化数据,键结构化数据为表征第一文本单元与第一文本单元之间的主从关系的数据。
第二方面,本申请实施例提供了一种数据处理装置,装置包括:第一文本单元获取模块,用于对待处理表格中的文本单元进行分类,得到待处理表格的各个键对应的文本单元,所得到的各个键对应的文本单元为第一文本单元;目标第一文本单元对获得模块,用于基于第一文本单元,得到存在主从关系的目标第一文本单元对;主从关系获得模块,用于获取每个目标第一文本单元对包括的目标第一文本单元之间的主从关系;键结构化数据获得模块,用于基于每个目标第一文本单元对包括的目标第一文本单元之间的主从关系,得到待处理表格对应的键结构化数据,键结构化数据为表征第一文本单元与第一文本单元之间的主从关系的数据。
第三方面,本申请实施例提供了一种电子设备,包括处理器以及存储器;一个或多个程序被存储在存储器中并被配置为由处理器执行以实现上述的方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,计算机可读存储介质中存储有程序代码,其中,在程序代码被处理器运行时执行上述的方法。
第五方面,本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述的方法。
本申请实施例提供的一种数据处理方法、装置、电子设备及存储介质,在对待处理表格中的文本单元进行分类,得到待处理表格的各个第一文本单元之后,先基于第一文本单元,得到存在主从关系的目标第一文本单元对,再获取每个目标第一文本单元对包括的目标第一文本单元之间的主从关系,最后基于每个目标第一文本单元对包括的目标第一文本单元之间的主从关系,得到待处理表格对应的键结构化数据。由于利用的是存在主从关系的目标第一文本单元对得到的键结构化数据,因此,得到的键结构化数据能够准确表达第一文本单元与第一文本单元之间的主从关系,从而提高了键结构化数据的准确性,进而提高了从表格中获得结构化数据的准确性。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了本申请一实施例提出的一种以Json形式存储的结构化数据的示意图;
图2a示出了本申请实施例中的一种边框缺省的简单表格的示意图;
图2b示出了本申请实施例中的一种分割线分割后的边框正常的表格的示意图;
图3a示出了本申请实施例中的一种边框缺省的复杂表格的示意图;
图3b示出了本申请实施例中的一种分割线错误分割后的复杂表格的示意图;
图3c示出了本申请实施例中的一种基于结构化数据进行边框补充后的边框完整表格的示意图;
图4示出了本申请实施例中的另一种边框缺省的复杂表格的示意图;
图5示出了本申请实施例中的一种数据处理方法的流程图;
图6示出了本申请实施例中的另一种待处理表格的示意图;
图7示出了本申请另一实施例提出的一种数据处理方法的流程图;
图8示出了从图3a所示的待处理表格中获取的部分第一文本单元对的示意图;
图9示出了图7所示实施例提出的一种数据处理方法中S230的一种实施方式的流程图;
图10示出了本实施例提出的一种第一文本单元对对应的特征向量示意图;
图11示出了图7所示实施例提出的一种数据处理方法中S230的另一种实施方式的流程图;
图12示出了本申请实施例提出的一种卷积神经网络的网络结构示意图;
图13示出了本申请实施例提出的一个边框完整的表格的示意图;
图14示出了从图13所示的表格中获取的样本第一文本单元对的示意图;
图15示出了本申请实施例提出的一种卷积神经网络的训练过程示意图;
图16所示为本申请另一实施例提出的一种数据处理方法的流程图;
图17示出了本申请实施例提出的一种数据处理方法的流程图;
图18示出了本申请一实施例提出的一种数据处理装置的框图;
图19示出了本申请又一实施例提出的一种数据处理装置的框图;
图20示出了用于执行根据本申请实施例的数据处理方法的另一种电子设备的结构框图;
图21示出了本申请实施例的用于保存或者携带实现根据本申请实施例的数据处理方法的程序代码的存储单元。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。
人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
其中,随着人工智能技术的发展,出现了许多的涉及自然语言处理(NatureLanguage processing,NLP)以及机器学习的场景。
自然语言处理(Nature Language processing,NLP)是计算机科学领域与人工智能领域中的一个重要方向。它研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法。自然语言处理是一门融语言学、计算机科学、数学于一体的科学。因此,这一领域的研究将涉及自然语言,即人们日常使用的语言,所以它与语言学的研究有着密切的联系。自然语言处理技术通常包括文本处理、语义理解、机器翻译、机器人问答、知识图谱等技术。
机器学习(Machine Learning,ML)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。机器学习和深度学习通常包括人工神经网络、置信网络、强化学习、迁移学习、归纳学习、式教学习等技术。
本申请实施例提供的方案涉及人工智能的自然语言处理(Nature Languageprocessing,NLP)以及机器学习等技术,具体通过如下实施例进行说明:
结构化数据是具有一定格式化或者结构化的数据,由于其具有组织化和整齐化格式的特点,在数据后期处理过程中,具有广泛的应用场景,例如,在图谱建设、数据库建设、数据分析与统计等数据处理操作过程中,均需要用到结构化数据。其中,结构化数据可以以Json(JavaScript Object Notation,JS对象简谱)、csv(Comma-Separated Values,逗号分割值)或其他格式化形式存储。
请参阅图1,示出了一种以Json形式存储的结构化数据的示意图,在图1所示的结构化数据中,清晰整齐的表达了“未出席董事职务”与“独立董事”之间的对应关系,“未出席董事姓名”与“张三”之间的对应关系,“未出席董事的原因说明”与“公务原因”之间的对应关系,以及“被委托人姓名”与“李四”之间的对应关系,因此,可以看出,基于结构化数据,能够便于进行数据分析与统计。
而随着数据的大量增长以及使用表格展示数据的简便性,表格在各个领域中被越来越广泛地使用来展示数据信息,例如金融领域、互联网领域、教育领域等领域,其中,金融领域又例如上市招股书、季度报、年报、半年报等文件中,因此,从表格中获得结构化数据也变得越来越普遍。但是,发明人在对从表格中获得结构化数据的研究中发现,相关的从表格中获得结构化数据的方式还存在一定的局限性。
相关技术中,从表格中获得结构化数据通常存在几种常见的场景,其中一种场景是,从边框正常的表格中获得结构化数据,即每个文本周围均存在边框,对于该类表格,从表格中获得结构化数据有较为成熟的方法,较常见的例如视觉信息反推法。另外一种常见的场景是,从边框缺省的表格中获得结构化数据,该类表格又可以分为两种,一种是边框缺省的简单表格,另一种是边框缺省的复杂表格。可以理解的是,表格边框分为内边框和外边框,其中,外边框缺省的表格不会影响结构化信息提取,即外边框缺省的表格可以近似于边框正常的表格,因此,本申请实施例中的边框缺省的表格主要针对的是内边框缺省的表格。
其中,简单表格是指仅在第一行或者第一列为key(键),剩余行或列均为value(值),复杂表格是指前N行或者前N列为key(键),且前一行为后一行的父级key,或者前一列为后一列的父级key,依次可以表示为key、子key、孙子key等等,而剩余行或列均为value(值)。
参考图2a,图2a示出了本申请实施例中的一种边框缺省的简单表格的示意图,图2a中仅在第一行中存在key“账龄”、“应收账款计提比例(%)”和“其他应收款计提比例(%)”,其他行均分别为“账龄”对应的value、“应收账款计提比例(%)”对应的value和“其他应收款计提比例(%)”对应的value,且该简单表格的竖边框缺省。
参考图3a,图3a示出了本申请实施例中的一种边框缺省的复杂表格的示意图,图3a中第一行存在key“分红年度”,第二行存在子key“2015年”、“2016年”和“2017年”,除了第一行和第二行之外剩余的行才分别是“分红年度”和“2015年”对应的value,“分红年度”和“2016年”对应的value,以及“分红年度”和“2017年”对应的value,且该复杂表格的竖边框缺省。
参考图4,图4示出了本申请实施例中的另一种边框缺省的复杂表格的示意图,图4中第一列存在key“税收年度”,第二列存在子key“2010年”、“2011年”和“2012年”,除了第一列和第二列之外剩余的列才是value,且该复杂表格的横边框缺省。
其中,对于边框缺省的简单表格,在一种相关的方式中,可以检测出其存在的竖向空白区域,通过直接在竖向空白区域中任意位置确定一条竖向分割线或者横向分割线,即可得到边框正常的表格,进而再使用视觉信息反推法得到结构化数据。请参阅图2b,图2b示出了本申请实施例中的一种分割线分割后的边框正常的表格的示意图,如图2b所示,首先检测出竖向空白区域(图2b中的区域1和区域2),直接在区域1和区域2中任意位置分别确定一条竖向分割线y1和y2,即可得到边框正常的表格。
而对于边框缺省的复杂表格,再使用与边框缺省的简单表格相同的方法则会出现错误,获得的结构化数据往往与标准的结构化数据存在差异。
为了改善上述问题,发明人对边框缺省的复杂表格的特点以及与边框缺省的简单表格相同的方法进行研究,发现复杂表格中的value部分通常排列规整,根据检测出的空白区域进行分割通常不会出现错误,但是对于表格中的key部分则排列不规整,再根据检测出的空白区域进行分割则会出现错误。请参阅图3b,图3b示出了本申请实施例中的一种分割线错误分割后的复杂表格的示意图,如图3b所示,value区域(图3b表格中的第三、四、五行)各列排列规整,而key区域(图3b表格中的第一、二行)排列不规整,即“2015年”以及“2017年”上方的区域11和区域13均为空白区域。因此,将“分红年度”所在的整个区域使用竖向分割线y3、y4进行分割,则会错误地分割出图3b中的区域11、区域12以及区域13,由此仅能够得到“2016年”是key“分红年度”对应的子key,从而得到错误的结构化数据,实际上分红年度所在的表格为一个整体,不应该被分割,即“2015年”、“2016年”、“2017年”均是key“分红年度”对应的子key。
基于上述发现,提出相关技术中获得的结构化数据不准确的原因主要由key区域部分导致的。进而,发明人提出了本申请提供的数据处理方法、装置、电子设备及存储介质,在该方法中,在获取待处理表格中的第一文本单元后,先基于第一文本单元,得到存在主从关系的目标第一文本单元对,再基于目标第一文本单元对,得到待处理表格对应的键结构化数据。
前述方式中,由于利用的是存在主从关系的目标第一文本单元对得到的键结构化数据,因此,得到的键结构化数据能够准确表达第一文本单元与第一文本单元之间的主从关系,从而提高了键结构化数据的准确性,进而提高了从表格中获得结构化数据的准确性。
下面将结合附图具体描述本申请的各实施例。
请参阅图5,图5所示为本申请一实施例提出的一种数据处理方法的流程图,该方法包括:
S110,对待处理表格中的文本单元进行分类,得到待处理表格的各个键对应的文本单元,所得到的所述各个键对应的文本单元为第一文本单元。
其中,待处理表格可以理解为需要进行结构化数据获取的存在边框缺省的表格文件,该表格文件可以来自于多种格式的文档,例如可以是PDF(Portable Document Format,可携带文档格式)文档,还可以是图片格式文档等,其中图片格式包括常见的png(PortableNetwork Graphics,便携式网络图形)、jpeg或jpg(Joint Photographic Experts Group,联合照片专家组)、bmp(BitMaP,位图)等。
其中,文本单元可以理解为文本元素的集合,文本元素又可以理解为表格中的单个数字、标点或者文字等,因此,一个文本单元可以由至少一个文本元素构成,而一个表格文件可以由多个文本单元构成,可以理解的是,一个表格文件通常不可能只包括一个表格,因此,一个表格文件可以由至少两个文本单元构成。
示例性地,继续参考图3a,在图3a中,该复杂表格由“分红年度”、“2015年”以及“0.00%”等文本单元构成,而文本单元“分红年度”中的“分”、“红”、“年”、“度”4个文字分别是一个文本元素,另外,文本单元“2015年”中的数字“2”、“0”、“1”、“5”以及文字“年”分别是一个文本元素,另外,文本单元“0.00%”中的三个数字“0”以及标点“.”和“%”分别是一个文本元素。
结合前述内容可知,每个表格至少包括键对应的区域和值对应的区域,因此,键对应的区域中每个键对应的文本单元可以理解为第一文本单元,而值对应区域中每个值对应的文本单元可以理解为第二文本单元。对于复杂表格,键对应的区域至少为两行或者两列,且前一行为后一行的父级key,或者前一列为后一列的父级key,依次可以表示为key、子key、孙子key等等,而key、子key、孙子key之间可以认为存在主从关系,因此,对于包括至少两个存在主从关系的第一文本单元对应的表格可以认为是复杂表格,另外,需要注意的是,同一个key对应的各个子key之间是不存在主从关系的,或者同一个子key对应的各个孙子key之间是不存在主从关系的。
需要说明的是,作为一种方式,待处理表格可以是由文档经过表格提取、边框缺省筛选以及简单复杂表格筛选等步骤得到,也即,在读取一份文档之后,首先提取出其中存在的表格,再对其中的表格进行边框缺省筛选,选择其中的边框缺省的表格,最后再从边框缺省的表格中筛选出边框缺省的复杂表格。
作为一种方式,其中,提取文档中的表格可以采用特殊文字检测的方式,例如可以检测文档中的“表1”、“表2”、“表格”等特殊文字,然后再检测特殊文字上方或者下方预设距离阈值区域内是否存在线条区域,将存在线条的区域提取作为表格。其中,表格边框缺省筛选以及简单复杂表格筛选步骤可以采用预先训练好的神经网络模型进行筛选,即将从文档中提取的表格输入到预先训练好的神经网络模型中进行边框是否缺省分类以及简单、复杂表格分类,可选的,该神经网络模型可以为卷积神经网络。进而通过上述方式,能够从文档中获得待处理表格,即边框缺省的复杂表格。
作为另一种方式,待处理表格还可以直接得到。即由人工执行对文档中的表格进行提取、表格边框缺省筛选以及简单复杂表格筛选步骤,并将处理后的表格作为待处理表格上传给电子设备进行处理。
本实施例中,通过上述方法得到待处理表格之后,即得到边框缺省的复杂表格之后,电子设备便可以对待处理表格中的文本单元进行分类,得到第一文本单元和第二文本单元两类,如此,便能够得到待处理表格的各个第一文本单元。
作为一种方式,对待处理表格中的文本单元进行分类,可以采用预先训练好的神经网络模型进行筛选,即将从待处理表格中得到的文本单元输入到预先训练好的神经网络模型中进行单元类型的分类,可选的,该神经网络模型可以为卷积神经网络。进而通过上述方式,可以得到待处理表格中的各个文本单元的类型,即各个文本单元分别是属于第一文本单元还是属于第二文本单元。
此外,考虑到待处理表格是PDF文档或者图片格式文档等,在底层上,电子设备并不直接识别得到待处理表格中的文本单元,因此,为了得到文本单元,需要对待处理表格进行处理。
作为一种方式,首先可以对待处理表格进行解析,得到待处理表格对应的文本元素以及各个文本元素各自对应的坐标。可选地,可以通过解析器对待处理表格进行解析。例如,若待处理表格是PDF文档,则可以使用PDF解析器获得待处理表格对应的文本元素以及各个文本元素各自对应的坐标;若待处理表格是图片格式文档,则可以使用与图片格式对应的图片解析器获得待处理表格对应的文本元素以及各个文本元素各自对应的坐标。
在得到待处理表格对应的文本元素以及各个文本元素各自对应的坐标之后,便可以基于待处理表格对应的文本元素以及各个文本元素各自对应的坐标,得到待处理表格包括的各个文本单元。
作为一种方式,基于待处理表格对应的文本元素以及各个文本元素各自对应的坐标,得到待处理表格包括的各个文本单元,包括:基于各个文本元素各自对应的坐标,得到各个文本元素之间的横向距离;基于距离阈值以及各个文本元素之间的横向距离,对具有相同横向坐标的多个文本元素进行区分,得到待处理表格包括的各个文本单元。
其中,各个文本元素之间的横向距离可以理解为各个文本元素的横坐标的差值,由于每个文本元素占据的横坐标为一个范围,因此,此处在计算横坐标的差值时可以统一以各个文本元素的左边界为计算基准,或者也可以统一以各个文本元素的右边界为计算基准,或者也可以统一以各个文本元素的横坐标中间值为计算基准。
可以理解的是,表格在编辑时,各个文本单元包括的文本元素之间的横向间隔是预先设置好的,因此,距离阈值可以理解为文本单元包括的文本元素之间预先设置的横向间隔,若某两个文本元素之间的横向距离大于距离阈值,则表明这两个文本元素不属于同一个文本单元。进而通过上述方式,可以判断相邻的文本元素是否属于同一个文本单元,进而得到待处理表格包括的各个文本单元。
S120,基于第一文本单元,得到存在主从关系的目标第一文本单元对。
为了便于后续得到准确的键结构化数据,可以在获取的第一文本单元中选择两个第一文本单元进行主从关系判断,主从关系判断结果包括两种情况,一种是两个第一文本单元之间存在主从关系,另一种是两个第一文本单元之间不存在主从关系。若判断两个第一文本单元之间存在主从关系,则可以依据这两个第一文本单元之间的主从关系得到存在主从关系的目标第一文本单元对。例如,若第一文本单元“分红年度”和第一文本单元“2015年”之间存在主从关系,则可以得到存在主从关系的目标键文本对为“分红年度-2015年”。
需要注意的是,目标第一文本单元对可以用于表示两个第一文本单元之间存在主从关系,并不一定表示两个第一文本单元之间要执行组合、拼接或者合并等操作。
考虑到通常情况下,相邻的两行或者相邻的两列之间的第一文本单元之间才存在主从关系,因此,作为一种方式,在获取的第一文本单元之间进行主从关系判断,可以是依次在相邻两行或者相邻两列的第一文本单元之间进行主从关系判断。例如,可以判断第一行的第一文本单元与第二行的第一文本单元之间是否存在主从关系,从而将存在主从关系的两个第一文本单元组成目标第一文本单元对。请参阅图6,图6示出了本申请实施例中的另一种待处理表格的示意图,以图6所示的待处理表格为例,可以在第一文本单元“职务”与第一文本单元“董事长”之间进行主从关系判断,也可以在第一文本单元“职务”与第一文本单元“经理”之间进行主从关系判断,也可以在第一文本单元“董事长”与第一文本单元“正董事长”之间进行主从关系判断,也可以在第一文本单元“经理”与第一文本单元“副经理”之间进行主从关系判断等。
此外,考虑到在底层实现时,第一文本单元之间是否处于相邻的两行或者相邻的两列是需要根据第一文本单元的坐标经过进一步计算确定的,因此,为了节省确定第一文本单元之间是否处于相邻的两行或者两列这个步骤,作为另外一种方式,在获取的第一文本单元之间进行主从关系判断,也可以是在任意两个第一文本单元之间进行主从关系判断,此时也可以得到存在主从关系的目标第一文本单元对。请继续参阅图6,以图6所示的待处理表格为例,可以在第一文本单元“职务”与第一文本单元“董事长”之间进行主从关系判断,也可以在第一文本单元“董事长”与第一文本单元“经理”之间进行主从关系判断,也可以在第一文本单元“职务”与第一文本单元“正董事长”之间进行主从关系判断,也可以在第一文本单元“经理”与第一文本单元“副董事长”之间进行主从关系判断等。
作为一种方式,在两个第一文本单元之间进行主从关系判断可以采用预先训练好的神经网络模型进行分类判断,从而得到两个第一文本单元之间是否存在主从关系。
S130,获取每个目标第一文本单元对包括的目标第一文本单元之间的主从关系。
其中,目标第一文本单元对包括的两个第一文本单元可以理解为目标第一文本单元。
由前述内容可知,目标第一文本单元对可以用于表示两个第一文本单元之间存在主从关系,因此,电子设备基于各个目标第一文本单元对,可以提取每个第一文本单元对包括两个目标第一文本单元之间的主从关系,从而得到每个目标第一文本单元对包括的目标第一文本单元之间的主从关系。
S140,基于每个目标第一文本单元对包括的目标第一文本单元之间的主从关系,得到待处理表格对应的键结构化数据,键结构化数据为表征第一文本单元与第一文本单元之间的主从关系的数据。
可以理解的是,键结构化数据为表征第一文本单元与第一文本单元之间的主从关系的数据,而目标第一文本单元对包括的第一文本单元之间存在主从关系,因此,基于每个目标第一文本单元对包括的目标第一文本单元之间的主从关系,便可以得到待处理表格对应的键结构化数据。
作为一种方式,基于每个目标第一文本单元对包括的目标第一文本单元之间的主从关系,得到待处理表格对应的键结构化数据,包括:基于每个目标第一文本单元对包括的目标第一文本单元之间的主从关系,对各个目标第一文本单元进行分级处理,得到待处理表格对应的键结构化数据。
其中,两个目标第一文本单元之间的主从关系可以理解为两个目标第一文本单元之间的上下级关系,例如,“分红年度”和“2015年”之间存在主从关系,因此,“分红年度”可以理解为是“2015年”的上级,而“2015年”可以理解为是“分红年度”的下级。
因此,在得到各个目标第一文本单元之间的主从关系之后,可以按照各个目标第一文本单元之间的主从关系,对各个目标第一文本单元进行分级处理,从而得到待处理表格对应的键结构化数据。
可以理解的是,针对包括多个第一文本单元对的待处理表格,也存在两种可能的场景。第一种场景,待处理表格中仅包括key与子key,但是该key对应有多个子key,此时存在至少两个(两个或两个以上)第一文本单元对。示例性地,仍以图3a所示的待处理表格为例,基于图3a所示的待处理表格,可以得到目标键文本对包括“分红年度-2015年”、“分红年度-2016年”以及“分红年度-2017年”,则基于“分红年度-2015年”可以得到目标第一文本单元“分红年度”以及目标第一文本单元“2015年”之间的主从关系,从而得到上级为“分红年度”,下级为“2015年”;基于“分红年度-2016年”可以得到目标第一文本单元“分红年度”以及目标第一文本单元“2016年”之间的主从关系,从而得到上级为“分红年度”,下级为“2016年”;基于“分红年度-2017年”可以得到目标第一文本单元“分红年度”以及目标第一文本单元“2017年”之间的主从关系,从而得到上级为“分红年度”,下级为“2017年”,因此,对各个目标第一文本单元进行分级后,经过整理可以得到上级包括“分红年度”,“分红年度”对应的下级包括“2015年”、“2016年”以及“2017年”,即最终得到待处理表格的键结构化数据中,key为“分红年度”,子key为“2015年”、“2016年”以及“2017年”。可见,相较于图3b中得到键结构化数据中key为“分红年度”,子key仅为“2016年”更加完整,因此,本申请实施例得到的键结构化数据准确性高。
第二种场景,待处理表格中可以包括key、子key以及孙子key等,此时可以理解为待处理表格中的各个第一文本单元逐级嵌套。示例性地,仍以图6所示的待处理表格为例,在图6中,目标键文本对包括“职务-董事长”、“职务-经理”、“董事长-正董事长”、“董事长-副董事长”、“经理-正经理”以及“经理-副经理”,则基于“职务-董事长”可以得到目标第一文本单元“职务”以及目标第一文本单元“董事长”之间的主从关系,从而得到“职务”相对“董事长”为上级;基于“职务-经理可以得到目标第一文本单元“职务”以及目标第一文本单元“经理”之间的主从关系,从而得到“职务”相对“经理”为上级;基于“董事长-正董事长”可以得到目标第一文本单元“董事长”以及目标第一文本单元“正董事长”之间的主从关系,从而得到“董事长”相对“正董事长”为上级;基于“董事长-副董事长”可以得到目标第一文本单元“董事长”以及目标第一文本单元“副董事长”之间的主从关系,从而得到“董事长”相对“副董事长”为上级;基于“经理-正经理”可以得到目标第一文本单元“经理”以及目标第一文本单元“正经理”之间的主从关系,从而得到“经理”相对“正经理”为上级;基于“经理-副经理”可以得到目标第一文本单元“经理”以及目标第一文本单元“副经理”之间的主从关系,从而得到“经理”相对“副经理”为上级。
因此,对各个目标第一文本单元进行分级后,经过整理可以得到第一级包括“职务”,“职务”对应的第二级包括“董事长”以及“经理”,第二级的“董事长”对应的第三级包括“正董事长”以及“副董事长”,第二级的“经理”对应的第三级包括“正经理”以及“副经理”,即最终得到的待处理表格的键结构化数据中key为“职务”,子key为“董事长”以及“经理”,子key“董事长”对应的孙子key为“正董事长”以及“副董事长”,子key“经理”对应的孙子key为“正经理”以及“副经理”。
可以理解的是,待处理表格包括第一文本单元以及第二文本单元,待处理表格对应的结构化数据可以是包括第一文本单元与第一文本单元之间的主从关系,以及第一文本单元与第二文本单元之间的关联关系,而键结构化数据为表征第一文本单元与第一文本单元之间的主从关系数据,因此,为了得到待处理表格对应的结构化数据,除了得到待处理表格对应的键结构化数据之外,还可以获取表征第一文本单元与第二文本单元之间的关联关系的键值结构化数据,第一文本单元与第二文本单元之间的关联关系也可以理解为key与对应的value之间的关联关系。在获取到待处理表格对应的键值结构化数据之后,便可以将键结构化数据以及键值结构化数据进行合并,得到待处理表格对应的结构化数据。
示例性地,仍以图3a所示的待处理表格为例,该待处理表格对应的键结构化数据中,key为“分红年度”,子key为“2015年”、“2016年”、“2017年”,该待处理表格对应的键值结构化数据中,子key“2015年”对应有value“0.00”、“-17.63”、“0.00%”,子key“2016年”对应有value“0.00”、“-11.86”、“0.00%”,子key“2017年”对应有value“0.00”、“35.00”、“0.00%”。将键结构化数据以及键值结构化数据进行合并,得到待处理表格对应的结构化数据中,key为“分红年度”,子key为“2015年”、“2016年”、“2017年”,子key“2015年”对应的value为“0.00”、“-17.63”、“0.00%”,子key“2016年”对应的value为“0.00”、“-11.86”、“0.00%”,子key“2017年”对应的value为“0.00”、“35.00”、“0.00%”。
由于待处理表格是存在边框缺省的表格,不便于用户查看,因此,在得到待处理表格对应的结构化数据之后,可以基于结构化数据,生成待处理表格对应的边框完整的表格,然后重新输出边框完整的表格,使得可以更加清晰直观查看表格的内容。
作为一种方式,基于结构化数据,生成待处理表格对应的边框完整的表格可以包括:基于结构化数据与表格标签之间的对应关系,得到结构化数据包括的各个第一文本单元对应的表格标签;基于表格标签,生成与待处理表格对应的边框完整的表格。
其中,表格标签可以用于生成表格,例如在生成HTML(Hyper Text MarkupLanguage,超文本标记语言)表格时,表格标签可以包括<tr>、<th>以及<td>等标签,<tr>用于定义表格行,<th>用于定义表头,<td>用于定义表格单元。需要说明的是,表格的列数与定义的表格单元的数量相关,例如定义了5个表格单元,则表格有5列。
可以理解的是,key位于结构化数据中的第一行,子key位于结构化数据中的第二行,value依次排在后面几行,相应地,key在表格中位于表头,子key位于key的下方,value位于子key的下方,因此,作为一种方式,可以根据结构化数据中各个文本单元之间的相对位置关系建立结构化数据与表格标签之间的对应关系。
在建立了结构化数据与表格标签的对应关系之后,便可以得到结构化数据包括的各个第一文本单元对应的表格标签。在得到结构化数据包括的各个第一文本单元对应的表格标签之后,电子设备便可以基于表格标签自动生成HTML表格,即待处理表格对应的边框完整的表格。
示例地,继续以图3a所示的待处理表格为例,假设待处理表格对应的结构化数据中,key为“分红年度”,子key为“2015年”、“2016年”、“2017年”,子key“2015年”对应的value为“0.00”、“-17.63”、“0.00%”,子key“2016年”对应的value为“0.00”、“-11.86”、“0.00%”,子key“2017年”对应的value为“0.00”、“35.00”、“0.00%”。根据结构化数据与表格标签之间的对应关系,可以得到key对应第一级表格行标签<tr>以及表头标签<th>,子key“2015年”、“2016年”以及“2017年”对应第二级的表格行标签<tr>以及表格单元标签<td>,子key“2015年”对应的value“0.00”、“-17.63”以及“0.00%”分别对应第三、四、五级表格行标签<tr>以及表格单元标签<td>,子key“2016年”对应的value“0.00”、“-11.86”以及“0.00%”分别对应第三、四、五级表格行标签<tr>以及表格单元标签<td>,子key“2017年”对应的value“0.00”、“35.00”以及“0.00%”分别对应第三、四、五级表格行标签<tr>以及表格单元标签<td>。基于该表格标签,电子设备可以使用HTML语言自动生成如图3c所示的边框完整的表格。
本申请提供的一种数据处理方法,在对待处理表格中的文本单元进行分类,得到待处理表格的各个第一文本单元之后,先基于第一文本单元,得到存在主从关系的目标第一文本单元对,再基于目标第一文本单元对,便可以得到待处理表格对应的键结构化数据。由于利用的是存在主从关系的目标第一文本单元对得到的键结构化数据,因此,得到的键结构化数据能够准确表达第一文本单元与第一文本单元之间的主从关系,从而提高了键结构化数据的准确性,进而提高了从表格中获得结构化数据的准确性。
请参阅图7,图7所示为本申请另一实施例提出的一种数据处理方法的流程图,该方法包括:
S210,对待处理表格中的文本单元进行分类,得到待处理表格的各个键对应的文本单元,所得到的各个键对应的文本单元为第一文本单元。
S220,基于任意两个第一文本单元,得到至少一个第一文本单元对,每两个第一文本单元对应一个第一文本单元对。
为了便于后续得到存在主从关系的目标第一文本单元对,在得到待处理表格中的第一文本单元之后,可以将任意两个第一文本单元进行组合,从而得到至少一个第一文本单元对,即每一个第一文本单元对均对应两个第一文本单元,进而再从第一文本单元对中得到存在主从关系的目标第一文本单元对。
示例性地,请参阅图8,图8示出了从图3a所示的待处理表格中获取的部分第一文本单元对的示意图,图8中示出了5个第一文本单元对,分别是第一文本单元对“分红年度-2015年”、第一文本单元对“分红年度-2016年”、第一文本单元对“分红年度-2017年”、第一文本单元对“2015年-分红年度”、以及第一文本单元对“2016年-2015年”。
需要注意的是,第一文本单元对包括的两个第一文本单元之间存在先后排列顺序,即使两个第一文本单元对包括的是相同的两个第一文本单元,但是这两个相同的第一文本单元在两个第一文本单元对中的先后排列顺序不同,则这两个第一文本单元对也不同。例如,第一文本单元对“分红年度-2015年”与第一文本单元对“2015年-分红年度”不同。
S230,获取各个第一文本单元对各自对应的对类型。
其中,每个第一文本单元对均对应有一个对类型,第一文本单元对的对类型可以用于表征第一文本单元对包括的两个第一文本单元之间是否存在主从关系,对类型可以包括第一对类型以及第二对类型,若对类型为第一对类型,则表明第一文本单元对包括的两个第一文本单元之间存在主从关系,若对类型为第二对类型,则表明第一文本单元对包括的两个第一文本单元之间不存在主从关系。因此,为了便于后续得到存在主从关系的目标第一文本单元对,可以获取各个第一文本单元对各自对应的对类型,进而直接将对类型为第一对类型的第一文本单元对确定为存在主从关系的目标第一文本单元对。
作为一种方式,如图9所示,获取各个第一文本单元对各自对应的对类型,包括:
S231,获取各个第一文本单元对各自对应的特征向量。
需要说明的是,在本实施例中第一文本单元对对应的特征向量可以理解为使用特征向量来表征一个第一文本单元对。其中,该特征向量可以包括输入序列长度以及词向量维度两个属性。
作为一种方式,可以先对第一文本单元对包括的第一文本单元进行分词,从而得到第一文本单元对对应的分词文本以及对应的词汇数量,例如,第一文本单元对为“分红年度-2015年”,进行分词操作后得到6个分词文本“分”、“红”、“年”、“度”、“2015”以及“年”。其中,特征向量的序列长度可以与第一文本单元对包括的词汇数量相同,即得到特征向量的输入序列长度为6。
在得到第一文本单元对对应的多个分词文本之后,可以通过预训练词向量的方式来得到预先建立的词向量配置规则,进而根据该词向量配置规则获取每个分词文本独立对应的向量,以作为每个分词文本的向量表示。其中,每个分词文本独立对应的向量可以是一个多维的向量,例如,64维或者128维等。
可选地,上述对第一文本单元对进行分词可以使用jieba(结巴)分词、搜狗分词等分词工具。
可选地,上述得到预先建立的词向量配置规则可以使用基于word2vec的方式或者基于Glove(Global Vectors for Word Representation)的方式。需要说明的是,word2vec是一用来训练以产生词向量的相关模型。word2vec模型可以为三层神经网络,其中,word2vec模型的输入层用于对词语进进行独热编码,word2vec模型的的隐藏层为线性单元。word2vec模型的输出层的维度跟,word2vec模型的输入层的维度一样,且是基于Softmax回归实现的。其中,softmax回归(softmax regression)是logistic回归(logisticRegression)的一般形式,且softmax回归可以用于多分类。在训练过程中,可以看作通过神经网络训练N-gram语言模型,并在训练过程中求出词语对应的词向量。在基于word2vec完成训练后,可用来映射每个词到一个向量,以及可用来表示词对词之间的关系,进而实现基于word2vec模型来得到每个分词文本对应的第二特征向量表示。GloVe是一个基于全局词频统计的词表征工具,它可以把一个词汇表达成一个由实数组成的向量,这些向量捕捉到了词汇之间一些语义特性,比如相似性以及类比性等。
请参阅图10,图10示出了本实施例提出的一种第一文本单元对对应的特征向量示意图。其中,竖向格子分别与该第一文本单元对依次包括的各个词汇对应,横向格子代表了每个词汇各自对应的词向量维度,其中,k维可以为64维度或者128维度等。
S232,基于每个特征向量,得到对应的第一文本单元对的对类型。
可以理解的是,在得到特征向量之后,便可以利用特征向量与第一文本单元对的对类型之间的对应关系,得到每个特征向量对应第一文本单元对的对类型。
需要说明的是,作为一种方式,在本实施中的步骤S231到步骤S232可以由训练得到的分类模型来执行。在这种方式下,特征向量与第一文本单元对的对类型之间的对应关系可以由分类模型得到。
作为一些方式,上述的文本分类模型可以是贝叶斯分类模型、最大熵分类器、卷积神经网络等。
作为另外一种方式,如图11所示,获取各个第一文本单元对各自对应的对类型,包括:
S233,通过分类模型的特征提取层,对每个第一文本单元对进行特征提取,得到每个第一文本单元对各自对应的特征向量。
其中,特征提取层用于对原始输入数据进行预处理,再对预处理后的数据进行特征提取,得到原始数据数据对应的特征向量。
S234,通过分类模型的特征处理层,对每个第一文本单元对各自对应的特征向量进行处理,得到每个第一文本单元对各自对应的对类型。
其中,特征处理层用于根据每个第一文本单元对各自对应的特征向量计算每个对类型的得分,并归一化为每个对类型的概率。
作为一种方式,上述分类模型可以是卷积神经网络,请参阅图12,图12示出了本申请实施例提出的一种卷积神经网络的网络结构示意图,在图12中,卷积神经网络包括特征提取层以及特征处理层,其中特征提取层可以包括输入层、卷积层以及池化层,特征处理层可以包括全连接层以及输出层。下面本实施例将结合图12所示的卷积神经网络进一步的对步骤S233到步骤S234进行介绍。如图12所示,可以将各个第一文本单元对分别输入至卷积神经网络,从而得到第一文本单元对的分类标签,即第一文本单元对的对类型。
如图12所示,卷积神经网络中的输入层用于接收输入的各个第一文本单元对,将各个第一文本单元对中的自然文本转化为输入序列长度为n、词向量维度为k的数学向量,其中,n与第一文本单元对进行分词后得到的词汇数量相等,k为预设维度,可以为64维度或者128维度等。卷积层用于根据词义、词序、上下文对第一文本单元对对应的特征向量进一步提取特征。池化层用于根据进一步提取的特征的重要程度筛选特征,即第一文本单元对对应的特征向量。全连接层用于根据筛选的特征向量计算分类体系,即计算每个对类型的得分并归一化为每个对类型的概率,并根据对类型的概率确定第一文本单元对的对类型,输出层用于输出分类标签,即输出第一文本单元对的对类型。图12所示的卷积神经网络在工作时,针对输入的第一文本单元对,有filter_size(过滤器尺寸)=(2,3,4)的一维卷积层,每个滤波器有2个通道,相当于分别提取两个2-gram、3-gram和4-gram特征。
作为一种方式,分类模型可以通过以下方式得到:获取携带对类型标签的样本第一文本单元对,即训练数据;基于样本第一文本单元对以及携带的对类型标签,对初始模型进行训练,得到分类模型。
其中,样本第一文本单元对可以理解为携带有分类标签的第一文本单元对,即携带有对类型标签的第一文本单元对,对类型标签可以包括第一对类型标签和第二对类型标签。可选地,样本第一文本单元对可以从边框完整的表格中获取得到。
示例地,请一并参阅图13以及图14,图13示出了本申请实施例提出的一个边框完整的表格的示意图,图14示出了从图13所示的表格中获取的样本第一文本单元对的示意图。且如图14所示,样本第一文本单元对携带有标签1和0,其中标签为1代表第一对类型标签,标签为0代表第二对类型标签。在将携带有对类型标签的第一文本单元对用作训练样本对卷积神经网络进行训练时,携带第一对类型标签的样本第一文本单元对可以作为正样本,携带第二对类型标签的样本第一文本单元对可以作为负样本。
请参阅图15,图15示出了本申请实施例提出的一种卷积神经网络的训练过程示意图,如图15所示,该训练过程包括:S201,将训练数据输入输入层;S202,输入层将训练数据中的自然文本转化为数学向量;S203,卷积层根据词义、词序、上下文进一步提取特征;S204,池化层根据特征的重要程度筛选特征;S205,全连接层计算每个类别的得分并归一化为每个类的概率;S206,输出层最终输出预测类别;S207,通过损失函数评价预测类别与对类型标签之间的误差值,通过反向传播误差和梯度更新参数权值。上述过程S201到S207相当于完成对卷积神经网络(初始模型)的一次训练,通过利用多个训练样本进行训练,使得卷积神经网络重复执行上述过程,即可得到分类模型。可选地,损失函数可以采用交叉熵损失函数。
其中,在对卷积神经网络进行训练时,可以进行手动调参,以优化卷积提高神经网络。其中,手动调参方式有多种。
作为一种方式,手动调参可以包括:尝试不同的优化算法,如SGD(随机梯度下降)优化算法、Adam优化算法、Nadam优化算法等,以获得更好的准确率。
作为另外一种方式,手动调参可以包括:尝试不同的学习率,以获得更好的准确率,同时在准确率相当的情况下,选择训练速度更快的学习率。
作为另外一种方式,手动调参可以包括:尝试在网络的各个层后加入dropout层,并尝试不同的dropout参数,以获得更优的泛化性能,其中,dropout是指在深度学习网络的训练过程中,对于神经网络单元,按照一定的概率将其暂时从网络中丢弃。
作为一种方式,可以通过语言模型训练学习概率的方式来判断第一文本单元对的对类型,此时,可以通过将每个特征向量分别输入至语言模型,从而得到第一文本单元对的对类型。该方式可以不用构建负样本。
S240,确定对类型为第一对类型的第一文本单元对为存在主从关系的目标第一文本单元对。
由于对类型为第一对类型,表明第一文本单元对包括的两个第一文本单元之间存在主从关系,因此,本实施例中可以直接将对类型为第一对类型的第一文本单元对确定为存在主从关系的目标第一文本单元对。
S250,获取目标第一文本单元对包括的目标第一文本单元之间的主从关系。
S260,基于目标第一文本单元对包括的目标第一文本单元之间的主从关系,得到待处理表格对应的键结构化数据,键结构化数据为表征第一文本单元与第一文本单元之间的主从关系的数据。
S270,获取待处理表格对应的键值结构化数据,键值结构化数据为表征第一文本单元与第二文本单元之间的关联关系的数据,第二文本单元为待处理表格的各个值对应的文本单元。
S280,将键结构化数据以及键值结构化数据进行合并,得到待处理表格对应的结构化数据。
本申请提供的一种数据处理方法,在对待处理表格中的文本单元进行分类,得到待处理表格的各个第一文本单元之后,先基于任意两个第一文本单元,得到至少一个第一文本单元对,每两个第一文本单元对应一个第一文本单元对,然后获取各个第一文本单元对各自对应的对类型,然后确定对类型为第一对类型的第一文本单元对为存在主从关系的目标第一文本单元对,最后基于目标第一文本单元对,得到待处理表格对应的键结构化数据。由于能够基于任意两个第一文本单元组成第一文本单元对,并基于第一文本单元对的对类型得到存在主从关系的目标第一文本单元对,简化了目标第一文本单元对的获取流程,并且由于利用的是存在主从关系的目标第一文本单元对得到的键结构化数据,因此,得到的键结构化数据能够准确表达第一文本单元与第一文本单元之间的主从关系,从而提高了键结构化数据的准确性,进而提高了从表格中获得结构化数据的准确性。
请参阅图16,图16所示为本申请另一实施例提出的一种数据处理方法的流程图,该方法包括:
S310,对待处理表格中的文本单元进行分类,得到待处理表格的各个键对应的文本单元,所得到的各个键对应的文本单元为第一文本单元。
S320,基于第一文本单元,得到存在主从关系的目标第一文本单元对。
S330,获取目标第一文本单元对包括的目标第一文本单元之间的主从关系。
S340,基于目标第一文本单元对包括的目标第一文本单元之间的主从关系,得到待处理表格对应的键结构化数据,键结构化数据为表征第一文本单元与第一文本单元之间的主从关系的数据。
S350,获取各个第二文本单元集合,每个第二文本单元集合包括的各个第二文本单元具有至少一项相同的坐标属性,第二文本单元为待处理表格的各个值对应的文本单元。
可以理解的是,待处理表格由多个文本单元组成,每个文本单元可以具有对应的坐标属性,这些文本单元被分类为第一文本单元以及第二文本单元,因此,每个第一文本单元以及第二文本单元具有对应的坐标属性。
另外需要说明的是,待处理表格可以包括第一类型的待处理表格以及第二类型的待处理表格,其中,第一类型的待处理表格是指待处理表格中的结构化数据是以竖向方式呈现的,例如图3a所示的表格,在图3a所示的表格中,key、子key、value之间的关系是以竖向方式呈现的;第二类型的待处理表格是指待处理表格中的结构化数据是以横向方式呈现的,例如图4所示的表格,在图4所示的表格中,key、子key、value之间的关系是以横向方式呈现的。
作为一种方式,判断待处理表格是第一类型的待处理表格还是第二类型的待处理表格,可以采用预先训练好的神经网络模型进行判断,即将待处理表格输入到预先训练好的神经网络模型中进行第一类型的待处理表格还是第二类型的待处理表格判断,可选的,该神经网络模型可以为卷积神经网络。进而通过上述方式,能够判断待处理表格是第一类型的待处理表格还是第二类型的待处理表格。
其中,第二文本单元集合可以理解为一列或者一行第二文本单元构成的集合,第二文本单元集合中的所有第二文本单元从属于同一个第一文本单元。对于第一类型的待处理表格,第二文本单元集合是一列第二文本单元构成的集合,对于第二类型的待处理表格,第二文本单元集合是一行第二文本单元构成的集合。
其中,坐标属性可以理解为各个文本单元中预设位置对应的坐标信息。作为一些方式,对于第一类型的待处理表格,坐标属性可以是文本单元对应的横坐标的左边界、横坐标右边界和横坐标中间值,对于第二类型的待处理表格,坐标属性可以是文本单元对应的纵坐标上下边界值。
结合前述实施例可知,待处理表格对应的各个文本元素各自对应有坐标,因此可以根据各个文本元素对应的坐标计算得到各个文本单元的坐标范围,从而根据各个文本单元的坐标范围得到各个文本单元各自对应的坐标属性。
考虑到表格在编辑的时候,通常会选择一种对齐方式,例如左对齐、右对齐、居中对齐等,因此,对于第一类型的表格中的以左对齐方式编辑的表格,一个第二文本单元集合中的各个第二文本单元的横坐标的左边界是相同的,对于第一类型的表格中的以右对齐方式编辑的表格,一个第二文本单元集合中的各个第二文本单元的横坐标的右边界是相同的,对于第一类型的表格中的以居中对齐方式编辑的表格,一个第二文本单元集合中的各个第二文本单元的横坐标中间值是相同的。因此,对于第一类型的待处理表格,作为一种方式,可以通过文本单元的横坐标的左边界、横坐标右边界或者横坐标中间值来获取各个第二文本单元集合,即判断哪些第二文本单元属于同一列。示例地,继续参考图3a,图3a中,第二文本单元“0.00”、“-17.63”、“0.00%”的横坐标右边界相同,第二文本单元“0.00”、“-11.86”、“0.00%”的横坐标右边界相同,第二文本单元value“0.00”、“35.00”、“0.00%”的横坐标右边界相同,因此,基于图3a所示的待处理表格,可以得到3个第二文本单元集合,第一个第二文本单元集合包括第一文本单元“0.00”、“-17.63”、“0.00%”,第二个第二文本单元集合包括第一文本单元“0.00”、“-11.86”、“0.00%”,第三个第二文本单元集合包括第一文本单元“0.00”、“35.00”、“0.00%”。
而对于第二类型的待处理表格,由于第二文本单元集合是一行第二文本单元构成的集合。因此,对于第二类型的待处理表格,作为一种方式,可以通过文本单元的纵坐标上下边界值来获取各个第二文本单元集合,即判断哪些第二文本单元属于同一行。示例地,继续参考图4,图4中,第二文本单元“0.98”、“0.88”、“0.90”的纵坐标上下边界值相同,第二文本单元“0.96”、“0.95”、“0.94”的纵坐标上下边界值相同,第二文本单元value“0.75”、“0.76”、“0.80”的纵坐标上下边界值相同,因此,基于图4所示的待处理表格,可以得到3个第二文本单元集合,第一个第二文本单元集合包括第一文本单元“0.98”、“0.88”、“0.90”,第二个第二文本单元集合包括第一文本单元“0.96”、“0.95”、“0.94”,第三个第二文本单元集合包括第一文本单元“0.75”、“0.76”、“0.80”,
需要说明的是,一个第一文本单元既可以对应有一个第二文本单元,也可以对应有多个第二文本单元,因此,每个第二文本单元集合可以包括至少一个第二文本单元。
S360,获取与各个第二文本单元集合对应的第一文本单元。
其中,由于第二文本单元集合中的所有第二文本单元从属于同一个第一文本单元,因此,获取与各个第二文本单元集合对应的第一文本单元可以理解为获取各个第二文本单元集合从属于的第一文本单元的过程,即获取value从属于的key的过程。
可以理解的是,对于第一类型的待处理表格,由于结构化数据是以竖向方式呈现的,因此,作为一种方式,可以首先根据各个第二文本单元的坐标范围,确定各个第二文本单元集合中的最上面一行的第二文本单元,接着再根据第一文本单元的坐标范围以及各个第二文本单元集合中的最上面一行的第二文本单元的坐标范围,确定与各个第二文本单元集合中的最上面一行的第二文本单元相邻的第一文本单元,作为与各个第二文本单元集合对应的第一文本单元。
而对于第二类型的待处理表格,由于结构化数据是以横向方式呈现的,因此,作为一种方式,可以首先根据各个第二文本单元的坐标范围,确定各个第二文本单元集合中的最左边一列的第二文本单元,接着再根据第一文本单元的坐标范围以及各个第二文本单元集合中的最左边一列的第二文本单元的坐标范围,确定与各个第二文本单元集合中的最左边一列的第二文本单元相邻的第一文本单元,作为与各个第二文本单元集合对应的第一文本单元。
S370,将各个第二文本单元集合以及各个第二文本单元集合对应的第一文本单元进行合并,得到待处理表格对应的键值结构化数据。
其中,将各个第二文本单元集合以及各个第二文本单元集合对应的第一文本单元进行合并的过程,可以理解为建立第二文本单元集合以及对应的第一文本单元之间关联关系的过程,在建立了第二文本单元集合以及对应的第一文本单元之间关联关系的过程之后,便可以得到表征第一文本单元与第二文本单元之间的关联关系的键值结构化数据。
S380,将键结构化数据以及键值结构化数据进行合并,得到待处理表格对应的结构化数据。
本申请提供的一种数据处理方法,在对待处理表格中的文本单元进行分类,得到待处理表格的各个键对应的文本单元作为第一文本单元之后,先基于第一文本单元,得到存在主从关系的目标第一文本单元对,然后再基于目标第一文本单元对,得到待处理表格对应的键结构化数据,然后再获取各个第二文本单元集合,然后再获取与各个第二文本单元集合对应的第一文本单元,然后再将各个第二文本单元集合以及各个第二文本单元集合对应的第一文本单元进行合并,得到待处理表格对应的键值结构化数据,最后将键结构化数据以及键值结构化数据进行合并,得到待处理表格对应的结构化数据。由于利用的是存在主从关系的目标第一文本单元对得到的键结构化数据,因此,得到的键结构化数据能够准确表达第一文本单元与第一文本单元之间的主从关系,从而提高了键结构化数据的准确性,并且由于能够先区分各个第二文本单元集合以及对应的第一文本单元,然后通过将各个第二文本单元集合以及各个第二文本单元集合对应的第一文本单元进行合并的方式,得到待处理表格的键值结构化数据,从而提高了键值结构化数据的准确性,因此,也进一步提高了从表格中获得结构化数据的准确性。
请参阅图17,图17示出了本申请实施例提出的一种数据处理方法的流程图,该方法包括网络训练环节以及模型应用环节。
其中,在网络训练环节中,首先获得边框完整的复杂表格,然后从边框完整的复杂表格中提取训练样本,即提取样本第一文本单元对,训练样本携带有是否存在主从关系的分类标签,最后将多个训练样本分别输入到分类网络(例如可以是卷积神经网络)进行训练,得到文本分类模型。
其中,在模型应用环节中,首先获得待处理表格,然后对待处理表格进行处理,得到第一文本单元,然后基于任意两个第一文本单元生成第一文本单元对作为测试数据,然后将测试数据输入到分类模型,得到分类模型的输出,即文本单元对的对类型,然后基于文本单元对的对类型判断第一文本单元之间的主从关系,然后基于第一文本单元之间的存在主从关系,生成待处理表格对应的键结构化数据。
请参阅图18,图18示出了本申请一实施例提出的一种数据处理装置400的框图,该装置400包括:
第一文本单元获取模块410,对待处理表格中的文本单元进行分类,得到待处理表格的各个键对应的文本单元,所得到的所述各个键对应的文本单元为第一文本单元。
目标第一文本单元对获得模块420,用于基于第一文本单元,得到存在主从关系的目标第一文本单元对。
作为一种方式,目标第一文本单元对获得模块420,包括:
第一文本单元对获得子模块,用于基于任意两个第一文本单元,得到至少一个第一文本单元对,每两个第一文本单元对应一个第一文本单元对。
对类型获得子模块,用于获取各个第一文本单元对各自对应的对类型。
目标键文本对确定子模块,用于确定对类型为第一对类型的第一文本单元对为存在主从关系的目标第一文本单元对。
作为一种方式,对类型获得子模块,具体用于获取各个第一文本单元对各自对应的特征向量;基于每个特征向量,得到对应的第一文本单元对的对类型。
作为一种方式,对类型获得子模块,具体用于通过分类模型的特征提取层,对每个第一文本单元对进行特征提取,得到每个第一文本单元对各自对应的特征向量,通过分类模型的特征处理层,对每个第一文本单元对各自对应的特征向量进行处理,得到每个第一文本单元对各自对应的对类型。其中,分类模型是通过以下步骤得到的:获取携带对类型标签的样本第一文本单元对;基于样本第一文本单元对以及携带的对类型标签,对初始模型进行训练,得到分类模型。
主从关系获得模块430,用于获取目标第一文本单元对包括的目标第一文本单元之间的主从关系。
键结构化数据获得模块440,用于基于目标第一文本单元对包括的目标第一文本单元之间的主从关系,得到待处理表格对应的键结构化数据,键结构化数据为表征第一文本单元与第一文本单元之间的主从关系的数据。
作为一种方式,键结构化数据获得模块440,具体用于基于每个目标第一文本单元对包括的目标第一文本单元之间的主从关系,对各个目标第一文本单元进行分级处理,得到待处理表格对应的键结构化数据。
作为一种方式,如图19所示,图19示出了本申请又一实施例提出的一种数据处理装置400的框图,该装置400,还包括:
键值结构化数据获得模块450,用于获取待处理表格对应的键值结构化数据,键值结构化数据为表征第一文本单元与第二文本单元之间的关联关系的数据,所述第二文本单元为所述待处理表格的各个值对应的文本单元。
可选地,待处理表格包括多个文本单元,每个文本单元具有各自对应的坐标属性,多个文本单元包括第一文本单元和第二文本单元,在这种方式下,键值结构化数据获得模块450,具体用于获取各个第二文本单元集合,每个第二文本单元集合包括的各个第二文本单元具有至少一项相同的坐标属性;获取与各个第二文本单元集合对应的第一文本单元;将各个第二文本单元集合以及各个第二文本单元集合对应的第一文本单元进行合并,得到待处理表格对应的键值结构化数据。其中,待处理表格包括第一类型的待处理表格以及第二类型的待处理表格,第一类型的待处理表格的坐标属性包括横坐标左边界、横坐标右边界和横坐标中间值,第二类型的待处理表格的坐标属性包括纵坐标上下边界值。
结构化数据获得模块460,用于将键结构化数据以及键值结构化数据进行合并,得到待处理表格对应的结构化数据。
边框生成模块470,用于基于结构化数据与表格标签之间的对应关系,得到结构化数据包括的各个第一文本单元对应的表格标签;基于表格标签,生成与待处理表格对应的边框完整的表格。
作为一种方式,该装置400,还包括:
表格解析模块,用于对待处理表格进行解析,得到待处理表格对应的文本元素以及各个文本元素各自对应的坐标。
文本单元获得模块,用于基于待处理表格对应的文本元素以及各个文本元素各自对应的坐标,得到待处理表格包括的各个文本单元。
作为一种方式,文本单元获得模块,具体用于基于各个文本元素各自对应的坐标,得到各个文本元素之间的横向距离;基于距离阈值以及各个文本元素之间的横向距离,对具有相同横向坐标的多个文本元素进行区分,得到待处理表格包括的各个文本单元。
本申请提供的一种数据处理装置,在对待处理表格中的文本单元进行分类,得到待处理表格的各个键对应的文本单元作为第一文本单元之后,先基于第一文本单元,得到存在主从关系的目标第一文本单元对,然后再获取每个目标第一文本单元对包括的目标第一文本单元之间的主从关系;基于每个目标第一文本单元对包括的目标第一文本单元之间的主从关系,得到待处理表格对应的键结构化数据,然后再获取各个第二文本单元集合,然后再获取与各个第二文本单元集合对应的第一文本单元,然后再将各个第二文本单元集合以及各个第二文本单元集合对应的第一文本单元进行合并,得到待处理表格对应的键值结构化数据,最后将键结构化数据以及键值结构化数据进行合并,得到待处理表格对应的结构化数据。由于利用的是存在主从关系的目标第一文本单元对得到的键结构化数据,因此,得到的键结构化数据能够准确表达第一文本单元与第一文本单元之间的主从关系,从而提高了键结构化数据的准确性,并且由于能够先区分各个第二文本单元集合以及对应的第一文本单元,然后通过将各个第二文本单元集合以及各个第二文本单元集合对应的第一文本单元进行合并的方式,得到待处理表格的键值结构化数据,从而提高了键值结构化数据的准确性,因此,也进一步提高了从表格中获得结构化数据的准确性。
需要说明的是,本申请中装置实施例与前述方法实施例是相互对应的,装置实施例中具体的原理可以参见前述方法实施例中的内容,此处不再赘述。
下面将结合图20对本申请提供的一种电子设备进行说明。
请参阅图20,基于上述的数据处理方法,本申请实施例还提供的另一种包括可以执行前述数据处理方法的处理器104的电子设备200,该电子设备200可以为智能手机、平板电脑、计算机或者便携式计算机等设备。电子设备200还包括存储器104、网络模块106以及屏幕108。其中,该存储器104中存储有可以执行前述实施例中内容的程序,而处理器102可以执行该存储器104中存储的程序。
其中,处理器102可以包括一个或者多个用于处理数据的核以及消息矩阵单元。处理器102利用各种接口和线路连接整个电子设备200内的各个部分,通过运行或执行存储在存储器104内的指令、程序、代码集或指令集,以及调用存储在存储器104内的数据,执行电子设备200的各种功能和处理数据。可选地,处理器102可以采用数字信号处理(DigitalSignal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable Logic Array,PLA)中的至少一种硬件形式来实现。处理器102可集成中央处理器(Central Processing Unit,CPU)、图像处理器(GraphicsProcessing Unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责显示内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器102中,单独通过一块通信芯片进行实现。
存储器104可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory)。存储器104可用于存储指令、程序、代码、代码集或指令集。存储器104可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于实现至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现下述各个方法实施例的指令等。存储数据区还可以存储终端100在使用中所创建的数据(比如电话本、音视频数据、聊天记录数据)等。
网络模块106用于接收以及发送电磁波,实现电磁波与电信号的相互转换,从而与通讯网络或者其他设备进行通讯,例如和音频播放设备进行通讯。网络模块106可包括各种现有的用于执行这些功能的电路元件,例如,天线、射频收发器、数字信号处理器、加密/解密芯片、用户身份模块(SIM)卡、存储器等等。网络模块106可与各种网络如互联网、企业内部网、无线网络进行通讯或者通过无线网络与其他设备进行通讯。上述的无线网络可包括蜂窝式电话网、无线局域网或者城域网。例如,网络模块106可以与基站进行信息交互。
屏幕108可以进行界面内容的显示,也可以用于响应触控手势。
需要说明的是,为了实现更多的功能,电子设备200还可以保护更多的器件,例如,还可以保护用于进行人脸信息采集的结构光传感器或者还可以保护用于采集虹膜的摄像头等。
请参考图21,其示出了本申请实施例提供的一种计算机可读存储介质的结构框图。该计算机可读介质1100中存储有程序代码,程序代码可被处理器调用执行上述方法实施例中所描述的方法。
计算机可读存储介质1100可以是诸如闪存、EEPROM(电可擦除可编程只读存储器)、EPROM、硬盘或者ROM之类的电子存储器。可选地,计算机可读存储介质1100包括非易失性计算机可读介质(non-transitory computer-readable storage medium)。计算机可读存储介质1100具有执行上述方法中的任何方法步骤的程序代码1110的存储空间。这些程序代码可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。程序代码1110可以例如以适当形式进行压缩。
基于上述的数据处理方法,根据本申请实施例的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述的各种可选实现方式中提供的方法。
综上,本申请实施例提供的一种数据处理方法、装置、电子设备、存储介质及计算机程序产品或计算机程序,在对待处理表格中的文本单元进行分类,得到待处理表格的各个键对应的文本单元作为第一文本单元之后,先基于第一文本单元,得到存在主从关系的目标第一文本单元对,然后再获取每个目标第一文本单元对包括的目标第一文本单元之间的主从关系,并基于每个目标第一文本单元对包括的目标第一文本单元之间的主从关系,得到待处理表格对应的键结构化数据,然后再获取各个第二文本单元集合,然后再获取与各个第二文本单元集合对应的第一文本单元,然后再将各个第二文本单元集合以及各个第二文本单元集合对应的第一文本单元进行合并,得到待处理表格对应的键值结构化数据,最后将键结构化数据以及键值结构化数据进行合并,得到待处理表格对应的结构化数据。由于利用的是存在主从关系的目标第一文本单元对得到的键结构化数据,因此,得到的键结构化数据能够准确表达第一文本单元与第一文本单元之间的主从关系,从而提高了键结构化数据的准确性,并且由于能够先区分各个第二文本单元集合以及对应的第一文本单元,然后通过将各个第二文本单元集合以及各个第二文本单元集合对应的第一文本单元进行合并的方式,得到待处理表格的键值结构化数据,从而提高了键值结构化数据的准确性,因此,也进一步提高了从表格中获得结构化数据的准确性。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不驱使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。