CN113221523A - 处理表格的方法、计算设备和计算机可读存储介质 - Google Patents
处理表格的方法、计算设备和计算机可读存储介质 Download PDFInfo
- Publication number
- CN113221523A CN113221523A CN202110529807.4A CN202110529807A CN113221523A CN 113221523 A CN113221523 A CN 113221523A CN 202110529807 A CN202110529807 A CN 202110529807A CN 113221523 A CN113221523 A CN 113221523A
- Authority
- CN
- China
- Prior art keywords
- block
- blocks
- determining
- training
- column
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
- G06F40/177—Editing, e.g. inserting or deleting of tables; using ruled lines
- G06F40/18—Editing, e.g. inserting or deleting of tables; using ruled lines of spreadsheets
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/23—Clustering techniques
- G06F18/232—Non-hierarchical techniques
- G06F18/2321—Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions
- G06F18/23213—Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions with fixed number of clusters, e.g. K-means clustering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
- G06F18/2415—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on parametric or probabilistic models, e.g. based on likelihood ratio or false acceptance rate versus a false rejection rate
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/60—Type of objects
- G06V20/62—Text, e.g. of license plates, overlay texts or captions on TV images
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/10—Character recognition
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- General Engineering & Computer Science (AREA)
- Evolutionary Computation (AREA)
- Life Sciences & Earth Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Probability & Statistics with Applications (AREA)
- Molecular Biology (AREA)
- Bioinformatics & Computational Biology (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Multimedia (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开提供了一种处理表格的方法、计算设备和计算机可读存储介质。该方法包括:利用目标检测模型从图片中截取一个或多个表格子图,其中每个表格子图包括一个表格;对每个表格子图进行光学字符识别以检测所述表格子图中的多个字块,其中每个字块包含一个或多个字符;利用深度神经网络模型预测所述多个字块中的任意两个字块处于同一行的行概率和处于同一列的列概率;以及基于所述多个字块中的任意两个字块处于同一行的行概率和处于同一列的列概率对所述多个字块进行结构化重组以将所述表格重建为结构化表格。
Description
技术领域
本发明概括而言涉及机器学习领域,更具体地,涉及一种处理表格的方法、计算设备和计算机可读存储介质。
背景技术
学术论文是某一学术课题在实验性、理论性或预测性上具有的新的科学研究成果或创新见解和知识的科学记录,或是某种已知原理应用于实际上取得新进展的科学总结。在进行科学研究时,常常需要阅读海量的学术论文以进行知识抽取、归纳与整理。尤其是,学术论文中对其实验结果的记录通常以表格形式体现,***性提取和重建学术论文中的这些表格信息对于获取和总结知识非常重要。
因此,表格结构化(TSR,Table Structure Recognition)是学术论文信息抽取中非常具有挑战性的任务之一,其试图以一种统一格式来体现结构化表格,以便于表格信息能够被计算机自动化提取与应用。
当前,从PDF格式或图片格式的学术论文中获取表格文本的方案主要有两种:一种是将论文批量上传至在线软件或类似小软件,软件自动化处理完毕后返回结构化文本,其中表格部分被转换成一串文字;另一种是调用开源API接口,例如安装Python模块PyPDF2、pdfplumber等自动从PDF格式的论文中提取表格内容。
此外,当前的仅处理TSR任务的方案,如GraphTSR,能够基于一些规则,如识别表格线条或机器学习(图卷积网络(GCN))等来处理单一TSR任务。
然而,在上述采用在线软件或调用开源API接口的方案中,通常会存在文字顺序与表格不一致的问题,导致表格不同列或行之间内容混淆,因此,这些方案往往只能识别出表格中的文字,但无法重建单元格,不能实现完整的表格结构化过程。而对于仅处理TSR任务的方案,一方面单独调用表格结构识别算法通常只支持字块作为输入,不能以原始学术论文(例如图片或者PDF格式)作为输入,另一方面,目前方案对于复杂表格的识别准确性较差,再一方面,由于在TSR算法中未引入融入先验知识的预训练语言模型,因此尚不能支持表格中的文本的语义分析,从而TSR准确性不足。
发明内容
针对上述问题中的至少一个,本发明提供了一种提取图片中的结构化表格的方案,其通过对图片中的表格区域构建更多维度的特征,利用深度神经网络模型对表格中的字块的行概率和/或列概率进行预测从而将图片中的表格重建为结构化表格。本发明提供了一套完整的技术方案来实现从原始的图片中重建结构化表格。
根据本发明的一个方面,提供了一种处理表格的方法。该方法包括:利用目标检测模型从图片中截取一个或多个表格子图,其中每个表格子图包括一个表格;对每个表格子图进行光学字符识别以检测所述表格子图中的多个字块,其中每个字块包含一个或多个字符;利用深度神经网络模型预测所述多个字块中的任意两个字块处于同一行的行概率和处于同一列的列概率;以及基于所述多个字块中的任意两个字块处于同一行的行概率和处于同一列的列概率对所述多个字块进行结构化重组以将所述表格重建为结构化表格。
根据本发明的另一个方面,提供了一种计算设备。该计算设备包括:至少一个处理器;以及至少一个存储器,该至少一个存储器被耦合到该至少一个处理器并且存储用于由该至少一个处理器执行的指令,该指令当由该至少一个处理器执行时,使得该计算设备执行根据上述方法的步骤。
根据本发明的再一个方面,提供了一种计算机可读存储介质,其上存储有计算机程序代码,该计算机程序代码在被运行时执行如上所述的方法。
在一些实施例中,所述深度神经网络模型包括输入层、BioBERT网络层、第一融合向量层、GCN网络层、第二融合向量层、全连接网络层和输出层,其中利用深度神经网络模型预测所述多个字块中的任意两个字块处于同一行的行概率和处于同一列的列概率包括:在所述输入层,针对待预测的两个字块中的第一字块和第二字块确定所述深度神经网络模型的输入数据,其中所述输入数据包括所述第一字块的第一文本ID、第一位置向量、所述第二字块的第二文本ID、第二位置向量、所述第一字块和所述第二字块之间的相对位置向量以及所述表格子图的邻接矩阵和权重矩阵;在所述BioBERT网络层,基于所述第一字块的第一文本ID和所述第二字块的第二文本ID分别确定所述第一字块的第一特征向量和所述第二字块的第二特征向量;在所述第一融合向量层,将所述第一字块的第一位置向量和第一特征向量进行拼接以产生所述第一字块的第一融合向量,并且将所述第二字块的第二位置向量和第二特征向量进行拼接以产生所述第二字块的第二融合向量;在所述GCN网络层,基于所述第一字块的第一融合向量、所述第二字块的第二融合向量以及所述表格子图的邻接矩阵和权重矩阵,分别确定所述第一字块的第一卷积输出向量和所述第二字块的第二卷积输出向量;在所述第二融合向量层,将所述第一字块和所述第二字块之间的相对位置向量、所述第一字块的第一融合向量和第一卷积输出向量以及所述第二字块的第二融合向量和第二卷积输出向量进行拼接以确定所述第一字块和所述第二字块的融合特征向量;在所述全连接网络层,基于所述第一字块和所述第二字块的融合特征向量和第一全连接网络预测所述第一字块和所述第二字块处于同一行的行概率,并且基于所述融合特征向量和第二全连接网络预测所述第一字块和所述第二字块处于同一列的列概率;以及在所述输出层,输出所述第一字块和所述第二字块的所述行概率和所述列概率。
在一些实施例中,针对待预测的两个字块中的第一字块和第二字块确定所述深度神经网络模型的输入数据包括:将所述第一字块和所述第二字块的文本分别转换为所述第一文本ID和所述第二文本ID;分别基于所述第一字块和所述第二字块的位置信息获取所述第一字块的第一位置向量和所述第二字块的第二位置向量;基于所述第一字块的第一位置向量和所述第二字块的第二位置向量确定所述第一字块和所述第二字块之间的相对位置向量;基于所述表格子图的所述多个字块之间的距离确定所述表格子图的邻接矩阵;以及基于所述邻接矩阵确定所述表格子图的权重矩阵。
在一些实施例中,分别基于所述第一字块和所述第二字块的位置信息获取所述第一字块的第一位置向量和所述第二字块的第二位置向量包括:基于所述第一字块的位置信息确定所述第一字块的归一化坐标信息,基于所述第一字块的归一化坐标信息确定所述第一字块的归一化中心位置和所述第一字块的归一化宽度和归一化高度,以及基于所述第一字块的归一化坐标信息、归一化中心位置、归一化宽度和归一化高度确定所述第一字块的第一位置向量,以及基于所述第二字块的位置信息确定所述第二字块的归一化坐标信息,基于所述第二字块的归一化坐标信息确定所述第二字块的归一化中心位置和所述第二字块的归一化宽度和归一化高度,以及基于所述第二字块的归一化坐标信息、归一化中心位置、归一化宽度和归一化高度确定所述第二字块的第二位置向量。
在一些实施例中,基于所述多个字块中的任意两个字块处于同一行的行概率和处于同一列的列概率对所述多个字块进行结构化重组以将所述表格重建为结构化表格包括:对于所述多个字块中的每个字块,基于所述字块与所述多个字块中的其他字块处于同一行的行概率和处于同一列的列概率以及所述字块与所述其他字块之间的位置关系,确定所述结构化表格的行数和列数;基于所述多个字块中的每个字块的位置信息以及所述结构化表格的行数和列数确定所述结构化表格中的每个候选单元格的边界;基于所述结构化表格中的两个相邻候选单元格所包含的字块之间的行概率和列概率确定所述两个相邻候选单元格是否应当合并;响应于确定所述两个相邻候选单元格应当合并,将所述两个相邻候选单元格合并为一个单元格;响应于确定所述两个相邻候选单元格不应当合并,将所述两个相邻候选单元格确定为两个单独的单元格;以及基于所述多个字块的位置信息将每个单元格所包含的字块进行合并以重建所述结构化表格。
在一些实施例中,确定所述结构化表格的行数和列数包括:对于所述多个字块中的每个目标字块,确定所述目标字块的候选右字块集合、候选左字块集合、候选上字块集合和候选下字块集合;分别基于所述目标字块的候选右字块集合、候选左字块集合、候选上字块集合和候选下字块集合中的每个字块的位置信息和所述目标字块的位置信息确定所述目标字块的右字块、左字块、上字块和下字块;基于所述多个字块中的每个字块的右字块确定所述表格子图的最右字块集合;对于所述最右字块集合中的每个最右字块,确定其左字块的个数;基于所述最右字块集合中的每个最右字块的左字块的个数确定所述结构化表格的列数;基于所述多个字块中的每个字块的下字块确定所述表格子图的最下字块集合;对于所述最下字块集合中的每个最下字块,确定其上字块的个数;以及基于所述最下字块集合中的每个最下字块的上字块的个数确定所述结构化表格的行数。
在一些实施例中,确定所述结构化表格中的每个候选单元格的边界包括:基于每个字块的上界坐标、下界坐标和中心位置纵坐标构建所述字块的行特征向量;基于所述多个字块的行特征向量和所述结构化表格的行数对所述多个字块进行聚类以确定所述多个字块的多个行类别,其中所述行类别的数量等于所述结构化表格的行数;对所述多个行类别中的每个行类别,确定所述行类别所包含的字块的平均中心纵坐标;按照每个行类别所包含的字块的平均中心纵坐标的大小对所述多个行类别进行排序;确定排序后的每个行类别的平均纵坐标;以及基于排序后的两个相邻行类别的平均纵坐标确定所述两个相邻行类别之间的行分界线的纵坐标。
在一些实施例中,确定所述结构化表格中的每个候选单元格的边界包括:基于每个字块的左界坐标、右界坐标和中心位置横坐标构建所述字块的列特征向量;基于所述多个字块的列特征向量和所述结构化表格的列数对所述多个字块进行聚类以确定所述多个字块的多个列类别,其中所述列类别的数量等于所述结构化表格的列数;对所述多个列类别中的每个列类别,确定所述列类别所包含的字块的平均中心横坐标;按照每个列类别所包含的字块的平均中心横坐标的大小对所述多个列类别进行排序;确定排序后的每个列类别的平均横坐标;以及基于排序后的两个相邻列类别的平均横坐标确定所述两个相邻列类别之间的列分界线的横坐标。
在一些实施例中,所述两个相邻候选单元格位于同一列并且包括位于第i行的第一候选单元格和位于第i+1行的第二候选单元格,并且确定所述两个相邻候选单元格是否应当合并包括:确定所述第i行中除了所述第一候选单元格之外的第三字块集合;确定所述第i+1行中除了所述第二候选单元格之外的第四字块集合;基于所述第i行中的任一字块与所述第i+1行中的任一字块之间的行概率、所述第一候选单元格包含的字块个数、所述第二候选单元格包含的字块个数、所述第三字块集合包含的字块个数和所述第四字块集合包含的字块个数,确定所述第一候选单元格和所述第二候选单元格之间的行合并值;确定所述行合并值是否大于预定阈值;响应于确定所述行合并值大于所述预定阈值,确定所述第一候选单元格和所述第二候选单元格应当合并;以及响应于确定所述行合并值小于或等于所述预定阈值,确定所述第一候选单元格和所述第二候选单元格不应当合并。
在一些实施例中,所述两个相邻候选单元格位于同一行并且包括位于第j列的第一候选单元格和位于第j+1列的第二候选单元格,并且确定所述两个相邻候选单元格是否应当合并包括:确定所述第j列中除了所述第一候选单元格之外的第五字块集合;确定所述第j+1列中除了所述第二候选单元格之外的第六字块集合;基于所述第j列中的任一字块与所述第j+1列中的任一字块之间的列概率、所述第一候选单元格包含的字块个数、所述第二候选单元格包含的字块个数、所述第五字块集合包含的字块个数和所述第六字块集合包含的字块个数,确定所述第一候选单元格和所述第二候选单元格之间的列合并值;确定所述列合并值是否大于预定阈值;响应于确定所述列合并值大于所述预定阈值,确定所述第一候选单元格和所述第二候选单元格应当合并;以及响应于确定所述列合并值小于或等于所述预定阈值,确定所述第一候选单元格和所述第二候选单元格不应当合并。
在一些实施例中,所述方法还包括:获取所述深度神经网络模型的训练数据集合,所述训练数据集合包括多个训练数据,每个训练数据包括与该训练数据相对应的一个训练表格所包含的多个训练字块的信息,每个训练字块的信息包括所述训练字块所包含的字符、所述训练字块的坐标位置以及所述训练字块在所述训练表格中的行列信息;在所述深度神经网络模型的输入层,针对所述训练表格的两个训练字块中的第一训练字块和第二训练字块确定所述深度神经网络模型的训练输入数据,其中所述训练输入数据包括所述第一训练字块的文本ID和位置向量、所述第二训练字块的文本ID和位置向量、所述第一训练字块和所述第二训练字块之间的相对位置向量以及所述训练表格的邻接矩阵和权重矩阵;在所述深度神经网络模型的BioBERT网络层,基于所述第一训练字块的文本ID和所述第二训练字块的文本ID分别确定所述第一训练字块的特征向量和所述第二训练字块的特征向量;在所述深度神经网络模型的第一融合向量层,将所述第一训练字块的位置向量和特征向量进行拼接以产生所述第一训练字块的融合向量,并且将所述第二训练字块的位置向量和特征向量进行融合以产生所述第二训练字块的融合向量;在所述深度神经网络模型的GCN网络层,基于所述第一训练字块的融合向量、所述第二训练字块的融合向量以及所述训练表格的邻接矩阵和权重矩阵,分别确定所述第一训练字块的卷积输出向量和所述第二训练字块的卷积输出向量;在所述深度神经网络模型的第二融合向量层,将所述第一训练字块和所述第二训练字块之间的相对位置向量、所述第一训练字块的融合向量和卷积输出向量以及所述第二训练字块的融合向量和卷积输出向量进行拼接以确定所述第一训练字块和所述第二训练字块的融合特征向量;在所述深度神经网络模型的全连接网络层,基于所述第一训练字块和所述第二训练字块的融合特征向量和第一全连接网络确定所述第一训练字块和所述第二训练字块处于同一行的行概率,并且基于所述第一训练字块和所述第二训练字块的融合特征向量和第二全连接网络确定所述第一训练字块和所述第二训练字块处于同一列的列概率;对所述第一训练字块和所述第二训练字块处于同一行的行概率和处于同一列的列概率进行Softmax回归,并且利用交叉熵损失函数确定所述第一训练字块和所述第二训练字块的行损失值和列损失值;以及基于所述第一训练字块和所述第二训练字块的行损失值和列损失值确定所述深度神经网络模型的损失值并且基于所述损失值更新所述深度神经网络模型的参数矩阵。
附图说明
通过参考下列附图所给出的本发明的具体实施方式的描述,将更好地理解本发明,并且本发明的其他目的、细节、特点和优点将变得更加显而易见。
图1示出了用于实现根据本发明的实施例的处理表格的方法的***的示意图。
图2示出了根据本发明的一些实施例的用于处理表格的方法的流程图。
图3示出了根据本发明实施例的Mask R-CNN模型的结构示意图。
图4示出了根据本发明实施例截取的一个表格子图的示意图。
图5示出了根据本发明实施例的深度神经网络模型的结构示意图。
图6示出了根据本发明实施例的确定两个字块处于同一行的行概率和处于同一列的列概率的步骤的流程图。
图7示出了根据本发明实施例的用于确定深度神经网络模型的输入数据的子步骤的流程图。
图8示出了根据本发明实施例的用于重建结构化表格的步骤的流程图。
图9示出了根据本发明实施例的确定结构化表格的行数和列数的子步骤的流程图。
图10示出了根据本发明实施例的确定候选单元格之间的行分界线的过程的流程图。
图11示出了根据本发明实施例的确定候选单元格之间的列分界线的过程的流程图。
图12示出了根据本发明实施例的用于确定两个相邻候选单元格是否应当进行行合并的过程的流程图。
图13示出了根据本发明实施例的用于确定两个相邻候选单元格是否应当进行列合并的过程的流程图。
图14示出了根据本发明实施例的对深度神经网络模型进行训练的步骤的流程图。
图15示出了适合实现本发明的实施例的计算设备的结构方框图。
具体实施方式
下面将参照附图更详细地描述本发明的优选实施方式。虽然附图中显示了本发明的优选实施方式,然而应该理解,可以以各种形式实现本发明而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本发明更加透彻和完整,并且能够将本发明的范围完整的传达给本领域的技术人员。
在下文的描述中,出于说明各种发明的实施例的目的阐述了某些具体细节以提供对各种发明实施例的透彻理解。但是,相关领域技术人员将认识到可在无这些具体细节中的一个或多个细节的情况来实践实施例。在其它情形下,与本申请相关联的熟知的装置、结构和技术可能并未详细地示出或描述从而避免不必要地混淆实施例的描述。
除非语境有其它需要,在整个说明书和权利要求中,词语“包括”和其变型,诸如“包含”和“具有”应被理解为开放的、包含的含义,即应解释为“包括,但不限于”。
在整个说明书中对“一个实施例”或“一些实施例”的提及表示结合实施例所描述的特定特点、结构或特征包括于至少一个实施例中。因此,在整个说明书的各个位置“在一个实施例中”或“在一些实施例”中的出现不一定全都指相同实施例。另外,特定特点、结构或特征可在一个或多个实施例中以任何方式组合。
此外,说明书和权利要求中所用的第一、第二、第三、第四等术语,仅仅出于描述清楚起见来区分各个对象,而并不限定其所描述的对象的大小或其他顺序等。
图1示出了用于实现根据本发明的实施例的处理表格的方法的***1的示意图。如图1中所示,***1包括计算设备10、服务器20和网络30。计算设备10和服务器20可以通过网络30进行数据交互。这里,服务器20例如可以是专用于提供表格重构服务的服务提供商的服务器,计算设备10与该服务器20相连以基于来自服务器20的命令执行相应的操作。计算设备10可以包括至少一个处理器110和与该至少一个处理器110耦合的至少一个存储器120,该存储器120中存储有可由该至少一个处理器110执行的指令130,该指令130在被该至少一个处理器110执行时执行如下所述的方法200的至少一部分。注意,在本文中,计算设备10可以是服务器20的一部分或者可以独立于服务器20。计算设备10或服务器20的具体结构例如可以如下结合图15所述。
图2示出了根据本发明的一些实施例的用于处理表格的方法200的流程图。方法200例如可以由图1中所示的***1中的计算设备10或服务器20执行。以下以在计算设备10中执行为例,结合图1至图14对方法200进行描述。
如图2中所示,方法200包括步骤210,其中计算设备10可以利用目标检测模型从待检测的图片中截取一个或多个表格子图。其中,每个表格子图包括一个表格。
目标检测模型是指从图片中检测出特定目标对象的机器学习模型。取决于实际的应用需求,可以使用两阶段(2-stage)目标检测模型(如R-CNN(Region-basedConvolutional Neural Networks,基于区域的卷积神经网络)、Fast R-CNN、Faster R-CNN、Mask R-CNN等)或者单阶段(1-stage)目标检测模型(如YOLO(You Only Look Once)、SSD(Single Shot Multibox Detector)等)中的任一种。
对于单阶段目标检测模型来说,可以仅针对需要的表格类别的目标对象进行模型训练,并且训练后的模型也仅用于检测表格类别的目标对象。
对于两阶段目标检测模型来说,可以对需要的多种类别(包括表格类别)的目标对象进行模型训练,并且训练后的模型能够检测多种类别的目标对象。
在步骤210中,计算设备10可以使用训练好的目标检测模型从待检测的图片中截取一个或多个目标区域,每个目标区域包含一个表格。当然,也可能没有检测到任何目标区域。在这种情况下,可以判断该图片中不存在表格,并且跳过该图片的处理。
在本文中,以Mask R-CNN模型为例来描述目标检测模型的训练和使用。图3示出了根据本发明实施例的Mask R-CNN模型300的结构示意图。然而,本领域技术人员可以理解,本文所述的目标检测模型并不局限于Mask R-CNN模型,而是可以使用上述各种目标检测模型或者其他传统的目标检测算法。
具体地,例如可以以PubLayNet数据集作为目标检测模型的训练数据集合,其中PubLayNet数据集来源于PubMed,包含36万文档图像版面分析,其中的图像均为学术论文相关图片,并且包含了相关的注释信息。注释信息主要为每个目标区域的位置信息和类别,类别例如包括文本(Text)类别、标题(Title)类别、表格(Table)类别、图表(Figure)类别和列表(List)类别等。
如图3中所示,模型300可以包括卷积层310、RPN(Region Proposal Network,区域提议网络)层320、ROI(Region of Interest,感兴趣区域)对准层330、目标区域预测层340、掩码(Mask)层350和输出层360。
卷积层310例如可以利用残差网络(ResNet)实现,以对输入的训练图片进行特征提取以产生图片的特征图。例如,卷积层310可以利用101层残差网络(ResNet-50)或者FPN(Feature Pyramid Network,特征金字塔网络)等实现。
RPN层320例如可以采用全卷积网络对来自卷积层310的特征图进行检测以产生预测的目标对象区域。
ROI对准层330可以基于RPN层320输出的预测的目标对象区域对卷积层310输出的特征图的每个感兴趣区域进行对准以产生ROI区域。
目标区域预测层340用于对ROI对准层330产生的ROI区域的区域特征进行分类和回归以确定预测目标区域。
掩码层350用于对ROI对准层330产生的ROI区域进行目标检测和分割以确定ROI区域的二进制掩码。
输出层360基于目标区域预测层340输出的预测目标区域和掩码层350输出的二进制掩码确定每个ROI区域的损失值并对整个模型300的参数矩阵进行迭代更新。
在模型300训练好之后,可以在步骤210中,按照上述方式从待检测的图片中确定各种类型的ROI区域及其在图片中的坐标位置,并且将其中的表格类型的ROI区域识别为表格子图并按照坐标位置依次截出。按照这种方式识别的每个表格子图包含一个表格。
在一些情况下,待检测的文件不是图片(例如jpg)格式的。在这种情况下,在步骤210中或者步骤210之前还可以包括,对待检测的文件进行格式转换以将其转换为图片格式。例如,学术论文的常见格式是PDF。在这种情况下,可以通过各种文件格式转换软件(例如Python中的pdf2image模块)将PDF格式的文件转换为图片格式的文件,其中,在PDF格式的文件包含多页的情况下,可以将其每一页转换为一个单独的图片。
继续图2的方法200,在步骤220,计算设备10可以对步骤210中截取的每个表格子图进行光学字符识别(OCR)以检测该表格子图中的多个字块,其中每个字块包含一个或多个字符。
在步骤220中,可以利用各种已知的或将来开发的OCR方案来检测表格子图中的字块。例如,在一种实施方式中,可以利用谷歌的开源OCR项目tesseract来识别每个表格子图中的文本。具体而言,可以运行tesseract对步骤210中截取的每个表格子图进行光学字符识别,并且将其中的所有字符识别为多个字块。在这种情况下,识别结果包括每个字块中所包含的字符以及该字块在图片中的坐标位置信息。图4示出了根据本发明实施例截取的一个表格子图400的示意图。如图4中所示,在对表格子图进行OCR之后可以检测出该表格子图中的多个字块(在图4中显示为字母或数字周围的方框)。
这里,可以使用各种已有的或将来开发的OCR工具对表格子图进行OCR操作以检测其中的字块。例如,图4中所示的表格子图400是使用谷歌的开源OCR项目tesseract进行OCR操作的结果。注意,不同的OCR工具的识别策略不同,从而产生的结果的表现形式可能不同,但是这并不影响本发明的思想保护的范围。
接下来,在步骤230,计算设备10可以利用深度神经网络模型预测步骤220中检测的表格子图中的多个字块中的任意两个字块处于同一行的行概率和处于同一列的列概率。
图5示出了根据本发明实施例的深度神经网络模型500的结构示意图。如图5中所示,深度神经网络模型500可以包括输入层510、BioBERT网络层520、第一融合向量层530、GCN(Graph Convolutional Network,图卷积网络)网络层540、第二融合向量层550、全连接网络层560和输出层570。输入层510用于确定或输入深度神经网络模型500的输入数据,该输入数据包括表格子图400中的每个字块的文本ID、位置向量、两个字块之间的相对位置向量、该表格子图的所有字块之间的邻接矩阵和权重矩阵。BioBERT网络层520用于以每个字块的文本ID作为输入,通过BioBERT框架对每个字块中的字符进行编码以得到该字块的特征向量。第一融合向量层530用于将每个字块的位置向量与特征向量进行融合以得到该字块的融合向量。GCN网络层540基于每个字块的融合向量、该表格子图的邻接矩阵和权重矩阵确定该字块的卷积输出向量。第二融合向量层550用于将待预测的两个字块的融合向量、卷积输出向量和相对位置向量进行融合以确定这两个字块的融合特征向量。全连接网络层560包括分别用于行预测和列预测的第一全连接网络562和第二全连接网络564,其可以分别基于两个字块的融合特征向量预测这两个字块处于同一行的行概率和处于同一列的列概率。
以下结合图6和图7详细描述深度神经网络模型500的各个层的操作。图6示出了根据本发明实施例的确定两个字块处于同一行的行概率和处于同一列的列概率的步骤230的流程图。注意,在以下的描述中,仅着重描述与一次预测过程中的待预测的两个字块A和B(也称为第一字块和第二字块)有关的数据处理过程,而省略与该表格子图中的其他字块(图5中以X表示)有关的数据处理过程。
如图6中所示,步骤230可以包括子步骤231,其中在输入层510,计算设备10可以针对待预测的两个字块A和B确定深度神经网络模型500的输入数据。该输入数据可以包括第一字块A的第一文本ID、第一位置向量、第二字块B的第二文本ID、第二位置向量、第一字块A和第二字块B之间的相对位置向量以及该表格子图400的邻接矩阵和权重矩阵。
图7示出了根据本发明实施例的用于确定深度神经网络模型500的输入数据的子步骤231的流程图。
如图7中所示,子步骤231可以包括子步骤2311,其中计算设备10可以将第一字块A和第二字块B的文本分别转换为第一文本ID和第二文本ID。取决于深度神经网络模型500的网络结构,子步骤2311可以有不同的转换方法。在本文中,由于输入层510的下一层为BioBERT网络层520,因此,在子步骤2311,可以利用匹配于BioBERT的方法来对字块中的文本进行转换。
在子步骤2312,计算设备10可以分别基于第一字块A和第二字块B的位置信息获取第一字块A的第一位置向量n(A)和第二字块B的第二位置向量n(B)。
在本文的一些实施例中,每个字块的位置向量可以包含三部分信息:1)该字块在该图片中的归一化坐标信息;2)该字块的归一化中心位置;以及3)该字块的归一化宽度和归一化高度。
具体地,计算设备10可以基于一个字块的位置信息确定该字块的归一化坐标信息。例如,假设一个字块的位置信息可以表示为绝对坐标(x1,x2,y1,y2),其中x2>x1并且y2>y1,其表示由四个顶点坐标(x1,y1)、(x1,y2)、(x2,y1)和(x2,y2)构成的矩形。图片的宽和高分辨为W和H。则该字块的归一化坐标信息可以表示为相对坐标(x1',x2',y1',y2'),其中x1'=x1/W,x2'=x2/W,y1'=y1/H,y2'=y2/H。
然后,计算设备10可以基于该字块的归一化坐标信息(x1',x2',y1',y2')确定其归一化中心位置((x1'+x2')/2,(y1'+y2')/2)、归一化宽度(x2'-x1')和归一化高度(y2'-y1')。
基于该字块的归一化坐标信息、归一化中心位置、归一化宽度和归一化高度,计算设备10可以确定该字块的位置向量。例如,该字块的位置向量可以是将该字块的4个维度的归一化坐标信息(x1',x2',y1',y2')、2个维度的归一化中心位置((x1'+x2')/2,(y1'+y2')/2)、1个维度的归一化宽度(x2'-x1')和1个维度的归一化高度(y2'-y1')拼接构成的8个维度的位置向量。
对于如图5所示的第一字块A和第二字块B,计算设备10可以按照上述相同的方式分别确定第一字块A的位置向量(称为第一位置向量n(A))和第二字块B的位置向量(称为第二位置向量n(B))。
继续图7,在子步骤2313,计算设备10可以基于第一字块A的第一位置向量n(A)和第二字块B的第二位置向量n(B)确定第一字块A和第二字块B之间的相对位置向量。
具体地,计算设备10可以基于第一字块A的归一化中心位置((xA1'+xA2')/2,(yA1'+yA2')/2)和第二字块B的归一化中心位置((xB1'+xB2')/2,(yB1'+yB2')/2)确定第一字块A和第二字块B之间的相对位置向量,该相对位置向量w(AB)可以表示为((xB1'+xB2')/2-(xA1'+xA2')/2,(yB1'+yB2')/2-(yA1'+yA2')/2)。
在子步骤2314,计算设备10可以基于表格子图400的所有字块之间的距离确定表格子图400的邻接矩阵。
具体地,将表格子图400中每个字块看作一个节点,对于任意一个节点,计算其他节点与该节点之间的空间距离,并且将空间距离最近的若干个(例如10个)其他节点与该节点之间各构建一条无向边,从而产生整个表格子图400中的所有字块的无向图。根据该无向图可以确定该表格子图400的所有字块之间的邻接矩阵,在该邻接矩阵中,存在无向边的两个节点所对应的元素取值为1,反之则为0。例如,对于包含Nt个字块的表格子图400,其邻接矩阵是一个Nt*Nt的矩阵。
接下来,在子步骤2315,计算设备10可以基于邻接矩阵确定表格子图400的权重矩阵。
在本发明的一些实施例中,权重矩阵中的每个权重值可以由该邻接矩阵中的元素值除以该元素所在行的所有元素之和来确定。
继续图6,在步骤230的子步骤232,在BioBERT网络层520,计算设备10可以基于第一字块A的第一文本ID和第二字块B的第二文本ID分别确定第一字块A的特征向量(以下称为第一特征向量m(A))和第二字块B的特征向量(以下称为第二特征向量m(B))。
具体地,计算设备10可以以每个字块的文本ID作为输入,利用BioBERT框架对每个字块中的字符进行编码以得到该字块的特征向量。
BERT是一个基于上下文的单词表示模型,该模型基于标注语言模型并使用双向转换器(Transformer)进行了预训练,其通过使用掩蔽语言模型来预测序列中的随机掩蔽词,使得可用于学习双向表示。BioBERT模型具有与BERT模型几乎相同的结构,不同之处在于使用生物医学文献数据库进行了预训练,并且可用于进行生物医学领域的文本挖掘。本文中BioBERT网络层520使用了现有技术中的训练好的BioBERT模型,因此在本文中不再对其结构和训练方式进行详细描述。
取决于实际应用需求,可以选择不同的BioBERT模型参数。在一种实例中,选择的BioBERT模型的隐藏层的大小是768,因此对于BioBERT网络层520的输入(单词或句子)产生的特征向量(embedding)的大小为768维。
接下来,在子步骤233,在第一融合向量层530,计算设备10可以将第一字块A的第一位置向量n(A)和第一特征向量m(A)进行拼接以产生第一字块A的第一融合向量u(A),并且将第二字块B的第二位置向量n(B)和第二特征向量m(B)进行拼接以产生第二字块B的第二融合向量u(B)。
在一种实例中,对于上述的8维的位置向量和768维的特征向量,所产生的融合向量的维度为776维。
在子步骤234,在GCN网络层540,计算设备10可以基于第一字块A的第一融合向量u(A)、第二字块B的第二融合向量u(B)以及表格子图400的邻接矩阵和权重矩阵,分别确定第一字块A的第一卷积输出向量v(A)和第二字块B的第二卷积输出向量v(B)。本文中GCN网络层540使用了现有技术中的训练好的GCN模型,因此在本文中不再对其结构和训练方式进行详细描述。
取决于实际应用需求,可以选择不同的GCN模型参数。在一种实例中,在GCN网络层540的矩阵运算中,选择的权重矩阵的维度为776*223,因此其可以将776维的第一融合向量u(A)转换为223维的第一卷积输出向量v(A),并且将776维的第二融合向量u(B)转换为223维的第二卷积输出向量v(B)。
通过GCN网络层540,表格子图400中除了待预测的两个字块A和B之外的其他字块的信息被滤除,从而得到待预测的两个字块A和B的卷积输出向量。
继续图6,在子步骤235,在第二融合向量层550,计算设备10可以将第一字块A和第二字块B之间的相对位置向量w(AB)、第一字块A的第一融合向量u(A)和第一卷积输出向量v(A)以及第二字块B的第二融合向量u(B)和第二卷积输出向量v(B)进行拼接以确定第一字块A和第二字块B的融合特征向量。
在一种实例中,对于上述的2维的相对位置向量w(AB)、776维的第一融合向量u(A)和第二融合向量u(B)以及223维的第一卷积输出向量v(A)和第二卷积输出向量v(B),得到的融合特征向量的维度为2000维。
在子步骤236,在全连接网络层560,计算设备10可以基于第一字块A和第二字块B的融合特征向量和第一全连接网络562预测第一字块A和第二字块B处于同一行的行概率,并且基于该融合特征向量和第二全连接网络564预测第一字块A和第二字块B处于同一列的列概率。
第一全连接网络562可以是由多个全连接层和激活函数构成的全连接网络,其可以分别确定第一字块A和第二字块B属于同一行的概率值和不属于同一行的概率值,并且将第一字块A和第二字块B属于同一行的概率值预测为第一字块A和第二字块B处于同一行的行概率。例如,假设第一字块A和第二字块B通过第一全连接网络562之后输出二维的概率向量[0.2,0.8],这表示第一字块A和第二字块B属于同一行的概率值为0.2,不属于同一行的概率值为0.8,从而将第一字块A和第二字块B处于同一行的行概率确定为0.2。
类似地,第二全连接网络564也可以是由多个全连接层和激活函数构成的全连接网络,其可以分别确定第一字块A和第二字块B属于同一列的概率值和不属于同一列的概率值,并且将第一字块A和第二字块B属于同一列的概率值预测为第一字块A和第二字块B处于同一列的列概率。例如,假设第一字块A和第二字块B通过第二全连接网络564之后输出二维的概率向量[0.66,0.33],这表示第一字块A和第二字块B属于同一列的概率值为0.66,不属于同一列的概率值为0.33,从而将第一字块A和第二字块B处于同一列的列概率确定为0.66。
最后,在子步骤237,在输出层570,计算设备10可以输出第一字块A和第二字块B的行概率和列概率,以供后续重建结构化表格使用。
对于步骤220中检测的表格子图400的多个字块,可以对其中的任意两个字块重复执行图6所述的步骤230的操作以确定任意两个字块处于同一行的行概率和处于同一列的列概率。
继续图2,在步骤240,计算设备10可以基于步骤230中确定的多个字块中的任意两个字块处于同一行的行概率和处于同一列的列概率对表格子图400中的多个字块进行结构化重组以将表格子图400中的表格重建为结构化表格。
图8示出了根据本发明实施例的用于重建结构化表格的步骤240的流程图。
如图8中所示,步骤240可以包括子步骤241,其中计算设备10可以对于表格子图400的多个字块中的每个字块,基于该字块与表格子图400的多个字块中的其他字块处于同一行的行概率和处于同一列的列概率以及该字块与其他字块之间的位置关系,确定结构化表格的行数和列数。
图9示出了根据本发明实施例的确定结构化表格的行数和列数的子步骤241的流程图。
如图9中所示,子步骤241可以包括子步骤2411,其中计算设备10可以对于表格子图200的多个字块中的每个目标字块,确定该目标字块的候选右字块集合、候选左字块集合、候选上字块集合和候选下字块集合。
具体地,在一些实施例中,计算设备10可以遍历表格子图400中除了该字块(也称为目标字块)之外的所有其他字块,从所有其他字块中选择左边界大于该目标字块的右边界的每个字块作为该目标字块的候选右字块集合中的一个候选右字块。进一步地,计算设备10还可以从这些候选右字块集合中筛选出与该目标字块处于同一行的行概率大于预定阈值(如0.5)的候选右字块作为最终的候选右字块集合。
类似地,计算设备10还可以确定该目标字块的候选左字块集合、候选上字块集合和候选下字块集合。
在子步骤2412,计算设备10可以分别基于该目标字块的候选右字块集合、候选左字块集合、候选上字块集合和候选下字块集合中的每个字块的位置信息和该目标字块的位置信息确定该目标字块的右字块、左字块、上字块和下字块。
这里,目标字块的右字块、左字块、上字块和下字块是指与该目标字块紧邻的右字块、左字块、上字块和下字块。
具体地,在一些实施例中,计算设备10可以从目标字块的候选右字块集合中选取中心位置的横坐标最小(即最靠左)的一个候选右字块作为该目标字块的右字块。例如,在字块A作为目标字块时,其右字块可以标记为right(A)。
类似地,计算设备10还可以确定该目标字块的左字块(left(A))、上字块(up(A))和下字块(down(A))。
在子步骤2413,计算设备10可以基于表格子图400的多个字块中的每个字块的右字块确定表格子图400的最右字块集合。
具体地,以字块A为例,在一些实施例中,确定字块A的右字块right(A)是否为空。如果字块A的右字块right(A)为空,则将字块A作为表格子图400的最右字块集合中的一个最右字块。
接下来,在子步骤2414,计算设备10可以对于表格子图400的最右字块集合中的每个最右字块,确定其左字块的个数,并且在子步骤2415,基于最右字块集合中的每个最右字块的左字块的个数确定结构化表格的列数。
这里,假设子步骤2413确定的最右字块集合为{x1,x2,...,xn},其中xi(1≤i≤n,n为大于1的正整数)表示该最右字块集合中的一个最右字块。对于最右字块xi,在表格子图400的所有字块中递归寻找其左字块left(xi),并确定对于该最右字块xi的预测列数number(xi)。
具体地,对于最右字块xi,可以确定其是否存在左字块left(xi),如果不存在左字块left(xi),则number(xi)=1;如果存在左字块left(xi),则对number(xi)加1,并且继续确定左字块left(xi)是否仍存在左字块left(left(xi))。
通过这种方式,可以确定最右字块集合{x1,x2,...,xn}中的每个最右字块的预测列数{number(x1),number(x2),...,number(xn)}。
在一种实例中,可以将结构化表格的列数ncol确定为:
ncol=median(number(x1),number(x2),...,number(xn))
其中,median()表示取中值操作。
另一方面,与子步骤2413中类似,在子步骤2416,计算设备10可以基于表格子图400的多个字块中的每个字块的下字块确定表格子图400的最下字块集合。
具体地,以字块A为例,在一些实施例中,确定字块A的下字块down(A)是否为空。如果字块A的下字块down(A)为空,则将字块A作为表格子图400的最下字块集合中的一个最下字块。
在子步骤2417,与子步骤2414中类似,计算设备10可以对于表格子图400的最下字块集合中的每个最下字块,确定其上字块的个数,并且在子步骤2418,与子步骤2415中类似,基于最下字块集合中的每个最下字块的上字块的个数确定结构化表格的行数。
这里,假设子步骤2416确定的最下字块集合为{y1,y2,...,ym},其中yi(1≤i≤m,m为大于1的正整数)表示该最下字块集合中的一个最下字块。对于最下字块yi,在表格子图400的所有字块中递归寻找其上字块up(yi),并确定对于该最下字块yi的预测行数number(yi)。
具体地,对于最下字块yi,可以确定其是否存在上字块up(yi),如果不存在上字块up(yi),则number(yi)=1;如果存在上字块up(yi),则对number(yi)加1,并且继续确定上字块up(yi)是否仍存在上字块up(up(yi))。
通过这种方式,可以确定最下字块集合{y1,y2,...,ym}中的每个最下字块的预测行数{number(y1),number(y2),...,number(ym)}。
在一种实例中,可以将结构化表格的行数nrow确定为:
nrow=median(number(y1),number(y2),...,number(ym))
其中,median()表示取中值操作。
注意,虽然图9中将子步骤2416至2418显示为在子步骤2413至2415之后,但是本领域技术人员可以理解,图中所示的子步骤的顺序仅仅是示意性的,子步骤2416至2418可以在子步骤2413至2415之前执行或者与子步骤2413至2415并行执行。
继续图8,在子步骤242,计算设备10可以基于表格子图400的多个字块中的每个字块的位置信息以及子步骤241确定的结构化表格的行数和列数来确定该结构化表格中的每个候选单元格的边界。如本领域技术人员所公知的,单元格是表格中行与列的交叉部分,它是组成表格的最小单位,可拆分或者合并。单个数据的输入和修改都是在单元格中进行的。在利用诸如MS Word、Excel或WPS之类的工具产生表格时,通常是以单元格为单位进行操作的,每个单元格中的文本数据用来表示独立的语义,因此在重构该结构化表格时,也应当确定每个单元格的范围/边界从而获得准确的表格语义表示。
确定结构化表格中的单元格之间的边界可以包括确定单元格之间的行分界线和列分界线。取决于表格的具体样式和重构需求,可以仅确定行分界线、仅确定列分界线或者确定行分界线和列分界线二者。由于在产生表格时可能会存在单元格的拆分或合并,因此通过单元格之间的行分界线和列分界线确定的单元格的范围只是结构化表格中的最小粒度的单元格,以下的描述中也称为候选单元格。
图10示出了根据本发明实施例的确定候选单元格之间的行分界线的过程的流程图。
如图10中所示,确定候选单元格之间的行分界线可以包括子步骤2421,其中计算设备10可以基于每个字块的上界坐标、下界坐标和中心位置纵坐标构建该字块的行特征向量。
如前所述,假设一个字块的归一化坐标信息表示为(x1',x2',y1',y2'),其归一化中心位置表示为((x1'+x2')/2,(y1'+y2')/2),在这种情况下,为其构建的行特征向量可以表示为(y1',y2',(y1'+y2')/2)。
接下来,在子步骤2422,计算设备10可以基于表格子图400的多个字块的行特征向量和该结构化表格的行数nrow对这些字块进行聚类以确定这些字块的多个行类别。
这里,可以采用诸如Kmean之类的聚类算法对这些字块进行聚类(称为行聚类),其中进行行聚类时,将行类别的数量设置为结构化表格的行数nrow。对表格子图400的多个字块进行行聚类之后产生nrow个行类别,每个行类别包含一个或多个字块。
在子步骤2423,计算设备10可以对nrow个行类别中的每个行类别,确定该行类别所包含的字块的平均中心纵坐标。
这里,例如可以根据子步骤2421中确定的每个字块的行特征向量中的中心位置纵坐标和该行类别所包含的字块来确定该行类别所包含的字块的平均中心纵坐标。
在子步骤2424,计算设备10可以按照子步骤2423中确定的每个行类别所包含的字块的平均中心纵坐标的大小对nrow个行类别进行排序。排序后的行类别的序号例如可以表示为1、2、3……nrow。
接下来,在子步骤2425,计算设备10可以确定排序后的每个行类别的平均纵坐标。例如,对于任意一个行类别i(1≤i≤nrow),可以对该行类别中的所有字块的中心位置纵坐标求平均来确定该行类别的平均纵坐标。
在子步骤2426,计算设备10可以基于排序后的两个相邻行类别的平均纵坐标确定这两个相邻行类别之间的行分界线的纵坐标。
在一种实施例中,两个相邻行类别之间的行分界线的纵坐标y_axis可以表示为:
y_axis(linej)=(yj+yj+1)/2
其中,linej表示第j个行类别和第j+1个行类别之间的行分界线,yj表示第j个行类别的平均纵坐标,yj+1表示第j+1个行类别的平均纵坐标,其中1≤j≤nrow-1。
通过这种方式,可以确定两个相邻行类别之间的行分界线的纵坐标,该行分界线即为候选单元格之间的行分界线。
图11示出了根据本发明实施例的确定候选单元格之间的列分界线的过程的流程图。确定列分界线的方式可以与上述确定行分界线的方式类似,因此参照与图10类似的描述方式进行描述。
如图11中所示,确定候选单元格之间的列分界线可以包括子步骤2421',其中计算设备10可以基于每个字块的左界坐标、右界坐标和中心位置横坐标构建该字块的列特征向量。
如前所述,假设一个字块的归一化坐标信息表示为(x1',x2',y1',y2'),其归一化中心位置表示为((x1'+x2')/2,(y1'+y2')/2),在这种情况下,为其构建的列特征向量可以表示为(x1',x2',(x1'+x2')/2)。
接下来,在子步骤2422',计算设备10可以基于表格子图400的多个字块的列特征向量和该结构化表格的列数ncol对这些字块进行聚类以确定这些字块的多个列类别。
这里,可以采用诸如Kmean之类的聚类算法对这些字块进行聚类(称为列聚类),其中进行列聚类时,将列类别的数量设置为结构化表格的列数ncol。对表格子图400的多个字块进行列聚类之后产生ncol个列类别,每个列类别包含一个或多个字块。
在子步骤2423',计算设备10可以对ncol个列类别中的每个列类别,确定该列类别所包含的字块的平均中心横坐标。
这里,例如可以根据子步骤2421'中确定的每个字块的列特征向量中的中心位置横坐标和该列类别所包含的字块来确定该列类别所包含的字块的平均中心横坐标。
在子步骤2424',计算设备10可以按照子步骤2423中确定的每个列类别所包含的字块的平均中心横坐标的大小对ncol个列类别进行排序。排序后的列类别的序号例如可以表示为1、2、3……ncol。
接下来,在子步骤2425',计算设备10可以确定排序后的每个列类别的平均横坐标。例如,对于任意一个列类别i(1≤i≤ncol),可以对该列类别中的所有字块的中心位置横坐标求平均来确定该列类别的平均横坐标。
在子步骤2426',计算设备10可以基于排序后的两个相邻列类别的平均横坐标确定这两个相邻列类别之间的列分界线的横坐标。
在一种实施例中,两个相邻列类别之间的列分界线的横坐标x_axis可以表示为:
x_axis(linei)=(xi+xi+1)/2
其中,linei表示第i个列类别和第i+1个列类别之间的列分界线,xi表示第i个列类别的平均横坐标,xi+1表示第x+1个列类别的平均横坐标,其中1≤i≤ncol-1。
通过这种方式,可以确定两个相邻列类别之间的列分界线的横坐标,该列分界线即为候选单元格之间的列分界线。
在确定了候选单元格之间的行分界线和/或列分界线之后,就确定了每个候选单元格的范围,计算设备10可以根据每个字块的归一化中心位置将该字块与相应的候选单元格进行对应。
继续图8,在子步骤243,计算设备10可以基于该结构化表格中的两个相邻候选单元格所包含的字块之间的行概率和列概率确定这两个相邻候选单元格是否应当合并。
根据这两个相邻候选单元格是处于同一行还是同一列的候选单元格,可以判断这两个相邻候选单元格是否应当进行行合并或者列合并。
图12示出了根据本发明实施例的用于确定两个相邻候选单元格是否应当进行行合并的过程的流程图。
假设这两个相邻候选单元格包括位于第i行的第一候选单元格M和位于第i+1行的第二候选单元格N,并且假设这两个相邻候选单元格位于同一列。
如图12中所示,用于确定两个相邻候选单元格是否应当进行行合并的过程可以包括子步骤2431,其中计算设备10可以确定第i行中除了第一候选单元格M之外的字块集合(为了与其他字块集合区分,以下也称为第三字块集合)。
在子步骤2432,计算设备10可以确定第i+1行中除了第二候选单元格N之外的字块集合(为了与其他字块集合区分,以下也称为第四字块集合)。
在子步骤2433,计算设备10可以基于第i行中的任一字块与第i+1行中的任一字块之间的行概率、第一候选单元格M包含的字块个数、第二候选单元格N包含的字块个数、第三字块集合包含的字块个数和第四字块集合包含的字块个数,确定第一候选单元格M和第二候选单元格N之间的行合并值。
具体地,在一种实施例中,假设第一候选单元格M包含m个字块{X1,X2,...,Xm},第二候选单元格N包含n个字块{Y1,Y2,...,Yn},第三字块集合包含a个字块{U1,U2,...,Ua},第四字块集合包含b个字块{V1,V2,...,Vb}。以prob_row(A,B)表示步骤230中预测的任意两个字块A与B处于同一行的行概率,则第一候选单元格M和第二候选单元格N之间的行合并值score_row可以如下确定:
在子步骤2434,计算设备10可以确定该行合并值score_row是否大于预定阈值。该预定阈值例如可以是0.5。
如果确定该行合并值大于该预定阈值,在子步骤2435,计算设备10可以确定该第一候选单元格M和该第二候选单元格N应当合并;反之,如果确定该行合并值小于或等于该预定阈值,在子步骤2436,计算设备10可以确定该第一候选单元格M和该第二候选单元格N不应当合并。
进一步地,计算设备10重复上述过程,以进一步确定合并后的单元格是否可以继续进行行合并。并且,计算设备10以相同的方式遍历所有行相邻的候选单元格以得到最终的行合并的单元格。
图13示出了根据本发明实施例的用于确定两个相邻候选单元格是否应当进行列合并的过程的流程图。确定是否进行列合并的方式可以与上述确定是否进行行合并的方式类似,因此参照与图12类似的描述方式进行描述。
假设这两个相邻候选单元格包括位于第j列的第一候选单元格M和位于第j+1列的第二候选单元格N,并且假设这两个相邻候选单元格位于同一行。
如图13中所示,用于确定两个相邻候选单元格是否应当进行列合并的过程可以包括子步骤2431',其中计算设备10可以确定第j列中除了第一候选单元格M之外的字块集合(为了与其他字块集合区分,以下也称为第五字块集合)。
在子步骤2432',计算设备10可以确定第j+1列中除了第二候选单元格N之外的字块集合(为了与其他字块集合区分,以下也称为第六字块集合)。
在子步骤2433',计算设备10可以基于第j列中的任一字块与第j+1列中的任一字块之间的列概率、第一候选单元格M包含的字块个数、第二候选单元格N包含的字块个数、第五字块集合包含的字块个数和第六字块集合包含的字块个数,确定第一候选单元格M和第二候选单元格N之间的列合并值。
具体地,在一种实施例中,假设第一候选单元格M包含m个字块{X1,X2,...,Xm},第二候选单元格N包含n个字块{Y1,Y2,...,Yn},第五字块集合包含c个字块{U1,U2,...,Uc},第六字块集合包含d个字块{V1,V2,...,Vd}。以prob_col(A,B)表示步骤230中预测的任意两个字块A与B处于同一列的列概率,则第一候选单元格M和第二候选单元格N之间的列合并值score_col可以如下确定:
在子步骤2434',计算设备10可以确定该列合并值score_col是否大于预定阈值。该预定阈值例如可以是0.5。
如果确定该列合并值大于该预定阈值,在子步骤2435',计算设备10可以确定该第一候选单元格M和该第二候选单元格N应当合并;反之,如果确定该列合并值小于或等于该预定阈值,在子步骤2436',计算设备10可以确定该第一候选单元格M和该第二候选单元格N不应当合并。
进一步地,计算设备10重复上述过程,以进一步确定合并后的单元格是否可以继续进行列合并。并且,计算设备10以相同的方式遍历所有列相邻的候选单元格以得到最终的列合并的单元格。
继续图8,在子步骤243中确定两个相邻候选单元格应当合并时,在子步骤244,计算设备10可以将这两个相邻候选单元格合并为一个单元格,反之,在子步骤243中确定这两个相邻候选单元格不应当合并时,在子步骤245,计算设备10可以将这两个相邻候选单元格确定为两个单独的单元格。
在对候选单元格进行了上述操作之后,至此得到了结构化表格的实际的单元格,这样的单元格不是仅仅以行分界线和列分界线所划分的候选单元格,而是实际的可能包含更多候选单元格的单元格。
最后,在子步骤246,计算设备10可以基于多个字块的位置信息将每个单元格所包含的字块进行合并以重建该结构化表格。
至此,本发明的方法200通过利用目标检测模型截取图片中的表格子图,通过光学字符识别检测出表格子图中的多个字块并且利用深度神经网络模型预测任意两个字块处于同一行的行概率和处于同一列的列概率以便对这些字块进行结构化重组来重建结构化表格。
在上述方法中,在预测行概率和列概率时,利用了训练好的深度神经网络模型500来进行上述预测。在本发明的一些实施例中,方法200还可以包括对深度神经网络模型500进行训练的步骤250。
从整个模型的角度来看,深度神经网络模型500的输入和输出的关系可以表示为:
Xout=W*Xin+b
其中,W是深度神经网络模型500的权重函数,b是深度神经网络模型500的偏置函数,对深度神经网络模型500进行训练的目的是使得其权重函数W和偏置函数b(可以统称为参数矩阵)不断更新至收敛值。这里,参数矩阵的初始值可以任意设置,或者可以根据经验设置。
图14示出了根据本发明实施例的对深度神经网络模型500进行训练的步骤250的流程图。深度神经网络模型500的训练过程与上述结合图6所述的确定行概率和列概率的步骤230的过程基本相同,不同之处主要在于深度神经网络模型500的输入数据和输出数据不同,以及步骤250还包括基于输出数据对深度神经网络模型500的权重参数进行迭代和更新的过程。
如图14中所示,步骤250可以包括子步骤251,其中计算设备10可以获取深度神经网络模型500的训练数据集合。该训练数据集合可以包括多个训练数据,每个训练数据包括与该训练数据相对应的一个训练表格所包含的多个训练字块的信息,每个训练字块的信息包括该训练字块所包含的字符、该训练字块的坐标位置以及该训练字块在该训练表格中的行列信息。
在一种实例中,可以利用SciTSR数据集作为深度神经网络模型500的训练数据集合。该数据集包含12000个训练数据,每个训练数据对应于一个训练表格(其中进一步包含2885张复杂表格),每个训练表格包含多个字块(这里称为训练字块),每个字块的信息包括该字块所包含的字符、该字块的坐标位置以及该字块在该训练表格中的行列信息。此外,该数据集中还包括3000张测试表格(其中进一步包含716张复杂表格)的测试数据,以用于测试训练好的模型的效果或者进一步优化训练好的模型。
在子步骤252,与上述子步骤231类似,在深度神经网络模型500的输入层510,计算设备10可以针对一个训练表格的两个训练字块中的第一训练字块和第二训练字块确定该深度神经网络模型500的训练输入数据。其中,该训练输入数据包括第一训练字块的文本ID和位置向量、第二训练字块的文本ID和位置向量、第一训练字块和第二训练字块之间的相对位置向量以及该训练表格的邻接矩阵和权重矩阵。
在子步骤253,与上述子步骤232类似,在深度神经网络模型500的BioBERT网络层520,计算设备10可以基于第一训练字块的文本ID和第二训练字块的文本ID分别确定第一训练字块的特征向量和第二训练字块的特征向量。
在子步骤254,与上述子步骤233类似,在深度神经网络模型500的第一融合向量层530,计算设备10可以将第一训练字块的位置向量和特征向量进行拼接以产生第一训练字块的融合向量,并且将第二训练字块的位置向量和特征向量进行拼接以产生第二训练字块的融合向量。
在子步骤255,与上述子步骤234类似,在深度神经网络模型500的GCN网络层540,计算设备10可以基于第一训练字块的融合向量、第二训练字块的融合向量以及该训练表格的邻接矩阵和权重矩阵,分别确定第一训练字块的卷积输出向量和第二训练字块的卷积输出向量。
在子步骤256,与上述子步骤235类似,在深度神经网络模型500的第二融合向量层550,计算设备10可以将第一训练字块和第二训练字块之间的相对位置向量、第一训练字块的融合向量和卷积输出向量以及第二训练字块的融合向量和卷积输出向量进行拼接以确定第一训练字块和第二训练字块的融合特征向量。
在子步骤257,与上述子步骤236类似,在深度神经网络模型500的全连接网络层560,计算设备10可以基于第一训练字块和第二训练字块的融合特征向量和第一全连接网络562确定第一训练字块和第二训练字块处于同一行的行概率,并且基于第一训练字块和第二训练字块的融合特征向量和第二全连接网络564确定第一训练字块和第二训练字块处于同一列的列概率。
与上述步骤230不同,在子步骤258,计算设备10可以对第一训练字块和第二训练字块处于同一行的行概率和处于同一列的列概率进行Softmax回归,并且利用交叉熵损失函数确定第一训练字块和第二训练字块的行损失值和列损失值。
这里,如上述子步骤236中所述,第一全连接网络562和第二全连接网络564的输出分别是一个二维的概率向量。因此,在子步骤258,计算设备10可以对这两个二维的概率向量分别进行Softmax回归。Softmax回归的结果可以指示第一训练字块和第二训练字块处于同一行的概率分布和处于同一列的概率分布。
基于Softmax回归将多分类的输出值转换为范围在[0,1]且和为1的概率分布。即,两个字块处于同一行和不处于同一行的概率和为1,同理,两个字块处于同一列和不处于同一列的概率和也为1。具体应遵循以下公式:
其中,xi指示输入数据,在这里为子步骤257所产生的二维概率向量,θ指示Softmax模型的参数向量,θl指示参数向量θ中的第l个参数,其中l=1,2,…,k;j表示xi的类别(在本文中表示xi处于同一行和不处于同一行或者处于同一列和不处于同一列),其中j=1,2。因此,通过上述方式计算的p(yi=j|xi;θ)也表示输入数据xi处于同一行和不处于同一行的概率分布,或者处于同一列和不处于同一列的概率分布。
在一种实施例中,基于交叉熵损失函数Loss计算的行损失值或者列损失值可以表示为:
在子步骤259,计算设备10可以基于第一训练字块和第二训练字块的行损失值和列损失值确定深度神经网络模型500的损失值并且基于该损失值更新深度神经网络模型500的参数矩阵。
在本发明的一些实施例中,深度神经网络模型500的损失值确定为行损失值和列损失值之和。
在本发明的一些实施例中,使用反向传播算法来对深度神经网络模型500的各个层的权重函数Wk和偏置函数bk(k=1、2、……K)进行更新,其中K是深度神经网络模型500的层数。因此,在子步骤259中,可以基于深度神经网络模型500的损失值和第K层的权重函数WK和偏置函数bK来确定深度神经网络模型500的最后一层(第K层)的梯度值和
然后,计算设备20可以基于深度神经网络模型500的最后一层的梯度值对深度神经网络模型500的多个层的每一层的权重函数进行更新。
例如,可以利用批量(Batch)、小批量(mini-Batch)或者随机梯度下降法中的任意一种,基于深度神经网络模型500的第K层的梯度值和依次确定第K-1层、第K-2层、……第1层的梯度值,并且利用每一层的梯度值对该层的权重函数Wk(以及偏置函数bk)进行更新。
基于预设的迭代步长重复上述子步骤259的操作,直至达到最大迭代次数或者达到停止迭代阈值。至此,深度神经网络模型500的权重函数W(以及偏置函数b)被训练至收敛值,可用于计算两个字块处于同一行或者同一列的概率。
图15示出了适合实现本发明的实施例的计算设备1500的结构方框图。计算设备1500例如可以是如上所述的计算设备10或服务器20。
如图15中所示,计算设备1500可以包括一个或多个中央处理单元(CPU)1510(图中仅示意性地示出了一个),其可以根据存储在只读存储器(ROM)1520中的计算机程序指令或者从存储单元1580加载到随机访问存储器(RAM)1530中的计算机程序指令,来执行各种适当的动作和处理。在RAM 1530中,还可存储计算设备1500操作所需的各种程序和数据。CPU1510、ROM 1520以及RAM 1530通过总线1540彼此相连。输入/输出(I/O)接口1550也连接至总线1540。
计算设备1500中的多个部件连接至I/O接口1550,包括:输入单元1560,例如键盘、鼠标等;输出单元1570,例如各种类型的显示器、扬声器等;存储单元1580,例如磁盘、光盘等;以及通信单元1590,例如网卡、调制解调器、无线通信收发机等。通信单元1590允许计算设备1500通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
上文所描述的方法200例如可由计算设备1500(如计算设备10或服务器20)的CPU1510执行。例如,在一些实施例中,方法200可被实现为计算机软件程序,其被有形地包括于机器可读介质,例如存储单元1580。在一些实施例中,计算机程序的部分或者全部可以经由ROM 1520和/或通信单元1590而被载入和/或安装到计算设备1500上。当计算机程序被加载到RAM 1530并由CPU 1510执行时,可以执行上文描述的方法200的一个或多个操作。此外,通信单元1590可以支持有线或无线通信功能。
本领域技术人员可以理解,图15所示的计算设备1500仅是示意性的。在一些实施例中,计算设备10或服务器20可以包含比计算设备1500更多或更少的部件。
以上结合附图对根据本发明的用于处理表格的方法200以及可用作计算设备10或服务器20的计算设备1500进行了描述。然而本领域技术人员可以理解,方法200的步骤及其子步骤的执行并不局限于图中所示和以上所述的顺序,而是可以以任何其他合理的顺序来执行。此外,计算设备1500也不必须包括图15中所示的所有组件,其可以仅仅包括执行本发明中所述的功能所必须的其中一些组件,并且这些组件的连接方式也不局限于图中所示的形式。
本发明可以是方法、装置、***和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于执行本发明的各个方面的计算机可读程序指令。
在一个或多个示例性设计中,可以用硬件、软件、固件或它们的任意组合来实现本发明所述的功能。例如,如果用软件来实现,则可以将所述功能作为一个或多个指令或代码存储在计算机可读介质上,或者作为计算机可读介质上的一个或多个指令或代码来传输。
本文公开的装置的各个单元可以使用分立硬件组件来实现,也可以集成地实现在一个硬件组件,如处理器上。例如,可以用通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑器件、分立门或者晶体管逻辑、分立硬件组件或用于执行本文所述的功能的任意组合来实现或执行结合本发明所描述的各种示例性的逻辑块、模块和电路。
本领域普通技术人员还应当理解,结合本发明的实施例描述的各种示例性的逻辑块、模块、电路和算法步骤可以实现成电子硬件、计算机软件或二者的组合。
本发明的以上描述用于使本领域的任何普通技术人员能够实现或使用本发明。对于本领域普通技术人员来说,本发明的各种修改都是显而易见的,并且本文定义的一般性原理也可以在不脱离本发明的精神和保护范围的情况下应用于其它变形。因此,本发明并不限于本文所述的实例和设计,而是与本文公开的原理和新颖性特性的最广范围相一致。
Claims (13)
1.一种处理表格的方法,包括:
利用目标检测模型从图片中截取一个或多个表格子图,其中每个表格子图包括一个表格;
对每个表格子图进行光学字符识别以检测所述表格子图中的多个字块,其中每个字块包含一个或多个字符;
利用深度神经网络模型预测所述多个字块中的任意两个字块处于同一行的行概率和处于同一列的列概率;以及
基于所述多个字块中的任意两个字块处于同一行的行概率和处于同一列的列概率对所述多个字块进行结构化重组以将所述表格重建为结构化表格。
2.如权利要求1所述的方法,其中所述深度神经网络模型包括输入层、BioBERT网络层、第一融合向量层、GCN网络层、第二融合向量层、全连接网络层和输出层,其中利用深度神经网络模型预测所述多个字块中的任意两个字块处于同一行的行概率和处于同一列的列概率包括:
在所述输入层,针对待预测的两个字块中的第一字块和第二字块确定所述深度神经网络模型的输入数据,其中所述输入数据包括所述第一字块的第一文本ID、第一位置向量、所述第二字块的第二文本ID、第二位置向量、所述第一字块和所述第二字块之间的相对位置向量以及所述表格子图的邻接矩阵和权重矩阵;
在所述BioBERT网络层,基于所述第一字块的第一文本ID和所述第二字块的第二文本ID分别确定所述第一字块的第一特征向量和所述第二字块的第二特征向量;
在所述第一融合向量层,将所述第一字块的第一位置向量和第一特征向量进行拼接以产生所述第一字块的第一融合向量,并且将所述第二字块的第二位置向量和第二特征向量进行拼接以产生所述第二字块的第二融合向量;
在所述GCN网络层,基于所述第一字块的第一融合向量、所述第二字块的第二融合向量以及所述表格子图的邻接矩阵和权重矩阵,分别确定所述第一字块的第一卷积输出向量和所述第二字块的第二卷积输出向量;
在所述第二融合向量层,将所述第一字块和所述第二字块之间的相对位置向量、所述第一字块的第一融合向量和第一卷积输出向量以及所述第二字块的第二融合向量和第二卷积输出向量进行拼接以确定所述第一字块和所述第二字块的融合特征向量;
在所述全连接网络层,基于所述第一字块和所述第二字块的融合特征向量和第一全连接网络预测所述第一字块和所述第二字块处于同一行的行概率,并且基于所述融合特征向量和第二全连接网络预测所述第一字块和所述第二字块处于同一列的列概率;以及
在所述输出层,输出所述第一字块和所述第二字块的所述行概率和所述列概率。
3.如权利要求2所述的方法,其中针对待预测的两个字块中的第一字块和第二字块确定所述深度神经网络模型的输入数据包括:
将所述第一字块和所述第二字块的文本分别转换为所述第一文本ID和所述第二文本ID;
分别基于所述第一字块和所述第二字块的位置信息获取所述第一字块的第一位置向量和所述第二字块的第二位置向量;
基于所述第一字块的第一位置向量和所述第二字块的第二位置向量确定所述第一字块和所述第二字块之间的相对位置向量;
基于所述表格子图的所述多个字块之间的距离确定所述表格子图的邻接矩阵;以及
基于所述邻接矩阵确定所述表格子图的权重矩阵。
4.如权利要求3所述的方法,其中分别基于所述第一字块和所述第二字块的位置信息获取所述第一字块的第一位置向量和所述第二字块的第二位置向量包括:
基于所述第一字块的位置信息确定所述第一字块的归一化坐标信息,基于所述第一字块的归一化坐标信息确定所述第一字块的归一化中心位置和所述第一字块的归一化宽度和归一化高度,以及基于所述第一字块的归一化坐标信息、归一化中心位置、归一化宽度和归一化高度确定所述第一字块的第一位置向量,以及
基于所述第二字块的位置信息确定所述第二字块的归一化坐标信息,基于所述第二字块的归一化坐标信息确定所述第二字块的归一化中心位置和所述第二字块的归一化宽度和归一化高度,以及基于所述第二字块的归一化坐标信息、归一化中心位置、归一化宽度和归一化高度确定所述第二字块的第二位置向量。
5.如权利要求1所述的方法,其中基于所述多个字块中的任意两个字块处于同一行的行概率和处于同一列的列概率对所述多个字块进行结构化重组以将所述表格重建为结构化表格包括:
对于所述多个字块中的每个字块,基于所述字块与所述多个字块中的其他字块处于同一行的行概率和处于同一列的列概率以及所述字块与所述其他字块之间的位置关系,确定所述结构化表格的行数和列数;
基于所述多个字块中的每个字块的位置信息以及所述结构化表格的行数和列数确定所述结构化表格中的每个候选单元格的边界;
基于所述结构化表格中的两个相邻候选单元格所包含的字块之间的行概率和列概率确定所述两个相邻候选单元格是否应当合并;
响应于确定所述两个相邻候选单元格应当合并,将所述两个相邻候选单元格合并为一个单元格;
响应于确定所述两个相邻候选单元格不应当合并,将所述两个相邻候选单元格确定为两个单独的单元格;以及
基于所述多个字块的位置信息将每个单元格所包含的字块进行合并以重建所述结构化表格。
6.如权利要求5所述的方法,其中确定所述结构化表格的行数和列数包括:
对于所述多个字块中的每个目标字块,确定所述目标字块的候选右字块集合、候选左字块集合、候选上字块集合和候选下字块集合;
分别基于所述目标字块的候选右字块集合、候选左字块集合、候选上字块集合和候选下字块集合中的每个字块的位置信息和所述目标字块的位置信息确定所述目标字块的右字块、左字块、上字块和下字块;
基于所述多个字块中的每个字块的右字块确定所述表格子图的最右字块集合;
对于所述最右字块集合中的每个最右字块,确定其左字块的个数;
基于所述最右字块集合中的每个最右字块的左字块的个数确定所述结构化表格的列数;
基于所述多个字块中的每个字块的下字块确定所述表格子图的最下字块集合;
对于所述最下字块集合中的每个最下字块,确定其上字块的个数;以及
基于所述最下字块集合中的每个最下字块的上字块的个数确定所述结构化表格的行数。
7.如权利要求5所述的方法,其中确定所述结构化表格中的每个候选单元格的边界包括:
基于每个字块的上界坐标、下界坐标和中心位置纵坐标构建所述字块的行特征向量;
基于所述多个字块的行特征向量和所述结构化表格的行数对所述多个字块进行聚类以确定所述多个字块的多个行类别,其中所述行类别的数量等于所述结构化表格的行数;
对所述多个行类别中的每个行类别,确定所述行类别所包含的字块的平均中心纵坐标;
按照每个行类别所包含的字块的平均中心纵坐标的大小对所述多个行类别进行排序;
确定排序后的每个行类别的平均纵坐标;以及
基于排序后的两个相邻行类别的平均纵坐标确定所述两个相邻行类别之间的行分界线的纵坐标。
8.如权利要求5所述的方法,其中确定所述结构化表格中的每个候选单元格的边界包括:
基于每个字块的左界坐标、右界坐标和中心位置横坐标构建所述字块的列特征向量;
基于所述多个字块的列特征向量和所述结构化表格的列数对所述多个字块进行聚类以确定所述多个字块的多个列类别,其中所述列类别的数量等于所述结构化表格的列数;
对所述多个列类别中的每个列类别,确定所述列类别所包含的字块的平均中心横坐标;
按照每个列类别所包含的字块的平均中心横坐标的大小对所述多个列类别进行排序;
确定排序后的每个列类别的平均横坐标;以及
基于排序后的两个相邻列类别的平均横坐标确定所述两个相邻列类别之间的列分界线的横坐标。
9.如权利要求5所述的方法,其中所述两个相邻候选单元格位于同一列并且包括位于第i行的第一候选单元格和位于第i+1行的第二候选单元格,并且确定所述两个相邻候选单元格是否应当合并包括:
确定所述第i行中除了所述第一候选单元格之外的第三字块集合;
确定所述第i+1行中除了所述第二候选单元格之外的第四字块集合;
基于所述第i行中的任一字块与所述第i+1行中的任一字块之间的行概率、所述第一候选单元格包含的字块个数、所述第二候选单元格包含的字块个数、所述第三字块集合包含的字块个数和所述第四字块集合包含的字块个数,确定所述第一候选单元格和所述第二候选单元格之间的行合并值;
确定所述行合并值是否大于预定阈值;
响应于确定所述行合并值大于所述预定阈值,确定所述第一候选单元格和所述第二候选单元格应当合并;以及
响应于确定所述行合并值小于或等于所述预定阈值,确定所述第一候选单元格和所述第二候选单元格不应当合并。
10.如权利要求5所述的方法,其中所述两个相邻候选单元格位于同一行并且包括位于第j列的第一候选单元格和位于第j+1列的第二候选单元格,并且确定所述两个相邻候选单元格是否应当合并包括:
确定所述第j列中除了所述第一候选单元格之外的第五字块集合;
确定所述第j+1列中除了所述第二候选单元格之外的第六字块集合;
基于所述第j列中的任一字块与所述第j+1列中的任一字块之间的列概率、所述第一候选单元格包含的字块个数、所述第二候选单元格包含的字块个数、所述第五字块集合包含的字块个数和所述第六字块集合包含的字块个数,确定所述第一候选单元格和所述第二候选单元格之间的列合并值;
确定所述列合并值是否大于预定阈值;
响应于确定所述列合并值大于所述预定阈值,确定所述第一候选单元格和所述第二候选单元格应当合并;以及
响应于确定所述列合并值小于或等于所述预定阈值,确定所述第一候选单元格和所述第二候选单元格不应当合并。
11.如权利要求1所述的方法,还包括:
获取所述深度神经网络模型的训练数据集合,所述训练数据集合包括多个训练数据,每个训练数据包括与该训练数据相对应的一个训练表格所包含的多个训练字块的信息,每个训练字块的信息包括所述训练字块所包含的字符、所述训练字块的坐标位置以及所述训练字块在所述训练表格中的行列信息;
在所述深度神经网络模型的输入层,针对所述训练表格的两个训练字块中的第一训练字块和第二训练字块确定所述深度神经网络模型的训练输入数据,其中所述训练输入数据包括所述第一训练字块的文本ID和位置向量、所述第二训练字块的文本ID和位置向量、所述第一训练字块和所述第二训练字块之间的相对位置向量以及所述训练表格的邻接矩阵和权重矩阵;
在所述深度神经网络模型的BioBERT网络层,基于所述第一训练字块的文本ID和所述第二训练字块的文本ID分别确定所述第一训练字块的特征向量和所述第二训练字块的特征向量;
在所述深度神经网络模型的第一融合向量层,将所述第一训练字块的位置向量和特征向量进行拼接以产生所述第一训练字块的融合向量,并且将所述第二训练字块的位置向量和特征向量进行融合以产生所述第二训练字块的融合向量;
在所述深度神经网络模型的GCN网络层,基于所述第一训练字块的融合向量、所述第二训练字块的融合向量以及所述表格子图的邻接矩阵和权重矩阵,分别确定所述第一训练字块的卷积输出向量和所述第二训练字块的卷积输出向量;
在所述深度神经网络模型的第二融合向量层,将所述第一训练字块和所述第二训练字块之间的相对位置向量、所述第一训练字块的融合向量和卷积输出向量以及所述第二训练字块的融合向量和卷积输出向量进行拼接以确定所述第一训练字块和所述第二训练字块的融合特征向量;
在所述深度神经网络模型的全连接网络层,基于所述第一训练字块和所述第二训练字块的融合特征向量和第一全连接网络确定所述第一训练字块和所述第二训练字块处于同一行的行概率,并且基于所述第一训练字块和所述第二训练字块的融合特征向量和第二全连接网络确定所述第一训练字块和所述第二训练字块处于同一列的列概率;
对所述第一训练字块和所述第二训练字块处于同一行的行概率和处于同一列的列概率进行Softmax回归,并且利用交叉熵损失函数确定所述第一训练字块和所述第二训练字块的行损失值和列损失值;以及
基于所述第一训练字块和所述第二训练字块的行损失值和列损失值确定所述深度神经网络模型的损失值并且基于所述损失值更新所述深度神经网络模型的参数矩阵。
12.一种计算设备,包括:
至少一个处理器;以及
至少一个存储器,所述至少一个存储器被耦合到所述至少一个处理器并且存储用于由所述至少一个处理器执行的指令,所述指令当由所述至少一个处理器执行时,使得所述计算设备执行根据权利要求1至11中任一项所述的方法的步骤。
13.一种计算机可读存储介质,其上存储有计算机程序代码,所述计算机程序代码在被运行时执行如权利要求1至11中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110529807.4A CN113221523A (zh) | 2021-05-14 | 2021-05-14 | 处理表格的方法、计算设备和计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110529807.4A CN113221523A (zh) | 2021-05-14 | 2021-05-14 | 处理表格的方法、计算设备和计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113221523A true CN113221523A (zh) | 2021-08-06 |
Family
ID=77092011
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110529807.4A Pending CN113221523A (zh) | 2021-05-14 | 2021-05-14 | 处理表格的方法、计算设备和计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113221523A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113705175A (zh) * | 2021-08-18 | 2021-11-26 | 厦门海迈科技股份有限公司 | 一种电子表格行列精简的方法、服务器及存储介质 |
CN113936287A (zh) * | 2021-10-20 | 2022-01-14 | 平安国际智慧城市科技股份有限公司 | 基于人工智能的表格检测方法、装置、电子设备及介质 |
-
2021
- 2021-05-14 CN CN202110529807.4A patent/CN113221523A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113705175A (zh) * | 2021-08-18 | 2021-11-26 | 厦门海迈科技股份有限公司 | 一种电子表格行列精简的方法、服务器及存储介质 |
CN113705175B (zh) * | 2021-08-18 | 2024-02-23 | 厦门海迈科技股份有限公司 | 一种电子表格行列精简的方法、服务器及存储介质 |
CN113936287A (zh) * | 2021-10-20 | 2022-01-14 | 平安国际智慧城市科技股份有限公司 | 基于人工智能的表格检测方法、装置、电子设备及介质 |
CN113936287B (zh) * | 2021-10-20 | 2024-07-12 | 平安国际智慧城市科技股份有限公司 | 基于人工智能的表格检测方法、装置、电子设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108549893B (zh) | 一种任意形状的场景文本端到端识别方法 | |
CN113297975B (zh) | 表格结构识别的方法、装置、存储介质及电子设备 | |
US20180137349A1 (en) | System and method of character recognition using fully convolutional neural networks | |
CN109993102B (zh) | 相似人脸检索方法、装置及存储介质 | |
US11288324B2 (en) | Chart question answering | |
CN112819686B (zh) | 基于人工智能的图像风格处理方法、装置及电子设备 | |
CN113011186B (zh) | 命名实体识别方法、装置、设备及计算机可读存储介质 | |
CN107683469A (zh) | 一种基于深度学习的产品分类方法及装置 | |
CN111488826A (zh) | 一种文本识别方法、装置、电子设备和存储介质 | |
CN108334805B (zh) | 检测文档阅读顺序的方法和装置 | |
CN112434691A (zh) | 基于智能解析识别的hs编码匹配、展示方法、***及存储介质 | |
EP3539051A1 (en) | System and method of character recognition using fully convolutional neural networks | |
CN110968692B (zh) | 一种文本分类方法及*** | |
CN114283350B (zh) | 视觉模型训练和视频处理方法、装置、设备及存储介质 | |
CN114612921B (zh) | 表单识别方法、装置、电子设备和计算机可读介质 | |
CN113221523A (zh) | 处理表格的方法、计算设备和计算机可读存储介质 | |
CN112528894A (zh) | 一种差异项判别方法及装置 | |
CN111898704B (zh) | 对内容样本进行聚类的方法和装置 | |
CN115131613A (zh) | 一种基于多向知识迁移的小样本图像分类方法 | |
CN117083605A (zh) | 用于文本-图像-布局变换器模型的迭代训练 | |
Al-Barhamtoshy et al. | An arabic manuscript regions detection, recognition and its applications for OCRing | |
CN113240033A (zh) | 一种基于场景图高阶语义结构的视觉关系检测方法及装置 | |
US20230134218A1 (en) | Continuous learning for document processing and analysis | |
CN111768214A (zh) | 产品属性的预测方法、***、设备和存储介质 | |
CN115410185A (zh) | 一种多模态数据中特定人名及单位名属性的提取方法 |
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 |