用于识别PDF表格的方法、设备和介质转让专利

申请号 : CN202210007815.7

文献号 : CN114022888B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 朱峰尹扬郭鹏华

申请人 : 上海朝阳永续信息技术股份有限公司

摘要 :

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

权利要求 :

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中任一项所述的方法。

说明书 :

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

技术领域

[0001] 本公开的实施例总体涉及数据处理领域,并且更具体地涉及一种用于识别PDF表格的方法、计算设备和计算机可读存储介质。

背景技术

[0002] PDF(Portable Document Format,便携文件格式)是一种由Adobe公司开发的一种电子文档格式,其具有与操作系统平台无关性的特点。PDF属于版式文档,页面之间相对独
立,从而可以精确描述文档布局并展现文档版面。然而PDF不记录文档的逻辑结构,换言之,
PDF文本不包括其中的表格组织的公式关系。因此,需要识别PDF表格的方案。
[0003] 传统的用于识别PDF表格的方案包括:分别识别PDF表格中的表格线和表格内容;以及通过图像处理的方法提取表格。在第一种方案中,表格线段可能以一个个路径操作符
绘画成形,其可能表示为公式分式线、矢量图、转曲字符等元素,而表格内容则包括各类不
同的字符表,其常与版面其他内容混杂一起,不易识别。对于第二种方案,则需要图像识别
出表格线段,从而确定表格框并提取框内区域,最后对框内区域图像进行OCR识别。
[0004] 在传统的用于识别PDF表格的方案中,表格识别需基于显著的表格线段。如果表格隐藏了其表格线段或者表格线段以不规范的方式体现时,传统的表格识别方案往往无法准
确识别表格。同时,对于包括字符混杂、叠加、偏移等情形的表格内容,对其直接读取准确率
不高。
[0005] 综上,传统的用于识别PDF表格的方案所存在的不足之处在于:必须依赖表格标识线段并且无法准确识别复杂的表格内容。

发明内容

[0006] 针对上述问题,本公开提供了一种用于识别PDF表格的方法、计算设备和计算机可读存储介质,能够准确识别复杂的表格内容,且无需依赖表格标识线段的识别。
[0007] 根据本公开的第一方面,提供了一种用于识别PDF表格的方法,包括:针对PDF文件检索目标关键字,以便确定PDF文件中的目标表格区域;获取处于目标表格区域内的多个文
本块;基于多个文本块的坐标,确定关于目标表格的扫描区域的左上起点和右下终点,以便
提取扫描区域内的所有文本块;基于所提取的扫描区域内的所有文本块的坐标,确定对角
坐标集合,对角坐标集合包括所有文本块中的每一个文本块的对角坐标;扫描对角坐标集
合,以便生成扫描结果数组;以及遍历扫描结果数组,以便确定目标表格中的单元格文本信
息。
[0008] 根据本公开的第二方面,提供了一种计算设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;存储器存储有可被至少一个处理器执行的指令,指令被
至少一个处理器执行,以使至少一个处理器能够执行本公开的第一方面的方法。
[0009] 在本公开的第三方面中,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中计算机指令用于使计算机执行本公开的第一方面的方法。
[0010] 在一些实施例中,将预定义垂直扫描线从对角坐标集合的水平坐标起始处、以预定扫描间隔扫描对角坐标集合,以便将扫描结果保持到列结果数组,列结果数组包括与各
扫描位置序号对应的扫描采样位置和单次扫描的总命中数;将预定义水平扫描线从对角坐
标集合的竖直坐标起始处、以预定扫描间隔扫描对角坐标集合,以便将扫描结果保持到行
结果数组,行结果数组包括与各扫描位置序号对应的扫描采样位置和单次扫描的总命中
数。
[0011] 在一些实施例中,遍历列结果数组,以便确定与不为0的单次扫描的总命中数所对应的第一扫描采样位置,以及与为0的单次扫描的总命中数所对应的第二扫描采样位置;基
于第一扫描采样位置和第二扫描采样位置,确定列宽数组;基于列宽数组和列结果数组,确
定目标表格中的每列的起点和终点。
[0012] 在一些实施例中,遍历行结果数组,以便确定与不为0的单次扫描的总命中数所对应的第三扫描采样位置,以及与为0的单次扫描的总命中数所对应的第四扫描采样位置;基
于第三扫描采样位置和第四扫描采样位置,确定行宽数组;基于行宽数组和行结果数组,确
定目标表格中的每行的起点和终点;以及基于每行的起点和终点和每列的起点和终点,确
定目标表格中的单元格坐标信息,以便基于单元格坐标信息获取单元格文本信息。
[0013] 在一些实施例中,获取同行不同列的单元格文本信息;基于正则表达式判断,确定符合年份字符串格式的单元格文本信息为年份数据;获取年份数据的列位置信息和行位置
信息;在当前年份数据的行位置信息与下一年份数据的行位置信息之间的单元格文本信息
中查询,以便确定第一个具有相同列位置信息、且单元格文本信息均为非数字文本的列为
指标标识数据列;获取指标标识数据列的行位置信息;基于指标标识数据列的行位置信息,
将位于指标标识数据列右侧的、与指标标识数据具有相同行位置信息、并且与当前年份数
据具有相同列位置信息的文本信息确定为与当前年份数据和当前指标标识数据相关联的
数值。
[0014] 在一些实施例中,构建关于与PDF文件相关联的多个机构的机构关键特征数组,机构关键特征数组包括:与机构相关联的关键特征的数量、关键特征和关键特征所对应的权
重;基于机构关键特征数组,针对基于PDF文件所提取出的文本信息进行检索,以便确定与
机构相关联的关键特征出现的次数;基于所计算的与机构相关联的关键特征出现的次数,
生成机构权重序列,以用于确定PDF文件的目标关联机构。
[0015] 在一些实施例中,确定与机构权重序列中的最大值所对应的机构;确定与最大值所对应的机构的数量是否为1;响应于确定与最大值所对应的机构的数量为1,确定与最大
值所对应的机构为PDF文件的目标关联机构;以及响应于确定与最大值所对应的机构的数
量大于1,确定未识别目标关联机构。
[0016] 在一些实施例中,确定与目标表格相关联的表格特征;确定在扫描文本块的对角坐标期间表格特征是否重复出现;响应于确定表格特征重复出现,根据表格特征以及表格
特征重复出现次数将文本块分割为不同表格;以及响应于确定表格特征未重复出现,确定
文本块属于同一表格。
[0017] 应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。

附图说明

[0018] 结合附图并参考以下详细说明,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。在附图中,相同或相似的附图标注表示相同或相似的元素。
[0019] 图1示出了根据本公开的实施例的所使用的PDF表格的示例图。
[0020] 图2示出了用于实现根据本公开的实施例的用于识别PDF表格的方法的系统200的示意图。
[0021] 图3示出了根据本公开的实施例的用于识别PDF表格的方法300的流程图。
[0022] 图4示出了根据本公开的实施例的经由PDF处理工具处理后多个文本块的示意图。
[0023] 图5示出了根据本公开的实施例的用于扫描对角坐标集合的方法500的流程图。
[0024] 图6示出了根据本公开的实施例的执行列扫描的示意图。
[0025] 图7示出了根据本公开的实施例的用于遍历扫描结果数组的方法700的流程图。
[0026] 图8示出了根据本公开的实施例的用于遍历扫描结果数组的另一个方法800的流程图。
[0027] 图9示出了根据本公开的实施例的用于表格信息挖掘的方法900的流程图。
[0028] 图10示出了根据本公开的实施例的表格信息机构挖掘方法1000的流程图。
[0029] 图11示出了根据本公开的实施例的用于确定PDF文件的目标关联机构的方法1100的流程图。
[0030] 图12示出了根据本公开的实施例的用于分割表格的方法1200的流程图。
[0031] 图13示出了根据本公开的实施例的在同一页中的多个表格的示意图。
[0032] 图14示出了根据本公开的实施例的电子设备1400的框图。

具体实施方式

[0033] 以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识
到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同
样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
[0034] 在本文中使用的术语“包括”及其变形表示开放性包括,即“包括但不限于”。除非特别申明,术语“或”表示“和/或”。术语“基于”表示“至少部分地基于”。术语“一个示例实施
例”和“一个实施例”表示“至少一个示例实施例”。术语“另一实施例”表示“至少一个另外的
实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明
确的和隐含的定义。
[0035] 如前文所描述,隐藏了表格线段的表格或者以分式线、矢量图、转曲字符等不规范方式构成的表格无法被传统的识别PDF表格方案所识别。在没有准确识别表格线段的前提
下,传统的表格识别方案无法准确识别表格内容。由于PDF表格并无统一格式,表格内容可
能会出现混杂、叠加、偏移字符,直接对表格内容进行读取会造成单元格间数据交叉错乱。
同时,数个单元格的数据读取错乱可能会连锁传递至相邻的单元格识别过程中,最后导致
整体表格内容的识别错误或者无效。这在其中存在大量数字且单元格分隔不明显的金融领
域的表格(例如,利润表、资产负债表、现金流量表)中体现尤为突出。
[0036] 图1示出了根据本公开的实施例的所使用的PDF表格的示例图。如图1所示,在日常处理的PDF表格中,出于美观等原因,PDF表格并不包含分隔线段,同时数据也不会使用明显
的单元格分隔线进行分隔。这种情况下,尽管现有技术中本领域的部分PDF解析工具可以将
PDF文本解析为可读取的数据,然而其并不能将表格中的各类数据与表格逻辑进行对应,这
样造成读取出的数据会出现错乱。这在以数据为主的金融表格(利润表、资产负债表、现金
流量表等)中更加显著。以图1中流动资产栏为例,直接对其解析可能会得出一个整体数据
“流动资产234844052677049108810147648”,从而丢失其中具有实际意义的空格信息。即使
存在部分可以解析空格的PDF解析工具,其可以将表格解析为“流动资产”、“23484”、
“40526”等单元格,但是其仍然无法将单元格“23484”、“40526”对应于其上方的年份单元格
“2019A”、“2020A”以及对应的指标标识。由于上下单元格的不对应,数据丧失了对应附加信
息,成为了无意义的垃圾数据。在包括更复杂字符串的表格中,这种情况可能会更加严重。
例如,在包括换行的长数据的单元格中,可能仅有部分数据被读取,而另一部分数据直接丢
失。
[0037] 为了至少部分地解决上述问题以及其他潜在问题中的一个或者多个,本公开的示例实施例提出了一种用于识别PDF表格的方案,在本公开方案中,通过确定关于目标表格的
扫描区域的左上起点和右下终点来提取扫描区域内的所有文本块,然后基于该所有文本块
的坐标而生成指示每一个文本块的对角坐标的对角坐标集合,以及扫描对角坐标集合来生
成扫描结果数组,进而经由遍历扫描结果数组而最终确定单元格文本信息,本公开可以在
不依赖明显表格结构或逻辑框架的情况下由对角坐标集合、扫描结果数组来定位每一个数
据单元格的整体大小,从而能够精确将PDF表格挖掘处理为具有规整结构的数据,例如,将
PDF表格挖掘为Excel数据表单、XML文件、YAML文件等形式。
[0038] 另外,本公开还提供了对所挖掘数据进行进一步挖掘(例如,年份挖掘、数据深度挖掘、表格分割)的相应方法,从而提升所挖掘数据的精细度。
[0039] 图2示出了用于实现根据本公开的实施例的用于识别PDF表格的方法的系统200的示意图。如图2中所示,系统200包括计算设备210和PDF文件管理设备230和网络240。计算设
备110、PDF文件管理设备230可以通过网络240(例如,因特网)进行数据交互。
[0040] PDF文件管理设备230,其例如可以执行对PDF文件的常规管理,例如收集、存储PDF文件。PDF文件管理设备230还可以将所管理的PDF文件发送给计算设备210。PDF文件管理设
备230例如而不限于:可执行PDF文件读取和修改的台式计算机、膝上型计算机、上网本计算
机、平板电脑、网络浏览器、电子书阅读器、个人数字助理(PDA)和可穿戴计算机(诸如智能
手表和活动追踪器设备)等。PDF文件管理设备230可以配置成存储PDF文件,将PDF文件经由
网络240发送到计算设备210,并且接收来自计算设备210处理的PDF文件。
[0041] 关于计算设备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。
[0042] 目标表格区域确定单元212可以配置成确定PDF文件中的目标表格区域。
[0043] 文本块获取单元214可以配置成获取处于目标表格区域内的多个文本块。
[0044] 扫描区域确定单元216可以配置成基于所述多个文本块的坐标,确定关于目标表格的扫描区域的左上起点和右下终点,以便提取扫描区域内的所有文本块。
[0045] 坐标确定单元218可以配置成基于所提取的扫描区域内的所有文本块的坐标,确定对角坐标集合,所述对角坐标集合包括所有文本块中的每一个文本块的对角坐标。
[0046] 扫描单元220可以配置成扫描对角坐标集合,以便生成扫描结果数组。
[0047] 遍历单元222可以配置成遍历扫描结果数组,以便确定目标表格中的单元格文本信息。
[0048] 处理单元224可以配置成执行目标关联机构确定、年份数据和指标标识数据相关联的数值确定以及将文本块分割等多种操作。
[0049] 单元212‑单元222可以依据预设关键字在PDF文本中检索表格文本块。在将相关联的表格文本块提取出来后,以平面坐标系的方式确定各个文本块的坐标。根据文本块的平
面坐标对文本块进行扫描,从而在行和列两个维度上确定表格实际单元格的行宽以及列
宽。在分别确定单元格行宽以及列宽后,通过组合可以获取每个单元格的位置,从而准确挖
掘识别PDF文本中的PDF表格。
[0050] 基于单元212‑单元222挖掘识别的PDF表格,处理单元224还可以对所挖掘识别的表格数据进行多种处理。处理包括但不限于对表格数据的年份‑指标数据进行提取对应,挖
掘表格所属的机构以及分割同页中出现的多个表格等。在对PDF文件完成以上处理后,可以
将所处理的PDF表格经由网络240传送到PDF文件管理设备230。
[0051] 下文中的一些示例将以图1所示的PDF表格为例说明本公开技术方案的工作原理,然而可以理解的是本公开所适用的PDF表格可以以多种不同形式表现,而不限于图1表格的
表现形式。
[0052] 以下结合图1、图2说明用于识别PDF表格的方法300。图3出于整体呈现用于识别PDF表格的方法的工作原理的目的而示出了各种路径和顺序,但是其中一些路径和路径并
不是实施以下的示例所必需的,可以以不同的顺序和路径执行本公开技术方案所涉及的各
种方法。
[0053] 图3示出了根据本公开的实施例的用于识别PDF表格的方法300的流程图。方法300可由如图2所示的计算设备210执行,也可以在图14所示的电子设备1400处执行。应当理解
的是,方法300还可以包括未示出的附加框和/或可以省略所示出的框,本公开的范围在此
方面不受限制。
[0054] 在步骤302,计算设备210针对PDF文件检索目标关键字,以便确定PDF文件中的目标表格区域。
[0055] 在一些示例中,目标关键字可以是由用户根据需求设置的不同类型的关键字。以金融表格为例,目标关键字可以是“资产负债表”、“财务指标”、“收入预测”、“盈利预估”等。
这些关键字下通常包括用户所期望的PDF表格。
[0056] 应当理解,通过在PDF文本中检索这些目标关键字,可以确定PDF文本的目标表格区域,即PDF表格所在区域。目标PDF表格区域的确定可以基于预定义的表格模型。例如,表
格文本块的左上角起始点可为目标关键字,右下角结束点可能为连续数字字符串的最后一
个数字字符串。表格模型可由用户根据PDF表格实际处理经验调整和设置。
[0057] 以图1为例,通过确定关键字“资产负债表”,可以以左上角的“资产负债表”为左上起点,右下角的“3665”为右下终点。基于左上起点和右下终点的水平和垂直线,可以构成一
个整体矩形方块。可以认为的是,在此整体矩形方块内的所有文本块均属于目标文本块,即
需要识别的PDF表格内容。
[0058] 注意的是,由于在步骤301中所确定是一个粗略的目标PDF表格区域,为了确保目标PDF表格不被遗漏,还可以设置相应的容错冗余,即将左上起点设置在左上目标(例如,
“资产负债表”)的左上数个像素(例如,3个像素),将右下起点设置在右下目标(例如,
“3665”)的右下数个像素(例如,3个像素),从而确保目标PDF表格不被遗漏。容错冗余的具
体值可由用户根据PDF表格实际处理经验调整和设置。
[0059] 还应注意的是,在连续出现的多个表格中,例如,处于同一页的资产负债表和利润表使用如上所述的表格模型可能会导致多个表格被识别为同一个表格的目标文本块。针对
这种情况,本公开提供了相应处理方法1200对多个同页连续的不同表格进行分割,方法
1200将在下文中具体描述。
[0060] 在步骤304,计算设备210基于所确定的目标表格区域,获取处于目标表格区域内的多个文本块。例如,在步骤302中通过检索目标关键字确定了目标表格区域,随后基于目
标表格区域,通过PDF处理领域常用的处理工具,例如PDFminer、Camelot等,可以将目标表
格区域的所有文本块全部提取,以供随后处理为相应的PDF表格以及表格内容。
[0061] 注意的是,利用PDF处理领域常用的处理工具获取处于表格区域内的多个文本块只是获取文本块的文本内容,即,识别为可供处理的字符或者字符串。处理工具并没有识别
PDF表格的表格逻辑,例如,无法识别表格中的多个文本块的文本内容之间的关联。
[0062] 以图1的表格为示例,图4示出了根据本公开的实施例的经由PDF处理工具处理后多个文本块的示意图。如图4所示,经过PDF处理工具解析处理,可以获取目标表格区域内的
多个文本块内的文本内容,即,字符串,然而其无法识别表格逻辑。
[0063] 还应注意的是,PDF处理领域常用的处理工具可以包括任何可以解析PDF文本的代码、软件、库文件,例如由Python、Java等程序语言可调用的软件包或者软件库,其包括但不
限于PDFminer、Camelot等。
[0064] 在步骤306,计算设备210基于所述多个文本块的坐标,确定关于目标表格的扫描区域的左上起点和右下终点,以便提取扫描区域内的所有文本块。例如,计算设备210可以
为步骤304中所获取的多个文本块建立坐标。坐标的坐标系可以是基于文本块原先的PDF文
本,也可以是基于在步骤302中提取出来的PDF文本的目标表格区域。
[0065] 以示例的方式,坐标系可以以左上角为原点,区域正右方为x水平方向,区域正下方为y垂直方向。注意的是,还可以基于不同的方式建立不同的坐标系,坐标系的选取不会
影响后续的扫描及处理过程。
[0066] 在建立有坐标系后,所获取的每个文本块都可以以坐标定义位置。由于文本块均以单元格形式形成,因此只需文本块的左上坐标以及右下坐标即可定位文本块。在获得所
有文本块的坐标后,可以确定关于目标表格的扫描区域的左上起点和右下终点,以便提取
扫描区域内的所有文本块。
[0067] PDF文本中的目标表格的扫描区域的左上起点和右下终点可是PDF表格区域的最左上顶点以及最右下顶点。在确定扫描区域的最左上顶点以及最右下顶点后,可以在随后
的步骤对区域内的文本块进行扫描。
[0068] 在步骤308,计算设备210基于所提取的扫描区域内的所有文本块的坐标,确定对角坐标集合,所述对角坐标集合包括所有文本块中的每一个文本块的对角坐标。在步骤
302‑306中,已经对扫描区域内的所有文本块建立有坐标系,因此可以确定所有文本块的坐
标集合,其中对角坐标集合包括所有文本块中的每一个文本块的对角坐标。
[0069] 以下结合公式(1)说明文本块 的坐标集合。
[0070]
[0071] 在上述公式(1)中,代表文本块数, 代表文本块 的左上顶点的坐标,是文本块 的右下顶点的坐标。
[0072] 在确定文本块 的坐标集合后,可以获得扫描区域的最小水平坐标 、最大水平坐标 ,最小垂直坐标 、最大垂直坐标 。
[0073] 结合公式(2)‑(5)说明以上极值坐标可以分别表示如下。
[0074]
[0075] 在上述公式(2)‑(5)中, 代表文本块 左上顶点垂直坐标, 代表文本块 左上顶点水平坐标, 代表文本块 右下顶点垂直坐标, 代表文本块 右下顶点水平
坐标。
[0076] 在步骤310,计算设备210扫描对角坐标集合,以便生成扫描结果数组。在步骤304确定对角坐标集合后,计算设备210可以扫描对角坐标集合,从而生成扫描结果数组。扫描
可以是分别以行和列的方式进行,即分别以垂直线段步进扫描在步骤304中确定的扫描区
域,从而确定扫描区域的单元行的相关信息,信息可以被存储到行扫描结果数组以供进一
步分析,并且以水平线段步进扫描在步骤304中确定的扫描区域,从而确定扫描区域的单元
列的相关信息,信息可以被存储到列扫描结果数组以供进一步分析。
[0077] 注意的是,行和列的扫描不分先后,可以先进行行的扫描也可以先进行列的扫描。同时,用户可以对扫描设置扫描间隔 ,例如,3个坐标值。以此方式,扫描线段将按照预定
扫描间隔步进扫描过整个扫描区域。
[0078] 下文将结合方法500具体介绍扫描的具体步骤。通过扫描后,可以将行和列的扫描结果分别存储到行扫描结果数组和列扫描结果数组,通过对扫描结果数组进行相应分析,
可以确定目标表格的行和列的相应信息。
[0079] 在步骤312,计算设备210遍历扫描结果数组,以便确定目标表格中的单元格文本信息。通过在步骤310中扫描,可以获得包括行和列信息的行扫描结果数组和列扫描结果数
组。以列扫描结果数组为例,数组可包括每个扫描位置、每个扫描位置对应的扫描命中数等
信息。根据扫描位置对应的扫描命中数可以计算出对应当前单元格的列宽信息。
[0080] 例如,在命中为0,未命中为1的情况下,所扫描的列的列宽具体可以是数组中第一个不为0的扫描位置减去遍历到第一个为0的扫描位置。通过对列扫描结果数组遍历完毕,
可以得出当前PDF表格的各列的列宽数组。数组记录有PDF表格每列的列宽。
[0081] 同理可以通过遍历的方法得出当前PDF表格的行宽数组,其中记录有PDF表格每列的行宽。通过组合以上行宽和列宽数据,可以获取目标PDF表格的单元格位置,并按照单元
格位置提取表格的单元格文本信息,从而准确识别PDF表格。
[0082] 对数组的遍历可以用本领域常用的程序语言(例如,C、Python、Java)来执行。下文将结合方法700具体介绍遍历的具体步骤以及相关的程序语言伪代码。
[0083] 图5示出了根据本公开的实施例的用于扫描对角坐标集合的方法500的流程图。在图5中,扫描对角坐标集合可以例如是经由图3的方法300的步骤310所生成。
[0084] 在步骤512,计算设备210将预定义垂直扫描线从对角坐标集合的水平坐标起始处、以预定扫描间隔扫描对角坐标集合。
[0085] 在步骤514,计算设备210将扫描结果保持到列结果数组,所述列结果数组包括与各扫描位置序号对应的扫描采样位置和单次扫描的总命中数。
[0086] 在步骤516,计算设备210将预定义水平扫描线从对角坐标集合的竖直坐标起始处、以预定扫描间隔扫描对角坐标集合。
[0087] 在步骤518,计算设备210将扫描结果保持到行结果数组,所述行结果数组包括与各扫描位置序号对应的扫描采样位置和单次扫描的总命中数。
[0088] 在以上步骤中,步骤512‑514是在水平方向以垂直扫描线对坐标坐标集合执行列扫描,而步骤516‑518是在垂直方向以水平扫描线对坐标坐标集合执行行扫描。下文将结合
图5和图6说明列扫描的方法。
[0089] 图6示出了根据本公开的实施例的执行列扫描的示意图。如图6所示,计算设备210定义了垂直扫描线 以进行扫描。 长度可以设置为方法300的步骤308中所获取的
最大垂直坐标 ,同时扫描区间设置为 。由于 并且
,因此扫描线可以在垂直高度 上扫描过全部的目标扫描区域 ,
而不会产生遗漏。
[0090] 扫描开始在对角坐标集合的水平坐标起始处,并且以预定扫描间隔 扫描对角坐标集合。扫描间隔 属于超越参数,即,其可以由用户根据表格特征和表格处理经验来设置
和调整。扫描间隔 越小,扫描越精细,对扫描噪声越敏感,扫描误差越小,但扫描时间长。
扫描间隔 越大,扫描越粗糙,扫描噪声不敏感,扫描误差越大,但扫描时间短。例如,可以
将表格间隔 默认设置为3个坐标值,在扫描时间过长的情况下可以将 加大到5个坐标
值或者在扫描误差过大的情况下可以将 减小到1个坐标值。以此方式,扫描线段将按照预
定扫描间隔 步进扫描过整个扫描区域。
[0091] 通过按照扫描间隔 步进扫描,在水平方向上,每个经扫描的位置 结合公式(6)来说明。
[0092]
[0093] 在上述公式(6)中, 代表扫描间隔,代表扫描位置序号。
[0094] 当扫描线扫描到文本块中的文本内容时,即,扫描线与文本内容有相交的情况下,可以认为扫描线命中了文本块。以下结合公式(7)说明命中函数 。
[0095]
[0096] 在上述公式(7)中, 代表文本块, 代表扫描的位置, 代表文本块 的垂直左坐标、 代表文本块 的垂直右坐标。在命中函数中,当发生了扫描线与文本块的命中
时,命中函数的函数值为1,否则命中函数的函数值为0。
[0097] 同时还可以计算单次扫描的命中总数 。以下结合公式(8)说明命中总数 。
[0098]
[0099] 在上述公式(8)中,命中总数 代表对扫描线与文本命中数的求和。具体地,命中总数也表示扫描线在当前扫描位置总共与多少个文本块相交。
[0100] 例如,当扫描线步进扫描到“资产负债表(百万元)” 文本块的“万”字符附近时,总共会与字符发生四次相交,即,四次命中。除与“资产负债表(百万元)”命中外,还分别与“应
收票据及应收账款”文本块、“应收票据及应收账款”文本块和“归属母公司股东权益”文本
块相交命中。扫描的命中总数可以在随后用于计算文本块的列宽度。
[0101] 在步骤514,计算设备210将扫描结果保持到列结果数组,所述列结果数组包括与各扫描位置序号对应的扫描采样位置和单次扫描的总命中数。如上在步骤510中所得,通过
扫描获取了每个扫描间隔 对应的扫描采样位置 和扫描命中总数 ,因此可以将两
个数据组合存入到列结果数组 。以下结合公式(9)说明列结果数组 。
[0102]
[0103] 在上述公式(9)中, 代表扫描的位置, 代表单次扫描命中数。所得的列结果数组可以在随后进行遍历运算,从而获取该列的列宽。
[0104] 与列扫描同理,在步骤516,计算设备210可以将预定义水平扫描线从对角坐标集合的竖直坐标起始处、以预定扫描间隔扫描对角坐标集合并且在步骤518将扫描结果保持
到行结果数组 ,所述行结果数组包括与各扫描位置序号对应的扫描采样位置和单
次扫描的总命中数。具体实施方式与列扫描相似,在此不再赘述。
[0105] 在一些示例中,列结果数组 与行结果数组 组合在一起可以为总的扫描结果数组 。
[0106] 图7示出了根据本公开的实施例的用于遍历扫描结果数组的方法700的流程图。在图7中,遍历可以对应于图3的方法300的步骤312。如上所述,在方法500中,获取了列结果数
组 、行结果数组 以及扫描结果数组 。通过分别对列结果数组、行结果
数组进行遍历计算,可以分别对获取文本块的列宽和行宽,即每列的起点和终点以及每行
的起点和终点。通过将所获取的每列的起点和终点以及每行的起点和终点相组合,可以确
定目标表格中的单元格坐标信息,并基于单元格坐标信息获取单元格文本信息。
[0107] 在步骤702,计算设备210遍历列结果数组,以便确定与不为0的单次扫描的总命中数所对应的第一扫描采样位置,以及与为0的单次扫描的总命中数所对应的第二扫描采样
位置。
[0108] 具体来说,遍历运算从列结果数组 中的第一组结果开始,如果该组结果中的扫描的总命中数 为0,则扫描线在此位置没有命中,因此离开该组遍历到下一组,遍
历一直到其中第一个不为0的扫描的总命中数 处,即,第一扫描采样位置,此扫描位
置可以被确定为列的起点。例如在图6所示的扫描中,第一个扫描总命中数可能为29,即从
“资产负债表(百万元)”到“负债和股东权益”。
[0109] 在确定列的起点后,可以继续遍历,直至遍历到第一个为0的扫描的总命中数。扫描的总命中数为0即扫描线没有命中,此位置可以是第二扫描采样位置,可以认
为所扫描的文本块的列至第二扫描采样位置为止。
[0110] 在步骤704,计算设备210基于第一扫描采样位置和第二扫描采样位置,确定列宽数组。
[0111] 列的列宽可以由第二扫描采样位置减去第一扫描采样位置。
[0112] 可以结合公式(10)说明如何计算列的列宽 。
[0113]
[0114] 在上述公式(10)中, 代表第一个不为0的扫描位置,即第一扫描采样位置,代表在第一个不为0后的第一个为0的扫描位置,即第二扫描采样位置。
[0115] 在完成第一列的列宽计算后,可以继续遍历,直到得到扫描区域所有列的列宽。所有所得列的列宽可以被存储到列宽数组 中。
[0116] 在此提供了执行遍历运算的示例性伪代码。
[0117]
[0118] 在伪代码中,参数 表示扫描是否命中, 表示遍历到第一个不为0的命中位置,k为列的数量。 表示在遍历到第一个不为0的列后遍历到的第一个为0的命
中位置, 为列宽数组。因此, 通过  减去 记录
每列的列宽。当每次完成一次列宽计算后,k累加,最终的k值表示表格有多少列。注意的是,
以上仅示出的是遍历运算的伪代码,以该伪代码为基础可以以任意程序语言实现以上遍历
运算。
[0119] 在步骤706,计算设备210基于列宽数组和列结果数组,确定目标表格中的每列的起点和终点。
[0120] 如上所述,通过列结果数组可以确定扫描与文本块的命中位置,其可以作为所扫描的列的起点。同时通过列结果数组,可以确定所扫描的文本块的列宽。通过起点加上列
宽,可以确定扫描的文本块的列的终点。通过遍历数组中的所有命中位置,可以确定目标表
格中的每列的起点和终点。
[0121] 图8示出了根据本公开的实施例的用于遍历扫描结果数组的另一个方法800的流程图。在图8中,遍历可以对应于图3的方法300的步骤312。与方法700类似,方法800示出了
遍历行扫描结果数组的步骤,具体包括:在步骤802,计算设备210遍历行结果数组,以便确
定与不为0的单次扫描的总命中数所对应的第三扫描采样位置,以及与为0的单次扫描的总
命中数所对应的第四扫描采样位置;在步骤902,计算设备210基于第三扫描采样位置和第
四扫描采样位置,确定行宽数组;在步骤903,计算设备210基于行宽数组和行结果数组,确
定目标表格中的每行的起点和终点;以及在步骤904,计算设备210基于每行的起点和终点
和每列的起点和终点,确定目标表格中的单元格坐标信息,以便基于单元格坐标信息获取
单元格文本信息。
[0122] 在方法800中,步骤802、步骤804、步骤806均与步骤702、步骤704、步骤706类似,其区别仅在于将列遍历改为行遍历,在此不再赘述,并且可用于步骤702、步骤704、步骤706的
伪代码也可以相应用于步骤802、步骤804、步骤806。
[0123] 通过方法700的步骤702、步骤704、步骤706和方法800的步骤802、步骤804、步骤806进行遍历后,可以确定每行的起点和终点和每列的起点和终点。
[0124] 因此,在步骤808,计算设备210可以基于每行的起点和终点和每列的起点和终点,将行列数据组合在一起,从而确定目标表格中的单元格坐标信息。
[0125] 基于单元格坐标信息可以获取单元格文本信息而不会造成文本信息混杂、丢失。在获得单元格坐标信息后,可以将PDF表格数据依靠单元格格式初始化存储为具有规整表
格结构的数据,例如,存储为Excel数据表单、XML文件、YAML文件等形式。
[0126] 本公开还提供了多个方法对具有规整表格结构的数据进行进一步处理的方法。图9示出了根据本公开的实施例的用于表格信息挖掘的方法900的流程图。在表格中,表格信
息往往与其所在行与列的年份和指标标识有很强的相关性。通过用于表格信息挖掘的方法
900可以挖掘出表格的年份信息和指标标识信息。
[0127] 在步骤902,计算设备210获取同行不同列的单元格文本信息,即读取通过以上方法确定的PDF表格的各行的单元格文本信息。以图1为示例,每行的文本信息可以包括“资产
负债表(百万元)”、“[会计年度]、[2019A]、[2020A] 、[2021E] 、[2022E] 、[2023E]”等。
[0128] 在步骤904,计算设备210基于正则表达式判断,确定符合年份字符串格式的单元格文本信息为年份数据。用户可以设计关于年份的正则表达式,例如正则表达式“^(19|
20)\d{2}$”,其可以表示从1900‑2099年的所有年份。通过所设计的正则表达式,判断行内
的单元格中是否存在符合正则表达式的表格信息。如果与则确定该行包含年份信息。
[0129] 在步骤906,计算设备210获取年份数据所对应的列位置信息和行位置信息。例如可以获得2019A年在表格中的列位置信息和行位置信息,即,其处于第二行及第二列。
[0130] 在步骤908,计算设备210在当前年份数据的行位置信息与下一年份数据的行位置信息之间的单元格文本信息中查询,以便确定第一个具有相同列位置信息、且单元格文本
信息均为非数字文本的列为指标标识数据列。由于一行中可能具有多个年份数据,因此需
要找出该行中多个年份数据中的第一个年份数据,以第一个年份数据作为起点,即该年份
所属列为第一个指标数据列。同时,根据表格特点,可以确定第一个年份数据前一列为指标
标识数据列。指标标识数据列表示了其对应的数据的实际现实含义。
[0131] 在步骤910,计算设备210获取指标标识数据列的行位置信息。如上所述,可以通过确定的第一个年份数据列确定指标标识数据列。然后可以根据指标标识数据列确定行位置
信息,即获取该列下每一行的单元格位置信息。
[0132] 在步骤912, 计算设备210基于指标标识数据列的行位置信息,将位于指标标识数据列右侧的、与指标标识数据具有相同行位置信息、并且与当前年份数据具有相同列位置
信息的文本信息确定为与当前年份数据和当前指标标识数据相关联的数值。在通过以上步
骤可以确定指标标识数据列和年份数据行。位于指标标识数据列右侧的、与指标标识数据
具有相同行位置信息、并且与当前年份数据具有相同列位置信息的文本信息可以被认为是
具有指标标识含义的年份数据。
[0133] 以图1为例,第一列(“会计年度”及以下)可以被认为是指标标识数据列,其右侧第一个列为数据列,且“2019A”所述行被认定为年份信息行,因此与“流动资产”和“2019A”对
应的数据“23484”可以被认为是在2019企业的流动资产。通过以上方式,PDF表格中的每个
数字都能匹配到年份数据和指标标识,从而表格识别中保留了其实际含义。
[0134] 在一些示例中,还可以配置特殊的正则表达式来匹配单元格。特殊的年份正则表达式可以匹配具有后缀字母的年份,例如将具有字母“E”的“2022E”识别为预测年2022,从
而更进一步保留了表格数据的实际含义。
[0135] 图10示出了根据本公开的实施例的表格信息机构挖掘方法1000的流程图。由于机构(例如,金融机构)出具的PDF文件都有很强的表现特征,因此可以通过机构挖掘方法确定
PDF文件相关联的机构(例如,撰写PDF文件的金融机构)。
[0136] 在步骤1002,计算设备210构建关于与PDF文件相关联的多个机构的机构关键特征数组,机构关键特征数组包括:与机构相关联的关键特征的数量、关键特征和关键特征所对
应的权重。
[0137] 具体来说,用户可以预先设置与机构相关联的关键特征的数量、关键特征和关键特征所对应的权重。例如,针对某证券公司,用户可以为其设置3个关键特征,分别为公司名
称、公司机构注册办公地址、公司的标识(logo),并对相应特征赋予相应权重,例如公司名
称权重为1,公司机构注册办公地址权重为3、公司的标识(logo)权重为5,权重越高认为特
征与机构越相关。
[0138] 在步骤1004,计算设备210基于机构关键特征数组,针对基于PDF文件所提取出的文本信息进行检索,以便确定与机构相关联的关键特征出现的次数。通过设置有关键特征
后,可以检索PDF文件中所提取出的文本信息,提取信息的方式可以如上文所描述。通过文
本检索,可以确定与机构相关联的关键特征出现的次数。关键特征出现的次数可以与如步
骤1002中所定义的权重配合计算相关联机构的可能性。
[0139] 在步骤1006,计算设备210基于所计算的与机构相关联的关键特征出现的次数,生成机构权重序列,以用于确定PDF文件的目标关联机构。在获得关键特征、特征权重以及特
征出现次数后,可以生成机构权重序列。通过对机构权重序列进行排序,从而挖掘出该份
PDF文件相关联的机构。例如,机构权重序列排序中第一的为某证券公司,则可以认为该PDF
文件与某证券公司相关联,例如文件为某证券公司所撰写。
[0140] 图11示出了根据本公开的实施例的用于确定PDF文件的目标关联机构的方法1100的流程图,其对应于方法1000中的步骤1006。
[0141] 在步骤1102,计算设备210确定与机构权重序列中的最大值所对应的机构。通过方法1100中所述的方法,可以取得PDF文件的机构权重序列,确定序列中的最大值对应的机
构。
[0142] 在步骤1104,计算设备210确定与最大值所对应的机构的数量是否为1,即确定是否存在多于一个的最大值对应的机构。例如存在两个或更多个相同的最大值,分别对应两
个或更多个不同机构。
[0143] 在步骤1106,计算设备210响应于确定与最大值所对应的机构的数量为1,确定与最大值所对应的机构为PDF文件的目标关联机构。在只存在1个最大值的情况下,最大值对
应的机构为PDF文件的目标关联机构。
[0144] 在步骤1108,计算设备210响应于确定与最大值所对应的机构的数量大于1,确定未识别目标关联机构。如果存在多个相同最大值且最大值对应的机构不同,则无法确定PDF
文本的目标关联机构。需要进一步的方法(例如人工识别)来确定PDF文本的目标关联机构。
[0145] 图12示出了根据本公开的实施例的用于分割表格的方法1200的流程图。在上文中介绍了用于识别PDF表格的方法,例如方法300,然而用于识别PDF表格的方法依赖于基于表
格模型确定目标扫描范围。在同一页中出现多个表格的PDF文件中,表格模型经常会将多张
表格识别为同一表格。
[0146] 图13示出了根据本公开的实施例的在同一页中的多个表格的示意图。如图13所示,在该页中存在三份表格,分别为资产负债表、利润表以及主要财务比率。如果按照方法
300中的表格模型进行识别,即以目标关键字为左上角起点,连续数字列中的最后一个数字
为右下角终点,则三张表将会被识别为同一个表格。因此,在这种情况下还需要基于方法
1200对多张表格进行分割。
[0147] 在步骤1202,计算设备210确定与所述PDF表格相关联的表格特征。例如,在财务类报表中,年份行一般只会出现一次,指标标识列一般也只会出现一次。因此,可以将年份行
或者指标标识列设置为一类表格特征。注意的是,表格特征不限于以上的年份行或者指标
标识列,而可以根据表格种类由用户根据表格处理经验设计。
[0148] 在步骤1204,计算设备210确定在扫描所述文本块的对角坐标期间所述表格特征是否重复出现。在定义由表格相关联的表格特征后,可以在所识别的表格文本块中检索表
格特征是否重复出现。例如,可以检索年份行和/或指标标识列是否有重复出现。
[0149] 在步骤1206,计算设备210响应于确定所述表格特征重复出现,根据所述表格特征以及所述表格特征重复出现次数将所述文本块分割为不同表格。如果确定年份行有重复出
现,则根据重复出现的次数将所识别的文本块分隔为多份表格。
[0150] 例如,在图13中,年份行出现有3次,则可以将表格分割为3份不同表格。同时可以根据表格特征对表格进行分割。例如,在列的维度上,指标标识列属于表与表之间的分隔
列。因此可以根据所识别的指标标识列(识别方法在上文有叙述)将文本块分成左侧的资产
负债表以及右侧的利润表连带主要财务比率。同时在行的维度上,目标关键字也属于表与
表之间的分隔行。因此可以根据所检索的目标关键字利润表、主要财务比率,将右侧的两边
分割为两个表格。
[0151] 最后在步骤1208中响应于确定所述表格特征未重复出现,确定所述文本块属于同一表格。如果没有重复出现表格特征,例如只出现有一次年份行或者指标标识列,则可以认
为所识别的文本块属于同一个表格。
[0152] 图14示出了可以用来实施本公开内容的实施例的示例电子设备1400的示意性框图。例如,如图2所示的计算设备210可以由电子设备1400来实施。如图所示,电子设备1400
包括中央处理单元(CPU)1401,其可以根据存储在只读存储器(ROM)1402中的计算机程序指
令或者从存储单元1408加载到随机存取存储器(RAM)1403中的计算机程序指令,来执行各
种适当的动作和处理。在随机存取存储器1403中,还可存储电子设备1400操作所需的各种
程序和数据。中央处理单元1401、只读存储器1402以及随机存取存储器1403通过总线1404
彼此相连。输入/输出(I/O)接口1405也连接至总线1404。
[0153] 电子设备1400中的多个部件连接至输入/输出接口1405,包括:输入单元1406,例如键盘、鼠标、麦克风等;输出单元1407,例如各种类型的显示器、扬声器等;存储单元1408,
例如磁盘、光盘等;以及通信单元1409,例如网卡、调制解调器、无线通信收发机等。通信单
元1409允许设备1400通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信
息/数据。
[0154] 上文所描述的各个过程和处理,例如方法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的一个或多个动作。
[0155] 本公开涉及方法、装置、系统、电子设备、计算机可读存储介质和/或计算机程序产品。计算机程序产品可以包括用于执行本公开的各个方面的计算机可读程序指令。
[0156] 计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储
设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的
更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存
储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式
压缩盘只读存储器(CD‑ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上
存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算
机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通
过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输
的电信号。
[0157] 这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外
部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关
计算机和/或边缘计算设备。每个计算/处理设备中的网络适配卡或者网络接口从网络接收
计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的
计算机可读存储介质中。
[0158] 用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的
任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如
Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机
可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独
立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机
或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包
括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利
用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令
的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可
编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方
面。
[0159] 这里参照根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/
或框图中各方框的组合,都可以由计算机可读程序指令实现。
[0160] 这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理单元,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数
据处理装置的处理单元执行时,产生了实现流程图和/或框图中的一个或多个方框中规定
的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这
些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指
令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方
框中规定的功能/动作的各个方面的指令。
[0161] 也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产
生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的
指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
[0162] 附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代
表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用
于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也
可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执
行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或
流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动
作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0163] 本领域普通技术人员应当了解,本发明不限定于上述的实施例,本发明可以在不偏离其主旨与范围内以许多其它的形式实施。因此,所展示的示例与实施例被视为示意性
的而非限制性的,在不脱离如所附各权利要求所定义的本发明精神及范围的情况下,本发
明可能涵盖各种的修改与替换。