PDF表格提取方法技术

技术编号:15725141 阅读:309 留言:0更新日期:2017-06-29 12:45
本发明专利技术技术方案公开了一种PDF表格提取方法,对PDF文档按页码进行解析,获取所有的图像数据、第一线条数据和字符数据,采用图像识别算法对图像数据按页码依次进行处理,从具有表格数据的图像数据中获得其表格数据对应的第二线条数据;采用图形算法对第一线条数据和第二线条数据按页码依次进行处理,获得具有表格行数据和列数据的表格框架数据;采用聚类算法对字符数据进行聚类处理,获得具有字符串集合的文本数据;经由最终所有表格框架和所有文本数据得到PDF文档中所有的表格数据。本发明专利技术对PDF文档中表格提取的方法提高了PDF文档中表格提取的准确率和效率,能得到更准确的表格数据,适用于对表格数据提取的准确率和效率要求更高的领域。

【技术实现步骤摘要】
PDF表格提取方法
本专利技术涉及PDF文档数据挖掘与提取
,具体涉及一种PDF表格提取方法。
技术介绍
PDF(PortableDocumentFormat)即便携式文档格式,由AdobeSystems用于进行文件交换所开发出的文件格式,其与应用程序、操作系统及其他硬件均无交互关系。PDF文档以PostScript语言图像模型为基础,保证PDF文档在任何一台打印机上都可具有精确的颜色和准确的打印效果,即PDF会如实地再现PDF文档中的每一个字符、颜色以及图像等内容。随着计算机及互联网技术的快速发展,PDF文档越来越广泛地用在经济、金融、教育、科研及学术等各种领域。由于PDF设计目的只是为了展示文档或用于打印文档,而没有与其他计算机程序进行通讯与交互的功能。因此,PDF文档中所包含的大量数据,特别其中包含的表格数据,难以被其他计算机程序直接使用。PDF文档主要由图像、表格及文本等数据组成。对于现有的PDF文档的提取技术,基本上都可以方便地提取出PDF文档中的文本数据,但对于PDF文档中的表格数据的提取,存在着提取准确率不高,对于提取准确率要求不高的普通领域而言,现有技术的PDF文档中文本数据及表格数据的提取技术基本可以满足要求;但是对于数据提取要求较高的金融等领域,却存在无法满足准确率要求的情况,因此难以实现大规模应用在金融等准确率要求高的领域。同时,现有的提取技术存在着提取效率不高,对于及时性要求较高的场合,难以保证提取数据的时效性。
技术实现思路
本专利技术针对现有技术中对于PDF文档中表格数据提取的准确性及效率不足的缺陷,目的在于提供一种高准确性及高效率的提取PDF文档中表格数据的PDF表格提取方法。实现上述目的的技术方案是:本专利技术PDF表格提取方法,该方法包括:步骤A,对PDF文档进行解析,获取图像数据、第一线条数据和字符数据;步骤B,采用图像识别算法对经由步骤A获取的图像数据进行处理,从具有表格数据的图像数据中获得其表格数据对应的第二线条数据;步骤C,采用图形算法对经由步骤A获得的第一线条数据和经由步骤B获得的第二线条数据分别进行处理,获得具有表格行数据和列数据的表格框架数据;步骤D,采用聚类算法对经由步骤A获得的字符数据进行聚类处理,获得具有字符串集合的文本数据;步骤E,经由步骤C获得的表格框架数据中的表格行数据和列数据,得到对应的表格单元格,将表格单元格与步骤D获得的文本数据中的字符串集合相匹配,获得PDF文档中的表格数据。本专利技术的一实施例中,步骤C中所述图形算法处理包括对步骤A获得的第一线条数据和步骤B获得的第二线条数据对应的垂直线条进行垂直投影、水平线条进行水平投影、水平线条进行垂直投影及垂直线条进行水平投影,从而获得具有表格行数据和列数据的表格框架数据。本专利技术的一实施例中,步骤D中所述聚类算法处理包括对步骤A获得的字符数据中任两个连续字符数据的坐标数据依次进行垂直坐标Y阈值化处理、水平坐标X阈值化处理和/或垂直线条约束处理,将同类连续字符聚类到相应的字符串集合中,从而获得具有字符串集合的文本数据。本专利技术的一实施例中,步骤A至步骤E中的各处理均是按页码依次进行处理;步骤A获取的图像数据、第一线条数据、字符数据及步骤B获取的第二线条数据均以页码为关联词存储到字典的PDF数据单元中,步骤C获得的表格框架数据以页码为关联词存储到字典的表格数据单元中,步骤D获得的文本数据以页码为关联词存储到字典的文本数据单元中。本专利技术的一实施例中,步骤C具体包括:步骤C1,按页码依次从字典的PDF数据单元中获取当前页的第一线条数据和第二线条数据的垂直线条数据和水平线条数据;步骤C2,对当前页的第一线条数据和第二线条数据的线条数据进行图形算法处理,获得当前页的表格数量及每个表格对应的上下边位置数据、左右边的位置数据、每行上下边位置数据和每列左右边的位置数据,即获得具有表格行数据和列数据的当前页的表格框架数据,并将其以页码为关联词存储到字典的表格数据单元中。本专利技术的一实施例中,所述步骤C2具体包括:步骤C21,对当前页的第一线条数据和第二线条数据的垂直线条进行垂直投影,对所获得的垂直投影结果数据进行处理分析,获得当前页的表格数量及每个表格对应的上下边位置数据;步骤C22,依次遍历当前页的每一个表格,对当前表格的第一线条数据或第二线条数据的水平线条进行水平投影,获得当前表格左右边的位置数据;对当前表格的第一线条数据或第二线条数据的水平线条进行垂直投影,获得当前表格每行上下边位置数据;对当前表格的第一线条数据或第二线条数据的垂直线条进行水平投影,获得当前表格每列左右边的位置数据,从而获得具有表格行数据和列数据的当前表格的表格框架数据;步骤C23,判断当前表格是否为当前页的最后一表格,如若当前表格不是当前页的最后一表格,则继续从步骤C22开始;如若当前表格是当前页的最后一表格,则以页码为关联词将具有表格行数据和列数据的当前页的表格框架数据存储到字典的表格数据单元中。本专利技术的一实施例中,还包括步骤C3:步骤C3,判断当前页是否为PDF文档的最后一页,如若当前页不是最后一页,则继续从步骤C1开始处理;如若当前页是最后一页,将存储有表格框架数据的字典存储到磁盘文件中。本专利技术的一实施例中,步骤D包括:步骤D1,按页码依次从字典的PDF数据单元中获取当前页所有字符数据;步骤D2,依次遍历当前页的两个连续字符数据,对获取的当前两个连续字符的坐标数据依次进行垂直坐标Y阈值化处理并判断拆分与否,水平坐标X阈值化处理并判断拆分与否,再对两个连续字符采用第一线条数据或第二线条数据对应的垂直线条约束判断拆分与否,将最后判定不拆分的两个连续字符合并并聚类到相应的字符串集合中。本专利技术的一实施例中,还包括步骤D3:步骤D3,判断当前的两个连续字符是否为当前页的最后两个连续字符,如若不是,继续对当前页的下两个连续字符从步骤D2开始处理;若是当前页的最后两个连续字符,则以页码为关联词将当前页对应的所有字符串集合作为文本数据存储到字典的文本数据单元中,再继续进行步骤D4;步骤D4,判断当前页是否为最后一页,如若当前页不是最后一页,则继续从步骤D1开始处理;如若当前页是最后一页,将存储有文本数据的字典存储到磁盘文件中。本专利技术的一实施例中,步骤D2中的垂直坐标Y阈值化处理,即比较两个连续字符的垂直坐标Y数据之差的绝对值是否大于设定的垂直阈值,如若大于设定的垂直阈值,则将两个连续字符拆分,然后继续从步骤D3开始;如若不大于设定的垂直阈值,则继续进行水平坐标X阈值化处理;步骤D2中的水平坐标X阈值化处理,即比较两个连续字符的水平坐标X数据之差的绝对值是否大于设定的水平阈值,如若大于设定的水平阈值,则将两个连续字符拆分,然后继续从步骤D3开始;如若不大于设定的水平阈值,则继续对两个连续字符采用第一线条数据或第二线条数据对应的垂直线条约束判断拆分与否;步骤D2中的对两个连续字符采用第一线条数据或第二线条数据对应的垂直线条约束判断拆分与否是指:判断两个连续字符的水平坐标数据之间是否具有第一线条数据或第二线条数据对应的垂直线条的水平坐标数据,如若两个连续字符的水平坐标数据之间具有第一线条数据或第二线条数据对应的垂直线条的水平坐标数据,则将两个连续字符拆分,然本文档来自技高网...
PDF表格提取方法

【技术保护点】
一种PDF表格提取方法,其特征在于,该方法包括:步骤A,对PDF文档进行解析,获取图像数据、第一线条数据和字符数据;步骤B,采用图像识别算法对经由步骤A获取的图像数据进行处理,从具有表格数据的图像数据中获得其表格数据对应的第二线条数据;步骤C,采用图形算法对经由步骤A获得的第一线条数据和经由步骤B获得的第二线条数据分别进行处理,获得具有表格行数据和列数据的表格框架数据;步骤D,采用聚类算法对经由步骤A获得的字符数据进行聚类处理,获得具有字符串集合的文本数据;步骤E,经由步骤C获得的表格框架数据中的表格行数据和列数据,得到对应的表格单元格,将表格单元格与步骤D获得的文本数据中的字符串集合相匹配,获得PDF文档中的表格数据。

【技术特征摘要】
1.一种PDF表格提取方法,其特征在于,该方法包括:步骤A,对PDF文档进行解析,获取图像数据、第一线条数据和字符数据;步骤B,采用图像识别算法对经由步骤A获取的图像数据进行处理,从具有表格数据的图像数据中获得其表格数据对应的第二线条数据;步骤C,采用图形算法对经由步骤A获得的第一线条数据和经由步骤B获得的第二线条数据分别进行处理,获得具有表格行数据和列数据的表格框架数据;步骤D,采用聚类算法对经由步骤A获得的字符数据进行聚类处理,获得具有字符串集合的文本数据;步骤E,经由步骤C获得的表格框架数据中的表格行数据和列数据,得到对应的表格单元格,将表格单元格与步骤D获得的文本数据中的字符串集合相匹配,获得PDF文档中的表格数据。2.如权利要求1所述的PDF表格提取方法,其特征在于,步骤C中所述图形算法处理包括对步骤A获得的第一线条数据和步骤B获得的第二线条数据对应的垂直线条进行垂直投影、水平线条进行水平投影、水平线条进行垂直投影及垂直线条进行水平投影,从而获得具有表格行数据和列数据的表格框架数据。3.如权利要求1所述的PDF表格提取方法,其特征在于,步骤D中所述聚类算法处理包括对步骤A获得的字符数据中任两个连续字符数据的坐标数据依次进行垂直坐标Y阈值化处理、水平坐标X阈值化处理和/或垂直线条约束处理,将同类连续字符聚类到相应的字符串集合中,从而获得具有字符串集合的文本数据。4.如权利要求1~3任一项所述的PDF表格提取方法,其特征在于,步骤A至步骤E中的各处理均是按页码依次进行处理;步骤A获取的图像数据、第一线条数据、字符数据及步骤B获取的第二线条数据均以页码为关联词存储到字典的PDF数据单元中,步骤C获得的表格框架数据以页码为关联词存储到字典的表格数据单元中,步骤D获得的文本数据以页码为关联词存储到字典的文本数据单元中。5.如权利要求4所述的PDF表格提取方法,其特征在于,步骤C具体包括:步骤C1,按页码依次从字典的PDF数据单元中获取当前页的第一线条数据和第二线条数据的垂直线条数据和水平线条数据;步骤C2,对当前页的第一线条数据和第二线条数据的线条数据进行图形算法处理,获得当前页的表格数量及每个表格对应的上下边位置数据、左右边的位置数据、每行上下边位置数据和每列左右边的位置数据,即获得具有表格行数据和列数据的当前页的表格框架数据,并将其以页码为关联词存储到字典的表格数据单元中。6.如权利要求5所述的PDF表格提取方法,其特征在于,所述步骤C2具体包括:步骤C21,对当前页的第一线条数据和第二线条数据的垂直线条进行垂直投影,对所获得的垂直投影结果数据进行处理分析,获得当前页的表格数量及每个表格对应的上下边位置数据;步骤C22,依次遍历当前页的每一个表格,对当前表格的第一线条数据或第二线条数据的水平线条进行水平投影,获得当前表格左右边的位置数据;对当前表格的第一线条数据或第二线条数据的水平线条进行垂直投影,获得当前表格每行上下边位置数据;对当前表格的第一线条数据或第二线条数据的垂直线条进行水平投影,获得当前表格每列左右边的位置数据,从而获得具有表格行数据和列数据的当前表格的表格框架数据;步骤C23,判断当前表格是否为当前页的最后一表格,如若当前表格不是当前页的最后一表格,则继续从步骤C22开始;如若当前表格是当前页的最后一表格,则以页码为关联词将具有表格行数据和列数据的当前页的表格框架数据存储到字典的表格数据单元中。7.如权利要求6所述的PDF表格提取方法,其特征在于,还包括步骤C3:步骤C3,判断当前页是否为PDF文档的最后一页,如若当前页不是最后一页,则继续从步骤C1开始处理;如若当前页是最后一页,将存储有表格框架数据的字典存储到磁盘文件中。8.如权利要求4所述的PDF表格提取方法,其特征在于,步骤D包括:步骤D1,按页码依次从字典的PDF数据单元中获取当前页所有字符数据;步骤D2,依次遍历当前页的两个连续字符数据,对获取的当前两个连续字符的坐标数据依次进行垂直坐标Y阈值化处理并判断拆分与否,水平坐标X阈值化处理并判断拆分与否,再对两个连续字符采用第一线条数据或第二线条数据对应的垂直线条约束判断拆分与否,将最后判定不拆分的两个连续字符合并并聚类到相应的字符串集合中。9.如权利要求8所述的PDF表格提取方法,其特征在于还包括:步骤D3,判断当前的两个连续字符是否为当前页的最后两个连续字符,如若不是,继续从步骤D2开始处理;若是当前页的最后两个连续字符,则以页码为关联词将当前页对应的所有字符串集合作为文本数据存储到字典的文本数据单元中,再继续进行步骤D4;步骤D4,判断当前页是否为最后一页,如若当前页不是最后一页,则继续从步骤D1开始处理;如若当前页是最后一页,将存储有字符串集合的文本数据的字典存储到磁盘文件中。10.如权利要求9所述的PDF表格提取方法,其特征在于,步骤D2中的垂直坐标Y阈值化处理,即比较两个连续字符的垂直坐标Y数据之差的绝对值是否大于设定的垂直阈值,如若大于设定的垂直阈值,则将两个连续字符拆分,然后继续从步骤D3开始;如若不大于设定的垂直阈值,则继续...

【专利技术属性】
技术研发人员:郑龙夏磊
申请(专利权)人:南京述酷信息技术有限公司
类型:发明
国别省市:江苏,32

相关技术
    暂无相关专利
网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1