1.本发明实施例涉及自然语言处理
技术领域:
:,尤其涉及一种信息提取方法、装置、电子设备及存储介质。
背景技术:
::2.文档(如各类证件、票据、表单和报告等)中因为包含大量的文本、布局和格式等信息,已经成为人们日常工作生活中十分常用并且重要的文件形式。3.为了更好地利用文档,首要前提是从文档中自动提取出文档元素。目前,可以基于光学字符识别(opticalcharacterrecognition,ocr)或是锚点搜索等方案实现某些文档元素的自动提取。4.但是,作为文档元素的常见形式—表格中的结构化信息,上述方案均无法实现结构化信息的自动提取。技术实现要素:5.本发明实施例提供了一种信息提取方法、装置、电子设备及存储介质,以从文档中自动提取出结构化信息。6.根据本发明的一方面,提供了一种信息提取方法,可以包括:7.获取从文档中提取出来的线段元素和字符元素;8.基于线段元素构建表格框,并针对每个表格框,将位于表格框内的各字符元素聚合为框内语句;9.针对各表格框组成的表格,获取针对表格输入的关键字词,基于关键字词将各框内语句分别划分为键语句或是值语句;10.针对每个键语句,从各框内语句中确定与键语句匹配的值语句,并将键语句以及匹配的值语句作为从文档中提取出来的结构化信息。11.根据本发明的另一方面,提供了一种信息提取装置,可以包括:12.字符元素获取模块,用于获取从文档中提取出来的线段元素和字符元素;13.字符元素聚合模块,用于基于线段元素构建表格框,并针对每个表格框,将位于表格框内的各字符元素聚合为框内语句;14.框内语句划分模块,用于针对由各表格框组成的表格,获取针对表格输入的关键字词,基于关键字词将各框内语句分别划分为键语句或是值语句;15.结构化信息提取模块,用于针对每个键语句,从各框内语句中确定与键语句匹配的值语句,并将键语句以及匹配的值语句作为从文档中提取出来的结构化信息。16.根据本发明的另一方面,提供了一种电子设备,可以包括:17.至少一个处理器;以及18.与至少一个处理器通信连接的存储器;其中,19.存储器存储有可被至少一个处理器执行的计算机程序,计算机程序被至少一个处理器执行,以使至少一个处理器执行时实现本发明任意实施例所提供的信息提取方法。20.根据本发明的另一方面,提供了一种计算机可读存储介质,其上存储有计算机指令,该计算机指令用于使处理器执行时实现本发明任意实施例所提供的信息提取方法。21.本发明实施例的技术方案,通过获取从文档中提取出来的线段元素和字符元素,然后基于线段元素构建表格框,并针对每个表格框,将位于表格框内的各字符元素聚合为框内语句;进而,针对各表格框组成的表格,获取针对表格输入的关键字词,并基于关键字词将各框内语句分别划分为键语句或是值语句;由此,针对每个键语句,可以从各框内语句中确定与键语句匹配的值语句,并将键语句与匹配的值语句作为从文档中提取出来的结构化信息。上述技术方案,可以从文档中自动提取出结构化信息。22.应当理解,本部分所描述的内容并非旨在标识本发明的实施例的关键或是重要特征,也不用于限制本发明的范围。本发明的其它特征将通过以下的说明书而变得容易理解。附图说明23.为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。24.图1是根据本发明实施例提供的一种信息提取方法的流程图;25.图2是根据本发明实施例提供的另一种信息提取方法的流程图;26.图3是根据本发明实施例提供的另一种信息提取方法中的字符元素、字符框以及字符框坐标的示意图;27.图4是根据本发明实施例提供的另一种信息提取方法的流程图;28.图5是根据本发明实施例提供的另一种信息提取方法的流程图;29.图6是根据本发明实施例提供的另一种信息提取方法中的可选示例的系统架构图;30.图7a是根据本发明实施例提供的另一种信息提取方法中的框外字符聚合的第一示意图;31.图7b是根据本发明实施例提供的另一种信息提取方法中的框外字符聚合的第二示意图;32.图8a是根据本发明实施例提供的另一种信息提取方法中的语句相距距离的第一确定示意图;33.图8b是根据本发明实施例提供的另一种信息提取方法中的语句相距距离的第二确定示意图;34.图9是根据本发明实施例提供的一种信息提取装置的结构框图;35.图10是实现本发明实施例的信息提取方法的电子设备的结构示意图。具体实施方式36.为了使本
技术领域:
:的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。37.需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。“目标”、“原始”等的情况类似,在此不再赘述。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。38.图1是本发明实施例中所提供的一种信息提取方法的流程图。本实施例可适用于从文档中提取出结构化信息的情况。该方法可以由本发明实施例提供的信息提取装置来执行,该装置可以由软件和/或硬件的方式实现,该装置可集成在电子设备上,该电子设备可以是各种用户终端或服务器。39.参见图1,本发明实施例的方法具体包括如下步骤:40.s110、获取从文档中提取出来的线段元素和字符元素。41.其中,文档可以是待从中提取出结构化信息的文档,在实际应用中,文档的文档格式可以是doc、docx或是便携式文档格式(portabledocumentformat,pdf)等,在此未做具体限定。在获取到文档之后,可以从中提取出线段元素和字符元素,以便后续基于获取到的线段元素和字符元素进行结构化信息的提取。在实际应用中,可选的,可以采用ocr方案实现线段元素和字符元素的提取。再可选的,考虑到ocr方案存在模型训练时间长、需要大量运算能力并且深度学习模型的提取结果可能存在误识别的情况等问题,及doc和docx的文档格式因为存在多个版本而易出现兼容性不佳的问题,为此,可以采用如下方案实现线段元素和字符元素的提取过程:获取文档,对文档进行文档格式转换,得到便携式文档格式下的文档,并根据转换结果更新文档;对文档进行解析,根据解析结果从文档中提取出线段元素和字符元素。换言之,首先,将doc和docx文档转换为pdf文档,当然,当文档的文档格式就是pdf时,无需进行文档格式转换;然后,对pdf文档进行解析,以根据解析结果从文档中提取出线段元素和字符元素。这一方案未涉及到深度学习模型,而且统一对pdf文档进行处理,从而有效地解决了ocr方案中存在的一系列问题。42.s120、基于线段元素构建表格框,并针对每个表格框,将位于表格框内的各字符元素聚合为框内语句。43.其中,表格框可以理解为文档中的表格内的框,其可以根据从文档中提取出来的线段元素构建得到。示例性的,针对每条线段元素,根据该线段元素的两个端点的端点坐标确定该线段元素是否为斜线段,这里以一个端点坐标是(x1,y1)并且另一端点坐标是(x2,y2)为例,将|x1-x2|>第一差值阈值并且|y1-y2|>第二差值阈值的线段元素作为斜线段;从各条线段元素中剔除掉斜线段,并基于保留下来的线段元素对提取出来的线段元素进行更新,此时的线段元素是水平线段(如|y1-y2|≤第二差值阈值的线段元素)或垂直线段(如|x1-x2|≤第一差值阈值的线段元素);进一步,针对待构建的每个表格框,对各线段元素进行遍历,得到一条垂直线段,然后对各线段元素再次进行遍历,得到与垂直线段相交的水平线段,从而基于该垂直线段和该水平线段构建得到相应的表格框。44.在构建完成全部表格框后,针对每个表格框,可以确定各字符元素中位于该表格框内的字符元素(这里可称为框内字符),例如,根据用于构建该表格框的各线段元素的两个端点坐标确定该表格框的四个端点的端点坐标;在此基础上,由于每个字符元素也可以对应有四个端点坐标,因此针对每个字符元素,可以根据该字符元素的四个端点坐标和该表格框的四个端点坐标,确定该字符元素是否位于该表格框内。或者,遍历各字符元素,针对每个字符元素,通过确定该字符元素的四个端点坐标被哪个表格框的四个端点坐标所包围,则可以将该字符元素划分到相应的表格框内。进一步,针对每个表格框,在得到其内的各框内字符后,可以将这些框内字符聚合为框内语句。45.s130、针对各表格框组成的表格,获取针对表格输入的关键字词,并基于关键字词将各框内语句分别划分为键语句或是值语句。46.其中,基于上述构建得到的这些表格框组成至少一个表格,获取针对这些表格输入的关键字词,该关键字词可以理解为存在于表格中的关键字词。示例性的,参见表1,其中的关键字词可以包括姓名、年龄和住址。47.在获取到关键字词以及每个表格框内的框内语句后,可以基于关键字词将这些框内语句分别划分为键语句或是值语句,例如,将与关键字词匹配的框内语句作为键语句,并且将除键语句之外(即与任一关键字词均不匹配)的框内语句作为值语句。示例性的,参见表1所示的由6个表格框组成的表格,其中的框内语句可以包括姓名、张三、年龄、30、住址和xxx,其中的姓名、年龄和住址可以被划分为键语句,张三、30和xxx可以被划分为值语句。48.表1表格示例[0049][0050]s140、针对每个键语句,从各框内语句中确定与键语句匹配的值语句,并将键语句以及匹配的值语句作为从文档中提取出来的结构化信息。[0051]其中,在将各框内语句分别划分为键语句或是值语句后,针对每个键语句,可以从各框内语句中确定与该键语句匹配的值语句,然后将该键语句以及匹配的值语句作为从文档中提取出来的结构化信息,由此实现了结构化信息的自动提取过程。示例性的,假设文档中包含如表1所示的表格,那么由此提取出来的结构化信息可以包括姓名与张三、年龄与30、以及住址与xxx。[0052]本发明实施例的技术方案,通过获取从文档中提取出来的线段元素和字符元素,然后基于线段元素构建表格框,并针对每个表格框,将位于表格框内的各字符元素聚合为框内语句;进而,针对各表格框组成的表格,获取针对表格输入的关键字词,并基于关键字词将各框内语句分别划分为键语句或是值语句;由此,针对每个键语句,可以从各框内语句中确定与键语句匹配的值语句,并将键语句与匹配的值语句作为从文档中提取出来的结构化信息。上述技术方案,可以从文档中自动提取出结构化信息。[0053]图2是本发明实施例中提供的另一种信息提取方法的流程图。本实施例以上述各技术方案为基础进行优化。在本实施例中,可选的,针对每个表格框,将位于表格框内的各字符元素聚合为框内语句,可以包括:针对每个表格框,将位于表格框内的字符元素作为框内字符;获取表格框内的各框内字符的框内排序结果,并按照框内排序结果将各框内字符聚合为框内语句。其中,与上述各实施例相同或相应的术语的解释在此不再赘述。[0054]参见图2,本实施例的方法具体可以包括如下步骤:[0055]s210、获取从文档中提取出来的线段元素和字符元素。[0056]s220、基于线段元素构建表格框,并针对每个表格框,将位于表格框内的字符元素作为框内字符。[0057]s230、获取表格框内的各框内字符的框内排序结果,并按照框内排序结果将各框内字符聚合为框内语句。[0058]其中,针对每个表格框,框内排序结果可以表示出该表格框内各框内字符在文档中出现的先后顺序,因此可以根据该框内排序结果将各框内字符聚合为框内语句。示例性的,可以根据该框内排序结果确定各框内字符在文档中出现的先后顺序,然后按照该先后顺序对各框内字符进行连接,从而得到框内语句,具体来说可以是依据该先后顺序,对同一行上的各框内字符进行依次连接,并且对位于不同行上的两个框内字符进行首尾连接。[0059]在实际应用中,可选的,上述框内排序结果可以通过如下步骤得到:对各字符元素进行排序,得到字符排序结果;根据表格框内各框内字符在字符排序结果中的框内排序位置,得到各框内字符的框内排序结果。换言之,可以先对文档中的全部字符元素进行排序,得到这些字符元素的字符排序结果;然后,由于框内字符是位于表格框内的字符元素,因此可以得到这些框内字符在字符排序结果中的框内排序位置,从而可以基于这些框内排序位置得到各框内字符的字符排序结果。例如,将最小的框内排序位置对应的框内字符作为字符排序结果中的第一个,并将次小的框内排序位置对应的框内字符作为字符排序结果中的第二个,以此类推,直至将最大的框内排序位置对应的框内字符作为字符排序结果中的最后一个,从而得到最终的字符排序结果。[0060]在此基础上,可选的,可以通过如下步骤得到字符排序结果:分别获取各字符元素所在的字符框的字符框坐标,然后根据各字符元素的字符框坐标对各字符元素进行排序,得到字符排序结果。其中,在实际应用中,从文档中提取出来的字符元素可以认为被包围在字符框中,并且每个字符框具有各自的字符框坐标。示例性的,图3展示出从文档中提取出来的字符元素“是”,包围住“是”的字符框为图示中的黑色方框,该黑色方框的四个顶点的顶点坐标(x1,y1)、(x2,y1)、(x1,y2)和(x2,y2)分别为字符框坐标。进而,可以根据这些字符元素的字符框坐标对这些字符元素进行排序,得到字符排序结果。[0061]在此基础上,可选的,可以通过如下步骤得到字符排序结果:根据各字符元素在列方向上的字符框坐标,从各字符元素中确定位于同一行的同行字符,其中,列方向垂直于文档中的行所在的行方向;根据各同行字符在行方向的字符框坐标,对各同行字符进行排序,以得到各字符元素的字符排序结果。其中,在实际应用中,位于同一行的各同行字符可以是那些在列方向上的字符框坐标(如图3示例中的y1和/或y2)非常接近的框内字符。针对处于每行上的同行字符,可以根据这些同行字符在行方向的字符框坐标(如图3示例中的x1和/或x2),对它们进行排序,从而得到该行上的这些同行字符的同行排序结果。最后,可以结合不同行上的同行排序结果,得到最终的字符排序结果。示例性的,假设文档的文档内容如下所示:[0062]我是张三你是李四[0063]他是王五[0064]那么处于同一行上的同行字符包括我、是、张、三、你、是、李和四、以及他、是、王和五,首先,对我、是、张、三、你、是、李和四进行排序,得到同行排序结果a,并且对他、是、王和五进行排序,得到同行排序结果b;然后,基于a和b得到字符排序结果,如在字符排序结果中依次排序的各字符元素是我、是、张、三、你、是、李、四、他、是、王以及五。[0065]考虑到目前常见的表格版式,针对处于不同行上的两个字符元素,可以将相对出现在文档靠上位置处的字符元素排序在前面,且将相对出现在文档靠下位置处的字符元素排序在后面,这一规律可以概述为上先下后;除此外,针对处于同一行上的两个字符元素,可以将相对出现在文档靠左位置处的字符元素排序在前面,并且将相对出现在文档靠右位置处的字符元素排序在后面,这一规律可以概述为左先右后。那么,结合到上述的用于得到字符排序结果的技术方案,可以理解为基于以上先下后为第一顺序,并且以左先右后为第二顺序,对各字符元素进行排序,从而得到字符排序结果。[0066]s240、针对各表格框组成的表格,获取针对表格输入的关键字词,并基于关键字词将各框内语句分别划分为键语句或是值语句。[0067]s250、针对每个键语句,从各框内语句中确定与键语句匹配的值语句,并将键语句以及匹配的值语句作为从文档中提取出来的结构化信息。[0068]本发明实施例的技术方案,针对每个表格框,通过获取表格框内的各框内字符的框内排序结果,然后可以按照该框内排序结果将各框内字符聚合为框内语句,从而实现了框内语句的有效得到的效果。[0069]图4是本发明实施例中提供的另一种信息提取方法的流程图。本实施例以上述各技术方案为基础进行优化。在本实施例中,可选的,从各框内语句中确定与键语句匹配的值语句,可以包括:从各框内语句中确定位于键语句的预设方向上的第一方向语句;根据各第一方向语句与键语句间的语句相距距离,从各第一方向语句中确定与键语句匹配的值语句。其中,与上述各实施例相同或相应的术语的解释在此不再赘述。[0070]参见图4,本实施例的方法具体可以包括如下步骤:[0071]s310、获取从文档中提取出来的线段元素和字符元素。[0072]s320、基于线段元素构建表格框,并针对每个表格框,将位于表格框内的各字符元素聚合为框内语句。[0073]s330、针对各表格框组成的表格,获取针对表格输入的关键字词,并基于关键字词将各框内语句分别划分为键语句或是值语句。[0074]s340、针对每个键语句,从各框内语句中确定位于键语句的预设方向上的第一方向语句。[0075]其中,预设方向可以是上方、下方、左方以及右方中的至少一个,结合到常见的表格版式,该预设方向可以是右方或下方。针对每个键语句,第一方向语句可以是各框内语句中位于该键语句的预设方向上的框内语句。示例性的,如表1所示,假设键语句是姓名并且预设方向是右方,那么第一方向语句可以包括张三、年龄和30;假设键语句是姓名并且预设方向是下方,那么第一方向语句可以包括住址和xxx。[0076]s350、根据各第一方向语句与键语句间的语句相距距离,从各第一方向语句中确定与键语句匹配的值语句,并将键语句以及匹配的值语句作为从文档中提取出来的结构化信息。[0077]其中,分别确定每个第一方向语句与键语句之间的语句相距距离,该语句相距距离可以通过多种方式进行确定,例如,通过第一方向语句所在的语句框的中心点坐标与键语句所在的语句框的中心点坐标确定;通过第一方向语句所在的语句框与键语句所在的语句框中的一个语句框的至少一个右侧顶点的顶点坐标与另一个语句框的至少一个左侧顶点的顶点坐标确定;通过第一方向语句所在的语句框与键语句所在的语句框中一个语句框的至少一个上方顶点的顶点坐标与另一个语句框的至少一个下方顶点的顶点坐标确定;等等。[0078]在分别得到每个第一方向语句与键语句之间的语句相距距离后,可以根据各第一方向语句对应的语句相距距离,从各第一方向语句中确定与键语句匹配的值语句,如将最小的或是小于预设距离阈值的语句相距距离对应的第一方向语句作为匹配的值语句等等,在此未作具体限定。[0079]本发明实施例的技术方案,通过从全部框内语句中确定位于键语句的预设方向上的第一方向语句,然后根据各第一方向语句与键语句间的语句相距距离,从各第一方向语句中确定与键语句匹配的值语句,从而实现了匹配的值语句的快速并且准确确定的效果。[0080]一种可选的技术方案,根据各第一方向语句与键语句间的语句相距距离,从各第一方向语句中确定与键语句匹配的值语句,可以包括:分别确定各第一方向语句与键语句间的语句相距距离,并将最小的语句相距距离对应的第一方向语句作为第一最近语句;在第一最近语句被划分为值语句的情况下,将第一最近语句作为与键语句匹配的值语句。其中,第一最近语句可以是各第一方向语句中的与键语句距离最近的第一方向语句。由于匹配的值语句是被划分为值语句的框内语句,因此在得到第一最近语句后,可以先确定其是否被划分为值语句。如果是,则可以将第一最近语句作为匹配的值语句;否则,无法将第一最近语句作为匹配的值语句,由此实现了匹配的值语句的准确确定的效果。[0081]在此基础上,可选的,预设方向包括右方,在将最小的语句相距距离对应的第一方向语句作为第一最近语句之后,上述信息提取方法,还可以包括:在第一最近语句被划分为键语句的情况下,从各框内语句中确定位于键语句下方的第二方向语句;确定各第二方向语句中与键语句距离最近的第二最近语句,并在第二最近语句被划分为值语句的情况下,将第二最近语句作为键语句匹配的值语句。其中,考虑到常见的表格版式,匹配的值语句出现在键语句的右方的可能性最大,其次更可能出现在键语句的下方。为此,可以将右方作为预设方向,并在位于右方的第一最近语句不是值语句的情况下,可以从各框内语句中确定位于键语句下方的第二方向语句,然后根据各第二方向语句中与键语句间的语句相距距离,从各第二方向语句确定与键语句距离最近的第二最近语句。在此基础上,可以确定第二最近语句是否被划分为值语句。如果是,则可以将第二最近语句作为匹配的值语句;否则,可以认为无法确定出匹配的值语句,由此实现了匹配的值语句的准确确定的效果。[0082]图5是本发明实施例中提供的另一种信息提取方法的流程图。本实施例以上述各技术方案为基础进行优化。在本实施例中,可选的,上述信息提取方法,还可以包括:将各字符元素中位于表格框外的字符元素作为框外字符;获取各框外字符的框外排序结果,并按照框外排序结果将各框外字符聚合为框外语句。其中,与上述各实施例相同或相应的术语的解释在此不再赘述。[0083]参见图5,本实施例的方法具体可以包括如下步骤:[0084]s410、获取从文档中提取出来的线段元素和字符元素。[0085]s420、基于线段元素构建表格框,并针对每个表格框,将位于表格框内的各字符元素聚合为框内语句。[0086]s430、针对各表格框组成的表格,获取针对表格输入的关键字词,并基于关键字词将各框内语句分别划分为键语句或是值语句。[0087]s440、针对每个键语句,从各框内语句中确定与键语句匹配的值语句,并将键语句以及匹配的值语句作为从文档中提取出来的结构化信息。[0088]s450、将各字符元素中位于表格框外的字符元素作为框外字符。[0089]其中,框外字符可以是各字符元素中位于表格框外的字符元素,换言之,可以将各字符元素中除框内字符之外的字符元素作为框外字符。[0090]s460、获取各框外字符的框外排序结果,并按照框外排序结果将各框外字符聚合为框外语句。[0091]其中,框外排序结果可以表示出每个框外字符在文档中出现的先后顺序,因此可以根据该框外排序结果将各框外字符聚合为框外语句。在实际应用中,可选的,框外排序结果的确定过程与框内排序结果的确定过程可以完全不同或是类似,框外语句的聚合过程与框内语句的聚合过程也可以完全不同或是类似,在此未作具体限定,可以根据实际情况进行选择。[0092]本发明实施例的技术方案,通过获取各框外字符的框外排序结果,从而可按照框外排序结果将各框外字符聚合为框外语句,由此实现了表格外的各字符元素的有效聚合的效果。[0093]一种可选的技术方案,按照框外排序结果将各框外字符聚合为框外语句,可以包括:获取当前处于聚合中状态的目标语句中的末个字符、以及按照框外排序结果从各框外字符中确定的首个未聚合的首个字符;确定末个字符与首个字符间的第一相距距离;在第一相距距离满足第一距离条件的情况下,将首个字符聚合到目标语句,以得到基于各框外字符聚合出的框外语句。[0094]其中,目标语句可以是当前处于聚合中状态(即还未聚合完成)的语句,其中可包括一个、两个或多个框外字符;末个字符可以是目标语句中的各框外字符中的排在末位的框外字符。在获取到目标语句的情况下,有些框外字符已完成聚合,而有些框外字符还未进行聚合,首个字符可以是未进行聚合的那些框外字符中在框外排序结果排在首位的框外字符。示例性的,假设框外排序结果中的各框外字符依次是阳、光、普、照、风、和、日以及丽,其中的照、风、和、日及丽未被聚合到任何语句中,因此首个字符可以是照。末个字符与首个字符间的第一相距距离可以通过多种方式进行确定,其的确定过程与语句相距距离的确定过程可以相同或是不同,在此未做具体限定。[0095]第一距离条件可以是预先设置的用于表示可以将首个字符聚合到目标语句上的与第一相距距离有关的条件,如第一相距距离小于或是等于第一距离阈值。在第一相距距离满足第一距离条件的情况下,可以将首个字符聚合到目标语句;当然,在第一相距距离未满足第一距离条件的情况下,可以将当前的目标语句作为已聚合完成的框外语句,并且基于首个字符重新构建一个目标语句,然后基于重新构建出的目标语句再次执行上述步骤,从而可以得到基于各框外字符聚合出的至少一个框外语句。[0096]在此基础上,可选的,获取当前处于聚合中状态的目标语句中的末个字符,可以包括:获取当前处于聚合中状态的目标语句,将目标语句作为当前子语句,并获取当前子语句中的末个字符;在第一相距距离满足第一距离条件的情况下,将首个字符聚合到目标语句,以得到基于各框外字符聚合出的框外语句,可以包括:在第一相距距离满足第一距离条件的情况下,将首个字符聚合到当前子语句,以得到基于各框外字符聚合出的框外子语句;根据框外排序结果得到各框外子语句的子语句排序结果;获取当前处于聚合中状态的当前语句中的末个子语句、以及按照子语句排序结果从各框外子语句中确定的首个未聚合的首个子语句,并确定末个子语句与首个子语句间的第二相距距离;在第二相距距离满足第二距离条件的情况下,将首个子语句聚合到当前语句,以得到基于各框外子语句聚合出的框外语句。[0097]其中,在第一相距距离满足第一距离条件的情况下,可以将首个字符聚合到当前子语句;当然,在第一相距距离未满足第一距离条件的情况下,可以将当前的当前子语句作为已聚合完成的框外子语句,并且基于首个字符重新构建一个当前子语句,然后基于重新构建出的当前子语句再次执行上述步骤,从而可以得到基于各框外字符聚合出的至少一个框外子语句。在此基础上,根据各框外字符的框外排序结果可以得到各框外子语句的子语句排序结果,例如框外排序结果中的各框外字符依次是阳、光、普、照、风、和、日以及丽,其中的阳、光、普和照聚合为一个框外子语句a(阳光普照),并且风、和、日和丽聚合为另一个框外子语句b(风和日丽),相较于b中的各框外字符,a中的各框外字符在框外排序结果中更为靠前,因此由此得到的子语句排序结果中的各框外子语句依次是阳光普照以及风和日丽。在实际应用中,可选的,被聚合到同一框外子语句中的各框外字符通常位于文档的同一行上。[0098]进一步,将聚合得到的至少一个框外子语句再次聚合为至少一个框外语句。具体的,当前语句可以是当前处于聚合中状态(即还未聚合完成)的语句,其中可包括一个、两个或是多个框外子语句;末个子语句可以是当前语句中的各框外子语句中排在末位的框外子语句。在获取到当前语句的情况下,有些框外子语句已完成聚合,有些框外子语句还未进行聚合,首个子语句可以是未进行聚合的那些框外子语句中在子语句排序结果中排在首位的框外子语句。末个子语句与首个子语句间的第二相距距离可通过多种方式进行确定,其的确定过程与第一相距距离的确定过程可以相同或是不同,在此未做具体限定。[0099]第二距离条件可以是预先设置的用于表示可将首个子语句聚合到当前语句上的与第二相距距离有关的条件,如第二相距距离小于或是等于第二距离阈值。在第二相距距离满足第二距离条件的情况下,可将首个子语句聚合到当前语句;当然,在第二相距距离未满足第二距离条件的情况下,可以将当前的当前语句作为已聚合完成的框外语句,并且基于首个子语句重新构建出一个当前语句,然后基于重新构建出的当前语句再次执行上述步骤,从而可以得到基于各框外子语句聚合出的至少一个框外语句。在实际应用中,可选的,被聚合同一框外语句中的各框外子语句可以位于文档的不同行上。[0100]在上述任一技术方案的基础上,可选的,上述信息提取方法,还可以包括:将各字符元素中位于表格框外的字符元素作为框外字符;获取当前处于聚合中状态的目标语句中的末个字符,针对各框外字符中的未聚合的每个未聚合字符,确定未聚合字符与末个字符间的字符相距距离;如果各字符相距距离中最小的字符相距距离小于预设距离阈值,则将最小的字符相距距离对应的未聚合字符聚合到目标语句,以得到基于各框外字符聚合出的框外语句。本技术方案可以作为上述的任一框外语句聚合方案的并列方案。示例性的,假设框外字符包括我、是、张、三、今、年、十和岁,目标语句为“我是”,那么“是”为末个字符,可以依次确定“是”与未聚合字符“张”、“三”、“今”、“年”、“十”以及“岁”间的字符相距距离,假设“是”与“张”间的字符相距距离最小,且小于预设距离阈值,则可以将“张”聚合到“我是”,得到“我是张”。继续循环上述步骤,这次将“三”聚合到“我是张”中,得到“我是张三”。继续循环上述步骤,此时的末个字符是“三”,未聚合字符是“今”、“年”、“十”以及“岁”,分别确定它们与“三”间的字符相距距离。假设“今”与“三”间的字符相距距离最小,但是大于或是等于预设距离阈值,则将“今”作为下一个目标语句中的末个字符,开始这个目标语句的聚合过程。[0101]为了从整体上更好地理解上述各个技术方案,下面结合具体示例对其进行示例性说明。示例性的,参见图6所示的信息提取系统,其可以包括文档格式转换模块、文档元素提取模块、语句聚合模块和键值对语句匹配模块。其中,文档格式转换模块用于将doc或是docx文档转换为pdf文档,当然,如果用户输入的文档的文档格式就是pdf,则无需进行这一文档格式转换过程;文档元素提取模块用于将pdf文档中的各个文档元素分别提取出来,这些文档元素可以包括字符元素和线段元素;语句聚合模块用于将提取出的字符元素聚合为语句;键值对语句匹配模块用于根据用户输入的关键字词,从聚合出的各语句中确定匹配的键语句和值语句,并将它们作为结构化信息的提取结果,返回给用户。接下来,结合上述各个技术方案,对语句聚合模块以及键值对语句匹配模块这两个模块进行详细阐述。[0102]一、语句聚合模块,用于根据提取出的各字符元素所在的字符框的字符框坐标,以上先下后为第一顺序并且以左先右后为第二顺序,对各字符元素进行排序,得到字符排序结果;在此基础上,再结合预先设置的聚合规则,将这些字符元素聚合为语句,具体的聚合规则如下所示:[0103]1、按字符距离进行聚合,适合于表格外的各框外字符的聚合[0104]a)行聚合,将框外字符列表(按照各框外字符在初始排序结果中的框外排序位置,对各框外字符进行排序后得到的列表)中的各框外字符聚合为至少一个框外子语句,循环以下步骤,直至框外字符列表为空:[0105]i.取出框外字符列表中的第一个框外字符,加入当前子语句x;[0106]ii.取出框外字符列表中的第一个未进行聚合的首个字符,计算x所在的子语句框的右侧端点与首个字符所在的字符框的左侧端点间的第一相距距离k1’,如果k1’《k1(k1为可配置参数),则取出首个字符加入x,不断重复本步骤,直至k1’≥k1,得到聚合完成的一个框外子语句,x聚合结束。[0107]示例性的,参见图7a,假设当前子语句中是“我是张”,框外字符列表中的首个字符是“三”,则k1’=a+b。由于k1’《k1,则可以将“三”加入“我是张”中,得到“我是张三”。继续这个过程,参见图7b,此时框外字符列表中的首个字符是“你”,则k1’=c+d。由于k1’≥k1,这说明“我是张三”是已聚合完成的框外子语句,将“你”作为下一个当前子语句,进行上述过程,直至框外字符列表为空,即其中的全部框外字符均被聚合到某框外子语句中。[0108]b)列聚合,根据上述步骤得到的各框外子语句在文档中出现的先后顺序,生成框外子语句列表,将这些框外子语句聚合为至少一个框外语句,循环以下步骤,直至框外子语句列表为空:[0109]i.取出框外子语句列表中的第一个框外子语句,加入当前语句y;[0110]ii.取出框外子语句列表中的第一个未进行聚合的首个子语句,计算y所在的子语句框的下方端点与首个子语句所在的子语句框的上方端点间的第二相距距离k2’,如果k2’《k2(k2为可配置参数),则取出首个子语句加入y,不断重复本步骤,直至k2’≥k2,得到聚合完成的框外语句,y聚合结束。[0111]c)输出各框外语句构成的框外语句列表。[0112]2、按线段元素与表格框的分割进行聚合,适合于表格内各框内字符的聚合[0113]a)基于线段元素构建出至少一个表格框,并针对每个表格框,根据线段元素的两个端点的端点坐标得到表格框的四个端点的端点坐标。[0114]b)遍历包含各字符元素的字符元素列表,根据每个字符元素的字符框坐标,将位于表格框内的那些字符元素划分到对应的表格框内。[0115]c)针对每个表格框内的各框内字符,根据这些框内字符的框内排序结果,将这些框内字符聚合为框内语句。[0116]d)输出各框内语句构成的框内语句列表。[0117]二、键值对语句匹配模块,用于根据用户输入的关键字词,从各框内语句中确定匹配的键语句以及值语句。具体的:[0118]1、获取用户针对文档中存在的表格输入的关键字词。[0119]2、遍历框内语句列表,根据关键字词,使用正则表达式检索匹配框内语句列表中对应的键语句,构成键语句列表,并将余下的框内语句构成值语句列表。[0120]3、针对每个键语句,确定该键语句右方的与该键语句距离最近的框内语句(即上文中的第一最近语句),如果第一最近语句不属于键语句列表,则可以将第一最近语句作为与该键语句匹配的值语句;否则执行步骤4。其中,参见图8a,第一最近语句可以通过如下方式确定:[0121]假设在该键语句右方存在框内语句1和框内语句2,该键语句与框内语句1间的语句相距距离k3’=e+f,并且该键语句与框内语句2间的语句相距距离k4’=g+h,由于k3’<k4’,因此可以将框内语句1作为第一最近语句。[0122]4、确定该键语句下方的与该键语句距离最近的框内语句(即上文中的第二最近语句),如果第二最近语句不属于键语句列表,则可以将第二最近语句作为与该键语句匹配的值语句;否则,认为值语句匹配失败。其中,参见图8b,第二最近语句可以通过如下方式确定:[0123]假设在该键语句下方存在框内语句3和框内语句4,该键语句与框内语句3间的语句相距距离k5’=i+j,并且该键语句与框内语句4间的语句相距距离k6’=k+l,由于k5’<k6’,因此可以将框内语句3作为第二最近语句。[0124]上述信息提取系统,可以完成pdf、doc和docx文档中的文档元素的自动化提取,支持粒度包括字符、子语句和语句,以及表格内的键值对。对比基于深度学习模型实现文档元素提取的方案,上述方案具有高准确率、低算力要求和低延迟的优点,而且可以实现键值对信息的有效提取。[0125]图9为本发明实施例中提供的信息提取装置的结构框图,该装置用于执行上述任意实施例所提供的信息提取方法。该装置与上述各实施例的信息提取方法属于同一个发明构思,在信息提取装置的实施例中未详尽描述的细节内容,可以参考上述信息提取方法的实施例。参见图9,该装置具体可以包括:字符元素获取模块510、字符元素聚合模块520、框内语句划分模块530以及结构化信息提取模块540。[0126]其中,字符元素获取模块510,用于获取从文档中提取出来的线段元素和字符元素;[0127]字符元素聚合模块520,用于基于线段元素构建表格框,并针对每个表格框,将位于表格框内的各字符元素聚合为框内语句;[0128]框内语句划分模块530,用于针对各表格框组成的表格,获取针对该表格输入的关键字词,基于关键字词将各框内语句分别划分为键语句或是值语句;[0129]结构化信息提取模块540,用于针对每个键语句,从各框内语句中确定与键语句匹配的值语句,并将键语句以及匹配的值语句作为从文档中提取出来的结构化信息。[0130]可选的,字符元素聚合模块520,可以包括:[0131]框内字符得到单元,用于针对每个表格框,将位于表格框内的字符元素作为框内字符;[0132]框内字符聚合单元,用于获取表格框内的各框内字符的框内排序结果,并按照框内排序结果将各框内字符聚合为框内语句。[0133]在此基础上,可选的,上述信息提取装置,还可以包括:[0134]字符元素排序模块,用于对各字符元素进行排序,得到字符排序结果;[0135]框内字符聚合单元,可以包括:[0136]框内排序结果得到子单元,用于根据表格框内各框内字符在字符排序结果中的框内排序位置,得到各框内字符的框内排序结果。[0137]在此基础上,可选的,字符元素排序模块,可以包括:[0138]字符元素排序单元,用于分别获取各字符元素所在的字符框的字符框坐标,并根据各字符元素的字符框坐标对各字符元素进行排序,得到字符排序结果。[0139]在此基础上,可选的,字符元素排序单元,可以包括:[0140]同行字符确定子单元,用于根据各字符元素在列方向上的字符框坐标,从各字符元素中确定出位于同一行的同行字符,其中,列方向垂直于文档中的行所在的行方向;[0141]字符元素排序子单元,用于根据各同行字符在行方向的字符框坐标,对各同行字符进行排序,以得到各字符元素的字符排序结果。[0142]可选的,结构化信息提取模块540,可以包括:[0143]第一方向语句确定单元,用于从各框内语句中确定位于键语句的预设方向上的第一方向语句;[0144]值语句匹配单元,用于根据各第一方向语句与键语句间的语句相距距离,从各第一方向语句中确定与键语句匹配的值语句。[0145]在此基础上,可选的,值语句匹配单元,可以包括:[0146]第一最近语句得到子单元,用于分别确定各第一方向语句与键语句间的语句相距距离,并将最小的语句相距距离对应的第一方向语句作为第一最近语句;[0147]值语句第一匹配子单元,用于第一最近语句被划分为值语句的情况下,将第一最近语句作为与键语句匹配的值语句。[0148]在此基础上,可选的,预设方向包括右方,值语句匹配单元,还可以包括:[0149]第二方向语句确定子单元,用于在将最小的语句相距距离对应的第一方向语句作为第一最近语句之后,在第一最近语句被划分为键语句的情况下,从各框内语句中确定位于键语句下方的第二方向语句;[0150]值语句第二匹配子单元,用于确定各第二方向语句中与键语句距离最近的第二最近语句,并在第二最近语句被划分为值语句的情况下,将第二最近语句作为与键语句匹配的值语句。[0151]可选的,上述信息提取装置,还可以包括:[0152]框外字符第一得到模块,用于将各字符元素中的位于表格框外的字符元素作为框外字符;[0153]框外字符第一聚合模块,用于获取各框外字符的框外排序结果,按照框外排序结果将各框外字符聚合为框外语句。[0154]在此基础上,可选的,框外字符第一聚合模块,可以包括:[0155]首个字符确定单元,用于获取当前处于聚合中状态的目标语句中的末个字符、及按照框外排序结果从各框外字符中确定的首个未聚合的首个字符;[0156]第一相距距离确定单元,用于确定末个字符与首个字符间的第一相距距离;[0157]框外语句得到单元,用于在第一相距距离满足第一距离条件的情况下,将首个字符聚合到目标语句,以得到基于各框外字符聚合出的框外语句。[0158]在此基础上,可选的,首个字符确定单元,可以包括:[0159]末个字符获取子单元,用于获取当前处于聚合中状态的目标语句,将目标语句作为当前子语句,获取当前子语句中的末个字符;[0160]框外语句得到单元,可以包括:[0161]框外子语句得到子单元,用于在第一相距距离满足第一距离条件的情况下,将首个字符聚合到当前子语句,以得到基于各框外字符聚合出的框外子语句;[0162]子语句排序结果得到子单元,用于根据框外排序结果得到各框外子语句的子语句排序结果;[0163]第二相距距离确定子单元,用于获取当前处于聚合中状态的当前语句中的末个子语句、以及按照子语句排序结果从各框外子语句中确定的首个未聚合的首个子语句,并确定末个子语句与首个子语句间的第二相距距离;[0164]框外语句得到子单元,用于在第二相距距离满足第二距离条件的情况下,将首个子语句聚合到当前语句,以得到基于各框外子语句聚合出的框外语句。[0165]在此基础上,可选的,被聚合到同一框外子语句中的各框外字符位于文档的同一行,并且被聚合到同一框外语句中的各框外子语句位于文档的不同行。[0166]可选的,上述信息提取装置,还可以包括:[0167]框外字符第二得到模块,用于将各字符元素中的位于表格框外的字符元素作为框外字符;[0168]字符相距距离确定模块,用于获取当前处于聚合中状态的目标语句中的末个字符,针对各框外字符中的未聚合的每个未聚合字符,确定未聚合字符与末个字符间的字符相距距离;[0169]框外字符第二聚合模块,如果各字符相距距离中最小的字符相距距离小于预设距离阈值,则将最小的字符相距距离对应的未聚合字符聚合到目标语句,以得到基于各框外字符聚合出的框外语句。[0170]可选的,上述信息提取装置,还可以包括:[0171]文档更新模块,用于在获取从文档中提取出来的线段元素和字符元素之前,获取文档,并对文档进行文档格式转换,得到便携式文档格式下的文档,根据转换结果更新文档;[0172]字符元素提取模块,用于对文档进行解析,并根据解析结果从文档中提取出线段元素和字符元素。[0173]本发明实施例所提供的信息提取装置,通过字符元素获取模块和字符元素聚合模块相互配合,获取从文档中提取出来的线段元素和字符元素,然后基于线段元素构建表格框,并针对每个表格框,将位于表格框内的各字符元素聚合为框内语句;进一步,针对各表格框组成的表格,通过框内语句划分模块获取针对表格输入的关键字词,并基于关键字词将各框内语句分别划分为键语句或值语句;由此,针对每个键语句,通过结构化信息提取模块可以从各框内语句中确定与键语句匹配的值语句,并将键语句与匹配的值语句作为从文档中提取出来的结构化信息。上述装置,可以从文档中自动提取出结构化信息。[0174]本发明实施例所提供的信息提取装置可执行本发明任意实施例所提供的信息提取方法,具备执行方法相应的功能模块和有益效果。[0175]值得注意的是,上述信息提取装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。[0176]图10示出了可以用来实施本发明的实施例的电子设备10的结构示意图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备(如头盔、眼镜、手表等)和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本发明的实现。[0177]如图10所示,电子设备10包括至少一个处理器11,以及与至少一个处理器11通信连接的存储器,如只读存储器(rom)12、随机访问存储器(ram)13等,其中,存储器存储有可被至少一个处理器执行的计算机程序,处理器11可以根据存储在只读存储器(rom)12中的计算机程序或从存储单元18加载到随机访问存储器(ram)13中的计算机程序,来执行各种适当的动作和处理。在ram13中,还可存储电子设备10操作所需的各种程序和数据。处理器11、rom12以及ram13通过总线14彼此相连。输入/输出(i/o)接口15也连接至总线14。[0178]电子设备10中的多个部件连接至i/o接口15,包括:输入单元16,例如键盘、鼠标等;输出单元17,例如各种类型的显示器、扬声器等;存储单元18,如磁盘、光盘等;以及通信单元19,例如网卡、调制解调器、无线通信收发机等。通信单元19允许电子设备10通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。[0179]处理器11可以是各种具有处理和计算能力的通用和/或专用处理组件。处理器11的一些示例包括但不限于中央处理单元(cpu)、图形处理单元(gpu)、各种专用的人工智能(ai)计算芯片、各种运行机器学习模型算法的处理器、数字信号处理器(dsp)、以及任何适当的处理器、控制器、微控制器等。处理器11执行上文所描述的各个方法和处理,例如信息提取方法。[0180]在一些实施例中,信息提取方法可被实现为计算机程序,其被有形地包含于计算机可读存储介质,例如存储单元18。在一些实施例中,计算机程序的部分或者全部可以经由rom12和/或通信单元19而被载入和/或安装到电子设备10上。当计算机程序加载到ram13并由处理器11执行时,可以执行上文描述的信息提取方法的一个或多个步骤。备选地,在其他实施例中,处理器11可通过其他任何适当的方式(例如,借助于固件)而被配置为执行信息提取方法。[0181]本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、芯片上系统的系统(soc)、负载可编程逻辑设备(cpld)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、以及至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、以及该至少一个输出装置。[0182]用于实施本发明的方法的计算机程序可以采用一个或多个编程语言的任何组合来编写。这些计算机程序可以提供给通用计算机、专用计算机或是其他可编程数据处理装置的处理器,使得计算机程序当由处理器执行时使流程图和/或框图中所规定的功能/操作被实施。计算机程序可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行并且部分地在远程机器上执行或完全在远程机器或服务器上执行。[0183]在本发明的上下文中,计算机可读存储介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的计算机程序。计算机可读存储介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。备选地,计算机可读存储介质可以是机器可读信号介质。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。[0184]为了提供与用户的交互,可以在电子设备上实施此处描述的系统和技术,该电子设备具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给电子设备。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。[0185]可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)、区块链网络和互联网。[0186]计算系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与vps服务中,存在的管理难度大,业务扩展性弱的缺陷。[0187]应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发明中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本发明的技术方案所期望的结果,本文在此不进行限制。[0188]上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。当前第1页12当前第1页12