CN105988979B - 基于pdf文件的表格提取方法和装置 - Google Patents

基于pdf文件的表格提取方法和装置 Download PDF

Info

Publication number
CN105988979B
CN105988979B CN201510083646.5A CN201510083646A CN105988979B CN 105988979 B CN105988979 B CN 105988979B CN 201510083646 A CN201510083646 A CN 201510083646A CN 105988979 B CN105988979 B CN 105988979B
Authority
CN
China
Prior art keywords
lines
text
information
wise
cross
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.)
Expired - Fee Related
Application number
CN201510083646.5A
Other languages
English (en)
Other versions
CN105988979A (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.)
BEIJING WEBIT EXPERTS NETWORK TECHNOLOGY Co Ltd
Beijing University of Posts and Telecommunications
Original Assignee
BEIJING WEBIT EXPERTS NETWORK TECHNOLOGY Co Ltd
Beijing University of Posts and Telecommunications
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 BEIJING WEBIT EXPERTS NETWORK TECHNOLOGY Co Ltd, Beijing University of Posts and Telecommunications filed Critical BEIJING WEBIT EXPERTS NETWORK TECHNOLOGY Co Ltd
Priority to CN201510083646.5A priority Critical patent/CN105988979B/zh
Publication of CN105988979A publication Critical patent/CN105988979A/zh
Application granted granted Critical
Publication of CN105988979B publication Critical patent/CN105988979B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Document Processing Apparatus (AREA)
  • Machine Translation (AREA)

Abstract

本发明提供一种基于PDF文件的表格提取方法和装置,通过解析获得PDF文件中的各文字的文字信息和各线条的线条信息之后,根据线条位置信息对从该PDF文件的同一页中所提取的横向线条进行排序,并判断两相邻横向线条是否处于该页的同一表格中,根据线条信息对处于该页的同一表格中的各横向线条进行表格绘制,以及在绘制的表格中,根据线条信息对从所述页中所提取的各纵向线条进行填充,最后在绘制的表格中,根据各文字的文字信息,将文字信息中的文字字符信息填充在横向线条和纵向线条所构成的单元格中与文字位置信息相对应的位置。由于考虑了表格的横向线条和纵向线条的信息,从而提高了从PDF文件中提取表格的准确度。

Description

基于PDF文件的表格提取方法和装置
技术领域
本发明涉及信息技术,尤其涉及一种基于PDF文件的表格提取方法和装置。
背景技术
可移植文档格式(Portable Document Format,PDF)文件由于其跨平台特性,已广泛运用于当前主流的操作系统中,越来越多的电子书籍、产品使用说明书、公司公告财报、网络资料、科学文献、电子邮件等都开始使用PDF 文件形式,并已经成为电子文档发行和数字化信息传播的理想文档形式。
由于PDF文件自身的格式并未对表格进行结构化,因此表格线条的检测以及表格的还原都有不小的挑战。目前,可采用基于文字流的表格识别算法,对PDF文件中的表格进行提取。但是,在实际应用中,往往发现提取表格的准确度不高。
发明内容
本发明提供一种基于PDF文件的表格提取方法和装置,用于提高从PDF 文件中提取表格的准确度。
本发明的一个方面是提供一种基于PDF文件的表格提取方法,包括:
对PDF文件进行解析,获得所述PDF文件中的各文字的文字信息和各线条的线条信息;所述文字信息包括文字字符信息和文字位置信息;所述线条信息包括线条位置信息、线条宽度和线条长度;所述线条位置信息包括线条横轴位置和线条纵轴位置;
根据所述线条信息中的线条宽度和线条长度,从各线条中确定横向线条和纵向线条;
根据所述线条位置信息,对从所述PDF文件的同一页中所提取的横向线条进行排序;
针对在所述页中排序后获得的两相邻横向线条,在从所述页中所提取的各纵向线条中,确定满足线条位置信息中线条纵轴位置与所述两相邻横向线条中最小线条纵轴位置相同的目标纵向线条;
根据所述两相邻横向线条的线条纵轴位置之差和所述目标纵向线条的线条纵轴位置,判断所述两相邻横向线条是否处于所述页的同一表格中;
根据线条信息对处于所述页的所述表格中的各横向线条进行表格绘制,以及在绘制的表格中,根据线条信息对从所述页中所提取的各纵向线条进行填充;
在所述绘制的表格中,根据各文字的文字信息,将文字信息中的文字字符信息填充在横向线条和纵向线条所构成的单元格中与文字位置信息相对应的位置。
本发明的另一个方面是提供一种基于PDF文件的表格提取装置,包括:
解析模块,用于对PDF文件进行解析,获得所述PDF文件中的各文字的文字信息和各线条的线条信息;所述文字信息包括文字字符信息和文字位置信息;所述线条信息包括线条位置信息、线条宽度和线条长度;所述线条位置信息包括线条横轴位置和线条纵轴位置;
确定模块,用于根据所述线条信息中的线条宽度和线条长度,从各线条中确定横向线条和纵向线条;
绘制模块,用于根据所述线条位置信息,对从所述PDF文件的同一页中所提取的横向线条进行排序;针对在所述页中排序后获得的两相邻横向线条,在从所述页中所提取的各纵向线条中,确定满足线条位置信息中线条纵轴位置与所述两相邻横向线条中最小线条纵轴位置相同的目标纵向线条;根据所述两相邻横向线条的线条纵轴位置之差和所述目标纵向线条的线条纵轴位置,判断所述两相邻横向线条是否处于所述页的同一表格中;根据线条信息对处于所述页的所述表格中的各横向线条进行表格绘制,以及在绘制的表格中,根据线条信息对从所述页中所提取的各纵向线条进行填充;在所述绘制的表格中,根据各文字的文字信息,将文字信息中的文字字符信息填充在横向线条和纵向线条所构成的单元格中与文字位置信息相对应的位置。
本发明提供的基于PDF文件的表格提取方法和装置,通过解析获得PDF 文件中的各文字的文字信息和各线条的线条信息之后,根据线条位置信息对从该PDF文件的同一页中所提取的横向线条进行排序,并判断两相邻横向线条是否处于该页的同一表格中,根据线条信息对处于该页的同一表格中的各横向线条进行表格绘制,以及在绘制的表格中,根据线条信息对从所述页中所提取的各纵向线条进行填充,最后在绘制的表格中,根据各文字的文字信息,将文字信息中的文字字符信息填充在横向线条和纵向线条所构成的单元格中与文字位置信息相对应的位置。由于考虑了表格的横向线条和纵向线条的信息,从而提高了从PDF文件中提取表格的准确度。
附图说明
图1为本发明实施例提供的一种基于PDF文件的表格提取方法的流程示意图;
图2为包含两张表格的PDF页的示意图;
图3为本发明实施例提供的另一种基于PDF文件的表格提取方法的流程示意图;
图4为本发明实施例提供的另一种基于PDF文件的表格提取方法的流程示意图;
图5A为表头简化前的表头示意图;
图5B为表头简化后的表头示意图;
图5C为简化前的表头所转化的树形结构;
图6为本发明实施例提供的一种基于PDF文件的表格提取装置的结构示意图。
具体实施方式
图1为本发明实施例提供的一种基于PDF文件的表格提取方法的流程示意图,如图1所示,包括:
101、对PDF文件进行解析,获得PDF文件中的各文字的文字信息和各线条的线条信息。
其中,文字信息包括文字字符信息和文字位置信息;所述线条信息包括线条位置信息、线条宽度和线条长度;所述线条位置信息包括线条横轴位置和线条纵轴位置。
具体的,利用PDFBox软件对PDF文件进行解析,获得所述PDF文件中的文字信息;根据所述PDF文件中用于标识线条结束的操作符,提取所述PDF 文件中的线条信息。
例如:在PDF盒子(PDFBox)软件中,对于PDF文件内的文字和线条都经过了重新的处理和封装。文字和线条在PDFBox软件中都存储在“CosStream”对象中。该对象继承自“CosDictionary”类。这些对象均处于PDFBox软件的“CosModel”层,即PDFBox软件的最低层,该层负责完成对PDF文件基本结构的封装。PDFBox软件利用“processSubStream”函数完成底层各个对象的个性处理。在函数内,“PDFStreamParser”负责解析“CosStream”下对应的各个对象,并利用“processOperator”函数完成不同类型操作符的个性化处理。由于PDFBox软件并未对线条类对象进行处理,因此可通过修改该部分的代码实现PDFBox软件对线条类对象进行处理。依据 PDF文件中线条的特殊格式,通过识别操作符“q”,“Q”,“re”等标识线条结束的操作符对线条信息进行提取。“argument”对象用于存储线条的线条信息。当碰到标识符“re”则将“argument”中的线条信息封装存储。当碰到“cosObject”结构表明是位置信息应该保存到“argument”的可变数组中。当碰到“PDFOperator”结构时检查是否是“re”,如果是则提取前一个“argument”信息,即为该线条的线条位置信息,反之则舍弃不处理。最终线条信息成“Line Information”格式,包含线条横轴位置(xpos),线条纵轴位置(ypos),线条宽度(width),线条长度(height)。因此每条线段的特征向量为<xpos,ypos,width,height>。由于PDFBox软件已经对文字的信息进行了较好的封装,可针对表格还原的需求对该部分的文字信息进行了进一步的过滤和再封装。只保留对表格还原有效的特征量,即文字的字符信息和文字的位置信息。
102、根据线条信息中的线条宽度和线条长度,从各线条中确定横向线条和纵向线条。
具体的,若所述线条信息中的线条宽度大于线条长度,则确定所述线条为横向线条;若所述线条信息中的线条宽度不大于线条长度,则确定所述线条为纵向线条。
103、根据所述线条位置信息,对从所述PDF文件的同一页中所提取的横向线条进行排序。
104、针对在所述页中排序后获得的两相邻横向线条,在从所述页中所提取的各纵向线条中,确定满足线条位置信息中线条纵轴位置与所述两相邻横向线条中最小线条纵轴位置相同的目标纵向线条。
105、根据所述两相邻横向线条的线条纵轴位置之差和所述目标纵向线条的线条纵轴位置,判断所述两相邻横向线条是否处于所述页的同一表格中。
具体的,计算所述两相邻横向线条的线条纵轴位置之差(y1-y0);其中, y1为所述两相邻横向线条中最大线条纵轴位置,y0所述两相邻横向线条中最小线条纵轴位置;根据公式|y1-y0-h0|进行计算,若满足|y1-y0-h0|<△h,则确定所述两相邻横向线条处于所述页的同一表格中,其中,h0为所述目标纵向线条的线条纵轴位置,△h为预设偏差阈值。
例如:单页PDF可能包含多张表格。要利用横纵线条还原基本的表格形态需要特别注意线条间的交错情况,避免将不同表格的线条错判为同一表格。因此在设计表格还原算法时,优先处理纵向的横线信息。图2为包含两张表格的PDF页的示意图,如图2所示,共有表格1和表格2,虚线条1,2和3 中,虚线条1和虚线条3属于表格1而虚线条2属于表格2。为了防止线条错位,本算法优先处理横向线条。如图2所示,在表格1中y0和y1表示横向线条的线条纵轴位置。h0是对应的目标纵向线条的线条长度。在判断y0 和y1对应的横向线条是否属于同一表格的充分条件是|y1-y0-h0|<△h。其中△h是预设偏差阈值。对于y3和y4对应的横向线条,由于不存在相应的目标纵向线条使得|y1-y0-h0|<△h成立,因此y3和y4对应的横向线条应该属于不同的表格,即y3和y4对应的横向线条是两个表格的分离线条。
具体上述过程可通过如下算法伪代码实现:
106、根据线条信息对处于所述页的所述表格中的各横向线条进行表格绘制,以及在绘制的表格中,根据线条信息对从所述页中所提取的各纵向线条进行填充。
107、在所述绘制的表格中,根据各文字的文字信息,将文字信息中的文字字符信息填充在横向线条和纵向线条所构成的单元格中与文字位置信息相对应的位置。
具体的,根据文字的文字位置信息,确定文字所在的单元格;对处于同一单元格中的文字,根据文字位置信息中的文字纵轴位置进行排序,获得文字在二维数组中的纵向顺序;若至少两文字根据文字纵轴位置进行排序的顺序相同,则根据至少两文字的文字横轴位置进行排序,获得文字在二维数组中的横向顺序;以二维数组形式,将文字对应的文字字符信息填充在所述单元格中。
文字信息包括文字字符信息(character)和文字位置信息,文字位置信息包含文字横轴位置(xpos)和文字纵轴位置(ypos)。单个文字的文字信息用特征向量<character,xpos,ypos>表示。通过比较文字位置信息<xpos,ypos> 以及横向线条的线条位置信息“PageTableXpos”和纵向线条的线条位置信息“PageTableYpos”判定单个文字所处单元格。对于同一单元格中的文字,仍然需要根据文字位置信息<xpos,ypos>加以排序。为了便于在单元格内排序,此处定义二维数组的类型为“TreeSet”类型,由于“TreeSet”类型元素是有序的,因此只需要将文字填充到对应单元格内,单元格内的文字将根据“TreeSet”制定的排序规则自动实现排序。
具体上述过程可通过如下算法伪代码实现:
本实施例中,通过对PDF文件进行解析,获得PDF文件中的各文字的文字信息和各线条的线条信息之后,根据线条信息中的线条宽度和线条长度,从各线条中确定横向线条和纵向线条,进而根据线条位置信息,对从该PDF 文件的同一页中所提取的横向线条进行排序,并针对在该页中排序后获得的两相邻横向线条,在从该页中所提取的各纵向线条中,确定满足线条位置信息中线条纵轴位置与所述两相邻横向线条中最小线条纵轴位置相同的目标纵向线条,根据两相邻横向线条的线条纵轴位置之差和目标纵向线条的线条纵轴位置,判断两相邻横向线条是否处于该页的同一表格中,根据线条信息对处于该页的同一表格中的各横向线条进行表格绘制,以及在绘制的表格中,根据线条信息对从所述页中所提取的各纵向线条进行填充,最后在绘制的表格中,根据各文字的文字信息,将文字信息中的文字字符信息填充在横向线条和纵向线条所构成的单元格中与文字位置信息相对应的位置。由于考虑了表格的横向线条和纵向线条的信息,从而提高了从PDF文件中提取表格的准确度。
图3为本发明实施例提供的另一种基于PDF文件的表格提取方法的流程示意图,如图3所示,在如图1所示的基于PDF文件的表格提取方法中步骤 107之后,还包括:
201、若处于相邻页的所填充的表格满足表格合并规则,则确定所述处于相邻页的填充的表格为处于相邻页的同一表格。
其中,表格合并规则包括:所述处于相邻页的所填充的表格的列数相同,且在前一页所填充的表格中横向线条的最大纵轴位置大于预设最大值,且在后一页所填充的表格中横向线条的最小纵轴位置小于预设最小值。
具体的,由于PDF单页大小是固定的,因此存在单个表格分布在不同PDF 页面的复杂情况,因此需要对各页进行判断,对于可能的跨页表格进行合并。处理思路如下:获取指定页面的所有表格;利用isOneForm函数判断两张表是否是一张,false则结束循环,True则合并两张表格,isOneForm函数用于判定两张表是否是同一张表,判断依据包括两张表的列数、第一张表的最后线条的绝对位置、第二张表的第一条线条的绝对位置。
具体上述过程可通过如下算法伪代码实现:
202、对满足表格合并规则的所述处于相邻页的所填充的表格进行合并。
本实施例中,通过对PDF文件进行解析,获得PDF文件中的各文字的文字信息和各线条的线条信息之后,根据线条信息中的线条宽度和线条长度,从各线条中确定横向线条和纵向线条,进而根据线条位置信息,对从该PDF 文件的同一页中所提取的横向线条进行排序,并针对在该页中排序后获得的两相邻横向线条,在从该页中所提取的各纵向线条中,确定满足线条位置信息中线条纵轴位置与所述两相邻横向线条中最小线条纵轴位置相同的目标纵向线条,根据两相邻横向线条的线条纵轴位置之差和目标纵向线条的线条纵轴位置,判断两相邻横向线条是否处于该页的同一表格中,根据线条信息对处于该页的同一表格中的各横向线条进行表格绘制,以及在绘制的表格中,根据线条信息对从所述页中所提取的各纵向线条进行填充,最后在绘制的表格中,根据各文字的文字信息,将文字信息中的文字字符信息填充在横向线条和纵向线条所构成的单元格中与文字位置信息相对应的位置。由于考虑了表格的横向线条和纵向线条的信息,从而提高了从PDF文件中提取表格的准确度。
图4为本发明实施例提供的另一种基于PDF文件的表格提取方法的流程示意图,如图4所示,在图1所示实施例的基础上,本实施例中步骤107之后还可进一步包括:
401、将所填充的表格中的表头部分转化为树形结构。
其中,所述树形结构中的各节点分别与所述表头部分中各单元格所填充的文字字符信息对应,子节点对应的文字字符信息为所述子节点的父节点对应的文字字符信息的子类。
需要说明的是,子类是指在语义上,存在父节点对应的文字字符信息包括子节点对应的文字字符信息的关系,即父节点和子节点对应的文字字符信息所表示的含义为上下位关系。
402、采用遍历所述树形结构的每一分支的方式对所述表头部分进行简化。
其中,简化后的表头部分中单元格个数等于所述树形结构中分支的个数,所述简化后的表头部分中每一个单元格中所填充的文字字符信息包括对应的一分支中从根节点至叶子节点所对应的各文字字符信息。
具体的,表格的表头由于需要表示每个单元格的具体含义有时候会比较复杂,由于图形结构的表在实际应用中并不常见,因此实施例只针对树形结构的表进行了处理。处理思路是先根据将表格转换为一个树形结构,然后从树的根节点开始深度遍历树直到叶子节点,所生成的路径即为简单表格的一个单元格。图5A为表头简化前的表头示意图,图5B为表头简化后的表头示意图,图5C为简化前的表头所转化的树形结构,如图5A至图5C所示,数字 1至6代表表头单元格中所填充的字符。
进一步,在步骤107之后还可以对表格的展开方式进行识别。
具体的,为了识别表格的展开特征,即表格结构,首先考虑表格的物理特征,表1为表格物理特征与表格结构关系表,如表1所示:
表1表格物理特征与表格结构关系表
通过判定跨行或跨列的情况可以对表格的基本结构进行初步的判定,对于情况1已经可以确定其类型,则无需进行后续的判定。对于情况2和3已经可以确定其横向或纵向的特征,需要进一步确定其纵向或横向特征。情况4的表格属于简单表,则需要从内容上对其横向和纵向特征进行判定。具体可进一步根据表格内容特征确定表格结构,表2为表格内容特征与表格结构关系表,如表2所示:
表2表格内容特征与表格结构关系表
采用打分判决思想,从内容和行列相似度上分别进行打分,最后总分的计算按如下公式:
Traw=β*Araw+(1-β)*Sraw
Tcol=β*Acol+(1-β)*Scol
其中A表示基于文字内容的得分,S表示行列相似度上的得分,T表示总得分情况。raw和col表示打分的两个维度,β是可调节的权重值。Traw表示在 raw维度上的总得分,Tcol表示在col维度上的总得分,Araw表示在raw维度上基于文字内容的得分,Acol表示在col维度上基于文字内容的得分,Sraw表示在raw维度上行列相似度上的得分,Scol表示在col维度上行列相似度上的得分。当待分析的表格属于某个特定领域时,则提高A的权重有助于提高结果的准确性,反之则将表格当作普通情况处理,加大文字长度的影响权重。表格的最终类型与表格在raw和col两个维度上总得分最高的维度保持一致。如果表格在raw和col两个维度上总得分情况差异不大,则归为混合展开型表格。下面分别介绍A和S的计算方法。
基于单元格内容的打分规则,计算获得A:此规则主要适用于表格所属领域已知的情况,对于该类表格,其属性值往往是固定。因此可以通过首行,首列中特定属性值的占比来判定表格的类型。例如:财务三大报表中固有属性值往往包括:流动资产、非流动资产、资产总计、应付票据、流动负债和所有者权益等关键属性。因此可以根据该类属性词建立属性词典。然后对表格首行和首列的内容进行分词,统计关键属性词占比从而最终确定表格的展开类型。
基于行列相似度的打分规则,计算获得S:除了从单元格内容进行判定以外更普遍的方式是根据表格行列方向单元格内文字的数量进行判定。通常情况下横向展开型表格各个列具有较强的相似度。而纵向展开型表格各个行具有较强的相似度。根据本规律,可通过计算表格行列展开下表格均值和方差加以判定。行列均值和方差的计算公式如下:
其中,Ecol(i)表示列i中的平均单元格字数。r表示除去首行的表格行数。 Mj,i表示第i列第j行的单元格内的文字数目。Eraw(i)表示行i中的平均单元格字数。s表示除去首列的表格列数。Mi,j表示第i行第j列的单元格内的文字数目。Scol(i)表示列i中的方差,Sraw(i)表示行i中的方差,分别依据Ecol(i)和 Eraw(i)得到。
可将本方法应用到沪深两市的财务报表上,并基于软件系统对前述实施例中所提供的方法进行实现,该软件系统的设计框图可以包含:文档解析层、表格还原层和数据封装层三部分。最底层是文档解析层,主要完成PDF文件中的文字和线条信息的提取和封装;中间是表格还原层,该层是整个解析系统的核心层,用于实现了表格提取的核心算法,主要包括表格轮廓栅格化,复杂表头的识别与转换,表格内容归位等内容。顶层是数据封装层,用于对已提取的表格数据的进一步封装。
文档解析层:主要借助PDFBox完成基本的PDF文档解析。通过修改PDFBox 底层代码完成对PDF字符流中文字流与线条流的识别,并将其封装成上层能够识别和使用的格式。
表格还原层:主要的PDF表格还原算法都在该层实现。表格轮廓还原算法主要通过对线条位置信息的排序和归类完成。复杂表头的识别和转化通过将表头转化成树形结构完成。转化完成后整个表格被整理成二维数组的形式,再通过对比表格中的文字信息与表格的位置将文字归位。最终完成从文字线条信息到二维数组的转换。
数据封装层:有了中间层的数据处理,在数据封装层可以将二维数组形式的表格数据封装成各种需要的形式。本系统目前支持HTML、JSON格式的封装。HTML形式的表格能够很好的支持网页浏览,而JSON格式则利于信息的交换和存储。
利用该软件系统完成沪深两市的财务报表中表格的提取之后进行了基本的测试,包括:召回率测试,召回率等于系统正确解析的结果占总样本的比例。实验表明解析召回率达到70%;准确率测试,准确率则表示系统正确解析的结果占总的解析结果的比例,实验表明准确率达到87%;F值测试,通常情况下召回率和准确率是个矛盾体,增加召回率可能对准确率会有一定的影响,反之,增加准确率同样对召回率会产生影响,因此为了综合反映一个抽取系统的性能,往往还会考虑召回率和准确率的加权几何平均值,实验表明 F值达到77%。
本实施例中,通过对PDF文件进行解析,获得PDF文件中的各文字的文字信息和各线条的线条信息之后,根据线条信息中的线条宽度和线条长度,从各线条中确定横向线条和纵向线条,进而根据线条位置信息,对从该PDF 文件的同一页中所提取的横向线条进行排序,并针对在该页中排序后获得的两相邻横向线条,在从该页中所提取的各纵向线条中,确定满足线条位置信息中线条纵轴位置与所述两相邻横向线条中最小线条纵轴位置相同的目标纵向线条,根据两相邻横向线条的线条纵轴位置之差和目标纵向线条的线条纵轴位置,判断两相邻横向线条是否处于该页的同一表格中,根据线条信息对处于该页的同一表格中的各横向线条进行表格绘制,以及在绘制的表格中,根据线条信息对从所述页中所提取的各纵向线条进行填充,最后在绘制的表格中,根据各文字的文字信息,将文字信息中的文字字符信息填充在横向线条和纵向线条所构成的单元格中与文字位置信息相对应的位置。由于考虑了表格的横向线条和纵向线条的信息,从而提高了从PDF文件中提取表格的准确度。
图6为本发明实施例提供的一种基于PDF文件的表格提取装置的结构示意图,如图6所示,包括:解析模块61、确定模块62和绘制模块63。
解析模块61,用于对PDF文件进行解析,获得所述PDF文件中的各文字的文字信息和各线条的线条信息。
其中,文字信息包括文字字符信息和文字位置信息;所述线条信息包括线条位置信息、线条宽度和线条长度;所述线条位置信息包括线条横轴位置和线条纵轴位置。
解析模块61,具体用于利用PDFBox软件对PDF文件进行解析,获得所述PDF文件中的文字信息;根据所述PDF文件中用于标识线条结束的操作符,提取所述PDF文件中的线条信息。
确定模块62,与解析模块61连接,用于根据所述线条信息中的线条宽度和线条长度,从各线条中确定横向线条和纵向线条。
确定模块62,具体用于若所述线条信息中的线条宽度大于线条长度,则确定所述线条为横向线条;若所述线条信息中的线条宽度不大于线条长度,则确定所述线条为纵向线条。
绘制模块63,与确定模块62连接,用于根据所述线条位置信息,对从所述PDF文件的同一页中所提取的横向线条进行排序;针对在所述页中排序后获得的两相邻横向线条,在从所述页中所提取的各纵向线条中,确定满足线条位置信息中线条纵轴位置与所述两相邻横向线条中最小线条纵轴位置相同的目标纵向线条;根据所述两相邻横向线条的线条纵轴位置之差和所述目标纵向线条的线条纵轴位置,判断所述两相邻横向线条是否处于所述页的同一表格中;根据线条信息对处于所述页的所述表格中的各横向线条进行表格绘制,以及在绘制的表格中,根据线条信息对从所述页中所提取的各纵向线条进行填充;在所述绘制的表格中,根据各文字的文字信息,将文字信息中的文字字符信息填充在横向线条和纵向线条所构成的单元格中与文字位置信息相对应的位置。
进一步,绘制模块63跟据所述两相邻横向线条的线条纵轴位置之差和所述目标纵向线条的线条纵轴位置,判断所述两相邻横向线条是否处于所述页的同一表格中,具体为绘制模块63计算所述两相邻横向线条的线条纵轴位置之差(y1-y0);其中,y1为所述两相邻横向线条中最大线条纵轴位置,y0 所述两相邻横向线条中最小线条纵轴位置;根据公式|y1-y0-h0|进行计算,若满足|y1-y0-h0|<△h,则确定所述两相邻横向线条处于所述页的同一表格中,其中,h0为所述目标纵向线条的线条纵轴位置,△h为预设偏差阈值。
进一步,文字位置信息包括文字横轴位置和文字纵轴位置,绘制模块63 根据各文字的文字信息,将文字信息中的文字字符信息填充在横向线条和纵向线条所构成的单元格中与文字位置信息相对应的位置,具体为,绘制模块 63根据文字的文字位置信息,确定文字所在的单元格;对处于同一单元格中的文字,根据文字位置信息中的文字纵轴位置进行排序,获得文字在二维数组中的纵向顺序;若至少两文字根据文字纵轴位置进行排序的顺序相同,则根据至少两文字的文字横轴位置进行排序,获得文字在二维数组中的横向顺序;以二维数组形式,将文字对应的文字字符信息填充在所述单元格中。
进一步,绘制模块63还用于若处于相邻页的所填充的表格满足表格合并规则,则确定所述处于相邻页的填充的表格为处于相邻页的同一表格;所述表格合并规则包括:所述处于相邻页的所填充的表格的列数相同,且在前一页所填充的表格中横向线条的最大纵轴位置大于预设最大值,且在后一页所填充的表格中横向线条的最小纵轴位置小于预设最小值;对满足所述表格合并规则的所述处于相邻页的所填充的表格进行合并。
更进一步,绘制模块63还用于将所填充的表格中的表头部分转化为树形结构;其中,所述树形结构中的各节点分别与所述表头部分中各单元格所填充的文字字符信息对应,子节点对应的文字字符信息为所述子节点的父节点对应的文字字符信息的子类;采用遍历所述树形结构的每一分支的方式对所述表头部分进行简化;其中,简化后的表头部分中单元格个数等于所述树形结构中分支的个数,所述简化后的表头部分中每一个单元格中所填充的文字字符信息包括对应的一分支中从根节点至叶子节点所对应的各文字字符信息。
本实施例中,通过对PDF文件进行解析,获得PDF文件中的各文字的文字信息和各线条的线条信息之后,根据线条信息中的线条宽度和线条长度,从各线条中确定横向线条和纵向线条,进而根据线条位置信息,对从该PDF 文件的同一页中所提取的横向线条进行排序,并针对在该页中排序后获得的两相邻横向线条,在从该页中所提取的各纵向线条中,确定满足线条位置信息中线条纵轴位置与所述两相邻横向线条中最小线条纵轴位置相同的目标纵向线条,根据两相邻横向线条的线条纵轴位置之差和目标纵向线条的线条纵轴位置,判断两相邻横向线条是否处于该页的同一表格中,根据线条信息对处于该页的同一表格中的各横向线条进行表格绘制,以及在绘制的表格中,根据线条信息对从所述页中所提取的各纵向线条进行填充,最后在绘制的表格中,根据各文字的文字信息,将文字信息中的文字字符信息填充在横向线条和纵向线条所构成的单元格中与文字位置信息相对应的位置。由于考虑了表格的横向线条和纵向线条的信息,从而提高了从PDF文件中提取表格的准确度。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (9)

1.一种基于PDF文件的表格提取方法,其特征在于,包括:
对PDF文件进行解析,获得所述PDF文件中的各文字的文字信息和各线条的线条信息;所述文字信息包括文字字符信息和文字位置信息;所述线条信息包括线条位置信息、线条宽度和线条长度;所述线条位置信息包括线条横轴位置和线条纵轴位置;
根据所述线条信息中的线条宽度和线条长度,从各线条中确定横向线条和纵向线条;
根据所述线条位置信息,对从所述PDF文件的同一页中所提取的横向线条进行排序;
针对在所述页中排序后获得的两相邻横向线条,在从所述页中所提取的各纵向线条中,确定满足线条位置信息中线条纵轴位置与所述两相邻横向线条中最小线条纵轴位置相同的目标纵向线条;
根据所述两相邻横向线条的线条纵轴位置之差和所述目标纵向线条的线条纵轴位置,判断所述两相邻横向线条是否处于所述页的同一表格中;
根据线条信息对处于所述页的所述表格中的各横向线条进行表格绘制,以及在绘制的表格中,根据线条信息对从所述页中所提取的各纵向线条进行填充;
在所述绘制的表格中,根据各文字的文字信息,将文字信息中的文字字符信息填充在横向线条和纵向线条所构成的单元格中与文字位置信息相对应的位置;
所述根据所述两相邻横向线条的线条纵轴位置之差和所述目标纵向线条的线条纵轴位置,判断所述两相邻横向线条是否处于所述页的同一表格中,包括:
计算所述两相邻横向线条的线条纵轴位置之差(y1-y0);其中,y1为所述两相邻横向线条中最大线条纵轴位置,y0所述两相邻横向线条中最小线条纵轴位置;
根据公式|y1-y0-h0|进行计算,若满足|y1-y0-h0|<△h,则确定所述两相邻横向线条处于所述页的同一表格中,其中,h0为所述目标纵向线条的线条纵轴位置,△h为预设偏差阈值。
2.根据权利要求1所述的方法,其特征在于,所述对PDF文件进行解析,获得所述PDF文件中的文字信息和线条信息,包括:
利用PDFBox软件对PDF文件进行解析,获得所述PDF文件中的文字信息;
根据所述PDF文件中用于标识线条结束的操作符,提取所述PDF文件中的线条信息。
3.根据权利要求1所述的方法,其特征在于,所述根据所述线条信息中的线条宽度和线条长度,从各线条中确定横向线条和纵向线条,包括:
若所述线条信息中的线条宽度大于线条长度,则确定所述线条为横向线条;
若所述线条信息中的线条宽度不大于线条长度,则确定所述线条为纵向线条。
4.根据权利要求1所述的方法,其特征在于,所述文字位置信息包括文字横轴位置和文字纵轴位置;
所述根据各文字的文字信息,将文字信息中的文字字符信息填充在横向线条和纵向线条所构成的单元格中与文字位置信息相对应的位置,包括:
根据文字的文字位置信息,确定文字所在的单元格;
对处于同一单元格中的文字,根据文字位置信息中的文字纵轴位置进行排序,获得文字在二维数组中的纵向顺序;
若至少两文字根据文字纵轴位置进行排序的顺序相同,则根据至少两文字的文字横轴位置进行排序,获得文字在二维数组中的横向顺序;
以二维数组形式,将文字对应的文字字符信息填充在所述单元格中。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述在所述绘制的表格中,根据各文字的文字信息,将文字信息中的文字字符信息填充在横向线条和纵向线条所构成的单元格中与文字位置信息相对应的位置之后,还包括:
若处于相邻页的所填充的表格满足表格合并规则,则确定所述处于相邻页的所填充的表格为处于相邻页的同一表格;所述表格合并规则包括:所述处于相邻页的所填充的表格的列数相同,且在前一页所填充的表格中横向线条的最大纵轴位置大于预设最大值,且在后一页所填充的表格中横向线条的最小纵轴位置小于预设最小值;
对满足所述表格合并规则的所述处于相邻页的所填充的表格进行合并。
6.根据权利要求1-4任一项所述的方法,其特征在于,所述在所述绘制的表格中,根据各文字的文字信息,将文字信息中的文字字符信息填充在横向线条和纵向线条所构成的单元格中与文字位置信息相对应的位置之后,还包括:
将所填充的表格中的表头部分转化为树形结构;其中,所述树形结构中的各节点分别与所述表头部分中各单元格所填充的文字字符信息对应,子节点对应的文字字符信息为所述子节点的父节点对应的文字字符信息的子类;
采用遍历所述树形结构的每一分支的方式对所述表头部分进行简化;其中,简化后的表头部分中单元格个数等于所述树形结构中分支的个数,所述简化后的表头部分中每一个单元格中所填充的文字字符信息包括对应的一分支中从根节点至叶子节点所对应的各文字字符信息。
7.一种基于PDF文件的表格提取装置,其特征在于,包括:
解析模块,用于对PDF文件进行解析,获得所述PDF文件中的各文字的文字信息和各线条的线条信息;所述文字信息包括文字字符信息和文字位置信息;所述线条信息包括线条位置信息、线条宽度和线条长度;所述线条位置信息包括线条横轴位置和线条纵轴位置;
确定模块,用于根据所述线条信息中的线条宽度和线条长度,从各线条中确定横向线条和纵向线条;
绘制模块,用于根据所述线条位置信息,对从所述PDF文件的同一页中所提取的横向线条进行排序;针对在所述页中排序后获得的两相邻横向线条,在从所述页中所提取的各纵向线条中,确定满足线条位置信息中线条纵轴位置与所述两相邻横向线条中最小线条纵轴位置相同的目标纵向线条;根据所述两相邻横向线条的线条纵轴位置之差和所述目标纵向线条的线条纵轴位置,判断所述两相邻横向线条是否处于所述页的同一表格中;根据线条信息对处于所述页的所述表格中的各横向线条进行表格绘制,以及在绘制的表格中,根据线条信息对从所述页中所提取的各纵向线条进行填充;在所述绘制的表格中,根据各文字的文字信息,将文字信息中的文字字符信息填充在横向线条和纵向线条所构成的单元格中与文字位置信息相对应的位置;
所述绘制模块,具体用于计算所述两相邻横向线条的线条纵轴位置之差(y1-y0);其中,y1为所述两相邻横向线条中最大线条纵轴位置,y0所述两相邻横向线条中最小线条纵轴位置;根据公式|y1-y0-h0|进行计算,若满足|y1-y0-h0|<△h,则确定所述两相邻横向线条处于所述页的同一表格中,其中,h0为所述目标纵向线条的线条纵轴位置,△h为预设偏差阈值。
8.根据权利要求7所述的装置,其特征在于,
所述解析模块,具体用于利用PDFBox软件对PDF文件进行解析,获得所述PDF文件中的文字信息;根据所述PDF文件中用于标识线条结束的操作符,提取所述PDF文件中的线条信息。
9.根据权利要求7所述的装置,其特征在于,
所述确定模块,具体用于若所述线条信息中的线条宽度大于线条长度,则确定所述线条为横向线条;若所述线条信息中的线条宽度不大于线条长度,则确定所述线条为纵向线条。
CN201510083646.5A 2015-02-16 2015-02-16 基于pdf文件的表格提取方法和装置 Expired - Fee Related CN105988979B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510083646.5A CN105988979B (zh) 2015-02-16 2015-02-16 基于pdf文件的表格提取方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510083646.5A CN105988979B (zh) 2015-02-16 2015-02-16 基于pdf文件的表格提取方法和装置

Publications (2)

Publication Number Publication Date
CN105988979A CN105988979A (zh) 2016-10-05
CN105988979B true CN105988979B (zh) 2018-11-16

Family

ID=57042572

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510083646.5A Expired - Fee Related CN105988979B (zh) 2015-02-16 2015-02-16 基于pdf文件的表格提取方法和装置

Country Status (1)

Country Link
CN (1) CN105988979B (zh)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106897690B (zh) * 2017-02-22 2018-04-13 南京述酷信息技术有限公司 Pdf表格提取方法
CN107329943B (zh) * 2017-06-29 2020-11-06 江苏赛睿信息科技股份有限公司 图表智能增加方法、存储介质及应用服务器
CN107832676B (zh) * 2017-10-16 2024-02-02 平安科技(深圳)有限公司 表格信息换行识别方法、电子设备及计算机可读存储介质
CN108132916B (zh) * 2017-11-30 2022-02-11 厦门市美亚柏科信息股份有限公司 解析pdf表格数据的方法、存储介质
CN110163030B (zh) * 2018-02-11 2021-04-23 鼎复数据科技(北京)有限公司 一种基于图像信息的pdf有边框表格抽取方法
CN108446264B (zh) * 2018-03-26 2022-02-15 阿博茨德(北京)科技有限公司 Pdf文档中的表格矢量解析方法及装置
CN108595402A (zh) * 2018-04-28 2018-09-28 西安极数宝数据服务有限公司 一种提取pdf表格信息的系统
CN110569489B (zh) * 2018-06-05 2023-08-11 北京国双科技有限公司 基于pdf文件的表格数据解析方法及装置
CN109284495B (zh) * 2018-11-03 2023-02-07 上海犀语科技有限公司 一种对文本进行无表格线切表的方法及装置
CN109492211A (zh) * 2018-11-13 2019-03-19 江西金格科技股份有限公司 一种基于ofd文档的表格提取方法
CN110363102B (zh) * 2019-06-24 2022-05-17 北京融汇金信信息技术有限公司 一种pdf文件的对象识别处理方法及装置
CN110598196A (zh) * 2019-09-16 2019-12-20 腾讯科技(深圳)有限公司 一种缺失外边框的表格数据提取方法、装置和存储介质
CN110765739B (zh) * 2019-10-24 2023-10-10 中国人民大学 一种从pdf文档中抽取表格数据和篇章结构的方法
US11010543B1 (en) 2020-08-11 2021-05-18 Fmr Llc Systems and methods for table extraction in documents
CN114077830A (zh) * 2020-08-17 2022-02-22 税友软件集团股份有限公司 一种基于位置的pdf表格文档的解析方法、装置及设备
CN112199929A (zh) * 2020-09-30 2021-01-08 深圳前海微众银行股份有限公司 表格处理方法、装置、存储介质及电子设备
CN112307718B (zh) * 2020-11-25 2021-05-11 北京邮电大学 一种基于文本特征和语法规则的pdf全自动标引系统及方法
CN112861821B (zh) * 2021-04-06 2024-04-19 刘羽 基于pdf文件解析的图谱数据还原方法
CN113343658B (zh) * 2021-07-01 2024-04-09 湖南四方天箭信息科技有限公司 一种pdf文件信息抽取方法、装置以及计算机设备
CN113920295A (zh) * 2021-10-30 2022-01-11 平安科技(深圳)有限公司 文字检测识别方法、装置、电子设备及存储介质
CN117217172B (zh) * 2023-11-09 2024-04-23 金蝶征信有限公司 表格信息获取方法、装置、计算机设备、存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101833546A (zh) * 2009-03-10 2010-09-15 株式会社理光 从可移植电子文档中提取表格的方法和装置
CN101853246A (zh) * 2010-06-14 2010-10-06 深圳市万兴软件有限公司 一种文档格式的转换方法及装置
CN101866335A (zh) * 2010-06-14 2010-10-20 深圳市万兴软件有限公司 一种文档转换中的表格处理方法及装置
CN104268545A (zh) * 2014-09-15 2015-01-07 同方知网(北京)技术有限公司 一种电子档版式文件中的表格区域识别与内容栅格化方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101833546A (zh) * 2009-03-10 2010-09-15 株式会社理光 从可移植电子文档中提取表格的方法和装置
CN101853246A (zh) * 2010-06-14 2010-10-06 深圳市万兴软件有限公司 一种文档格式的转换方法及装置
CN101866335A (zh) * 2010-06-14 2010-10-20 深圳市万兴软件有限公司 一种文档转换中的表格处理方法及装置
CN104268545A (zh) * 2014-09-15 2015-01-07 同方知网(北京)技术有限公司 一种电子档版式文件中的表格区域识别与内容栅格化方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
pdf2table:A Method to Extract Table Information from PDF Files;Burcu Yildiz 等;《Second Indian International Conference on Artificial Intelligence》;20051222;第1-13页 *
数字化信息的理想传媒形式——PDF便携文档解析;王良莹;《电脑知识与技术》;20081130;第4卷(第4期);第961-963,978页 *

Also Published As

Publication number Publication date
CN105988979A (zh) 2016-10-05

Similar Documents

Publication Publication Date Title
CN105988979B (zh) 基于pdf文件的表格提取方法和装置
CN110516221A (zh) 提取pdf文档中图表数据的方法、设备和存储介质
CN104021125B (zh) 一种搜索引擎排序的方法、系统以及一种搜索引擎
CN110110075A (zh) 网页分类方法、装置以及计算机可读存储介质
CN102314497B (zh) 一种用于识别标记语言文件主体内容的方法和设备
CN107122327A (zh) 一种利用训练数据训练模型的方法和训练系统
CN102662969A (zh) 一种基于网页结构语义的互联网信息对象定位方法
CN107562600A (zh) 页面检测方法、装置、计算设备以及存储介质
CN108595468A (zh) 一种网页数据的获取方法、装置、服务器、终端和系统
CN110020312A (zh) 提取网页正文的方法和装置
CN115917613A (zh) 文档中文本的语义表示
CN110427488A (zh) 文档的处理方法及装置
CN110516048A (zh) pdf文档中表格数据的提取方法、设备和存储介质
CN115203309A (zh) 网页中标数据结构化方法及装置
CN112395418A (zh) 网页中的目标对象提取方法、装置、电子设备
CN105589918B (zh) 一种提取页面信息的方法及装置
CN103544299A (zh) 一种商业智能云计算系统的构建方法
CN105183730B (zh) 网页信息的处理方法和装置
CN104077288B (zh) 网页内容推荐方法和网页内容推荐设备
WO2013063734A1 (en) Determining document structure similarity using discrete wavelet transformation
CN111898351B (zh) 基于Aviator的Excel数据自动导入方法、装置、终端设备及存储介质
CN113901214A (zh) 表格信息的提取方法、装置、电子设备及存储介质
US10387545B2 (en) Processing page
CN110688842A (zh) 一种文档标题层级的分析方法、装置及服务器
CN110191124A (zh) 基于web前端开发数据的网站鉴别方法、装置及存储设备

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20181116

Termination date: 20220216

CF01 Termination of patent right due to non-payment of annual fee