CN114022888B - 用于识别pdf表格的方法、设备和介质 - Google Patents

用于识别pdf表格的方法、设备和介质 Download PDF

Info

Publication number
CN114022888B
CN114022888B CN202210007815.7A CN202210007815A CN114022888B CN 114022888 B CN114022888 B CN 114022888B CN 202210007815 A CN202210007815 A CN 202210007815A CN 114022888 B CN114022888 B CN 114022888B
Authority
CN
China
Prior art keywords
scanning
column
scan
determining
text
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202210007815.7A
Other languages
English (en)
Other versions
CN114022888A (zh
Inventor
朱峰
尹扬
郭鹏华
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Suntime Information Technology Co ltd
Original Assignee
Shanghai Suntime Information Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shanghai Suntime Information Technology Co ltd filed Critical Shanghai Suntime Information Technology Co ltd
Priority to CN202210007815.7A priority Critical patent/CN114022888B/zh
Publication of CN114022888A publication Critical patent/CN114022888A/zh
Application granted granted Critical
Publication of CN114022888B publication Critical patent/CN114022888B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本公开的实施例涉及用于识别PDF表格的方法、设备和介质。在该方法中,可以针对PDF文件检索目标关键字,以便确定PDF文件中的目标表格区域;获取处于目标表格区域内的多个文本块;基于所述多个文本块的坐标,确定关于目标表格的扫描区域的左上起点和右下终点,以便提取扫描区域内的所有文本块;基于所提取的扫描区域内的所有文本块的坐标,确定对角坐标集合,所述对角坐标集合包括所有文本块中的每一个文本块的对角坐标;扫描对角坐标集合,以便生成扫描结果数组;以及遍历扫描结果数组,以便确定目标表格中的单元格文本信息。由此,本公开能够实现复杂PDF表格的精确识别,并且还可以实现表格提取、分析等处理。

Description

用于识别PDF表格的方法、设备和介质
技术领域
本公开的实施例总体涉及数据处理领域,并且更具体地涉及一种用于识别PDF表格的方法、计算设备和计算机可读存储介质。
背景技术
PDF(Portable Document Format,便携文件格式)是一种由Adobe公司开发的一种电子文档格式,其具有与操作系统平台无关性的特点。PDF属于版式文档,页面之间相对独立,从而可以精确描述文档布局并展现文档版面。然而PDF不记录文档的逻辑结构,换言之,PDF文本不包括其中的表格组织的公式关系。因此,需要识别PDF表格的方案。
传统的用于识别PDF表格的方案包括:分别识别PDF表格中的表格线和表格内容;以及通过图像处理的方法提取表格。在第一种方案中,表格线段可能以一个个路径操作符绘画成形,其可能表示为公式分式线、矢量图、转曲字符等元素,而表格内容则包括各类不同的字符表,其常与版面其他内容混杂一起,不易识别。对于第二种方案,则需要图像识别出表格线段,从而确定表格框并提取框内区域,最后对框内区域图像进行OCR识别。
在传统的用于识别PDF表格的方案中,表格识别需基于显著的表格线段。如果表格隐藏了其表格线段或者表格线段以不规范的方式体现时,传统的表格识别方案往往无法准确识别表格。同时,对于包括字符混杂、叠加、偏移等情形的表格内容,对其直接读取准确率不高。
综上,传统的用于识别PDF表格的方案所存在的不足之处在于:必须依赖表格标识线段并且无法准确识别复杂的表格内容。
发明内容
针对上述问题,本公开提供了一种用于识别PDF表格的方法、计算设备和计算机可读存储介质,能够准确识别复杂的表格内容,且无需依赖表格标识线段的识别。
根据本公开的第一方面,提供了一种用于识别PDF表格的方法,包括:针对PDF文件检索目标关键字,以便确定PDF文件中的目标表格区域;获取处于目标表格区域内的多个文本块;基于多个文本块的坐标,确定关于目标表格的扫描区域的左上起点和右下终点,以便提取扫描区域内的所有文本块;基于所提取的扫描区域内的所有文本块的坐标,确定对角坐标集合,对角坐标集合包括所有文本块中的每一个文本块的对角坐标;扫描对角坐标集合,以便生成扫描结果数组;以及遍历扫描结果数组,以便确定目标表格中的单元格文本信息。
根据本公开的第二方面,提供了一种计算设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行本公开的第一方面的方法。
在本公开的第三方面中,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中计算机指令用于使计算机执行本公开的第一方面的方法。
在一些实施例中,将预定义垂直扫描线从对角坐标集合的水平坐标起始处、以预定扫描间隔扫描对角坐标集合,以便将扫描结果保持到列结果数组,列结果数组包括与各扫描位置序号对应的扫描采样位置和单次扫描的总命中数;将预定义水平扫描线从对角坐标集合的竖直坐标起始处、以预定扫描间隔扫描对角坐标集合,以便将扫描结果保持到行结果数组,行结果数组包括与各扫描位置序号对应的扫描采样位置和单次扫描的总命中数。
在一些实施例中,遍历列结果数组,以便确定与不为0的单次扫描的总命中数所对应的第一扫描采样位置,以及与为0的单次扫描的总命中数所对应的第二扫描采样位置;基于第一扫描采样位置和第二扫描采样位置,确定列宽数组;基于列宽数组和列结果数组,确定目标表格中的每列的起点和终点。
在一些实施例中,遍历行结果数组,以便确定与不为0的单次扫描的总命中数所对应的第三扫描采样位置,以及与为0的单次扫描的总命中数所对应的第四扫描采样位置;基于第三扫描采样位置和第四扫描采样位置,确定行宽数组;基于行宽数组和行结果数组,确定目标表格中的每行的起点和终点;以及基于每行的起点和终点和每列的起点和终点,确定目标表格中的单元格坐标信息,以便基于单元格坐标信息获取单元格文本信息。
在一些实施例中,获取同行不同列的单元格文本信息;基于正则表达式判断,确定符合年份字符串格式的单元格文本信息为年份数据;获取年份数据的列位置信息和行位置信息;在当前年份数据的行位置信息与下一年份数据的行位置信息之间的单元格文本信息中查询,以便确定第一个具有相同列位置信息、且单元格文本信息均为非数字文本的列为指标标识数据列;获取指标标识数据列的行位置信息;基于指标标识数据列的行位置信息,将位于指标标识数据列右侧的、与指标标识数据具有相同行位置信息、并且与当前年份数据具有相同列位置信息的文本信息确定为与当前年份数据和当前指标标识数据相关联的数值。
在一些实施例中,构建关于与PDF文件相关联的多个机构的机构关键特征数组,机构关键特征数组包括:与机构相关联的关键特征的数量、关键特征和关键特征所对应的权重;基于机构关键特征数组,针对基于PDF文件所提取出的文本信息进行检索,以便确定与机构相关联的关键特征出现的次数;基于所计算的与机构相关联的关键特征出现的次数,生成机构权重序列,以用于确定PDF文件的目标关联机构。
在一些实施例中,确定与机构权重序列中的最大值所对应的机构;确定与最大值所对应的机构的数量是否为1;响应于确定与最大值所对应的机构的数量为1,确定与最大值所对应的机构为PDF文件的目标关联机构;以及响应于确定与最大值所对应的机构的数量大于1,确定未识别目标关联机构。
在一些实施例中,确定与目标表格相关联的表格特征;确定在扫描文本块的对角坐标期间表格特征是否重复出现;响应于确定表格特征重复出现,根据表格特征以及表格特征重复出现次数将文本块分割为不同表格;以及响应于确定表格特征未重复出现,确定文本块属于同一表格。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
结合附图并参考以下详细说明,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。在附图中,相同或相似的附图标注表示相同或相似的元素。
图1示出了根据本公开的实施例的所使用的PDF表格的示例图。
图2示出了用于实现根据本公开的实施例的用于识别PDF表格的方法的系统200的示意图。
图3示出了根据本公开的实施例的用于识别PDF表格的方法300的流程图。
图4示出了根据本公开的实施例的经由PDF处理工具处理后多个文本块的示意图。
图5示出了根据本公开的实施例的用于扫描对角坐标集合的方法500的流程图。
图6示出了根据本公开的实施例的执行列扫描的示意图。
图7示出了根据本公开的实施例的用于遍历扫描结果数组的方法700的流程图。
图8示出了根据本公开的实施例的用于遍历扫描结果数组的另一个方法800的流程图。
图9示出了根据本公开的实施例的用于表格信息挖掘的方法900的流程图。
图10示出了根据本公开的实施例的表格信息机构挖掘方法1000的流程图。
图11示出了根据本公开的实施例的用于确定PDF文件的目标关联机构的方法1100的流程图。
图12示出了根据本公开的实施例的用于分割表格的方法1200的流程图。
图13示出了根据本公开的实施例的在同一页中的多个表格的示意图。
图14示出了根据本公开的实施例的电子设备1400的框图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
在本文中使用的术语“包括”及其变形表示开放性包括,即“包括但不限于”。除非特别申明,术语“或”表示“和/或”。术语“基于”表示“至少部分地基于”。术语“一个示例实施例”和“一个实施例”表示“至少一个示例实施例”。术语“另一实施例”表示“至少一个另外的实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。
如前文所描述,隐藏了表格线段的表格或者以分式线、矢量图、转曲字符等不规范方式构成的表格无法被传统的识别PDF表格方案所识别。在没有准确识别表格线段的前提下,传统的表格识别方案无法准确识别表格内容。由于PDF表格并无统一格式,表格内容可能会出现混杂、叠加、偏移字符,直接对表格内容进行读取会造成单元格间数据交叉错乱。同时,数个单元格的数据读取错乱可能会连锁传递至相邻的单元格识别过程中,最后导致整体表格内容的识别错误或者无效。这在其中存在大量数字且单元格分隔不明显的金融领域的表格(例如,利润表、资产负债表、现金流量表)中体现尤为突出。
图1示出了根据本公开的实施例的所使用的PDF表格的示例图。如图1所示,在日常处理的PDF表格中,出于美观等原因,PDF表格并不包含分隔线段,同时数据也不会使用明显的单元格分隔线进行分隔。这种情况下,尽管现有技术中本领域的部分PDF解析工具可以将PDF文本解析为可读取的数据,然而其并不能将表格中的各类数据与表格逻辑进行对应,这样造成读取出的数据会出现错乱。这在以数据为主的金融表格(利润表、资产负债表、现金流量表等)中更加显著。以图1中流动资产栏为例,直接对其解析可能会得出一个整体数据“流动资产234844052677049108810147648”,从而丢失其中具有实际意义的空格信息。即使存在部分可以解析空格的PDF解析工具,其可以将表格解析为“流动资产”、“23484”、“40526”等单元格,但是其仍然无法将单元格“23484”、“40526”对应于其上方的年份单元格“2019A”、“2020A”以及对应的指标标识。由于上下单元格的不对应,数据丧失了对应附加信息,成为了无意义的垃圾数据。在包括更复杂字符串的表格中,这种情况可能会更加严重。例如,在包括换行的长数据的单元格中,可能仅有部分数据被读取,而另一部分数据直接丢失。
为了至少部分地解决上述问题以及其他潜在问题中的一个或者多个,本公开的示例实施例提出了一种用于识别PDF表格的方案,在本公开方案中,通过确定关于目标表格的扫描区域的左上起点和右下终点来提取扫描区域内的所有文本块,然后基于该所有文本块的坐标而生成指示每一个文本块的对角坐标的对角坐标集合,以及扫描对角坐标集合来生成扫描结果数组,进而经由遍历扫描结果数组而最终确定单元格文本信息,本公开可以在不依赖明显表格结构或逻辑框架的情况下由对角坐标集合、扫描结果数组来定位每一个数据单元格的整体大小,从而能够精确将PDF表格挖掘处理为具有规整结构的数据,例如,将PDF表格挖掘为Excel数据表单、XML文件、YAML文件等形式。
另外,本公开还提供了对所挖掘数据进行进一步挖掘(例如,年份挖掘、数据深度挖掘、表格分割)的相应方法,从而提升所挖掘数据的精细度。
图2示出了用于实现根据本公开的实施例的用于识别PDF表格的方法的系统200的示意图。如图2中所示,系统200包括计算设备210和PDF文件管理设备230和网络240。计算设备110、PDF文件管理设备230可以通过网络240(例如,因特网)进行数据交互。
PDF文件管理设备230,其例如可以执行对PDF文件的常规管理,例如收集、存储PDF文件。PDF文件管理设备230还可以将所管理的PDF文件发送给计算设备210。PDF文件管理设备230例如而不限于:可执行PDF文件读取和修改的台式计算机、膝上型计算机、上网本计算机、平板电脑、网络浏览器、电子书阅读器、个人数字助理(PDA)和可穿戴计算机(诸如智能手表和活动追踪器设备)等。PDF文件管理设备230可以配置成存储PDF文件,将PDF文件经由网络240发送到计算设备210,并且接收来自计算设备210处理的PDF文件。
关于计算设备210,其例如用于经由网络240接收来自PDF文件管理设备230的PDF文件;针对所接收的PDF文件识别PDF表格。计算设备210还可以基于所识别的PDF表格来确定PDF文件的目标关联机构、确定与年份数据和指标标识数据相关联的数值以及将文本块分割为不同表格。计算设备210可以具有一个或多个处理单元,包括诸如GPU、FPGA和ASIC等的专用处理单元以及诸如CPU的通用处理单元。另外,在每个计算设备210上也可以运行着一个或多个虚拟机。在一些实施例中,计算设备210与PDF文件管理设备230可以集成在一起,也可以是彼此分立设置。在一些实施例中,计算设备210例如包括目标表格区域确定单元212、文本块获取单元214、扫描区域确定单元216、坐标确定单元218、扫描单元220、遍历单元222以及处理单元224。
目标表格区域确定单元212可以配置成确定PDF文件中的目标表格区域。
文本块获取单元214可以配置成获取处于目标表格区域内的多个文本块。
扫描区域确定单元216可以配置成基于所述多个文本块的坐标,确定关于目标表格的扫描区域的左上起点和右下终点,以便提取扫描区域内的所有文本块。
坐标确定单元218可以配置成基于所提取的扫描区域内的所有文本块的坐标,确定对角坐标集合,所述对角坐标集合包括所有文本块中的每一个文本块的对角坐标。
扫描单元220可以配置成扫描对角坐标集合,以便生成扫描结果数组。
遍历单元222可以配置成遍历扫描结果数组,以便确定目标表格中的单元格文本信息。
处理单元224可以配置成执行目标关联机构确定、年份数据和指标标识数据相关联的数值确定以及将文本块分割等多种操作。
单元212-单元222可以依据预设关键字在PDF文本中检索表格文本块。在将相关联的表格文本块提取出来后,以平面坐标系的方式确定各个文本块的坐标。根据文本块的平面坐标对文本块进行扫描,从而在行和列两个维度上确定表格实际单元格的行宽以及列宽。在分别确定单元格行宽以及列宽后,通过组合可以获取每个单元格的位置,从而准确挖掘识别PDF文本中的PDF表格。
基于单元212-单元222挖掘识别的PDF表格,处理单元224还可以对所挖掘识别的表格数据进行多种处理。处理包括但不限于对表格数据的年份-指标数据进行提取对应,挖掘表格所属的机构以及分割同页中出现的多个表格等。在对PDF文件完成以上处理后,可以将所处理的PDF表格经由网络240传送到PDF文件管理设备230。
下文中的一些示例将以图1所示的PDF表格为例说明本公开技术方案的工作原理,然而可以理解的是本公开所适用的PDF表格可以以多种不同形式表现,而不限于图1表格的表现形式。
以下结合图1、图2说明用于识别PDF表格的方法300。图3出于整体呈现用于识别PDF表格的方法的工作原理的目的而示出了各种路径和顺序,但是其中一些路径和路径并不是实施以下的示例所必需的,可以以不同的顺序和路径执行本公开技术方案所涉及的各种方法。
图3示出了根据本公开的实施例的用于识别PDF表格的方法300的流程图。方法300可由如图2所示的计算设备210执行,也可以在图14所示的电子设备1400处执行。应当理解的是,方法300还可以包括未示出的附加框和/或可以省略所示出的框,本公开的范围在此方面不受限制。
在步骤302,计算设备210针对PDF文件检索目标关键字,以便确定PDF文件中的目标表格区域。
在一些示例中,目标关键字可以是由用户根据需求设置的不同类型的关键字。以金融表格为例,目标关键字可以是“资产负债表”、“财务指标”、“收入预测”、“盈利预估”等。这些关键字下通常包括用户所期望的PDF表格。
应当理解,通过在PDF文本中检索这些目标关键字,可以确定PDF文本的目标表格区域,即PDF表格所在区域。目标PDF表格区域的确定可以基于预定义的表格模型。例如,表格文本块的左上角起始点可为目标关键字,右下角结束点可能为连续数字字符串的最后一个数字字符串。表格模型可由用户根据PDF表格实际处理经验调整和设置。
以图1为例,通过确定关键字“资产负债表”,可以以左上角的“资产负债表”为左上起点,右下角的“3665”为右下终点。基于左上起点和右下终点的水平和垂直线,可以构成一个整体矩形方块。可以认为的是,在此整体矩形方块内的所有文本块均属于目标文本块,即需要识别的PDF表格内容。
注意的是,由于在步骤301中所确定是一个粗略的目标PDF表格区域,为了确保目标PDF表格不被遗漏,还可以设置相应的容错冗余,即将左上起点设置在左上目标(例如,“资产负债表”)的左上数个像素(例如,3个像素),将右下起点设置在右下目标(例如,“3665”)的右下数个像素(例如,3个像素),从而确保目标PDF表格不被遗漏。容错冗余的具体值可由用户根据PDF表格实际处理经验调整和设置。
还应注意的是,在连续出现的多个表格中,例如,处于同一页的资产负债表和利润表使用如上所述的表格模型可能会导致多个表格被识别为同一个表格的目标文本块。针对这种情况,本公开提供了相应处理方法1200对多个同页连续的不同表格进行分割,方法1200将在下文中具体描述。
在步骤304,计算设备210基于所确定的目标表格区域,获取处于目标表格区域内的多个文本块。例如,在步骤302中通过检索目标关键字确定了目标表格区域,随后基于目标表格区域,通过PDF处理领域常用的处理工具,例如PDFminer、Camelot等,可以将目标表格区域的所有文本块全部提取,以供随后处理为相应的PDF表格以及表格内容。
注意的是,利用PDF处理领域常用的处理工具获取处于表格区域内的多个文本块只是获取文本块的文本内容,即,识别为可供处理的字符或者字符串。处理工具并没有识别PDF表格的表格逻辑,例如,无法识别表格中的多个文本块的文本内容之间的关联。
以图1的表格为示例,图4示出了根据本公开的实施例的经由PDF处理工具处理后多个文本块的示意图。如图4所示,经过PDF处理工具解析处理,可以获取目标表格区域内的多个文本块内的文本内容,即,字符串,然而其无法识别表格逻辑。
还应注意的是,PDF处理领域常用的处理工具可以包括任何可以解析PDF文本的代码、软件、库文件,例如由Python、Java等程序语言可调用的软件包或者软件库,其包括但不限于PDFminer、Camelot等。
在步骤306,计算设备210基于所述多个文本块的坐标,确定关于目标表格的扫描区域的左上起点和右下终点,以便提取扫描区域内的所有文本块。例如,计算设备210可以为步骤304中所获取的多个文本块建立坐标。坐标的坐标系可以是基于文本块原先的PDF文本,也可以是基于在步骤302中提取出来的PDF文本的目标表格区域。
以示例的方式,坐标系可以以左上角为原点,区域正右方为x水平方向,区域正下方为y垂直方向。注意的是,还可以基于不同的方式建立不同的坐标系,坐标系的选取不会影响后续的扫描及处理过程。
在建立有坐标系后,所获取的每个文本块都可以以坐标定义位置。由于文本块均以单元格形式形成,因此只需文本块的左上坐标以及右下坐标即可定位文本块。在获得所有文本块的坐标后,可以确定关于目标表格的扫描区域的左上起点和右下终点,以便提取扫描区域内的所有文本块。
PDF文本中的目标表格的扫描区域的左上起点和右下终点可是PDF表格区域的最左上顶点以及最右下顶点。在确定扫描区域的最左上顶点以及最右下顶点后,可以在随后的步骤对区域内的文本块进行扫描。
在步骤308,计算设备210基于所提取的扫描区域内的所有文本块的坐标,确定对角坐标集合,所述对角坐标集合包括所有文本块中的每一个文本块的对角坐标。在步骤302-306中,已经对扫描区域内的所有文本块建立有坐标系,因此可以确定所有文本块的坐标集合,其中对角坐标集合包括所有文本块中的每一个文本块的对角坐标。
以下结合公式(1)说明文本块
Figure 442444DEST_PATH_IMAGE001
的坐标集合。
Figure 933468DEST_PATH_IMAGE002
在上述公式(1)中,
Figure 381767DEST_PATH_IMAGE003
代表文本块数,
Figure 708974DEST_PATH_IMAGE004
代表文本块
Figure 635342DEST_PATH_IMAGE005
的左上顶点的坐标,
Figure 980873DEST_PATH_IMAGE006
是文本块
Figure 82296DEST_PATH_IMAGE005
的右下顶点的坐标。
在确定文本块
Figure 880488DEST_PATH_IMAGE005
的坐标集合后,可以获得扫描区域的最小水平坐标
Figure 876126DEST_PATH_IMAGE007
、最大水平坐标
Figure 810584DEST_PATH_IMAGE008
,最小垂直坐标
Figure 85838DEST_PATH_IMAGE009
、最大垂直坐标
Figure 636905DEST_PATH_IMAGE010
结合公式(2)-(5)说明以上极值坐标可以分别表示如下。
Figure 905076DEST_PATH_IMAGE011
在上述公式(2)-(5)中,
Figure 241510DEST_PATH_IMAGE012
代表文本块
Figure 202513DEST_PATH_IMAGE005
左上顶点垂直坐标,
Figure 975297DEST_PATH_IMAGE012
代表文本块
Figure 781579DEST_PATH_IMAGE005
左上顶点水平坐标,
Figure 706941DEST_PATH_IMAGE013
代表文本块
Figure 573266DEST_PATH_IMAGE005
右下顶点垂直坐标,
Figure 833346DEST_PATH_IMAGE014
代表文本块
Figure 443319DEST_PATH_IMAGE005
右下顶点水平坐标。
在步骤310,计算设备210扫描对角坐标集合,以便生成扫描结果数组。在步骤304确定对角坐标集合后,计算设备210可以扫描对角坐标集合,从而生成扫描结果数组。扫描可以是分别以行和列的方式进行,即分别以垂直线段步进扫描在步骤304中确定的扫描区域,从而确定扫描区域的单元行的相关信息,信息可以被存储到行扫描结果数组以供进一步分析,并且以水平线段步进扫描在步骤304中确定的扫描区域,从而确定扫描区域的单元列的相关信息,信息可以被存储到列扫描结果数组以供进一步分析。
注意的是,行和列的扫描不分先后,可以先进行行的扫描也可以先进行列的扫描。同时,用户可以对扫描设置扫描间隔
Figure 237835DEST_PATH_IMAGE015
,例如,3个坐标值。以此方式,扫描线段将按照预定扫描间隔步进扫描过整个扫描区域。
下文将结合方法500具体介绍扫描的具体步骤。通过扫描后,可以将行和列的扫描结果分别存储到行扫描结果数组和列扫描结果数组,通过对扫描结果数组进行相应分析,可以确定目标表格的行和列的相应信息。
在步骤312,计算设备210遍历扫描结果数组,以便确定目标表格中的单元格文本信息。通过在步骤310中扫描,可以获得包括行和列信息的行扫描结果数组和列扫描结果数组。以列扫描结果数组为例,数组可包括每个扫描位置、每个扫描位置对应的扫描命中数等信息。根据扫描位置对应的扫描命中数可以计算出对应当前单元格的列宽信息。
例如,在命中为0,未命中为1的情况下,所扫描的列的列宽具体可以是数组中第一个不为0的扫描位置减去遍历到第一个为0的扫描位置。通过对列扫描结果数组遍历完毕,可以得出当前PDF表格的各列的列宽数组。数组记录有PDF表格每列的列宽。
同理可以通过遍历的方法得出当前PDF表格的行宽数组,其中记录有PDF表格每列的行宽。通过组合以上行宽和列宽数据,可以获取目标PDF表格的单元格位置,并按照单元格位置提取表格的单元格文本信息,从而准确识别PDF表格。
对数组的遍历可以用本领域常用的程序语言(例如,C、Python、Java)来执行。下文将结合方法700具体介绍遍历的具体步骤以及相关的程序语言伪代码。
图5示出了根据本公开的实施例的用于扫描对角坐标集合的方法500的流程图。在图5中,扫描对角坐标集合可以例如是经由图3的方法300的步骤310所生成。
在步骤512,计算设备210将预定义垂直扫描线从对角坐标集合的水平坐标起始处、以预定扫描间隔扫描对角坐标集合。
在步骤514,计算设备210将扫描结果保持到列结果数组,所述列结果数组包括与各扫描位置序号对应的扫描采样位置和单次扫描的总命中数。
在步骤516,计算设备210将预定义水平扫描线从对角坐标集合的竖直坐标起始处、以预定扫描间隔扫描对角坐标集合。
在步骤518,计算设备210将扫描结果保持到行结果数组,所述行结果数组包括与各扫描位置序号对应的扫描采样位置和单次扫描的总命中数。
在以上步骤中,步骤512-514是在水平方向以垂直扫描线对坐标坐标集合执行列扫描,而步骤516-518是在垂直方向以水平扫描线对坐标坐标集合执行行扫描。下文将结合图5和图6说明列扫描的方法。
图6示出了根据本公开的实施例的执行列扫描的示意图。如图6所示,计算设备210定义了垂直扫描线
Figure 540641DEST_PATH_IMAGE016
以进行扫描。
Figure 288017DEST_PATH_IMAGE016
长度可以设置为方法300的步骤308中所获取的最大垂直坐标
Figure 452413DEST_PATH_IMAGE010
,同时扫描区间设置为
Figure 336055DEST_PATH_IMAGE008
。由于
Figure 75341DEST_PATH_IMAGE017
并且
Figure 44434DEST_PATH_IMAGE018
,因此扫描线可以在垂直高度
Figure 746942DEST_PATH_IMAGE010
上扫描过全部的目标扫描区域
Figure 750670DEST_PATH_IMAGE008
,而不会产生遗漏。
扫描开始在对角坐标集合的水平坐标起始处,并且以预定扫描间隔
Figure 395278DEST_PATH_IMAGE015
扫描对角坐标集合。扫描间隔
Figure 851667DEST_PATH_IMAGE015
属于超越参数,即,其可以由用户根据表格特征和表格处理经验来设置和调整。扫描间隔
Figure 357866DEST_PATH_IMAGE015
越小,扫描越精细,对扫描噪声越敏感,扫描误差越小,但扫描时间长。扫描间隔
Figure 950522DEST_PATH_IMAGE015
越大,扫描越粗糙,扫描噪声不敏感,扫描误差越大,但扫描时间短。例如,可以将表格间隔
Figure 766031DEST_PATH_IMAGE015
默认设置为3个坐标值,在扫描时间过长的情况下可以将
Figure 709716DEST_PATH_IMAGE015
加大到5个坐标值或者在扫描误差过大的情况下可以将
Figure 282255DEST_PATH_IMAGE015
减小到1个坐标值。以此方式,扫描线段将按照预定扫描间隔
Figure 729417DEST_PATH_IMAGE015
步进扫描过整个扫描区域。
通过按照扫描间隔
Figure 715828DEST_PATH_IMAGE019
步进扫描,在水平方向上,每个经扫描的位置
Figure 897542DEST_PATH_IMAGE020
结合公式(6)来说明。
Figure 994811DEST_PATH_IMAGE021
在上述公式(6)中,
Figure 827637DEST_PATH_IMAGE015
代表扫描间隔,
Figure 719370DEST_PATH_IMAGE022
代表扫描位置序号。
当扫描线扫描到文本块中的文本内容时,即,扫描线与文本内容有相交的情况下,可以认为扫描线命中了文本块。以下结合公式(7)说明命中函数
Figure 388380DEST_PATH_IMAGE023
Figure 289340DEST_PATH_IMAGE024
在上述公式(7)中,
Figure 711094DEST_PATH_IMAGE005
代表文本块,
Figure 304886DEST_PATH_IMAGE025
代表扫描的位置,
Figure 195613DEST_PATH_IMAGE026
代表文本块
Figure 900264DEST_PATH_IMAGE005
的垂直左坐标、
Figure 442104DEST_PATH_IMAGE013
代表文本块
Figure 941218DEST_PATH_IMAGE005
的垂直右坐标。在命中函数中,当发生了扫描线与文本块的命中时,命中函数的函数值为1,否则命中函数的函数值为0。
同时还可以计算单次扫描的命中总数
Figure 322171DEST_PATH_IMAGE027
。以下结合公式(8)说明命中总数
Figure 564933DEST_PATH_IMAGE027
Figure 961279DEST_PATH_IMAGE028
在上述公式(8)中,命中总数
Figure 631295DEST_PATH_IMAGE027
代表对扫描线与文本命中数的求和。具体地,命中总数也表示扫描线在当前扫描位置总共与多少个文本块相交。
例如,当扫描线步进扫描到“资产负债表(百万元)” 文本块的“万”字符附近时,总共会与字符发生四次相交,即,四次命中。除与“资产负债表(百万元)”命中外,还分别与“应收票据及应收账款”文本块、“应收票据及应收账款”文本块和“归属母公司股东权益”文本块相交命中。扫描的命中总数可以在随后用于计算文本块的列宽度。
在步骤514,计算设备210将扫描结果保持到列结果数组,所述列结果数组包括与各扫描位置序号对应的扫描采样位置和单次扫描的总命中数。如上在步骤510中所得,通过扫描获取了每个扫描间隔
Figure 496614DEST_PATH_IMAGE015
对应的扫描采样位置
Figure 277488DEST_PATH_IMAGE025
和扫描命中总数
Figure 793920DEST_PATH_IMAGE027
,因此可以将两个数据组合存入到列结果数组
Figure 634837DEST_PATH_IMAGE029
。以下结合公式(9)说明列结果数组
Figure 253032DEST_PATH_IMAGE029
Figure 837597DEST_PATH_IMAGE030
在上述公式(9)中,
Figure 208535DEST_PATH_IMAGE025
代表扫描的位置,
Figure 971086DEST_PATH_IMAGE031
代表单次扫描命中数。所得的列结果数组可以在随后进行遍历运算,从而获取该列的列宽。
与列扫描同理,在步骤516,计算设备210可以将预定义水平扫描线从对角坐标集合的竖直坐标起始处、以预定扫描间隔扫描对角坐标集合并且在步骤518将扫描结果保持到行结果数组
Figure 794685DEST_PATH_IMAGE032
,所述行结果数组包括与各扫描位置序号对应的扫描采样位置和单次扫描的总命中数。具体实施方式与列扫描相似,在此不再赘述。
在一些示例中,列结果数组
Figure 448521DEST_PATH_IMAGE029
与行结果数组
Figure 673966DEST_PATH_IMAGE032
组合在一起可以为总的扫描结果数组
Figure 604488DEST_PATH_IMAGE033
图7示出了根据本公开的实施例的用于遍历扫描结果数组的方法700的流程图。在图7中,遍历可以对应于图3的方法300的步骤312。如上所述,在方法500中,获取了列结果数组
Figure 180963DEST_PATH_IMAGE029
、行结果数组
Figure 107331DEST_PATH_IMAGE032
以及扫描结果数组
Figure 187282DEST_PATH_IMAGE033
。通过分别对列结果数组、行结果数组进行遍历计算,可以分别对获取文本块的列宽和行宽,即每列的起点和终点以及每行的起点和终点。通过将所获取的每列的起点和终点以及每行的起点和终点相组合,可以确定目标表格中的单元格坐标信息,并基于单元格坐标信息获取单元格文本信息。
在步骤702,计算设备210遍历列结果数组,以便确定与不为0的单次扫描的总命中数所对应的第一扫描采样位置,以及与为0的单次扫描的总命中数所对应的第二扫描采样位置。
具体来说,遍历运算从列结果数组
Figure 557215DEST_PATH_IMAGE029
中的第一组结果开始,如果该组结果中的扫描的总命中数
Figure 620986DEST_PATH_IMAGE034
为0,则扫描线在此位置没有命中,因此离开该组遍历到下一组,遍历一直到其中第一个不为0的扫描的总命中数
Figure 351044DEST_PATH_IMAGE035
处,即,第一扫描采样位置,此扫描位置可以被确定为列的起点。例如在图6所示的扫描中,第一个扫描总命中数可能为29,即从“资产负债表(百万元)”到“负债和股东权益”。
在确定列的起点后,可以继续遍历,直至遍历到第一个为0的扫描的总命中数
Figure 36235DEST_PATH_IMAGE036
。扫描的总命中数为0即扫描线没有命中,此位置可以是第二扫描采样位置,可以认为所扫描的文本块的列至第二扫描采样位置为止。
在步骤704,计算设备210基于第一扫描采样位置和第二扫描采样位置,确定列宽数组。
列的列宽可以由第二扫描采样位置减去第一扫描采样位置。
可以结合公式(10)说明如何计算列的列宽
Figure 826336DEST_PATH_IMAGE037
Figure 377403DEST_PATH_IMAGE038
在上述公式(10)中,
Figure 645573DEST_PATH_IMAGE039
代表第一个不为0的扫描位置,即第一扫描采样位置,
Figure 778746DEST_PATH_IMAGE040
代表在第一个不为0后的第一个为0的扫描位置,即第二扫描采样位置。
在完成第一列的列宽计算后,可以继续遍历,直到得到扫描区域所有列的列宽。所有所得列的列宽可以被存储到列宽数组
Figure 747271DEST_PATH_IMAGE041
中。
在此提供了执行遍历运算的示例性伪代码。
Figure 254476DEST_PATH_IMAGE042
在伪代码中,参数
Figure 591916DEST_PATH_IMAGE043
表示扫描是否命中,
Figure 517278DEST_PATH_IMAGE044
表示遍历到第一个不为0的命中位置,k为列的数量。
Figure 383603DEST_PATH_IMAGE045
表示在遍历到第一个不为0的列后遍历到的第一个为0的命中位置,
Figure 909262DEST_PATH_IMAGE041
为列宽数组。因此,
Figure 519235DEST_PATH_IMAGE041
通过
Figure 299103DEST_PATH_IMAGE045
减去
Figure 336329DEST_PATH_IMAGE044
记录每列的列宽。当每次完成一次列宽计算后,k累加,最终的k值表示表格有多少列。注意的是,以上仅示出的是遍历运算的伪代码,以该伪代码为基础可以以任意程序语言实现以上遍历运算。
在步骤706,计算设备210基于列宽数组和列结果数组,确定目标表格中的每列的起点和终点。
如上所述,通过列结果数组可以确定扫描与文本块的命中位置,其可以作为所扫描的列的起点。同时通过列结果数组,可以确定所扫描的文本块的列宽。通过起点加上列宽,可以确定扫描的文本块的列的终点。通过遍历数组中的所有命中位置,可以确定目标表格中的每列的起点和终点。
图8示出了根据本公开的实施例的用于遍历扫描结果数组的另一个方法800的流程图。在图8中,遍历可以对应于图3的方法300的步骤312。与方法700类似,方法800示出了遍历行扫描结果数组的步骤,具体包括:在步骤802,计算设备210遍历行结果数组,以便确定与不为0的单次扫描的总命中数所对应的第三扫描采样位置,以及与为0的单次扫描的总命中数所对应的第四扫描采样位置;在步骤902,计算设备210基于第三扫描采样位置和第四扫描采样位置,确定行宽数组;在步骤903,计算设备210基于行宽数组和行结果数组,确定目标表格中的每行的起点和终点;以及在步骤904,计算设备210基于每行的起点和终点和每列的起点和终点,确定目标表格中的单元格坐标信息,以便基于单元格坐标信息获取单元格文本信息。
在方法800中,步骤802、步骤804、步骤806均与步骤702、步骤704、步骤706类似,其区别仅在于将列遍历改为行遍历,在此不再赘述,并且可用于步骤702、步骤704、步骤706的伪代码也可以相应用于步骤802、步骤804、步骤806。
通过方法700的步骤702、步骤704、步骤706和方法800的步骤802、步骤804、步骤806进行遍历后,可以确定每行的起点和终点和每列的起点和终点。
因此,在步骤808,计算设备210可以基于每行的起点和终点和每列的起点和终点,将行列数据组合在一起,从而确定目标表格中的单元格坐标信息。
基于单元格坐标信息可以获取单元格文本信息而不会造成文本信息混杂、丢失。在获得单元格坐标信息后,可以将PDF表格数据依靠单元格格式初始化存储为具有规整表格结构的数据,例如,存储为Excel数据表单、XML文件、YAML文件等形式。
本公开还提供了多个方法对具有规整表格结构的数据进行进一步处理的方法。图9示出了根据本公开的实施例的用于表格信息挖掘的方法900的流程图。在表格中,表格信息往往与其所在行与列的年份和指标标识有很强的相关性。通过用于表格信息挖掘的方法900可以挖掘出表格的年份信息和指标标识信息。
在步骤902,计算设备210获取同行不同列的单元格文本信息,即读取通过以上方法确定的PDF表格的各行的单元格文本信息。以图1为示例,每行的文本信息可以包括“资产负债表(百万元)”、“[会计年度]、[2019A]、[2020A] 、[2021E] 、[2022E] 、[2023E]”等。
在步骤904,计算设备210基于正则表达式判断,确定符合年份字符串格式的单元格文本信息为年份数据。用户可以设计关于年份的正则表达式,例如正则表达式“^(19|20)\d{2}$”,其可以表示从1900-2099年的所有年份。通过所设计的正则表达式,判断行内的单元格中是否存在符合正则表达式的表格信息。如果与则确定该行包含年份信息。
在步骤906,计算设备210获取年份数据所对应的列位置信息和行位置信息。例如可以获得2019A年在表格中的列位置信息和行位置信息,即,其处于第二行及第二列。
在步骤908,计算设备210在当前年份数据的行位置信息与下一年份数据的行位置信息之间的单元格文本信息中查询,以便确定第一个具有相同列位置信息、且单元格文本信息均为非数字文本的列为指标标识数据列。由于一行中可能具有多个年份数据,因此需要找出该行中多个年份数据中的第一个年份数据,以第一个年份数据作为起点,即该年份所属列为第一个指标数据列。同时,根据表格特点,可以确定第一个年份数据前一列为指标标识数据列。指标标识数据列表示了其对应的数据的实际现实含义。
在步骤910,计算设备210获取指标标识数据列的行位置信息。如上所述,可以通过确定的第一个年份数据列确定指标标识数据列。然后可以根据指标标识数据列确定行位置信息,即获取该列下每一行的单元格位置信息。
在步骤912, 计算设备210基于指标标识数据列的行位置信息,将位于指标标识数据列右侧的、与指标标识数据具有相同行位置信息、并且与当前年份数据具有相同列位置信息的文本信息确定为与当前年份数据和当前指标标识数据相关联的数值。在通过以上步骤可以确定指标标识数据列和年份数据行。位于指标标识数据列右侧的、与指标标识数据具有相同行位置信息、并且与当前年份数据具有相同列位置信息的文本信息可以被认为是具有指标标识含义的年份数据。
以图1为例,第一列(“会计年度”及以下)可以被认为是指标标识数据列,其右侧第一个列为数据列,且“2019A”所述行被认定为年份信息行,因此与“流动资产”和“2019A”对应的数据“23484”可以被认为是在2019企业的流动资产。通过以上方式,PDF表格中的每个数字都能匹配到年份数据和指标标识,从而表格识别中保留了其实际含义。
在一些示例中,还可以配置特殊的正则表达式来匹配单元格。特殊的年份正则表达式可以匹配具有后缀字母的年份,例如将具有字母“E”的“2022E”识别为预测年2022,从而更进一步保留了表格数据的实际含义。
图10示出了根据本公开的实施例的表格信息机构挖掘方法1000的流程图。由于机构(例如,金融机构)出具的PDF文件都有很强的表现特征,因此可以通过机构挖掘方法确定PDF文件相关联的机构(例如,撰写PDF文件的金融机构)。
在步骤1002,计算设备210构建关于与PDF文件相关联的多个机构的机构关键特征数组,机构关键特征数组包括:与机构相关联的关键特征的数量、关键特征和关键特征所对应的权重。
具体来说,用户可以预先设置与机构相关联的关键特征的数量、关键特征和关键特征所对应的权重。例如,针对某证券公司,用户可以为其设置3个关键特征,分别为公司名称、公司机构注册办公地址、公司的标识(logo),并对相应特征赋予相应权重,例如公司名称权重为1,公司机构注册办公地址权重为3、公司的标识(logo)权重为5,权重越高认为特征与机构越相关。
在步骤1004,计算设备210基于机构关键特征数组,针对基于PDF文件所提取出的文本信息进行检索,以便确定与机构相关联的关键特征出现的次数。通过设置有关键特征后,可以检索PDF文件中所提取出的文本信息,提取信息的方式可以如上文所描述。通过文本检索,可以确定与机构相关联的关键特征出现的次数。关键特征出现的次数可以与如步骤1002中所定义的权重配合计算相关联机构的可能性。
在步骤1006,计算设备210基于所计算的与机构相关联的关键特征出现的次数,生成机构权重序列,以用于确定PDF文件的目标关联机构。在获得关键特征、特征权重以及特征出现次数后,可以生成机构权重序列。通过对机构权重序列进行排序,从而挖掘出该份PDF文件相关联的机构。例如,机构权重序列排序中第一的为某证券公司,则可以认为该PDF文件与某证券公司相关联,例如文件为某证券公司所撰写。
图11示出了根据本公开的实施例的用于确定PDF文件的目标关联机构的方法1100的流程图,其对应于方法1000中的步骤1006。
在步骤1102,计算设备210确定与机构权重序列中的最大值所对应的机构。通过方法1100中所述的方法,可以取得PDF文件的机构权重序列,确定序列中的最大值对应的机构。
在步骤1104,计算设备210确定与最大值所对应的机构的数量是否为1,即确定是否存在多于一个的最大值对应的机构。例如存在两个或更多个相同的最大值,分别对应两个或更多个不同机构。
在步骤1106,计算设备210响应于确定与最大值所对应的机构的数量为1,确定与最大值所对应的机构为PDF文件的目标关联机构。在只存在1个最大值的情况下,最大值对应的机构为PDF文件的目标关联机构。
在步骤1108,计算设备210响应于确定与最大值所对应的机构的数量大于1,确定未识别目标关联机构。如果存在多个相同最大值且最大值对应的机构不同,则无法确定PDF文本的目标关联机构。需要进一步的方法(例如人工识别)来确定PDF文本的目标关联机构。
图12示出了根据本公开的实施例的用于分割表格的方法1200的流程图。在上文中介绍了用于识别PDF表格的方法,例如方法300,然而用于识别PDF表格的方法依赖于基于表格模型确定目标扫描范围。在同一页中出现多个表格的PDF文件中,表格模型经常会将多张表格识别为同一表格。
图13示出了根据本公开的实施例的在同一页中的多个表格的示意图。如图13所示,在该页中存在三份表格,分别为资产负债表、利润表以及主要财务比率。如果按照方法300中的表格模型进行识别,即以目标关键字为左上角起点,连续数字列中的最后一个数字为右下角终点,则三张表将会被识别为同一个表格。因此,在这种情况下还需要基于方法1200对多张表格进行分割。
在步骤1202,计算设备210确定与所述PDF表格相关联的表格特征。例如,在财务类报表中,年份行一般只会出现一次,指标标识列一般也只会出现一次。因此,可以将年份行或者指标标识列设置为一类表格特征。注意的是,表格特征不限于以上的年份行或者指标标识列,而可以根据表格种类由用户根据表格处理经验设计。
在步骤1204,计算设备210确定在扫描所述文本块的对角坐标期间所述表格特征是否重复出现。在定义由表格相关联的表格特征后,可以在所识别的表格文本块中检索表格特征是否重复出现。例如,可以检索年份行和/或指标标识列是否有重复出现。
在步骤1206,计算设备210响应于确定所述表格特征重复出现,根据所述表格特征以及所述表格特征重复出现次数将所述文本块分割为不同表格。如果确定年份行有重复出现,则根据重复出现的次数将所识别的文本块分隔为多份表格。
例如,在图13中,年份行出现有3次,则可以将表格分割为3份不同表格。同时可以根据表格特征对表格进行分割。例如,在列的维度上,指标标识列属于表与表之间的分隔列。因此可以根据所识别的指标标识列(识别方法在上文有叙述)将文本块分成左侧的资产负债表以及右侧的利润表连带主要财务比率。同时在行的维度上,目标关键字也属于表与表之间的分隔行。因此可以根据所检索的目标关键字利润表、主要财务比率,将右侧的两边分割为两个表格。
最后在步骤1208中响应于确定所述表格特征未重复出现,确定所述文本块属于同一表格。如果没有重复出现表格特征,例如只出现有一次年份行或者指标标识列,则可以认为所识别的文本块属于同一个表格。
图14示出了可以用来实施本公开内容的实施例的示例电子设备1400的示意性框图。例如,如图2所示的计算设备210可以由电子设备1400来实施。如图所示,电子设备1400包括中央处理单元(CPU)1401,其可以根据存储在只读存储器(ROM)1402中的计算机程序指令或者从存储单元1408加载到随机存取存储器(RAM)1403中的计算机程序指令,来执行各种适当的动作和处理。在随机存取存储器1403中,还可存储电子设备1400操作所需的各种程序和数据。中央处理单元1401、只读存储器1402以及随机存取存储器1403通过总线1404彼此相连。输入/输出(I/O)接口1405也连接至总线1404。
电子设备1400中的多个部件连接至输入/输出接口1405,包括:输入单元1406,例如键盘、鼠标、麦克风等;输出单元1407,例如各种类型的显示器、扬声器等;存储单元1408,例如磁盘、光盘等;以及通信单元1409,例如网卡、调制解调器、无线通信收发机等。通信单元1409允许设备1400通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
上文所描述的各个过程和处理,例如方法300、500、700、800、900、1000、1100和1200,可由中央处理单元1401执行。例如,在一些实施例中,方法300、500、700、800、900、1000、1100和1200可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元1408。在一些实施例中,计算机程序的部分或者全部可以经由只读存储器1402和/或通信单元1409而被载入和/或安装到设备1400上。当计算机程序被加载到随机存取存储器1403并由中央处理单元1401执行时,可以执行上文描述的方法300、500、700、800、900、1000、1100和1200的一个或多个动作。
本公开涉及方法、装置、系统、电子设备、计算机可读存储介质和/或计算机程序产品。计算机程序产品可以包括用于执行本公开的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘计算设备。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
这里参照根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理单元,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理单元执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本领域普通技术人员应当了解,本发明不限定于上述的实施例,本发明可以在不偏离其主旨与范围内以许多其它的形式实施。因此,所展示的示例与实施例被视为示意性的而非限制性的,在不脱离如所附各权利要求所定义的本发明精神及范围的情况下,本发明可能涵盖各种的修改与替换。

Claims (10)

1.一种用于识别PDF表格的方法,包括:
针对PDF文件检索目标关键字,以便确定PDF文件中的目标表格区域;
获取处于目标表格区域内的多个文本块;
基于所述多个文本块的坐标,确定关于目标表格的扫描区域的左上起点和右下终点,以便提取扫描区域内的所有文本块;
基于所提取的扫描区域内的所有文本块的坐标,确定对角坐标集合,所述对角坐标集合包括所有文本块中的每一个文本块的对角坐标;
扫描对角坐标集合,以便生成扫描结果数组;
遍历扫描结果数组,以便确定目标表格中的单元格文本信息;
构建关于与PDF文件相关联的多个机构的机构关键特征数组;
基于机构关键特征数组,针对基于PDF文件所提取出的文本信息进行检索,以便确定与机构相关联的关键特征出现的次数;以及
基于所计算的与机构相关联的关键特征出现的次数,生成机构权重序列,以用于确定PDF文件的目标关联机构。
2.根据权利要求1所述的方法,其中扫描对角坐标集合以便生成扫描结果数组包括:
将预定义垂直扫描线从对角坐标集合的水平坐标起始处、以预定扫描间隔扫描对角坐标集合,以便将扫描结果保持到列结果数组,所述列结果数组包括与各扫描位置序号对应的扫描采样位置和单次扫描的总命中数;以及
将预定义水平扫描线从对角坐标集合的竖直坐标起始处、以预定扫描间隔扫描对角坐标集合,以便将扫描结果保持到行结果数组,所述行结果数组包括与各扫描位置序号对应的扫描采样位置和单次扫描的总命中数。
3.根据权利要求2所述的方法,其中遍历扫描结果数组以便确定目标表格中的单元格文本信息包括:
遍历列结果数组,以便确定与不为0的单次扫描的总命中数所对应的第一扫描采样位置,以及与为0的单次扫描的总命中数所对应的第二扫描采样位置;
基于第一扫描采样位置和第二扫描采样位置,确定列宽数组;以及
基于列宽数组和列结果数组,确定目标表格中的每列的起点和终点。
4.根据权利要求3所述的方法,其中遍历扫描结果数组以便确定目标表格中的单元格文本信息还包括:
遍历行结果数组,以便确定与不为0的单次扫描的总命中数所对应的第三扫描采样位置,以及与为0的单次扫描的总命中数所对应的第四扫描采样位置;
基于第三扫描采样位置和第四扫描采样位置,确定行宽数组;
基于行宽数组和行结果数组,确定目标表格中的每行的起点和终点;以及
基于每行的起点和终点和每列的起点和终点,确定目标表格中的单元格坐标信息,以便基于单元格坐标信息获取单元格文本信息。
5.根据权利要求1-4中任一项所述的方法,还包括:
获取同行不同列的单元格文本信息;
基于正则表达式判断,确定符合年份字符串格式的单元格文本信息为年份数据;
获取年份数据的列位置信息和行位置信息;
在当前年份数据的行位置信息与下一年份数据的行位置信息之间的单元格文本信息中查询,以便确定第一个具有相同列位置信息、且单元格文本信息均为非数字文本的列为指标标识数据列;
获取指标标识数据列的行位置信息;以及
基于指标标识数据列的行位置信息,将位于指标标识数据列右侧的、与指标标识数据具有相同行位置信息、并且与当前年份数据具有相同列位置信息的文本信息确定为与当前年份数据和当前指标标识数据相关联的数值。
6.根据权利要求1所述的方法,机构关键特征数组包括:与机构相关联的关键特征的数量、关键特征和关键特征所对应的权重。
7.根据权利要求1或6所述的方法,其中确定PDF文件的目标关联机构还包括:
确定与机构权重序列中的最大值所对应的机构;
确定与最大值所对应的机构的数量是否为1;
响应于确定与最大值所对应的机构的数量为1,确定与最大值所对应的机构为PDF文件的目标关联机构;以及
响应于确定与最大值所对应的机构的数量大于1,确定未识别目标关联机构。
8.根据权利要求1-4中任一项所述的方法,还包括:
确定与所述目标表格相关联的表格特征;
确定在扫描所述文本块的对角坐标期间所述表格特征是否重复出现;
响应于确定所述表格特征重复出现,根据所述表格特征以及所述表格特征重复出现次数将所述文本块分割为不同表格;以及
响应于确定所述表格特征未重复出现,确定所述文本块属于同一表格。
9.一种计算设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-8中任一项所述的方法。
10.一种存储有计算机指令的非瞬时计算机可读存储介质,其中所述计算机指令用于使所述计算机执行权利要求1-8中任一项所述的方法。
CN202210007815.7A 2022-01-06 2022-01-06 用于识别pdf表格的方法、设备和介质 Active CN114022888B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210007815.7A CN114022888B (zh) 2022-01-06 2022-01-06 用于识别pdf表格的方法、设备和介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210007815.7A CN114022888B (zh) 2022-01-06 2022-01-06 用于识别pdf表格的方法、设备和介质

Publications (2)

Publication Number Publication Date
CN114022888A CN114022888A (zh) 2022-02-08
CN114022888B true CN114022888B (zh) 2022-04-08

Family

ID=80069885

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210007815.7A Active CN114022888B (zh) 2022-01-06 2022-01-06 用于识别pdf表格的方法、设备和介质

Country Status (1)

Country Link
CN (1) CN114022888B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114201620A (zh) * 2021-12-17 2022-03-18 上海朝阳永续信息技术股份有限公司 用于挖掘pdf文件中的pdf表格的方法、设备和介质
CN115600620B (zh) * 2022-12-13 2023-06-02 深圳思谋信息科技有限公司 扫码方法、装置、电子设备和存储介质

Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1701343A (zh) * 2002-09-20 2005-11-23 德克萨斯大学董事会 用于信息发现以及关联分析的计算机程序产品、系统以及方法
CN102722475A (zh) * 2012-05-09 2012-10-10 深圳市万兴软件有限公司 一种PDF文档中的表格转换成Excel表格的方法
CN108446264A (zh) * 2018-03-26 2018-08-24 阿博茨德(北京)科技有限公司 Pdf文档中的表格矢量解析方法及装置
CN111062259A (zh) * 2019-11-25 2020-04-24 泰康保险集团股份有限公司 表格识别方法和装置
CN111325110A (zh) * 2020-01-22 2020-06-23 平安科技(深圳)有限公司 基于ocr的表格版式恢复方法、装置及存储介质
CN111368511A (zh) * 2020-02-28 2020-07-03 证通股份有限公司 Pdf文档解析方法及装置
CN111967387A (zh) * 2020-08-17 2020-11-20 北京市商汤科技开发有限公司 表单识别方法、装置、设备及计算机可读存储介质
CN112380812A (zh) * 2020-10-09 2021-02-19 北京中科凡语科技有限公司 Pdf不完整框线表格提取方法、装置、设备及存储介质
CN112541332A (zh) * 2020-12-08 2021-03-23 北京百度网讯科技有限公司 表单信息抽取方法、装置、电子设备及存储介质
US11010543B1 (en) * 2020-08-11 2021-05-18 Fmr Llc Systems and methods for table extraction in documents
CN113326680A (zh) * 2020-02-28 2021-08-31 北京沃东天骏信息技术有限公司 生成表格的方法和装置
CN113361257A (zh) * 2021-06-29 2021-09-07 深圳壹账通智能科技有限公司 Pdf文档解析方法、系统、电子装置及存储介质
CN113642380A (zh) * 2021-06-04 2021-11-12 深度交叉(南京)智能科技有限公司 一种用于无线表格的识别技术
CN113688688A (zh) * 2021-07-28 2021-11-23 达观数据(苏州)有限公司 图片中表格线条的补全方法与图片中表格的识别方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9251413B2 (en) * 2013-06-14 2016-02-02 Lexmark International Technology, SA Methods for automatic structured extraction of data in OCR documents having tabular data
CN109117479B (zh) * 2018-08-13 2022-07-22 数据地平线(广州)科技有限公司 一种金融文档智能核查方法、装置及存储介质
CN109669919B (zh) * 2018-11-27 2020-08-18 麒麟合盛网络技术股份有限公司 文件来源识别方法及装置
US20200242632A1 (en) * 2019-01-29 2020-07-30 Salesforce.Com, Inc. Automated method and system for discovery and identification of a company name from a plurality of different websites
CN113177822A (zh) * 2021-04-28 2021-07-27 深圳市创腾科技有限责任公司 一种跨境电商多渠道订单管理方法、系统和设备

Patent Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1701343A (zh) * 2002-09-20 2005-11-23 德克萨斯大学董事会 用于信息发现以及关联分析的计算机程序产品、系统以及方法
CN102722475A (zh) * 2012-05-09 2012-10-10 深圳市万兴软件有限公司 一种PDF文档中的表格转换成Excel表格的方法
CN108446264A (zh) * 2018-03-26 2018-08-24 阿博茨德(北京)科技有限公司 Pdf文档中的表格矢量解析方法及装置
CN111062259A (zh) * 2019-11-25 2020-04-24 泰康保险集团股份有限公司 表格识别方法和装置
CN111325110A (zh) * 2020-01-22 2020-06-23 平安科技(深圳)有限公司 基于ocr的表格版式恢复方法、装置及存储介质
CN111368511A (zh) * 2020-02-28 2020-07-03 证通股份有限公司 Pdf文档解析方法及装置
CN113326680A (zh) * 2020-02-28 2021-08-31 北京沃东天骏信息技术有限公司 生成表格的方法和装置
US11010543B1 (en) * 2020-08-11 2021-05-18 Fmr Llc Systems and methods for table extraction in documents
CN111967387A (zh) * 2020-08-17 2020-11-20 北京市商汤科技开发有限公司 表单识别方法、装置、设备及计算机可读存储介质
CN112380812A (zh) * 2020-10-09 2021-02-19 北京中科凡语科技有限公司 Pdf不完整框线表格提取方法、装置、设备及存储介质
CN112541332A (zh) * 2020-12-08 2021-03-23 北京百度网讯科技有限公司 表单信息抽取方法、装置、电子设备及存储介质
CN113642380A (zh) * 2021-06-04 2021-11-12 深度交叉(南京)智能科技有限公司 一种用于无线表格的识别技术
CN113361257A (zh) * 2021-06-29 2021-09-07 深圳壹账通智能科技有限公司 Pdf文档解析方法、系统、电子装置及存储介质
CN113688688A (zh) * 2021-07-28 2021-11-23 达观数据(苏州)有限公司 图片中表格线条的补全方法与图片中表格的识别方法

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
Configurable Table Structure Recognition in Untagged PDF documents;Alexey Shigarov 等;《DocEng "16》;20161213;第119-122页 *
PDF文件的表格抽取研究综述;唐锐 等;《计算机应用与软件》;20210712;第38卷(第7期);第1-7+22页 *
基于PDF文字流的表格识别技术的研究;张伯;《中国硕士学位论文全文数据库》;20100915;第2010年卷(第9期);第3.2-3.3节 *
金融领域信息的自动抽取与分析方法;马晶晶;《中国硕士学位论文全文数据库》;20140415(第4期);I138-1237 *
非结构化文档的版面分析及表格提取;张昊玥;《中国硕士学位论文全文数据库》;20200115;第2020年卷(第1期);I138-1407 *

Also Published As

Publication number Publication date
CN114022888A (zh) 2022-02-08

Similar Documents

Publication Publication Date Title
CN114022888B (zh) 用于识别pdf表格的方法、设备和介质
CN111512315B (zh) 文档元数据的按块提取
US10592738B2 (en) Cognitive document image digitalization
US7937338B2 (en) System and method for identifying document structure and associated metainformation
KR20160132842A (ko) 플로우 문서를 생성하기 위한 이미지 문서 컴포넌트 검출 및 추출 기법
JP2005173730A (ja) 帳票ocrプログラム、方法及び装置
US11615244B2 (en) Data extraction and ordering based on document layout analysis
CN113076748A (zh) 弹幕敏感词的处理方法、装置、设备及存储介质
CN111651552A (zh) 结构化信息确定方法、装置和电子设备
CN114201620A (zh) 用于挖掘pdf文件中的pdf表格的方法、设备和介质
US8010564B2 (en) Logical structure analyzing apparatus, method, and computer product
WO2020159573A1 (en) System and method for spatial encoding and feature generators for enhancing information extraction
CN113673294B (zh) 文献关键信息的提取方法、装置、计算机设备和存储介质
CN114092948A (zh) 一种票据识别方法、装置、设备以及存储介质
JP2014041442A (ja) レシート定義データ作成装置およびプログラム
KR20210116371A (ko) 이미지 처리 방법, 장치, 전자장비, 컴퓨터 판독가능 저장 매체 및 컴퓨터 프로그램
CN113762109A (zh) 一种文字定位模型的训练方法及文字定位方法
CN111079709B (zh) 一种电子单据的生成方法、装置、计算机设备和存储介质
CN114116616B (zh) 用于挖掘pdf文件的方法、设备和介质
CN113255369B (zh) 文本相似度分析的方法、装置及存储介质
CN115238078A (zh) 一种网页信息抽取方法、装置、设备及存储介质
CN111860513A (zh) 光学字符识别支持系统
JP4213558B2 (ja) 文書レイアウト解析プログラム、文書レイアウト解析プログラムを記憶したコンピュータ読み取り可能な記憶媒体、文書レイアウト解析方法および文書レイアウト解析装置
JP6322291B2 (ja) 文書処理装置および項目抽出方法
US20220245325A1 (en) Computer-readable recording medium storing design document management program, design document management method, and information processing apparatus

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CP02 Change in the address of a patent holder

Address after: 201203 Room 501, building 4, No. 690, Bibo Road, China (Shanghai) pilot Free Trade Zone, Pudong New Area, Shanghai

Patentee after: SHANGHAI SUNTIME INFORMATION TECHNOLOGY CO.,LTD.

Address before: 201203 building 4, No. 690, Bibo Road, Zhangjiang Gaoke, Pudong New Area, Shanghai

Patentee before: SHANGHAI SUNTIME INFORMATION TECHNOLOGY CO.,LTD.

CP02 Change in the address of a patent holder