CN107622230B - 一种基于区域识别与分割的pdf表格数据解析方法 - Google Patents
一种基于区域识别与分割的pdf表格数据解析方法 Download PDFInfo
- Publication number
- CN107622230B CN107622230B CN201710760650.XA CN201710760650A CN107622230B CN 107622230 B CN107622230 B CN 107622230B CN 201710760650 A CN201710760650 A CN 201710760650A CN 107622230 B CN107622230 B CN 107622230B
- Authority
- CN
- China
- Prior art keywords
- data
- areas
- segmentation
- row
- 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
Links
Landscapes
- Character Input (AREA)
- Document Processing Apparatus (AREA)
Abstract
本发明涉及一种基于区域识别与分割的PDF表格数据解析方法,定位PDF文档中要解析的指定页面,并将指定页面转换为灰阶图像文件;解析灰阶图像文件,获取其中的数据部分并保存到二维数组中;针对所得到的二维数组,通过表格分割线扫描算法,进行表格区域的识别和不同表格区域的分割;进行表格区域的识别和不同表格区域的分割后,依次对各个表格进行解析,在解析时,根据表格样式的不同,将表格分为非复杂结构的表格和复杂结构的表格进行处理,从而得到解析结果,能够提高复杂表格数据解析的准确率;将所得到的解析后的表格数据按照需要的文件格式进行存储。本发明是一种能够快速、准确地从PDF文档中提取所需要的表格数据的方法。
Description
技术领域
本发明涉及一种基于区域识别与分割的PDF文档表格数据解析方法,属于数字图像处理、数据处理技术领域。
背景技术
PDF(Portable Document Format,便携式文档格式)是一种独立于硬件、操作系统、应用程序的电子文档格式。由于其具有跨平台、多媒体集成、安全等优点,PDF已成为目前使用最为广泛的电子文档格式之一。
随着PDF格式文档的广泛使用,大量有价值的数据均以PDF文档的形式呈现出来。因此,如何从PDF文档中提取数据,尤其是结构化、半结构化的表格数据,是一个被广泛关注和研究的问题。
PDF格式的文档结构与HTML、XML等格式不同(没有类似于HTML和XML文档中的结构化标签),PDF文档对表格数据没有特殊的定义,而只是线条与文字的位置组合,因此很难直接从PDF文档中提取出所需要的表格数据。也正是因为这一原因,虽然目前从PDF文档中解析表格数据的相关工具众多,然而成熟稳定、解析准确率高的工具却很少,现有的PDF表格数据解析工具主要存在以下问题:
(1)部分PDF表格数据解析工具采用先将PDF文档转换为一种中间格式的文档(如HTML、XML、DOC等),然后再从这种中间格式的文档中提取出所需要的数据。该方法不仅多引入了一次转换到中间文件的操作,而且转换得到的中间文件难以准确地保持数据在原有PDF文档中的位置和结构(例如同一单元格中的数据被切割到不同的标签中而难以合并与处理,或不同单元格中的数据被合并到同一标签中而无法拆分),因此无法得到准确的表格数据解析结果,从而难以进行后续的处理。
(2)对于同一个PDF文档页面中存在两个或者多个表格的情况无法得到较为理想的解析结果。部分PDF表格数据解析工具即使能够处理同一页面中的多个表格,也会将解析得到的这些表格数据混合在一起而难以拆分。
(3)表格解析的准确率较低,提取出来的表格数据无法保持其在原PDF文档中的相对位置和结构,因此难以继续使用:例如解析出来的单个单元格中的数据被分割到多行,或多个单元格中的数据被合并到一个单元格中。
现有的PDF文档表格识别方法(CN105589841A)基于关键词匹配算法,需要将待解析页面中所有的文本数据解析出来,然后再从这些文本中进行关键词匹配,这是需要一定的时间耗费的。
本发明设计中包含的表格区域识别方法,不需要解析整个页面中的文本,从而能够进行快速地表格区域识别。
现有的PDF文件表格提取方法和装置(CN105988979A)需要对所提取的表格横向线条进行排序,并且需要将表格的线条信息进行绘制。
本发明设计中包含的表格数据提取方法,不需要对表格分割线(包括横向线条和纵向线条)进行排序(表格分割线提取出来就是按序排列的),并且在对所提取出的表格数据进行存储时,无需保存任何线条信息、位置信息,而只需存储表格中的文本数据,并能够保证表格中的数据按照其在原文档中的布局、位置和结构进行存储。
发明内容
针对上述现有的PDF表格数据解析工具和方法所存在的多种问题,提供一种基于区域识别与分割的PDF文档表格数据解析方法,并旨在提供一种能够快速、准确地从PDF文档中提取所需要的表格数据的方法。
本发明技术解决方案:一种基于区域识别与分割的PDF表格数据解析方法,步骤如下:
第一步,定位PDF文档中要解析的指定页面,并将指定页面转换为灰阶图像文件;通过直接指定要解析的文档页码进行快速定位,将该页文档转换为灰阶图像文件(例如PPM文件)。灰阶图像文件具有特定的文件格式,通过读取并解析转换得到的灰阶图像文件,可以得到直接用于后续处理的数据;
第二步,解析转换得到的灰阶图像文件,获取其中的数据部分并保存到二维数组中;按照灰阶图像文件的文件格式,对其进行读取和解析,获取其中的数据部分,并保存到二维数组中,后续的表格区域识别与表格区域分割都需要针对该二维数组进行大量的计算和处理,在进行二维数组的存储和计算时,使用numpy或其他提供高效的向量、矩阵高阶数据结构处理能力的技术工具进行处理;
第三步,针对所得到的二维数组,通过表格分割线扫描算法,进行表格区域的识别和不同表格区域的分割,所述表格分割线扫描算法采用PDF文档中表格、单元格区域识别方法和区域分割方法相结合的方法;
第四步,进行表格区域的识别和不同表格区域的分割后,依次对各个表格进行解析,在解析时,根据表格样式的不同,将表格分为非复杂结构的表格和复杂结构的表格进行处理,从而得到解析结果,能够提高复杂表格数据解析的准确率;所述非复杂结构的表格是指表格规整、分割线对齐,所述复杂结构的表格是指表格中的分割线交错复杂、多条分割线不对齐,包括跨行单元格、跨列单元格、跨行跨列单元格,以及同一行或同一列中存在多个跨行和跨列的单元格情况;
第五步,将所得到的解析后的表格数据按照需要的文件格式进行存储。
所述第三步中,所述表格分割线扫描算法具体实现如下:标记连续位置上值相同的元素,并通过表格分割线线长阈值进行过滤,识别出表格的分割线;通过判断两条相邻的表格分割线中间是否存在贯穿的垂直表格分割线,即垂直于两条相邻的表格分割线来确定并识别出同一页面中的不同表格区域;识别出不同的表格区域后,将同一页面内的不同表格按照区域进行分割,得到各个表格的起始和终止位置坐标。
所述第四步中,对于非复杂结构的表格处理步骤为:
(1)针对第二步得到的二维数组,通过单元格分割线扫描算法,识别出各个表格中不同的单元格区域;
(2)对识别出的各个单元格区域中的文字数据进行定位和解析。
所述第四步中,对于复杂结构的表格处理步骤为:
(1)将表格按行进行切割,然后依次处理每个行表格;
(2)针对第二步得到的二维数组,通过单元格分割线扫描算法,识别出各个行表格中不同的单元格区域;
(3)对识别出的各个单元格区域中的文字数据进行定位和解析;
(4)将所有的行表格数据合并到一个完整的表格中,从而得到整个表格的数据。
所述第五步中,将所得到的解析后的表格数据按照需要的格式(例如Excel、txt等)进行存储时,无需存储表格结构本身,而只需存储表格中的文本数据,并能够保证表格中的数据按照原文档中的布局、位置和结构进行存储。
与现有的PDF文档表格数据解析工具和方法相比,本发明所提出的方法主要包括以下优点:
(1)能够快速、准确地从PDF文档中提取所需要的表格数据,无需将PDF文档转换为中间格式的文档,支持直接从PDF文档中准确解析表格数据;
(2)能够识别和切割同一个页面中的多个表格;
(3)支持对结构复杂表格的数据解析,能够提高复杂表格数据解析的准确率;
(4)本发明设计中包含的表格数据提取方法,不需要对表格分割线(包括横向线条和纵向线条)进行排序(表格分割线提取出来就是按序排列的);
(5)在对所提取出的表格数据进行存储时,在保证表格数据解析结果准确性的前提下,无需存储用于描述表格数据位置信息的数据,而只需存储表格中的文本数据,并能够保证表格中的数据按照其在原文档中的布局、位置和结构进行存储。
附图说明
图1是本发明基于区域识别与分割的PDF表格数据解析方法的流程图。
具体实施方式
下面结合附图及实施例对本发明进行详细说明。
如图1所示,本发明所提出的PDF文档表格数据解析方法各个步骤的具体实施方式如下:
●PDF文档页面转换为灰阶图像文件
本发明所提出的PDF文档表格数据解析方法不需要解析整个PDF文档,而是能够直接根据PDF文档的页码,快速定位到指定页面,通过将指定的要解析的PDF文档页面转换为八位灰阶图像文件,并对灰阶图像文件进行处理(标识出有字符区域和空白区域),以判定页面有效内容的区域,从而提高表格数据的提取效率。
此外,在进行八位灰阶图像文件转换时,通过调整灰度阈值,本方法可以处理部分带有阴影、带有背景颜色、彩色等样式的表格。
●解析灰阶图像文件
灰阶图像文件具有特定的文件格式,通过读取并解析转换得到的PDF文档页面的灰阶图像文件,可以得到直接用于后续表格区域识别和表格区域分割的数据,并将数据映射到二维数组中。
●表格区域识别与分割
针对二维数组,通过表格分割线扫描算法:标记连续位置上值相同的元素,并通过表格分割线线长阈值进行过滤,识别表格中的边框和单元格分割线(即表格区域识别技术);通过判断两条相邻的表格边框线中间是否存在至少一条贯穿的垂直分割线来判断两条边框线是否处于同一个表格中:若两条相邻的表格边框线中间不存在贯穿的垂直分割线,则说明所判断的两条相邻的表格边框线分别属于不同的表格,从而通过这两条边框线将同一个PDF文档页面中的不同表格区域分开,并依此进行表格分割(即表格区域分割技术)。
●表格数据的解析
通过对PDF文档页面中的表格区域识别及不同表格区域分割后,就可以依次对各个表格中的单元格进行区域识别,并进行表格数据的解析,从而得到完整的表格数据。先进行表格区域识别与区域分割,确定要解析的文字区域之后才进行指定区域内的表格数据解析,这样能够避免对不需要的文档数据的解析,提高表格数据解析的速度。
在进行表格数据解析时,对于结构复杂的表格(例如跨行单元格、跨列单元格、跨行跨列单元格,以及同一行或同一列中存在多个跨行和跨列的单元格等情况),采用现有PDF文档表格数据解析方法直接解析出来的单元格数据的相对位置和布局会出现错乱,甚至会出现空行和空列的情况(而用户无法确定是原表格中真实存在的空行空列还是解析错误得到的空行空列)。
因此,本发明提出了一种针对结构复杂的表格数据的准确解析方法:首先需要将表格进行逐行切分,并将切分开的各个行表格作为一个单独的表格进行解析(单元格区域识别及单元格数据解析)。最后再将解析出来的各个行表格中的数据进行合并,从而得到整个表格的数据。通过逐行切分、再解析、数据合并的方法,能够显著提高对于结构复杂的表格数据的解析准确率。
●表格数据的存储
将不同表格中的各个单元格数据解析出来后,需要按照各个单元格在原来表格中的位置信息和结构信息进行存储,以保证表格数据解析的准确性。在进行表格数据存储时,本发明支持使用纯文本格式(如txt)或二进制格式(如Excel)进行存储。例如对于Excel文件而言,本发明通过使用pandas将解析得到的表格数据存储到Excel文件中(pandas提供了大量快速、便捷地处理数据的函数和方法,并能够方便地进行数据的存储。在进行本步骤的具体实施时,也可使用其他提供类似pandas功能的技术工具)。
此外,在进行表格数据存储时,本发明无需存储表格结构本身,而只需存储表格中的文本数据,并能够保证表格中的数据按照原文档中的布局、结构和位置进行存储,这样能够有效地减少额外数据的存储量。
Claims (4)
1.一种基于区域识别与分割的PDF表格数据解析方法,其特征在于,步骤如下:
第一步,定位PDF文档中要解析的指定页面,并将指定页面转换为灰阶图像文件;
第二步,解析转换得到的灰阶图像文件,获取其中的数据部分并保存到二维数组中;
第三步,针对所得到的二维数组,通过表格分割线扫描算法,进行表格区域的识别和不同表格区域的分割,所述表格分割线扫描算法采用PDF文档中表格、单元格区域识别方法和区域分割方法相结合的方法;
第四步,进行表格区域的识别和不同表格区域的分割后,依次对各个表格进行解析,在解析时,根据表格样式的不同,将表格分为非复杂结构的表格和复杂结构的表格进行处理,从而得到解析结果,能够提高复杂表格数据解析的准确率;所述非复杂结构的表格是指表格规整、分割线对齐,所述复杂结构的表格是指表格中的分割线交错复杂、多条分割线不对齐,包括跨行单元格、跨列单元格、跨行跨列单元格,以及同一行或同一列中存在多个跨行和跨列的单元格情况;
第五步,将所得到的解析后的表格数据按照需要的文件格式进行存储;
所述第三步中,所述表格分割线扫描算法具体实现如下:标记连续位置上值相同的元素,并通过表格分割线线长阈值进行过滤,识别出表格的边框和单元格分割线;通过判断两条相邻的表格边框线中间是否存在至少一条贯穿的垂直分割线来判断两条边框线是否处于同一个表格区域中:若两条相邻的表格边框线中间不存在贯穿的垂直分割线,则说明所判断的两条相邻的表格边框线分别属于不同的表格区域;识别出不同的表格区域后,将同一页面内的不同表格按照区域进行分割,得到各个表格的起始和终止位置坐标;
所述第四步中,对于复杂结构的表格处理步骤为:
(1)将表格按行进行切割,然后依次处理每个行表格;
(2)针对第二步得到的二维数组,通过表格分割线扫描算法,识别出各个行表格中不同的单元格区域;
(3)对识别出的各个单元格区域中的文字数据进行定位和解析;
(4)将所有的行表格数据合并到一个完整的表格中,从而得到整个表格的数据。
2.根据权利要求1所述的基于区域识别与分割的PDF表格数据解析方法,其特征在于:所述第二步中,在进行二维数组的保存时,使用高效的向量、矩阵高阶数据结构处理能力的技术工具numpy进行处理。
3.根据权利要求1所述的基于区域识别与分割的PDF表格数据解析方法,其特征在于:所述第四步中,对于非复杂结构的表格处理步骤为:
(1)针对第二步得到的二维数组,通过表格分割线扫描算法,识别出各个表格中不同的单元格区域;
(2)对识别出的各个单元格区域中的文字数据进行定位和解析。
4.根据权利要求1所述的基于区域识别与分割的PDF表格数据解析方法,其特征在于:所述第五步中,将所得到的解析后的表格数据按照Excel或者txt格式进行存储时,无需存储表格结构本身,而只需存储表格中的文本数据,并能够保证表格中的数据按照原文档中的布局、位置和结构进行存储。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710760650.XA CN107622230B (zh) | 2017-08-30 | 2017-08-30 | 一种基于区域识别与分割的pdf表格数据解析方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710760650.XA CN107622230B (zh) | 2017-08-30 | 2017-08-30 | 一种基于区域识别与分割的pdf表格数据解析方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107622230A CN107622230A (zh) | 2018-01-23 |
CN107622230B true CN107622230B (zh) | 2019-12-06 |
Family
ID=61089130
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710760650.XA Active CN107622230B (zh) | 2017-08-30 | 2017-08-30 | 一种基于区域识别与分割的pdf表格数据解析方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107622230B (zh) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108563621B (zh) * | 2018-04-28 | 2022-08-05 | 国泰新点软件股份有限公司 | 一种pdf报表生成方法、装置、设备及存储介质 |
CN110569489B (zh) * | 2018-06-05 | 2023-08-11 | 北京国双科技有限公司 | 基于pdf文件的表格数据解析方法及装置 |
CN109325415A (zh) * | 2018-08-22 | 2019-02-12 | 吴昌议 | 一种基于图像列对齐特征预测所有目标区域的方法 |
CN110929481A (zh) * | 2018-09-19 | 2020-03-27 | 珠海金山办公软件有限公司 | 一种文档编辑的方法、装置、计算机存储介质及终端 |
CN109492211A (zh) * | 2018-11-13 | 2019-03-19 | 江西金格科技股份有限公司 | 一种基于ofd文档的表格提取方法 |
CN109697281A (zh) * | 2018-12-17 | 2019-04-30 | 万兴科技股份有限公司 | 在线合并文档的方法、装置及电子设备 |
CN110008809B (zh) * | 2019-01-04 | 2020-08-25 | 阿里巴巴集团控股有限公司 | 表格数据的获取方法、装置和服务器 |
CN110188649B (zh) * | 2019-05-23 | 2021-11-23 | 成都火石创造科技有限公司 | 基于tesseract-ocr的pdf文件解析方法 |
CN110413962A (zh) * | 2019-06-28 | 2019-11-05 | 南京智录信息科技有限公司 | 文档图像中的无边框表格解析技术 |
CN110472209B (zh) * | 2019-07-04 | 2024-02-06 | 深圳同奈信息科技有限公司 | 基于深度学习的表格生成方法、装置和计算机设备 |
CN110334710A (zh) * | 2019-07-10 | 2019-10-15 | 深圳市华云中盛科技有限公司 | 法律文书识别方法、装置、计算机设备及存储介质 |
CN111144300B (zh) * | 2019-12-26 | 2021-06-01 | 杭州费尔斯通科技有限公司 | 一种基于图像识别的pdf表格结构识别方法 |
CN111626146B (zh) * | 2020-05-08 | 2023-06-09 | 西安工业大学 | 一种基于模板匹配的合并单元格表格分割识别方法 |
CN112380826B (zh) * | 2020-11-12 | 2024-03-22 | 中国农业银行股份有限公司佛山分行 | 一种基于文本文件的格式化电子表格生成方法 |
CN112487970A (zh) * | 2020-11-30 | 2021-03-12 | 国网江西省电力有限公司检修分公司 | 一种电厂两票系统pdf文档识别文字方法 |
CN112685994B (zh) * | 2020-12-08 | 2023-02-21 | 福建亿榕信息技术有限公司 | 一种双层pdf文件样式格式化输出方法、装置、设备和介质 |
CN112861821B (zh) * | 2021-04-06 | 2024-04-19 | 刘羽 | 基于pdf文件解析的图谱数据还原方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102722475A (zh) * | 2012-05-09 | 2012-10-10 | 深圳市万兴软件有限公司 | 一种PDF文档中的表格转换成Excel表格的方法 |
CN106897690A (zh) * | 2017-02-22 | 2017-06-27 | 南京述酷信息技术有限公司 | Pdf表格提取方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6249240B2 (ja) * | 2015-03-27 | 2017-12-20 | 京セラドキュメントソリューションズ株式会社 | 画像処理装置 |
-
2017
- 2017-08-30 CN CN201710760650.XA patent/CN107622230B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102722475A (zh) * | 2012-05-09 | 2012-10-10 | 深圳市万兴软件有限公司 | 一种PDF文档中的表格转换成Excel表格的方法 |
CN106897690A (zh) * | 2017-02-22 | 2017-06-27 | 南京述酷信息技术有限公司 | Pdf表格提取方法 |
Non-Patent Citations (2)
Title |
---|
Information Extraction Tools for Portable Document Format;Sarang Pitale 等;《Int.J.Comp.Tech.Appl.》;20111231;全文 * |
一种面向PDF文件的表格数据抽取方法的研究与实现;唐皓瑾;《中国优秀硕士学位论文全文数据库 信息科技辑》;20150831;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN107622230A (zh) | 2018-01-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107622230B (zh) | 一种基于区域识别与分割的pdf表格数据解析方法 | |
CN101770446B (zh) | 一种版式文件中表格识别方法及系统 | |
CN101782896B (zh) | 结合ocr技术的pdf文字提取方法 | |
CN110795919A (zh) | 一种pdf文档中的表格抽取方法、装置、设备及介质 | |
CN101763516B (zh) | 一种基于拟合函数的文字识别方法 | |
US11200412B2 (en) | Method and system for generating parsed document from digital document | |
US9098581B2 (en) | Method for finding text reading order in a document | |
CN104598577B (zh) | 一种网页正文的提取方法 | |
CN110427488B (zh) | 文档的处理方法及装置 | |
US11010543B1 (en) | Systems and methods for table extraction in documents | |
CN106709032A (zh) | 抽取电子表格文档中结构化信息的方法及装置 | |
CN105630817A (zh) | 一种电子发票内容解析的方法及系统 | |
CN102831198A (zh) | 一种基于文档签名技术的相似文档识别装置及方法 | |
CN112101237A (zh) | 一种柱状图数据提取和转化方法 | |
CN110909123A (zh) | 一种数据提取方法、装置、终端设备及存储介质 | |
CN111209831A (zh) | 一种基于分类算法的文档表格内容识别方法及装置 | |
CN106777281B (zh) | 用于提高网络爬虫稳定性、可用性的数据处理方法及装置 | |
CN110110326B (zh) | 一种基于主题信息的文本切割方法 | |
CN109472020A (zh) | 一种特征对齐中文分词方法 | |
Baker et al. | Comparing approaches to mathematical document analysis from PDF | |
CN113850265A (zh) | Pdf文档的解析方法、装置、电子设备及存储介质 | |
CN113821555A (zh) | 一种智慧监管黑匣子的非结构化资料汇集处理方法 | |
CN114283438A (zh) | 核电厂图纸信息识别与提取方法及系统 | |
CN107402974B (zh) | 基于多种二进制HoG描述符的草图检索方法 | |
CN112990091A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |