CN115114481A - 文档格式转换方法、装置、存储介质及设备 - Google Patents
文档格式转换方法、装置、存储介质及设备 Download PDFInfo
- Publication number
- CN115114481A CN115114481A CN202210651509.7A CN202210651509A CN115114481A CN 115114481 A CN115114481 A CN 115114481A CN 202210651509 A CN202210651509 A CN 202210651509A CN 115114481 A CN115114481 A CN 115114481A
- Authority
- CN
- China
- Prior art keywords
- text
- line
- document
- column
- tables
- 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
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/80—Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
- G06F16/84—Mapping; Conversion
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/151—Transformation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Document Processing Apparatus (AREA)
Abstract
本申请公开一种文档格式转换方法、装置、存储介质及设备,该方法包括:识别PDF文档中的表格,表格包括全框表格、半框表格、无框表格中的至少一种;识别PDF文档中的图表,图表至少包括以图形方式显示的内容信息;根据表格与图表,将PDF文档转换为HTML文档,其中,HTML文档中转换出的表格为HTML形式,以及HTML文档中转换出的图表为图片形式。本申请实施例可以有效识别PDF文档中的如全框表格、半框表格、无框表格、图表等各个元素,并转换为HTML文档,提升了PDF文档解析格式转换的准确率。
Description
技术领域
本申请涉及计算机技术领域,具体涉及一种文档格式转换方法、装置、存储介质及设备。
背景技术
可携带文档格式(Portable Document Format,PDF)是由Adobe公司设计的一种电子文件格式,由于其与操作系统、平台无关,在不同的设备和系统中都是通用的,因此,许多电子图书、论文、公司公告都以PDF的形式发布。PDF内部的排版是以坐标的形式记录,而且指令复杂,因此很难直接从PDF中提取段落中的文字信息或者表格中的结构化数据。现有技术中,为了更好的对PDF中的信息进行提取和展示,通常将其转换为HTML(超文本标记语言,Hyper Text Markup Language)文件再进行处理,HTML文件的格式更利于解析和表格的结构化提取。
相关的PDF解析技术中,主要专注于文本信息的抽取,或者表格的转换,但是部分PDF的表格并不规范,容易出现线条缺失、存在图表、排版复杂等情况,在很大程度上降低了相关PDF解析技术的准确率。
发明内容
本申请实施例提供一种文档格式转换方法、装置、存储介质及设备,可以有效识别PDF文档中的各个元素,并转换为HTML文档,提升PDF文档解析格式转换的准确率。
一方面,本申请实施例提供一种文档格式转换方法,所述方法包括:识别PDF文档中的表格,所述表格包括全框表格、半框表格、无框表格中的至少一种;识别所述PDF文档中的图表,所述图表至少包括以图形方式显示的内容信息;根据所述表格与所述图表,将所述PDF文档转换为HTML文档,其中,所述HTML文档中转换出的所述表格为HTML形式,以及所述HTML文档中转换出的所述图表为图片形式。
另一方面,本申请实施例提供一种文档格式转换装置,所述装置包括:
第一识别单元,用于识别PDF文档中的表格,所述表格包括全框表格、半框表格、无框表格中的至少一种;
第二识别单元,用于识别所述PDF文档中的图表,所述图表至少包括以图形方式显示的内容信息;
转换单元,用于根据所述表格与所述图表,将所述PDF文档转换为HTML文档,其中,所述HTML文档中转换出的所述表格为HTML形式,以及所述HTML文档中转换出的所述图表为图片形式。
另一方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序适于处理器进行加载,以执行如上任一实施例所述的文档格式转换方法。
另一方面,本申请实施例提供一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有计算机程序,所述处理器通过调用所述存储器中存储的所述计算机程序,用于执行如上任一实施例所述的文档格式转换方法。
本申请实施例通过识别PDF文档中的表格,表格包括全框表格、半框表格、无框表格中的至少一种;识别PDF文档中的图表,图表至少包括以图形方式显示的内容信息;根据表格与图表,将PDF文档转换为HTML文档,其中,HTML文档中转换出的表格为HTML形式,以及HTML文档中转换出的图表为图片形式。本申请实施例可以有效识别PDF文档中的如全框表格、半框表格、无框表格、图表等各个元素,并转换为HTML文档,提升了PDF文档解析格式转换的准确率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的文档格式转换方法的第一流程示意图。
图2为本申请实施例提供的文档格式转换方法的第二流程示意图。
图3为本申请实施例提供的文档格式转换方法的第三流程示意图。
图4为本申请实施例提供的文档格式转换方法的第四流程示意图。
图5为本申请实施例提供的文档格式转换方法的第五流程示意图。
图6为本申请实施例提供的文档格式转换方法的第六流程示意图。
图7为本申请实施例提供的文档格式转换方法的第七流程示意图。
图8为本申请实施例提供的文档格式转换方法的第八流程示意图。
图9为本申请实施例提供的文档格式转换方法的第九流程示意图。
图10为本申请实施例提供的文档格式转换方法的第十流程示意图。
图11为本申请实施例提供的文档格式转换方法的第十一流程示意图。
图12为本申请实施例提供的文档格式转换方法的第十二流程示意图。
图13为本申请实施例提供的文档格式转换方法的第十三流程示意图。
图14为本申请实施例提供的文档格式转换方法的第十四流程示意图。
图15为本申请实施例提供的文档格式转换方法的第一应用场景示意图。
图16为本申请实施例提供的文档格式转换方法的第二应用场景示意图。
图17为本申请实施例提供的文档格式转换装置的第一结构示意图。
图18为本申请实施例提供的文档格式转换装置的第二结构示意图。
图19为本申请实施例提供的计算机设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例提供一种文档格式转换方法、装置、计算机设备和存储介质。具体地,本申请实施例的文档格式转换方法可以由计算机设备执行,其中,该计算机设备可以为终端或者服务器等设备。该终端可以为智能手机、平板电脑、笔记本电脑、台式计算机、智能电视、智能音箱、穿戴式智能设备、智能车载终端等设备,终端还可以包括客户端,该客户端可以是视频客户端、浏览器客户端或即时通信客户端等。服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content Delivery Network,CDN)、以及大数据等基础云计算服务的云服务器。
本申请实施例可应用于计算机视觉、图像识别等各种场景。
本申请实施例提供一种文档格式转换方法、装置、存储介质及设备,可以识别PDF文档中存在的表格和图表,其中表格包括全框表格、半框表格、无框表格中的至少一种,其中,在将PDF文档转换为HTML文档时,将表格转为HTML格式,将图表转换为图片形式;进一步的,还可以识别PDF文档中的排版布局,排版布局包括单栏布局、双栏布局、多栏布局中的至少一种,并根据排版布局确定阅读顺序,并按正确的阅读顺序将PDF文档整体转换为HTML形式的HTML文档,提升PDF文档解析格式转换的准确率。
以下分别进行详细说明。需说明的是,以下实施例的描述顺序不作为对实施例优先顺序的限定。
本申请各实施例提供了一种文档格式转换方法,该方法可以由终端或服务器执行,也可以由终端和服务器共同执行;本申请实施例以文档格式转换方法由终端执行为例来进行说明。
请参阅图1至图16,图1至图14为本申请实施例提供的文档格式转换方法的流程示意图,图15至16均为本申请实施例提供的相关应用场景示意图。该方法包括:
步骤10,识别PDF文档中的表格,所述表格包括全框表格、半框表格、无框表格中的至少一种。
全框表格,表示线条完整的表格,不需要额外补充任何线条就可以明确表格每个单元格范围的表格。
半框表格,表示有部分线条,但是需要额外补充线条才能完全明确每个单元格范围的表格。
无框表格,表示不存在任何线条的表格,无法利用线条定位表格。
例如,可以在终端上提供一个图形用户界面,响应于用户在该图形用户界面上触发的文档上传指令,获取待转换的PDF文档。然后对该PDF文档进行识别操作。
在一些实施例中,如图2所示,步骤10可通过步骤11和步骤12来实现,具体为:
步骤11,基于所述PDF文档中的线条对表格进行定位,以识别所述PDF文档中的第一表格,所述第一表格包括所述全框表格与所述半框表格中的至少一种。
例如,基于线条对表格进行定位,可以对全框表格和半框表格进行定位。
在一些实施例中,如图3所示,步骤11可通过步骤111至步骤116来实现,具体为:
步骤111,识别所述PDF文档中的文本、线条、每个所述线条的坐标、以及每两个所述线条之间的宽度和高度,其中,所述线条包括水平线条和垂直线条。
例如,可以基于光学字符识别OCR技术识别PDF文档中的文本、线条、每个线条的坐标、以及每两个线条之间的宽度和高度。
其中,光学字符识别(Optical Character Recognition,OCR)是指电子设备(例如扫描仪或数码相机)检查纸上打印的字符,通过检测暗、亮的模式确定其形状,然后用字符识别方法将形状翻译成计算机文字的过程;即,针对印刷体字符,采用光学的方式将纸质文档中的文字转换成为黑白点阵的图像文件,并通过识别软件将图像中的文字转换成文本格式,供文字处理软件进一步编辑加工的技术。
步骤112,根据所述线条中的所有水平线条的坐标,以及每两个所述水平线条之间的宽度,确定出所述水平线条中两两平行、且长度相近或相同的多组水平线条组。
其中,每组所述水平线条组包含两个相互平行、且长度相近或相同的两个所述水平线条。
具体的,根据所有水平线条对应的坐标和宽度,计算线条之间是否构成平行线、且长度相近,并以此进行分组,即分组后的每组水平线条组中,水平线条两两构成长度相近的平行线。
步骤113,初始化第一表格集合,对于所述多组水平线条组中的每组水平线条组,分别从上到下和从下到上遍历所述多组水平线条组中的每个水平线条进行表格识别处理,并将所述表格识别处理过程中识别到的所有第一表格加入所述第一表格集合。
在一些实施例中,所述对于所述多组水平线条组中的每组水平线条组,分别从上到下和从下到上遍历所述多组水平线条组中的每个水平线条进行表格识别处理,包括:对于所述多组水平线条组中的每组水平线条组,分别从上到下和从下到上遍历水平线条组中的的每个水平线条;判断当前线条是否是最后一个线条;若所述当前线条不是最后一个线条,则判断所述当前线条和所述当前线条之后的第一个线条之间是否满足第一条件,其中,所述第一条件为所述当前线条和所述当前线条之后的第一个线条之间存在文本、且文本之间有空白分隔、以及文本和线条间的距离小于第二阈值;若所述当前线条和所述当前线条之后的第一个线条之间满足第一条件,则将所述当前线条和所述当前线条之后的第一个线条构成一个新的第一表格;判断所述当前线条是否是倒数第二个线条;若所述当前线条是倒数第二个线条,则结束遍历流程。
在一些实施例中,在所述判断当前线条是否是最后一个线条之后,还包括:若所述当前线条是最后一个线条,则结束遍历流程。
在一些实施例中,在所述判断所述当前线条和所述当前线条之后的第一个线条之间是否满足第一条件之后,还包括:若所述当前线条和所述当前线条之后的第一个线条之间不满足第一条件,则将所述当前线条之后的第一个线条设置为新的当前线条,并返回执行所述判断当前线条是否是最后一个线条的步骤。
在一些实施例中,在所述判断所述当前线条是否是倒数第二个线条之后,还包括:若所述当前线条不是倒数第二个线条,将所述当前线条之后的第二个线条设置为新的当前线条,并返回执行所述判断当前线条是否是最后一个线条的步骤。
具体的,如图4所示,步骤113对应的表格识别流程,可通过步骤1131至步骤1138来实现,具体为:
步骤1131,对于所述多组水平线条组中的每组水平线条组,分别从上到下和从下到上遍历水平线条组中的的每个水平线条。
步骤1132,判断当前线条是否是最后一个线条;若否,则执行步骤1133;若是,则执行步骤1138。
步骤1133,若所述当前线条不是最后一个线条,则判断所述当前线条和所述当前线条之后的第一个线条之间是否满足第一条件;若是,则执行步骤1134;若否,则执行步骤1136。
其中,所述第一条件为所述当前线条和所述当前线条之后的第一个线条之间存在文本、且文本之间有空白分隔、以及文本和线条间的距离小于第二阈值。
步骤1134,若所述当前线条和所述当前线条之后的第一个线条之间满足第一条件,则将所述当前线条和所述当前线条之后的第一个线条构成一个新的第一表格。
步骤1135,判断所述当前线条是否是倒数第二个线条。若否,则执行步骤1137;若是,则执行步骤1138。
步骤1136,若所述当前线条和所述当前线条之后的第一个线条之间不满足第一条件,则将所述当前线条之后的第一个线条设置为新的当前线条,并返回执行步骤1132,即返回执行所述判断当前线条是否是最后一个线条的步骤。
步骤1137,若所述当前线条不是倒数第二个线条,将所述当前线条之后的第二个线条设置为新的当前线条,并返回执行步骤1132,即返回执行所述判断当前线条是否是最后一个线条的步骤。
步骤1138,结束遍历流程。
其中,若所述当前线条是最后一个线条,则结束遍历流程。
其中,若所述当前线条是倒数第二个线条,则结束遍历流程。
以下结合图5中的一示例流程示意图对步骤113做进一步说明:
开始遍历,以对于多组水平线条组中的每组水平线条组,分别从上到下和从下到上遍历水平线条组中的的每个水平线条。
步骤113.1,设置当前线条line=第一条线条;
步骤113.2,判断当前线条line是否是最后一个线条;若否,则执行步骤113.3;若是,则执行步骤113.8;
步骤113.3,若当前线条line不是最后一个线条,则判断当前线条line与其下一条线之间是否存在文本,且文本之间有空白分隔、以及文本和线条之间的距离小于第二阈值;若是,则执行步骤113.4;若否,则执行步骤113.6;
步骤113.4,若当前线条line与其下一条线之间存在文本,且文本之间有空白分隔、以及文本和线条间的距离小于第二阈值,则将当前线条line与其下一条线条构成一个新的第一表格。
步骤113.5,判断当前线条line是否是倒数第二个线条。若否,则执行步骤113.7;若是,则执行步骤113.8。
步骤113.6,设置当前线条line=line之后的第一条线条,即将当前线条line之后的第一个线条设置为新的当前线条line,并返回执行步骤113.2。
具体的,若当前线条line与其下一条线之间不存在文本,将当前线条line之后的第一个线条设置为新的当前线条;或者,若当前线条line与其下一条线之间存在文本,且文本之间没有空白分隔、以及文本和线条间的距离不小于第二阈值,则将当前线条line之后的第一个线条设置为新的当前线条line;或者,若当前线条line与其下一条线之间存在文本,且文本之间有空白分隔、以及文本和线条间的距离不小于第二阈值,则将当前线条line之后的第一个线条设置为新的当前线条line。
步骤113.7,若当前线条line不是倒数第二个线条,将当前线条line之后的第二个线条设置为新的当前线条,并返回执行步骤113.2。
步骤113.8,结束遍历流程。
其中,若当前线条line是最后一个线条,则结束遍历流程。
其中,若当前线条line是倒数第二个线条,则结束遍历流程。
例如,可以将第二阈值设置为0.6倍的文本高度,比如,0.6*文本高度。
其中,对于每一组水平线条组,在文档页面上存在上下的位置,图5描述的是一个遍历的过程,而遍历的顺序包括两类,"从上到下"和"从下到上"。比如,在极端情况下,某一组水平线条组A只有两条水平线条,一个水平线条在位于该水平线条组A的上端,标记记为a;一个水平线条在位于该水平线条组A的下端,标记记为b,则可以先以a到b的顺序遍历一轮,执行图5所示的流程,再以b到a的顺序遍历一轮,再执行一次图5所示的流程;在这两轮里,第一轮对应的第一条线条是a,第二轮对应的第一条线条是b;在明确了顺序的情况下,之后的第x个线条,以类似的遍历流程处理多组水平线条组中的每组水平线条组。
步骤114,对所述第一表格集合中的第一表格进行合并处理,以将所述所述第一表格集合中存在公共线条的每两个第一表格进行合并,直到所述第一表格集合中不存在可以合并的第一表格为止,以得到更新后的第一表格集合。
例如,设置第一表格集合为S,对第一表格集合S中的所有第一表格两两进行合并,合并的判断依据是两个第一表格存在公共线条,直到第一表格集合S中不存在可以合并的第一表格为止。
步骤115,根据所述更新后的第一表格集合中每个第一表格所包含的线条的坐标,确定所述更新后的第一表格集合中每个第一表格的边界坐标。
例如,基于线条得到了一系列第一表格,并且根据每个第一表格所包含的线条的坐标,可以确定每个第一表格的边界坐标。
步骤116,根据所述更新后的第一表格集合的每个第一表格中,水平线条的数量、垂直线条的数量以及第一阈值,识别所述PDF文档中的所述全框表格与所述半框表格。
具体的,可以将所述更新后的第一表格集合中,水平线条的数量与垂直线条的数量之和大于第一阈值的表格识别为所述全框表格;以及将所述更新后的第一表格集合中,水平线条的数量与垂直线条的数量之和不大于第一阈值的表格识别为所述半框表格。
例如,判断更新后的第一表格集合中的每个第一表格是否是全框表格,断依据是水平线条的数量与垂直线条的数量之和大于第一阈值。若判断为全框表格,则直接按照线条的坐标划定每个单元格的边界。
例如,该第一阈值可以为大于或等于3的数值。
步骤12,基于所述PDF文档中的图像对表格进行定位,以识别所述PDF文档中的第二表格,所述第二表格包括所述无框表格。
其中,步骤11中可以基于PDF文档中的线条对全框表格和半框表格进行定位,但基于线条的方式不能准确定位无框表格,因此可以基于图像的方式进行补足,以定位出无框表格。
在一些实施例中,如图6所示,步骤12可通过步骤121至步骤123来实现,具体为:
步骤121,将所述PDF文档转换为RGB格式的图像。
步骤122,通过训练好的目标检测模型对所述PDF文档对应的RGB格式的图像进行识别,得到所述PDF文档中的第二表格与所述第二表格的坐标位置,且将所述目标检测模型识别到的所有第二表格加入第二表格集合。
在一些实施例中,所述方法还包括:获取训练数据集,其中,所述训练数据集中的每个训练数据包括训练图像和所述训练图像对应的标注信息,所述训练图像为通过将PDF文档样本转换为RGB格式的图像得到的,所述标注信息包括所述训练图像对应的标注分类对象和每个所述标注分类对象的坐标位置,所述标注分类对象至少包括图表和表格;利用所述训练数据集训练目标检测模型,以在所述目标检测模型输出的所述训练图像对应的预测分类对象与所述训练图像对应的标注分类对象一致、且所述目标检测模型输出的所述预测分类对象的坐标位置与所述标注分类对象的坐标位置一致时,得到所述训练好的目标检测模型。
步骤123,根据所述第二表格的坐标位置对所述第二表格集合进行表格边界确定处理,以识别所述PDF文档中的所有表格,所述所有表格包括所述第一表格和所述第二表格。
例如,在进行识别之前,可以将PDF文档样本中的页面转换为RGB格式的图像,然后抽样一部分PDF页面图像,标注页面图像中的图表和表格的坐标位置,作为训练数据集中的训练图像,以这些训练数据集训练目标检测模型,模型的输入即RGB格式的训练图像,模型的输出为不同分类(比如图表、表格)的坐标位置。例如,该目标检测模型可以为CascadeRCNN模型。
然后,使用训练好的Cascade RCNN模型对PDF文档对应的RGB格式的图像进行识别,得到PDF文档中的一系列图表、表格,以及图表与表格的坐标位置,且将模型识别到的所有表格加入第二表格集合M。其中,对于图表,可以根据图表的坐标位置,确定图表中仅包含坐标区域的图表区域图。
然后,对第二表格集合M执行表格边界确定流程,得到该PDF文档中最终的所有表格。所有表格包括全框表格、半框表格和无框表格。
在一些实施例中,如图7所示,步骤123对应的执行表格边界确定流程,可通过步骤1231至步骤1333来实现,具体为:
步骤1231,遍历所述第二表格集合中的每一个第二表格:
步骤1232,若根据所述第二表格的坐标位置确定当前第二表格和所述更新后的第一表格集合中的某个第一表格存在边界的交集,则将当前第二表格的边界修改为所述更新后的第一表格集合中和当前第二表格边界交集最大的第一表格的边界;
步骤1233,将所述当前第二表格加入第三表格集合,其中,所述第三表格集合用于表征识别出的所述PDF文档中的所有表格,所述第三表格集合包含所述更新后的第一表格集合中的所有第一表格,以及所述第二表格集合中表格边界调整后的所有第二表格。
具体的,遍历第二表格集合M中的每一个第二表格:a.若当前第二表格T和第一表格集合S中的某个第一表格存在边界的交集,则将当前第二表格T的边界修改为第一表格集合S中和当前第二表格T边界交集最大的那个第一表格的边界;b.将当前第二表格T加入最终的第三表格集合K,其中,该最终的第三表格集合K包含第一表格集合S中的所有第一表格,以及第二表格集合M中表格边界调整后的所有第二表格。
以下结合图8中的一示例流程示意图对步骤123做进一步说明:
步骤123.1,设置当前遍历处理的当前第二表格为表格T,设置表格T=第二表格集合M中的第一个第二表格;
步骤123.2,第一表格集合S中,是否有第一表格和表格T的边界有交集;若是,则执行步骤123.3;若否,则执行步骤123.4;
步骤123.3,若第一表格集合S中有某个第一表格和表格T的边界有交集,将表格T的边界修改为更新后的第一表格集合S中和表格T边界交集最大的那个第一表格的边界;
步骤123.4,若第一表格集合S中没有某个第一表格和表格T的边界有交集,则将表格T加入最终的第三表格集合K;
步骤123.5,判断表格T是否是第二表格集合M中的最后一个表格;若否,则执行步骤123.6;若是,则执行步骤123.7;
步骤123.6,设置表格T=第二表格集合M中的下一个第二表格;并返回执行步骤123.2;
步骤123.7,结束遍历流程。
步骤20,识别所述PDF文档中的图表,所述图表至少包括以图形方式显示的内容信息。
图表,表示文字和线条、图形混杂的区域,适合作为图片处理。
在一些实施例中,所述识别所述PDF文档中的图表,包括:
通过所述训练好的目标检测模型对所述PDF文档对应的RGB格式的图像进行识别,得到所述PDF文档中的图表与所述图表的坐标位置;
根据所述图表的坐标位置,确定所述图表中仅包含坐标区域的图表区域图,所述图表区域图用于以图片形式嵌入所述HTML文档中。
例如,可以使用训练好的Cascade RCNN模型对PDF文档对应的RGB格式的图像进行识别,得到PDF文档中的一系列图表、表格,以及图表与表格的坐标位置,且将模型识别到的所有表格加入第二表格集合M。其中,对于图表,可以根据图表的坐标位置,确定图表中仅包含坐标区域的图表区域图。
步骤40,根据所述表格与所述图表,将所述PDF文档转换为HTML文档,其中,所述HTML文档中转换出的所述表格为HTML形式,以及所述HTML文档中转换出的所述图表为图片形式。
具体的,可以识别PDF文档中存在的表格和图表,其中表格包括全框表格、半框表格、无框表格中的至少一种,其中,在将PDF文档转换为HTML文档时,将表格转为HTML格式,将图表转换为图片形式。
在一些实施例中,如图9所示,该方法还包括步骤30:
步骤30,识别所述PDF文档的文本以及排版布局,所述排版布局包括单栏布局、双栏布局、多栏布局中的至少一种。
单栏布局,表示不同段落的阅读顺序为从上到下,文档整体只有一栏。
双栏/多栏布局,表示文档整体有两栏或多栏(部分表格会跨越栏),不同段落的阅读顺序为栏内从上到下,栏间从左到右。
具体的,还可以识别PDF文档中的排版布局,排版布局包括单栏布局、双栏布局、多栏布局中的至少一种,并根据排版布局确定阅读顺序,并按正确的阅读顺序将PDF文档整体转换为HTML形式的HTML文档,提升PDF文档解析格式转换的准确率。
在一些实施例中,步骤40可以通过步骤401来实现,具体为:
步骤401,根据所述表格、所述图表、所述文本以及所述排版布局,将所述PDF文档转换为HTML文档。
具体的,可以识别PDF文档中存在的表格和图表,其中表格包括全框表格、半框表格、无框表格中的至少一种;进一步的,还可以识别PDF文档中的排版布局,排版布局包括单栏布局、双栏布局、多栏布局中的至少一种,在将PDF文档转换为HTML文档时,将表格转为HTML格式,将图表转换为图片形式,并根据排版布局确定阅读顺序,并按正确的阅读顺序将PDF文档整体转换为HTML形式的HTML文档,提升PDF文档解析格式转换的准确率。
在一些实施例中,如图10所示,步骤401可通过步骤41至步骤45来实现,具体为:
步骤41,获取所述表格内每个单元格的行列位置,以及获取每个单元格内的文本,并根据所述每个单元格的行列位置与每个单元格内的文本将所述表格转换为HTML形式。
其中,表格由单元格组成,因此将表格转为HTML形式时,首先需要判断表格内每个单元格的行列位置及每个单元格内的文本,再将表格转为HTML形式。
在一些实施例中,如图11所示,步骤41可通过步骤411至步骤413来实现,具体为:
步骤411,对所述表格进行表格列生成处理以得到所述表格的列集合,并根据每个列所属的文本,确定每个列的横坐标边界。
在一些实施例中,所述对所述表格进行表格列生成处理以得到所述表格的列集合,包括:获取包含有所述表格的表格区域内的所有文本的文本集合,并初始化所述表格的列集合,以及将所述列集合的事件标识初始化为否;判断所述文本集合中是否存在不属于任何列的第一文本;若所述文本集合中存在不属于任何列的第一文本,从所述文本集合中查找出被所述第一文本在垂直方向上覆盖的所有第二文本,得到第二文本集合,其中,所述第二文本集合中的第二文本的横坐标均被所述第一文本的横坐标覆盖;将所述第二文本集合中的第二文本划分为文本行,其中,所述文本行之间不存在纵坐标的交集;若所述文本行的个数大于或等于所述第二文本集合中的文本个数,则将所述第二文本集合中的第二文本构成一个新的列,加入所述列集合,并将所述所述列集合的事件标识设置为是;遍历所述文本集合中的所有文本,直到所述文本集合中不存在属于任何列的第一文本;若所述列集合的事件标识为是,则根据第二合并条件对所述列集合中的列进行合并,其中,所述第二合并条件为一个列的横坐标被另一个列的横坐标完全覆盖。
以下结合图12中的一示例流程示意图对步骤411做进一步说明:
步骤411.1,初始化设置:columns=空的列集合,texts=表格边界区域内的所有文本,changed=否;
其中,texts可以定义为含有表格的表格区域内的所有文本的文本集合;
步骤411.2,判断texts中是否存在不属于任何列的第一文本;若是,则执行步骤411.3;若否,则执行步骤411.8;
步骤411.3,使t=texts中下一个不属于任何列的第一文本;
步骤411.4,使covered=texts中所有被t在横坐标上包含的第二文本;
其中,使covered为t在垂直方向上覆盖的所有第二文本,covered可以定义为包含所有第二文本的第二文本集合,即covered中的所有第二文本的横坐标均被t的横坐标覆盖;
步骤411.5,将covered中的第二文本划分为文本行,文本行之间不存在纵坐标的交集,使row_count为文本行的个数;
步骤411.6,判断row_count是否大于或等于covered中的文本个数;若是,则执行步骤411.7;若否,则返回执行步骤411.2;
步骤411.7,以covered中的第二文本生成一个新的列,加入columns;设置changes=是;然后返回执行步骤411.2;
其中,若row_count的值大于或等于covered中的文本个数,说明这些文本基本没有横坐标的交集,可以构成一个单独的列,则以covered中的第二文本构成一个新的列,加入columns,同时置changed变量为"是";直到texts中不存在属于任何列的文本时,转而执行步骤411.8;
步骤411.8,直到texts中不存在属于任何列的第一文本时,判断changes是否为是;若是,则执行步骤411.9;若否,则执行步骤411.10;
步骤411.9,对columns中的列进行合并,合并条件是一个列的横坐标被另一个列的横坐标完全覆盖;
步骤411.10,将texts中所有文本构成一个列,加入columns。
在图12中,texts表示给定表格边界后,表格区域内所有的文本;changed表示为了标识在循环过程中是否有发现新的列的视觉标识;covered表示t在垂直方向上覆盖的所有第二文本,比如文本是t,横坐标是x0和x1,那么对于任意e∈texts,如果e.x0≥t.x0并且e.x1≤t.x1,则e是covered中的一个文本,e相当于t在横坐标上覆盖的不包含t的其他文本;row_count表示covered里的文本行的个数,行与行之间不能有纵坐标交集。columns表示发现到的所有列。
具体的,对于每个半框表格或者无框表格,通过执行如图12所示的表格列生成流程,可以得到表格的列集合columns,并且每个列有其所属的文本,因此可以根据每个列所属的文本,确定每个列的横坐标边界。
步骤412,对所述表格进行表格行生成处理以得到所述表格的行集合,并根据每个行所属的文本,确定每个行的纵坐标边界。
在一些实施例中,所述对所述表格进行表格行生成处理以得到所述表格的行集合,包括:获取包含有所述表格的表格区域内的所有文本的文本集合,并初始化所述表格的行集合,以及将所述行集合的事件标识初始化为否;判断所述文本集合中是否存在不属于任何行的第三文本;若所述文本集合中存在不属于任何行的第三文本,从所述文本集合中查找出被所述第三文本在水平方向上覆盖的所有第四文本,得到第四文本集合,其中,所述第四文本集合中的第四文本的纵坐标均被所述第三文本的纵坐标覆盖;将所述第四文本集合中的第四文本划分为文本列,其中,所述文本列之间不存在横坐标的交集;若所述文本列的个数大于或等于所述第四文本集合中的文本个数,则将所述第四文本集合中的第四文本构成一个新的行,加入所述行集合,并将所述行集合的事件标识设置为是;遍历所述文本集合中的所有文本,直到所述文本集合中不存在属于任何行的第三文本;若所述行集合的事件标识为是,则根据第三合并条件对所述列集合中的列进行合并,其中,所述第三合并条件为一个行的纵坐标被另一个行的纵坐标完全覆盖。
以下结合图13中的一示例流程示意图对步骤412做进一步说明:
步骤412.1,初始化设置:rows=空的行集合,texts=表格边界区域内的所有文本,changed=否;
步骤412.2,判断texts中是否存在不属于任何行的第三文本;若是,则执行步骤412.3;若否,则执行步骤412.8;
步骤412.3,使t=texts中下一个不属于任何行的第三文本;
步骤412.4,使covered=texts中所有被t在纵坐标上包含的第四文本;
其中,使covered为t在水平方向上覆盖的所有第四文本,covered可以定义为包含所有第四文本的第四文本集合,即covered中的所有第四文本的纵坐标均被t的纵坐标覆盖;
步骤412.5,将covered中的文本划分为文本列,文本列之间不存在横坐标的交集,使col_count为文本列的个数;
步骤412.6,判断col_count是否大于或等于covered中的文本个数;若是,则执行步骤412.7;若否,则返回执行步骤412.2;
步骤412.7,以covered中的第四文本生成一个新的行,加入rows;设置changes=是;然后返回执行步骤412.2;
其中,若col_count的值大于或等于covered中的文本个数,说明这些文本基本没有纵坐标的交集,可以构成一个单独的行,则以covered中的第四文本构成一个新的列,加入rows,同时置changed变量为"是";直到texts中不存在属于任何行的第三文本时,转而执行步骤412.8;
步骤412.8,直到texts中不存在属于任何行的第三文本时,判断changes是否为是;若是,则执行步骤412.9;若否,则执行步骤412.10;
步骤412.9,对rows中的行进行合并,合并条件是一个行的纵坐标被另一个行的纵坐标完全覆盖;
步骤412.10,将texts中所有文本构成一个行,加入rows。
在图13中,texts表示给定表格边界后,表格区域内所有的文本;changed表示为了标识在循环过程中是否有发现新的行的视觉标识;covered表示t在水平方向上覆盖的所有第四文本,比如文本是t,纵坐标是y0和y1,那么对于任意e∈texts,如果e.y0≥t.y0并且e.y1≤t.y1,则e是covered中的一个文本,e相当于t在纵坐标上覆盖的不包含t的其他文本;col_count表示covered里的文本列的个数,列与列之间不能有横坐标交集。rows表示发现到的所有行。
具体的,对于每个半框表格或者无框表格,通过执行如图13所示的表格行生成流程,可以得到表格的行集合rows,并且每个行有其所属的文本,因此可以根据每个行所属的文本,确定每个行的纵坐标边界。
步骤413,根据所述列集合与所述行集合生成多个单元格,并根据所述每个列所属的文本、所述每个行所属的文本、所述每个列的横坐标边界与所述每个行的纵坐标边界,确定每个单元格内的文本及坐标,且将所述多个单元格中具有坐标交集的单元格进行合并处理,以获取所述表格内每个单元格的行列位置。
例如,根据列集合columns的大小(记为C)和行集合rows的大小(记为R),生成C*R个单元格,并且并根据每个列所属的文本、每个行所属的文本、每个列的横坐标边界与每个行的纵坐标边界,确定每个单元格内的文本及坐标,并合并有坐标交集的单元格。
对于每个表格,在得到每个单元格的边界和文本后,可以直接将表格转换为HTML形式。
步骤42,根据第一合并条件对所述表格、所述图表以外的文本进行合并,以得到多个不同的段落,其中,所述第一合并条件为所述文本间的距离小于第三阈值。
其中,可以根据合并条件对所述表格、所述图表的图表区域图以外的文本进行合并。
其中,第三阈值可以分成横坐标阈值和纵坐标阈值,记L=两对文本的高度的最小值,那么,横坐标阈值为0.75*L,纵坐标阈值为1.5*L。
步骤43,识别所述排版布局中每一栏的横坐标位置。
在一些实施例中,如图14所示,步骤43可通过步骤431至步骤436来实现,具体为:
步骤431,初始化一个数组以及设置第四阈值M,其中,所述数组的长度等于所述PDF文档的页面的宽度,所述数组的初始变量值为0,所述M为大于0的正整数;
步骤432,将所述数组上每个位置的变量值设置为所述PDF文档的页面中每个横坐标上的文本数量;
步骤433,将每连续的M个横坐标对应的变量值设置为一组子数组;
步骤434,若所述数组中存在所述M个横坐标对应的变量值均为0的第一子数组,且所述第一子数组左右两边的第二子数组中M个横坐标对应的变量值均大于第五阈值,则将所述第一子数组确定为分界;
步骤435,根据所述分界的个数确定所述排版布局中的栏数,其中,栏数为所述分界的个数与1之和;
步骤436,根据所述分界在所述PDF文档的页面中对应的横坐标位置,识别所述排版布局中每一栏的横坐标位置。
例如,第四阈值M为PDF文档的页面的宽度除以20;第五阈值为1.05乘以文档中的最小的文本高度。
例如,初始化一个空数组v,长度为PDF页面的宽度,初始值均为0,并定义一个第四阈值M;使数组v上每个位置的值为该横坐标上的文本数量,即相当于将页面上的文本垂直投影到横坐标上,文本越多,数组的值也就越高;每连续M个横坐标为一组,若数组v中该M个横坐标的值均为0,且左右两边横坐标上的值均大于第五阈值,则视为一个分界,分界意味着页面这一区域是空白的,但左右是有文字的,通常是栏之间的分界;寻找到所有的分界之后,即可得到所有的栏,栏数=分界个数+1;根据分界在PDF文档的页面中对应的横坐标位置,识排版布局中每一栏的横坐标位置。
步骤44,根据所述排版布局中每一栏的横坐标位置以及所述排版布局对应的阅读顺序,对所述表格、所述图表与所述段落进行排序。
例如,对所有的表格、图表、段落进行排序,排序原则为栏内的元素从上到下,栏与栏之间从左到右。
步骤45,根据排序结果将所述表格、所述图表与所述段落以HTML形式输出,将所述PDF文档转换为HTML文档,其中,所述表格以HTML形式输出,所述图表以图片形式嵌入所述HTML文档中的形式输出,所述段落以段落文本的HTML形式输出。
其中,所述图表的图表区域图以图片形式嵌入所述HTML文档中的形式输出。例如,按顺序将PDF文档中所有的元素以HTML的形式输出,段落以普通段落文字的HTML形式输出,图表以图表区域图以图片形式嵌入所述HTML文档中输出HTML形式,表格以HTML形式输出,从而得到整个PDF文档对应HTML文档。
请参阅图15与图16,图15示出了具有图表、多表格和双栏布局的PDF文档,在进行文档格式转换后,得到如图16所示的HTML文档,基于双栏或多栏的布局,能够按照正确的阅读顺序(栏内的元素从上到下,栏与栏之间从左到右)将PDF文档转换为HTML文档,并能够识别PDF文档中存在的多个表格,并按照正确的阅读顺序,对HTML文档中的各个元素进行排序。例如,按照正确的阅读顺序,如图15中的左栏示出了文本1、图表1、文本2和表格1,右栏示出了文本3、表格2、文本4和表格3,其中,表格1为半框表格,表格2为无框表格,表格3为全框表格;在经过文档格式转换后,在图16中将图表1以图片形式插入HTML文档中进行输出,在图16中将表格1、表格2和表格3转为HTML形式进行输出,按照正确的阅读顺序,在图16所示的HTML文档中各个元素从前往后的排版顺序为:文本1、图表1、文本2、表格1、文本3、表格2、文本4和表格3。
本申请实施例可以基于线条对表格进行定位,主要为对水平平行线进行分组,其对每组线条进行从上到下和从下到上的遍历,通过相反的顺序遍历可以避免遗漏,然后将表格进行合并,有效基于线条得到表格的位置。
本申请实施例还可以基于图像对表格进行定位和修正,主要利用Cascade RCNN模型,识别出PDF中图表与表格的位置,并且与基于线条对表格进行定位得到的表格共同判断表格位置,使整套方法兼顾全框表格和半框/无框表格的准确率。
本申请实施例可以将表格转为HTML形式,主要基于表格列生成和表格行生成流程,利用坐标覆盖的形式对文本进行自发的聚合,利用坐标交叠的方式判断行/列的存在,从而生成最终的单元格。
本申请实施例可以进行布局识别以及最终HTML转换,主要可以利用垂直投影的方式,考虑文本的一维空间特征,用类图像的方式判断出布局的单/双/多栏,而不再依赖文本的内容。
上述所有的技术方案,可以采用任意结合形成本申请的可选实施例,在此不再一一赘述。
本申请实施例通过识别PDF文档中的表格,表格包括全框表格、半框表格、无框表格中的至少一种;识别PDF文档中的图表,图表至少包括以图形方式显示的内容信息;根据表格与图表,将PDF文档转换为HTML文档,其中,HTML文档中转换出的表格为HTML形式,以及HTML文档中转换出的图表为图片形式。本申请实施例可以有效识别PDF文档中的如全框表格、半框表格、无框表格、图表、段落以及排版布局等各个元素,并转换为HTML文档,提升了PDF文档解析格式转换的准确率。
为便于更好的实施本申请实施例的文档格式转换方法,本申请实施例还提供一种文档格式转换装置。请参阅图17,图17为本申请实施例提供的文档格式转换装置的结构示意图。其中,该文档格式转换装置200可以包括:
第一识别单元201,用于识别PDF文档中的表格,所述表格包括全框表格、半框表格、无框表格中的至少一种;
第二识别单元202,用于识别所述PDF文档中的图表,所述图表至少包括以图形方式显示的内容信息;
转换单元204,用于根据所述表格与所述图表,将所述PDF文档转换为HTML文档,其中,所述HTML文档中转换出的所述表格为HTML形式,以及所述HTML文档中转换出的所述图表为图片形式。
在一些实施例中,所述第一识别单元201,用于:基于所述PDF文档中的线条对表格进行定位,以识别所述PDF文档中的第一表格,所述第一表格包括所述全框表格与所述半框表格中的至少一种。
在一些实施例中,所述第一识别单元201在基于所述PDF文档中的线条对表格进行定位,以识别所述PDF文档中的第一表格时,具体用于:识别所述PDF文档中的文本、线条、每个所述线条的坐标、以及每两个所述线条之间的宽度和高度,其中,所述线条包括水平线条和垂直线条;根据所述线条中的所有水平线条的坐标,以及每两个所述水平线条之间的宽度,确定出所述水平线条中两两平行、且长度相近或相同的多组水平线条组,其中,每组所述水平线条组包含两个相互平行、且长度相近或相同的两个所述水平线条;初始化第一表格集合,对于所述多组水平线条组中的每组水平线条组,分别从上到下和从下到上遍历所述多组水平线条组中的每个水平线条进行表格识别处理,并将所述表格识别处理过程中识别到的所有第一表格加入所述第一表格集合;对所述第一表格集合中的第一表格进行合并处理,以将所述所述第一表格集合中存在公共线条的每两个第一表格进行合并,直到所述第一表格集合中不存在可以合并的第一表格为止,以得到更新后的第一表格集合;根据所述更新后的第一表格集合中每个第一表格所包含的线条的坐标,确定所述更新后的第一表格集合中每个第一表格的边界坐标;根据所述更新后的第一表格集合的每个第一表格中,水平线条的数量、垂直线条的数量以及第一阈值,识别所述PDF文档中的所述全框表格与所述半框表格。
在一些实施例中,所述第一识别单元201在根据所述更新后的第一表格集合的每个第一表格中,水平线条的数量、垂直线条的数量以及第一阈值,识别所述PDF文档中的所述全框表格与所述半框表格时,具体用于:将所述更新后的第一表格集合中,水平线条的数量与垂直线条的数量之和大于第一阈值的表格识别为所述全框表格;以及将所述更新后的第一表格集合中,水平线条的数量与垂直线条的数量之和不大于第一阈值的表格识别为所述半框表格。
在一些实施例中,所述第一识别单元201在对于所述多组水平线条组中的每组水平线条组,分别从上到下和从下到上遍历所述多组水平线条组中的每个水平线条进行表格识别处理时,具体用于:对于所述多组水平线条组中的每组水平线条组,分别从上到下和从下到上遍历水平线条组中的的每个水平线条;判断当前线条是否是最后一个线条;若所述当前线条不是最后一个线条,则判断所述当前线条和所述当前线条之后的第一个线条之间是否满足第一条件,其中,所述第一条件为所述当前线条和所述当前线条之后的第一个线条之间存在文本、且文本之间有空白分隔、以及文本和线条间的距离小于第二阈值;若所述当前线条和所述当前线条之后的第一个线条之间满足第一条件,则将所述当前线条和所述当前线条之后的第一个线条构成一个新的第一表格;判断所述当前线条是否是倒数第二个线条;若所述当前线条是倒数第二个线条,则结束遍历流程。
在一些实施例中,所述第一识别单元201在判断当前线条是否是最后一个线条之后,还可以用于:若所述当前线条是最后一个线条,则结束遍历流程。
在一些实施例中,所述第一识别单元201在判断所述当前线条和所述当前线条之后的第一个线条之间是否满足第一条件之后,还可以用于:若所述当前线条和所述当前线条之后的第一个线条之间不满足第一条件,则将所述当前线条之后的第一个线条设置为新的当前线条,并返回执行所述判断当前线条是否是最后一个线条的步骤。
在一些实施例中,所述第一识别单元201在判断所述当前线条是否是倒数第二个线条之后,还可以用于:若所述当前线条不是倒数第二个线条,将所述当前线条之后的第二个线条设置为新的当前线条,并返回执行所述判断当前线条是否是最后一个线条的步骤。
在一些实施例中,所述第一识别单元201,还用于:基于所述PDF文档中的图像对表格进行定位,以识别所述PDF文档中的第二表格,所述第二表格包括所述无框表格。
在一些实施例中,所述第一识别单元201在基于所述PDF文档中的图像对表格进行定位,以识别所述PDF文档中的第二表格时,具体用于:将所述PDF文档转换为RGB格式的图像;通过训练好的目标检测模型对所述PDF文档对应的RGB格式的图像进行识别,得到所述PDF文档中的第二表格与所述第二表格的坐标位置,且将所述目标检测模型识别到的所有第二表格加入第二表格集合;根据所述第二表格的坐标位置对所述第二表格集合进行表格边界确定处理,以识别所述PDF文档中的所有表格,所述所有表格包括所述第一表格和所述第二表格。
在一些实施例中,所述第一识别单元201在根据所述第二表格的坐标位置对所述第二表格集合进行表格边界确定处理,以识别所述PDF文档中的所有表格时,具体用于:遍历所述第二表格集合中的每一个第二表格:若根据所述第二表格的坐标位置确定当前第二表格和所述更新后的第一表格集合中的某个第一表格存在边界的交集,则将当前第二表格的边界修改为所述更新后的第一表格集合中和当前第二表格边界交集最大的第一表格的边界;将所述当前第二表格加入第三表格集合,其中,所述第三表格集合用于表征识别出的所述PDF文档中的所有表格,所述第三表格集合包含所述更新后的第一表格集合中的所有第一表格,以及所述第二表格集合中表格边界调整后的所有第二表格。
在一些实施例中,如图18所示,所述文档格式转换装置200还包括训练单元205。
其中,所述训练单元205,可以用于:获取训练数据集,其中,所述训练数据集中的每个训练数据包括训练图像和所述训练图像对应的标注信息,所述训练图像为通过将PDF文档样本转换为RGB格式的图像得到的,所述标注信息包括所述训练图像对应的标注分类对象和每个所述标注分类对象的坐标位置,所述标注分类对象至少包括图表和表格;利用所述训练数据集训练目标检测模型,以在所述目标检测模型输出的所述训练图像对应的预测分类对象与所述训练图像对应的标注分类对象一致、且所述目标检测模型输出的所述预测分类对象的坐标位置与所述标注分类对象的坐标位置一致时,得到所述训练好的目标检测模型。
在一些实施例中,所述第二识别单元202,具体用于:通过所述训练好的目标检测模型对所述PDF文档对应的RGB格式的图像进行识别,得到所述PDF文档中的图表与所述图表的坐标位置;根据所述图表的坐标位置,确定所述图表中仅包含坐标区域的图表区域图,所述图表区域图用于以图片形式嵌入所述HTML文档中。
在一些实施例中,所述文档格式转换装置200还包括第三识别单元203。
其中,所述第三识别单元203,用于识别所述PDF文档的文本以及排版布局,所述排版布局包括单栏布局、双栏布局、多栏布局中的至少一种。
所述转换单元204,还用于根据所述表格、所述图表、所述文本以及所述排版布局,将所述PDF文档转换为HTML文档。
在一些实施例中,所述转换单元204在根据所述表格、所述图表、所述文本段落以及所述排版布局,将所述PDF文档转换为HTML文档时,具体用于:获取所述表格内每个单元格的行列位置,以及获取每个单元格内的文本,并根据所述每个单元格的行列位置与每个单元格内的文本将所述表格转换为HTML形式;根据第一合并条件对所述表格、所述图表以外的文本进行合并,以得到多个不同的段落,其中,所述第一合并条件为所述文本间的距离小于第三阈值;识别所述排版布局中每一栏的横坐标位置;根据所述排版布局中每一栏的横坐标位置以及所述排版布局对应的阅读顺序,对所述表格、所述图表与所述段落进行排序;根据排序结果将所述表格、所述图表与所述段落以HTML形式输出,将所述PDF文档转换为HTML文档,其中,所述表格以HTML形式输出,所述图表以图片形式嵌入所述HTML文档中的形式输出,所述段落以段落文本的HTML形式输出。
在一些实施例中,所述转换单元204在根据第一合并条件对所述表格、所述图表以外的文本进行合并时,可以用于:根据合并条件对所述表格、所述图表的图表区域图以外的文本进行合并。
在一些实施例中,所述图表的图表区域图以图片形式嵌入所述HTML文档中的形式输出。
在一些实施例中,所述转换单元204在获取所述表格内每个单元格的行列位置时,具体用于:对所述表格进行表格列生成处理以得到所述表格的列集合,并根据每个列所属的文本,确定每个列的横坐标边界;对所述表格进行表格行生成处理以得到所述表格的行集合,并根据每个行所属的文本,确定每个行的纵坐标边界;根据所述列集合与所述行集合生成多个单元格,并根据所述每个列所属的文本、所述每个行所属的文本、所述每个列的横坐标边界与所述每个行的纵坐标边界,确定每个单元格内的文本及坐标,且将所述多个单元格中具有坐标交集的单元格进行合并处理,以获取所述表格内每个单元格的行列位置。
在一些实施例中,所述转换单元204在对所述表格进行表格列生成处理以得到所述表格的列集合时,具体用于:获取包含有所述表格的表格区域内的所有文本的文本集合,并初始化所述表格的列集合,以及将所述列集合的事件标识初始化为否;判断所述文本集合中是否存在不属于任何列的第一文本;若所述文本集合中存在不属于任何列的第一文本,从所述文本集合中查找出被所述第一文本在垂直方向上覆盖的所有第二文本,得到第二文本集合,其中,所述第二文本集合中的第二文本的横坐标均被所述第一文本的横坐标覆盖;将所述第二文本集合中的第二文本划分为文本行,其中,所述文本行之间不存在纵坐标的交集;若所述文本行的个数大于或等于所述第二文本集合中的文本个数,则将所述第二文本集合中的第二文本构成一个新的列,加入所述列集合,并将所述所述列集合的事件标识设置为是;遍历所述文本集合中的所有文本,直到所述文本集合中不存在属于任何列的第一文本;若所述列集合的事件标识为是,则根据第二合并条件对所述列集合中的列进行合并,其中,所述第二合并条件为一个列的横坐标被另一个列的横坐标完全覆盖。
在一些实施例中,所述转换单元204在对所述表格进行表格行生成处理以得到所述表格的行集合时,具体用于:获取包含有所述表格的表格区域内的所有文本的文本集合,并初始化所述表格的行集合,以及将所述行集合的事件标识初始化为否;判断所述文本集合中是否存在不属于任何行的第三文本;若所述文本集合中存在不属于任何行的第三文本,从所述文本集合中查找出被所述第三文本在水平方向上覆盖的所有第四文本,得到第四文本集合,其中,所述第四文本集合中的第四文本的纵坐标均被所述第三文本的纵坐标覆盖;将所述第四文本集合中的第四文本划分为文本列,其中,所述文本列之间不存在横坐标的交集;若所述文本列的个数大于或等于所述第四文本集合中的文本个数,则将所述第四文本集合中的第四文本构成一个新的行,加入所述行集合,并将所述行集合的事件标识设置为是;遍历所述文本集合中的所有文本,直到所述文本集合中不存在属于任何行的第三文本;若所述行集合的事件标识为是,则根据第三合并条件对所述列集合中的列进行合并,其中,所述第三合并条件为一个行的纵坐标被另一个行的纵坐标完全覆盖。
在一些实施例中,所述转换单元204在识别所述排版布局中每一栏的横坐标位置时,具体用于:初始化一个数组以及设置第四阈值M,其中,所述数组的长度等于所述PDF文档的页面的宽度,所述数组的初始变量值为0,所述M为大于0的正整数;将所述数组上每个位置的变量值设置为所述PDF文档的页面中每个横坐标上的文本数量;将每连续的M个横坐标对应的变量值设置为一组子数组;若所述数组中存在所述M个横坐标对应的变量值均为0的第一子数组,且所述第一子数组左右两边的第二子数组中M个横坐标对应的变量值均大于第五阈值,则将所述第一子数组确定为分界;根据所述分界的个数确定所述排版布局中的栏数,其中,栏数为所述分界的个数与1之和;以及根据所述分界在所述PDF文档的页面中对应的横坐标位置,识别所述排版布局中每一栏的横坐标位置。
上述文档格式转换装置200中的各个单元可全部或部分通过软件、硬件及其组合来实现。上述各个单元可以以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行上述各个单元对应的操作。
文档格式转换装置200,可以集成在具备储存器并安装有处理器而具有运算能力的终端或服务器中,或者该文档格式转换装置200为该终端或服务器。
在一些实施例中,本申请还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
如图19所示,图19为本申请实施例提供的计算机设备的结构示意图,该计算机设备可以是终端。该计算机设备300包括有一个或者一个以上处理核心的处理器301、有一个或一个以上计算机可读存储介质的存储器302及存储在存储器302上并可在处理器上运行的计算机程序。其中,处理器301与存储器302电性连接。本领域技术人员可以理解,图中示出的计算机设备结构并不构成对计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
处理器301是计算机设备300的控制中心,利用各种接口和线路连接整个计算机设备300的各个部分,通过运行或加载存储在存储器302内的软件程序和/或模块,以及调用存储在存储器302内的数据,执行计算机设备300的各种功能和处理数据,从而对计算机设备300进行整体处理。
在本申请实施例中,计算机设备300中的处理器301会按照如下的步骤,将一个或一个以上的应用程序的进程对应的指令加载到存储器302中,并由处理器301来运行存储在存储器302中的应用程序,从而实现各种功能:
识别PDF文档中的表格,所述表格包括全框表格、半框表格、无框表格中的至少一种;识别所述PDF文档中的图表,所述图表至少包括以图形方式显示的内容信息;根据所述表格与所述图表,将所述PDF文档转换为HTML文档,其中,所述HTML文档中转换出的所述表格为HTML形式,以及所述HTML文档中转换出的所述图表为图片形式。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
在一些实施例中,如图19所示,计算机设备300还包括:触控显示屏303、射频电路304、音频电路305、输入单元306以及电源307。其中,处理器301分别与触控显示屏303、射频电路304、音频电路305、输入单元306以及电源307电性连接。本领域技术人员可以理解,图19中示出的计算机设备结构并不构成对计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
触控显示屏303可用于显示图形用户界面以及接收用户作用于图形用户界面产生的操作指令。触控显示屏303可以包括显示面板和触控面板。其中,显示面板可用于显示由用户输入的信息或提供给用户的信息以及计算机设备的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。在一些实施例中,可以采用液晶显示器(LCD,Liquid Crystal Display)、有机发光二极管(OLED,Organic Light-EmittingDiode)等形式来配置显示面板。触控面板可用于收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板上或在触控面板附近的操作),并生成相应的操作指令,且操作指令执行对应程序。在一些实施例中,触控面板可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器301,并能接收处理器301发来的命令并加以执行。触控面板可覆盖显示面板,当触控面板检测到在其上或附近的触摸操作后,传送给处理器301以确定触摸事件的类型,随后处理器301根据触摸事件的类型在显示面板上提供相应的视觉输出。在本申请实施例中,可以将触控面板与显示面板集成到触控显示屏303而实现输入和输出功能。但是在某些实施例中,触控面板与触控面板可以作为两个独立的部件来实现输入和输出功能。即触控显示屏303也可以作为输入单元306的一部分实现输入功能。
射频电路304可用于收发射频信号,以通过无线通信与网络设备或其他计算机设备建立无线通讯,与网络设备或其他计算机设备之间收发信号。
音频电路305可以用于通过扬声器、传声器提供用户与计算机设备之间的音频接口。音频电路305可将接收到的音频数据转换后的电信号,传输到扬声器,由扬声器转换为声音信号输出;另一方面,传声器将收集的声音信号转换为电信号,由音频电路305接收后转换为音频数据,再将音频数据输出处理器301处理后,经射频电路304以发送给比如另一计算机设备,或者将音频数据输出至存储器302以便进一步处理。音频电路305还可能包括耳塞插孔,以提供外设耳机与计算机设备的通信。
输入单元306可用于接收输入的数字、字符信息或对象特征信息(例如指纹、虹膜、面部信息等),以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
电源307用于给计算机设备300的各个部件供电。在一些实施例中,电源307可以通过电源管理系统与处理器301逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源307还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
尽管图19中未示出,计算机设备300还可以包括摄像头、传感器、无线保真模块、蓝牙模块等,在此不再赘述。
本申请还提供了一种计算机可读存储介质,用于存储计算机程序。该计算机可读存储介质可应用于计算机设备,并且该计算机程序使得计算机设备执行本申请实施例中的文档格式转换方法中的相应流程,为了简洁,在此不再赘述。
本申请还提供了一种计算机程序产品,该计算机程序产品包括计算机程序,该计算机程序存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机程序,处理器执行该计算机程序,使得计算机设备执行本申请实施例中的文档格式转换方法中的相应流程,为了简洁,在此不再赘述。
本申请还提供了一种计算机程序,该计算机程序包括计算机程序,计算机程序存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机程序,处理器执行该计算机程序,使得计算机设备执行本申请实施例中的文档格式转换方法中的相应流程,为了简洁,在此不再赘述。
应理解,本申请实施例的处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法实施例的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器、数字信号处理器(Digital SignalProcessor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
可以理解,本申请实施例中的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double Data RateSDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(Synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(DirectRambus RAM,DR RAM)。应注意,本文描述的系统和方法的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
应理解,上述存储器为示例性但不是限制性说明,例如,本申请实施例中的存储器还可以是静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(dynamic RAM,DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data rate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synch link DRAM,SLDRAM)以及直接内存总线随机存取存储器(Direct Rambus RAM,DR RAM)等等。也就是说,本申请实施例中的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能若以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。
Claims (20)
1.一种文档格式转换方法,其特征在于,所述方法包括:
识别PDF文档中的表格,所述表格包括全框表格、半框表格、无框表格中的至少一种;
识别所述PDF文档中的图表,所述图表至少包括以图形方式显示的内容信息;
根据所述表格与所述图表,将所述PDF文档转换为HTML文档,其中,所述HTML文档中转换出的所述表格为HTML形式,以及所述HTML文档中转换出的所述图表为图片形式。
2.如权利要求1所述的文档格式转换方法,其特征在于,所述识别PDF文档中的表格,包括:
基于所述PDF文档中的线条对表格进行定位,以识别所述PDF文档中的第一表格,所述第一表格包括所述全框表格与所述半框表格中的至少一种。
3.如权利要求2所述的文档格式转换方法,其特征在于,所述基于所述PDF文档中的线条对表格进行定位,以识别所述PDF文档中的第一表格,包括:
识别所述PDF文档中的文本、线条、每个所述线条的坐标、以及每两个所述线条之间的宽度和高度,其中,所述线条包括水平线条和垂直线条;
根据所述线条中的所有水平线条的坐标,以及每两个所述水平线条之间的宽度,确定出所述水平线条中两两平行、且长度相近或相同的多组水平线条组,其中,每组所述水平线条组包含两个相互平行、且长度相近或相同的两个所述水平线条;
初始化第一表格集合,对于所述多组水平线条组中的每组水平线条组,分别从上到下和从下到上遍历所述多组水平线条组中的每个水平线条进行表格识别处理,并将所述表格识别处理过程中识别到的所有第一表格加入所述第一表格集合;
对所述第一表格集合中的第一表格进行合并处理,以将所述所述第一表格集合中存在公共线条的每两个第一表格进行合并,直到所述第一表格集合中不存在可以合并的第一表格为止,以得到更新后的第一表格集合;
根据所述更新后的第一表格集合中每个第一表格所包含的线条的坐标,确定所述更新后的第一表格集合中每个第一表格的边界坐标;
根据所述更新后的第一表格集合的每个第一表格中,水平线条的数量、垂直线条的数量以及第一阈值,识别所述PDF文档中的所述全框表格与所述半框表格。
4.如权利要求3所述的文档格式转换方法,其特征在于,所述对于所述多组水平线条组中的每组水平线条组,分别从上到下和从下到上遍历所述多组水平线条组中的每个水平线条进行表格识别处理,包括:
对于所述多组水平线条组中的每组水平线条组,分别从上到下和从下到上遍历水平线条组中的的每个水平线条;
判断当前线条是否是最后一个线条;
若所述当前线条不是最后一个线条,则判断所述当前线条和所述当前线条之后的第一个线条之间是否满足第一条件,其中,所述第一条件为所述当前线条和所述当前线条之后的第一个线条之间存在文本、且文本之间有空白分隔、以及文本和线条间的距离小于第二阈值;
若所述当前线条和所述当前线条之后的第一个线条之间满足第一条件,则将所述当前线条和所述当前线条之后的第一个线条构成一个新的第一表格;
判断所述当前线条是否是倒数第二个线条;
若所述当前线条是倒数第二个线条,则结束遍历流程。
5.如权利要求4所述的文档格式转换方法,其特征在于,在所述判断所述当前线条和所述当前线条之后的第一个线条之间是否满足第一条件之后,还包括:
若所述当前线条和所述当前线条之后的第一个线条之间不满足第一条件,则将所述当前线条之后的第一个线条设置为新的当前线条,并返回执行所述判断当前线条是否是最后一个线条的步骤。
6.如权利要求4所述的文档格式转换方法,其特征在于,在所述判断所述当前线条是否是倒数第二个线条之后,还包括:
若所述当前线条不是倒数第二个线条,将所述当前线条之后的第二个线条设置为新的当前线条,并返回执行所述判断当前线条是否是最后一个线条的步骤。
7.如权利要求3所述的文档格式转换方法,其特征在于,所述识别PDF文档中的表格,还包括:
基于所述PDF文档中的图像对表格进行定位,以识别所述PDF文档中的第二表格,所述第二表格包括所述无框表格。
8.如权利要求7所述的文档格式转换方法,其特征在于,所述基于所述PDF文档中的图像对表格进行定位,以识别所述PDF文档中的第二表格,包括:
将所述PDF文档转换为RGB格式的图像;
通过训练好的目标检测模型对所述PDF文档对应的RGB格式的图像进行识别,得到所述PDF文档中的第二表格与所述第二表格的坐标位置,且将所述目标检测模型识别到的所有第二表格加入第二表格集合;
根据所述第二表格的坐标位置对所述第二表格集合进行表格边界确定处理,以识别所述PDF文档中的所有表格,所述所有表格包括所述第一表格和所述第二表格。
9.如权利要求8所述的文档格式转换方法,其特征在于,所述根据所述第二表格的坐标位置对所述第二表格集合进行表格边界确定处理,以识别所述PDF文档中的所有表格,包括:
遍历所述第二表格集合中的每一个第二表格:
若根据所述第二表格的坐标位置确定当前第二表格和所述更新后的第一表格集合中的某个第一表格存在边界的交集,则将当前第二表格的边界修改为所述更新后的第一表格集合中和当前第二表格边界交集最大的第一表格的边界;
将所述当前第二表格加入第三表格集合,其中,所述第三表格集合用于表征识别出的所述PDF文档中的所有表格,所述第三表格集合包含所述更新后的第一表格集合中的所有第一表格,以及所述第二表格集合中表格边界调整后的所有第二表格。
10.如权利要求9所述的文档格式转换方法,其特征在于,所述方法还包括:
获取训练数据集,其中,所述训练数据集中的每个训练数据包括训练图像和所述训练图像对应的标注信息,所述训练图像为通过将PDF文档样本转换为RGB格式的图像得到的,所述标注信息包括所述训练图像对应的标注分类对象和每个所述标注分类对象的坐标位置,所述标注分类对象至少包括图表和表格;
利用所述训练数据集训练目标检测模型,以在所述目标检测模型输出的所述训练图像对应的预测分类对象与所述训练图像对应的标注分类对象一致、且所述目标检测模型输出的所述预测分类对象的坐标位置与所述标注分类对象的坐标位置一致时,得到所述训练好的目标检测模型。
11.如权利要求8所述的文档格式转换方法,其特征在于,所述识别所述PDF文档中的图表,包括:
通过所述训练好的目标检测模型对所述PDF文档对应的RGB格式的图像进行识别,得到所述PDF文档中的图表与所述图表的坐标位置;
根据所述图表的坐标位置,确定所述图表中仅包含坐标区域的图表区域图,所述图表区域图用于以图片形式嵌入所述HTML文档中。
12.如权利要求1-11任一项所述的文档格式转换方法,其特征在于,所述方法还包括:
识别所述PDF文档的文本以及排版布局,所述排版布局包括单栏布局、双栏布局、多栏布局中的至少一种;
所述根据所述表格与所述图表,将所述PDF文档转换为HTML文档,包括:
根据所述表格、所述图表、所述文本以及所述排版布局,将所述PDF文档转换为HTML文档。
13.如权利要求12所述的文档格式转换方法,其特征在于,所述根据所述表格、所述图表、所述文本段落以及所述排版布局,将所述PDF文档转换为HTML文档,包括:
获取所述表格内每个单元格的行列位置,以及获取每个单元格内的文本,并根据所述每个单元格的行列位置与每个单元格内的文本将所述表格转换为HTML形式;
根据第一合并条件对所述表格、所述图表以外的文本进行合并,以得到多个不同的段落,其中,所述第一合并条件为所述文本间的距离小于第三阈值;
识别所述排版布局中每一栏的横坐标位置;
根据所述排版布局中每一栏的横坐标位置以及所述排版布局对应的阅读顺序,对所述表格、所述图表与所述段落进行排序;
根据排序结果将所述表格、所述图表与所述段落以HTML形式输出,将所述PDF文档转换为HTML文档,其中,所述表格以HTML形式输出,所述图表以图片形式嵌入所述HTML文档中的形式输出,所述段落以段落文本的HTML形式输出。
14.如权利要求13所述的文档格式转换方法,其特征在于,所述获取所述表格内每个单元格的行列位置,包括:
对所述表格进行表格列生成处理以得到所述表格的列集合,并根据每个列所属的文本,确定每个列的横坐标边界;
对所述表格进行表格行生成处理以得到所述表格的行集合,并根据每个行所属的文本,确定每个行的纵坐标边界;
根据所述列集合与所述行集合生成多个单元格,并根据所述每个列所属的文本、所述每个行所属的文本、所述每个列的横坐标边界与所述每个行的纵坐标边界,确定每个单元格内的文本及坐标,且将所述多个单元格中具有坐标交集的单元格进行合并处理,以获取所述表格内每个单元格的行列位置。
15.如权利要求14所述的文档格式转换方法,其特征在于,所述对所述表格进行表格列生成处理以得到所述表格的列集合,包括:
获取包含有所述表格的表格区域内的所有文本的文本集合,并初始化所述表格的列集合,以及将所述列集合的事件标识初始化为否;
判断所述文本集合中是否存在不属于任何列的第一文本;
若所述文本集合中存在不属于任何列的第一文本,从所述文本集合中查找出被所述第一文本在垂直方向上覆盖的所有第二文本,得到第二文本集合,其中,所述第二文本集合中的第二文本的横坐标均被所述第一文本的横坐标覆盖;
将所述第二文本集合中的第二文本划分为文本行,其中,所述文本行之间不存在纵坐标的交集;
若所述文本行的个数大于或等于所述第二文本集合中的文本个数,则将所述第二文本集合中的第二文本构成一个新的列,加入所述列集合,并将所述所述列集合的事件标识设置为是;
遍历所述文本集合中的所有文本,直到所述文本集合中不存在属于任何列的第一文本;
若所述列集合的事件标识为是,则根据第二合并条件对所述列集合中的列进行合并,其中,所述第二合并条件为一个列的横坐标被另一个列的横坐标完全覆盖。
16.如权利要求14所述的文档格式转换方法,其特征在于,所述对所述表格进行表格行生成处理以得到所述表格的行集合,包括:
获取包含有所述表格的表格区域内的所有文本的文本集合,并初始化所述表格的行集合,以及将所述行集合的事件标识初始化为否;
判断所述文本集合中是否存在不属于任何行的第三文本;
若所述文本集合中存在不属于任何行的第三文本,从所述文本集合中查找出被所述第三文本在水平方向上覆盖的所有第四文本,得到第四文本集合,其中,所述第四文本集合中的第四文本的纵坐标均被所述第三文本的纵坐标覆盖;
将所述第四文本集合中的第四文本划分为文本列,其中,所述文本列之间不存在横坐标的交集;
若所述文本列的个数大于或等于所述第四文本集合中的文本个数,则将所述第四文本集合中的第四文本构成一个新的行,加入所述行集合,并将所述行集合的事件标识设置为是;
遍历所述文本集合中的所有文本,直到所述文本集合中不存在属于任何行的第三文本;
若所述行集合的事件标识为是,则根据第三合并条件对所述列集合中的列进行合并,其中,所述第三合并条件为一个行的纵坐标被另一个行的纵坐标完全覆盖。
17.如权利要求13所述的文档格式转换方法,其特征在于,所述识别所述排版布局中每一栏的横坐标位置,包括:
初始化一个数组以及设置第四阈值M,其中,所述数组的长度等于所述PDF文档的页面的宽度,所述数组的初始变量值为0,所述M为大于0的正整数;
将所述数组上每个位置的变量值设置为所述PDF文档的页面中每个横坐标上的文本数量;
将每连续的M个横坐标对应的变量值设置为一组子数组;
若所述数组中存在所述M个横坐标对应的变量值均为0的第一子数组,且所述第一子数组左右两边的第二子数组中M个横坐标对应的变量值均大于第五阈值,则将所述第一子数组确定为分界;
根据所述分界的个数确定所述排版布局中的栏数,其中,栏数为所述分界的个数与1之和;以及
根据所述分界在所述PDF文档的页面中对应的横坐标位置,识别所述排版布局中每一栏的横坐标位置。
18.一种文档格式转换装置,其特征在于,所述装置包括:
第一识别单元,用于识别PDF文档中的表格,所述表格包括全框表格、半框表格、无框表格中的至少一种;
第二识别单元,用于识别所述PDF文档中的图表,所述图表至少包括以图形方式显示的内容信息;
转换单元,用于根据所述表格与所述图表,将所述PDF文档转换为HTML文档,其中,所述HTML文档中转换出的所述表格为HTML形式,以及所述HTML文档中转换出的所述图表为图片形式。
19.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序适于处理器进行加载,以执行如权利要求1-17任一项所述的文档格式转换方法。
20.一种计算机设备,其特征在于,所述计算机设备包括处理器和存储器,所述存储器中存储有计算机程序,所述处理器通过调用所述存储器中存储的所述计算机程序,用于执行权利要求1-17任一项所述的文档格式转换方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210651509.7A CN115114481A (zh) | 2022-06-09 | 2022-06-09 | 文档格式转换方法、装置、存储介质及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210651509.7A CN115114481A (zh) | 2022-06-09 | 2022-06-09 | 文档格式转换方法、装置、存储介质及设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115114481A true CN115114481A (zh) | 2022-09-27 |
Family
ID=83327143
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210651509.7A Pending CN115114481A (zh) | 2022-06-09 | 2022-06-09 | 文档格式转换方法、装置、存储介质及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115114481A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024087566A1 (zh) * | 2022-10-28 | 2024-05-02 | 深圳市网旭科技有限公司 | 文档转换方法及装置、计算机可读存储介质、计算机设备 |
-
2022
- 2022-06-09 CN CN202210651509.7A patent/CN115114481A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024087566A1 (zh) * | 2022-10-28 | 2024-05-02 | 深圳市网旭科技有限公司 | 文档转换方法及装置、计算机可读存储介质、计算机设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10846524B2 (en) | Table layout determination using a machine learning system | |
US10846553B2 (en) | Recognizing typewritten and handwritten characters using end-to-end deep learning | |
US20190220508A1 (en) | Interactively predicting fields in a form | |
KR20210042864A (ko) | 테이블 식별 방법, 장치, 기기, 매체 및 컴퓨터 프로그램 | |
US10296803B2 (en) | Image display apparatus, image display method, and computer program product | |
US8819545B2 (en) | Digital comic editor, method and non-transitory computer-readable medium | |
CN111062259A (zh) | 表格识别方法和装置 | |
CN111340037B (zh) | 文本版面分析方法、装置、计算机设备和存储介质 | |
US10142499B2 (en) | Document distribution system, document distribution apparatus, information processing method, and storage medium | |
WO2021208617A1 (zh) | 进出站识别方法、装置、终端及存储介质 | |
US20100287187A1 (en) | Method for query based on layout information | |
US10417516B2 (en) | System and method for preprocessing images to improve OCR efficacy | |
CN113283355A (zh) | 一种表格图像的识别方法、装置、计算机设备及存储介质 | |
CN112163577A (zh) | 游戏画面中的文字识别方法、装置、电子设备和存储介质 | |
US10095677B1 (en) | Detection of layouts in electronic documents | |
CN115114481A (zh) | 文档格式转换方法、装置、存储介质及设备 | |
CN110245570B (zh) | 扫描文本分段方法、装置、计算机设备和存储介质 | |
US11941903B2 (en) | Image processing apparatus, image processing method, and non-transitory storage medium | |
CN111144081A (zh) | 表单生成方法、装置、存储介质及电子设备 | |
CN113673528A (zh) | 文本处理方法、装置、电子设备和可读存储介质 | |
CN113449726A (zh) | 文字比对及识别方法、装置 | |
CN111079709B (zh) | 一种电子单据的生成方法、装置、计算机设备和存储介质 | |
CN116860747A (zh) | 训练样本的生成方法、装置、电子设备及存储介质 | |
CN116052195A (zh) | 文档解析方法、装置、终端设备和计算机可读存储介质 | |
CN113038184A (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 |