掌桥专利:专业的专利平台
掌桥专利
首页

PDF目录识别方法及电子设备、计算机可读存储介质

文献发布时间:2023-06-19 10:32:14


PDF目录识别方法及电子设备、计算机可读存储介质

技术领域

本申请涉及文档处理技术领域,特别涉及一种PDF目录识别方法及电子设备、计算机可读存储介质。

背景技术

现有对于PDF目录的提取方法是对PDF文档的体系结构进行解析,获取PDF文档的交叉索引表;对所述交叉索引表进行检索,得到文件尾字典;对所述文件尾字典进行分析,得到键值最高权限用户对应的目录簿字典;对所述目录簿字典进行检索,获得所述PDF文档的目录。现有对于PDF目录的提取方法是基于PDF文档中存在目录字典不为空的提取,但是对于大多数PDF文档,目录字典为空,只存在纯粹的目录文本页面。

发明内容

本申请的目的在于至少解决现有技术中存在的技术问题之一,提供一种PDF目录识别方法,能够提取PDF文件中可能包含目录信息的页面,准确识别出目录结构。

根据本申请第一方面实施例的PDF目录识别方法,包括:

获取PDF文档的每个页面的原始文本段落集合;

根据每一所述原始文本段落集合的数字队列,得到符合目录结构特征的当前文本段落集合;

将所述当前文本段落集合转换成至少一个二值化矩阵;

扫描每个所述二值化矩阵,得到扫描结果;

根据所述扫描结果,确定当前页面为目标目录页面。

根据本申请实施例的PDF目录识别方法,至少具有如下技术效果:提取PDF文件中可能包含目录信息的页面,针对PDF页面中的文本段落进行自定义的目录结构特征识别,通过数字队列与二值化矩阵扫描双重判定,极大提升了处理和辨别效率,能够有效和准确地识别出大部分PDF文件的目录页,尤其是对于纯粹的文本页面的目录结构能够有效与准确的进行识别。

根据本申请的一些实施例,所述获取PDF文档的每个页面的原始文本段落集合包括:

提取所述PDF文档的每个页面的每一行文本作为文本段落;

将同一页面的全部所述文本段落设置为所述原始文本段落集合。

根据本申请的一些实施例,所述获取PDF文档的每个页面的原始文本段落集合还包括:

提取每一所述原始文本段落集合的每一个所述文本段落的结尾项;

去除所述结尾项为非数字的所述文本段落,以更新所述原始文本段落集合。

根据本申请的一些实施例,所述将所述当前文本段落集合转换成至少一个二值化矩阵包括:

将所述当前文本段落集合的每一个所述文本段落进行排序,得到排序后的当前文本段落集合;

将排序后的当前文本段落集合进行分类,得到至少一个子段落集合;

根据每个所述子段落集合,得到至少一个所述二值化矩阵,其中,所述子段落集合与所述二值化矩阵一一对应。

根据本申请的一些实施例,所述将所述当前文本段落集合的每一个所述文本段落进行排序,得到排序后的当前文本段落集合包括:

提取所述当前文本段落集合的每一个所述文本段落的字体大小、字体粗细及文本段落缩进信息;

根据所述字体大小、字体粗细及文本段落缩进信息,得到每一个所述文本段落的权值;

根据所述权值对全部所述文本段落进行分组排序,得到排序后的当前文本段落集合。

根据本申请的一些实施例,所述根据每个所述子段落集合,得到至少一个所述二值化矩阵包括:

对每个所述子段落集合的每个所述文本段落进行遍历;

将每个所述文本段落遍历遇到的圆点字符设置为数字1,将非圆点字符设置为数字0;

将同一所述子段落集合的每个所述文本段落的遍历结果整合,得到m*n的所述二值化矩阵,其中,m为所述文本段落的长度,n为每个所述子段落集合的所述文本段落总数。

根据本申请的一些实施例,所述扫描每个所述二值化矩阵得到扫描结果包括:

扫描每个所述二值化矩阵的最后一列;

若所述二值化矩阵的最后一列均为数字1,则扫描所述二值化矩阵的每一行;

若所述二值化矩阵的每一行均符合从最后一次扫描到的数字0开始至结尾均为数字1,则确定所述二值化矩阵符合目录结构特征;

若所述二值化矩阵符合目录结构特征,则得到所述扫描结果。

根据本申请的一些实施例,所述PDF目录识别方法还包括:

获取所述目标目录页面的所述文本段落;

为每一所述文本段落设置对应的页面跳转链接。

根据本申请第二方面实施例的电子设备,包括:

至少一个处理器,以及,

与所述至少一个处理器通信连接的存储器;其中,

所述存储器存储有指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器执行所述指令时实现上述第一方面所述的PDF目录识别方法。

根据本申请第三方面实施例的计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行上述第一方面所述的PDF目录识别方法。

本申请的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。

附图说明

下面结合附图和实施例对本申请进一步地说明;

图1为本申请实施例的PDF识别目录方法的流程示意图;

图2为本申请实施例的获取当前文本段落集合的流程示意图;

图3为本申请实施例的更新原始文本段落集合的流程示意图;

图4为本申请实施例的获取至少一个二值化矩阵的流程示意图;

图5为本申请实施例的当前文本段落集合排序的流程示意图;

图6为本申请另一实施例的电子设备的示意图;

图7为本申请实施例的子段落集合转换成二值化矩阵的流程示意图;

图8为本申请实施例的扫描二值化矩阵的流程示意图;

图9为本申请实施例的子段落集合遍历转换成二值化矩阵的示例图。

具体实施方式

本部分将详细描述本申请的具体实施例,本申请之较佳实施例在附图中示出,附图的作用在于用图形补充说明书文字部分的描述,使人能够直观地、形象地理解本申请的每个技术特征和整体技术方案,但其不能理解为对本申请保护范围的限制。

在本申请的描述中,若干的含义是一个或者多个,多个的含义是两个以上,大于、小于、超过等理解为不包括本数,以上、以下、以内等理解为包括本数。如果有描述到第一、第二只是用于区分技术特征为目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量或者隐含指明所指示的技术特征的先后关系。

下面参考附图描述根据本申请实施例的PDF目录识别方法。

如图1所示,根据本申请实施例的PDF目录识别方法,包括:

S100:获取PDF文档的每个页面的原始文本段落集合;

S200:根据每一原始文本段落集合的数字队列,得到符合目录结构特征的当前文本段落集合;

S300:将当前文本段落集合转换成至少一个二值化矩阵;

S400:扫描每个二值化矩阵得到扫描结果;

S500:根据扫描结果,确定当前页面为目标目录页面。

对于PDF的目录,具有两大特征:1、PDF的目录页中的每个段落结尾均为页码数,且各页码数之间一定为有序递增;2、每个目录的每个索引在目录大纲描述完后,后面都会衔接有连续的“…”。

如图2所示,S200:根据每一原始文本段落集合的数字队列,得到符合目录结构特征的当前文本段落集合包括:

S210:提取原始文本段落集合的每一个文本段落的最后数字项;

S220:将全部最后数字项整合得到数字队列;

S230:若数字队列有序,则增加文本段落集合符合目录结构特征的记录,并将得到符合目录结构特征的当前文本段落集合。

S200:根据每一原始文本段落集合的数字队列,得到符合目录结构特征的当前文本段落集合还包括:

S240:若数字队列无序,则原始文本段落集合不具备目录结构特征,结束目录结构的识别。

其中,数字项指的是目录的每一个条目对应的页码,若文本段落集合具备目录结构特征,由对应的数字项组成数字队列应该是有序递增;文本段落集合符合目录结构特征的记录设置有一个对应的记录值,设置记录值的初始值为0,每增加一次文本段落集合符合目录结构特征的记录,记录值的数值相应加一。

对一个PDF文档的目录识别过程如下:首先该获取PDF文档的每个页面的文本段落集合,根据文本段落集合得到当前页面的文本段落集合对应的数字队列,通过数字队列判断文本段落集合是否符合目录结构特征,若文本段落集合不符合目录结构特征,则结束当前页面的目录结构识别,开始下一页面的目录结构识别;若文本段落集合符合目录结构特征,则增加文本段落集合符合目录结构特征的记录,并将当前页面的当前文本段落集合转换成至少一个二值化矩阵并进行扫描,通过扫描结果判断每个二值化矩阵是否符合目录结构特征;若每个二值化矩阵均不符合目录结构特征,则结束对当前页面的操作,开始下一页面的当前文本段落集合转换成至少一个二值化矩阵并扫描;若至少一个二值化矩阵符合目录结构特征,则增加文本段落集合符合目录结构特征的记录,若最终记录值大于1,则当前页面的文本段落集合符合目录结构,当前页面为目录页面。

在本申请的其他具体实施例中,可将步骤S200与后续的步骤S300至步骤S500设置为两个并行任务,若步骤S200分析出文本段落集合不符合目录特征时,以消息通知的机制去制止对应的并行任务;通过此设置,可以进一步地提升目录识别效率。

根据本申请实施例的PDF目录识别方法,提取PDF文件中可能包含目录信息的页面,针对PDF页面中的文本段落进行自定义的目录结构特征识别,通过数字队列与二值化矩阵扫描双重判定,极大提升了处理和辨别效率,能够有效和准确地识别出大部分PDF文件的目录页,尤其是对于纯粹的文本页面的目录结构能够有效与准确的进行识别。

如图3所示,在本申请的一些具体实施例中,获取PDF文档的每个页面的原始文本段落集合包括:

S110:提取PDF文档的每个页面的每一行文本作为文本段落;

S120:将同一页面的全部文本段落设置为原始文本段落集合。

在一般情况下的目录页面中,目录页面中的每一行文本即为一条目录条目,因此将每个页面中的每一行文本作为文本段落,以得到与目录结构形式最接近的文本段落集合。

如图3所示,在本申请的一些具体实施例中,获取PDF文档的每个页面的原始文本段落集合还包括:

S130:提取每一原始文本段落集合的每一个文本段落的结尾项;

S140:去除结尾项为非数字的文本段落,以更新原始文本段落集合。

在一般情况下的目录页面中,目录页面中的每一行文本即为一条目录条目,而每一条目录条目最末端均会对应有页码数字。通过步骤S130与步骤S140,将无数字作为结尾的文本段落过滤并更新文本段落集合,排除单个目录过长而分行的情况,方便后续对文本段落集合进行分组排序。

如图4所示,在本申请的一些具体实施例中,将当前文本段落集合转换成至少一个二值化矩阵包括:

S310:将当前文本段落集合的每一个文本段落进行排序,得到排序后的当前文本段落集合;

S320:将排序后的当前文本段落集合进行分类,得到至少一个子段落集合;

S330:根据每个子段落集合,得到至少一个二值化矩阵,其中,子段落集合与二值化矩阵一一对应。

在一般的目录页面中,通常会设置有多个级别的目录,将每个文本段落即每一目录条目按级别进行分类与排序,得到排序后的当前文本段落集合;将排序后的当前文本段落集合按照目录等级进行划分,将属于同一目录级别的文本段落按顺序划分到一个子段落集合中,得到至少一个子段落集合;再将得到的每个子段落集合转换成二值化矩阵。通过将本文段落集合按目录级别划分子段落集合,并转换成二值化矩阵,方便后续对文本段落的形式特征进行扫描,简化扫描与判定算法,能够更加快速准确判断文本段落集合是否符合目录结构特征。

如图5所示,在本申请的一些具体实施例中,将当前文本段落集合的每一个文本段落进行排序,得到排序后的当前文本段落集合包括:

S311:提取当前文本段落集合的每一个文本段落的字体大小、字体粗细及文本段落缩进信息;

S312:根据字体大小、字体粗细及文本段落缩进信息,得到每一个文本段落的权值;

S313:根据权值对全部文本段落进行分组排序,得到排序后的当前文本段落集合。

在PDF的目录页面中,不同级别的目录条目的字体大小、字体粗细及文本段落缩进均会有对应的设置,例如,等级高至等级低的目录条目的字体大小依次递减,最高等级的目录条目通常会设置字体加粗显示,低等级的目录条目的文本段落会较高一等级的目录条目的文本段落多缩进两格。

通过打分制度得到每一文本段落对应权值,设置一个基础分,若文本段落为字体加粗,则加分,若字体未加粗则不加分;再根据文本段落的字体大小进行对应的加分,字体越大,加的分值越高;最后根据文本段落的缩进进行对应的减分,缩进字符越多,减的分值越高;最后计算得到每一文本段落对应的权值。属于同一目录等级的文本段落的权值相同,根据权值将属于同一目录等级的文本段落排列在一起,同一目录等级的文本段落的相互顺序按照原有顺序不变,不同目录等级的文本段落顺序按照权值从高到低排列,得到排序后的当前文本段落集合。

如图7所示,在本申请的一些具体实施例中,根据每个子段落集合,得到至少一个二值化矩阵包括:

S331:对每个子段落集合的每个文本段落进行遍历;

S332:将每个文本段落遍历遇到的圆点字符设置为数字1,将非圆点字符设置为数字0;

S333:将同一子段落集合的每个文本段落的遍历结果整合,得到m*n的二值化矩阵,其中,m为文本段落的长度,n为每个子段落集合的文本段落总数。

如图9所示,针对每个子段落集合,遍历每个子段落集合的每个文本段落,将文本段落进行数值二值化,其中要注意的是,在数值二值化的过程中需要排除文本段落最后的数字项字符串。圆点字符为“”字符和”·”字符,将每个文本段落中的“”字符和“·”字符设置为数字1,将其他字符设置为数字0,从而将每个文本段落转换成由数字1和数字0组成的二值化字符串。将每个二值化后的文本段落整合,得到一个由数字1和数字0组成的m*n的二值化矩阵,其中,二值化矩阵的每一行即为一个文本段落;m为文本段落的长度,对于符合目录特征的子段落集合而言,每一个文本段落二值化后的长度应该相同,n为该二值化矩阵对应的子段落集合的文本段落总数。通过将子段落集合转换成由数字1和数字0组成的二值化矩阵,简化表达子段落集合的形式特征,用数字1代表“”字符和“·”字符,数字1在二值化矩阵中的位置对应其在子段落集合中的位置,用数字0代表其他字符,数字0在二值化矩阵中的位置对应其他字符在子段落集合中的位置。

如图8所示,在本申请的一些具体实施例中,扫描每个二值化矩阵得到扫描结果包括:

S410:扫描每个二值化矩阵的最后一列;

S420:若二值化矩阵的最后一列均为数字1,则扫描二值化矩阵的每一行;

S430:若二值化矩阵的每一行均符合从最后一次扫描到的数字0开始至结尾均为数字1,则确定二值化矩阵符合目录结构特征;

S440:若二值化矩阵符合目录结构特征,则得到扫描结果。

在PDF文档的目录页面中,每一目录条目的目录大纲描述完后从大纲的最后一个字符到页码的数字字符之间,衔接有连续的“…”,因此如果文本段落集合符合目录结构,则在除去最末尾的页码数字字符后,文本段落的最后一个字符必为“·”字符,进行二值化转换后则必为数字1。因此,首先扫描二值化矩阵的最后一列,若全为数字1,则进行下一步骤;若不全为数字1,则该二值化矩阵对应的子段落集合不符合目录结构特征,扫描下一个二值化矩阵。

如图9所示,由于在PDF文档的目录页面中,每一目录条目的目录大纲描述完后从大纲的最后一个字符到页码的数字字符之间,衔接有连续的“…”,若文本段落集合符合目录结构,则其每一文本段落的目录大纲的最后一个字符后至最末尾的数字字符之间均为“·”字符,进行二值化转换后则对应为从最后一个数字0开始至结尾均为数字1。若二值化矩阵的最后一列均为数字1,则扫描该二值化矩阵的每一行,若每一行均符合从最后一次扫描到的数字0开始至该行的结尾均为数字1,则该二值化矩阵对应的单段落集合符合目录特征,增加文本段落集合符合目录结构特征的记录,并进行下一个二值化矩阵的扫描;反之,则结束该二值化矩阵的扫描,并进行下一个二值化矩阵的扫描。当当前页面的全部二进制矩阵均扫描完成后,若记录值大于1,则输出扫描结果为当前页面为目标目录页面;若记录值不大于1,则输出扫描结果为当前页面非目录页面。

在本申请的一些具体实施例中,PDF目录识别方法还包括:

S600:获取目标目录页面的文本段落;

S700:为每一文本段落设置对应的页面跳转链接。

获取目标目录页面的文本段落,为每一文本段落设置对应的页面跳转链接,对应的页面为该文本段落最末端页码数字所代表的页面;若该文本段落的最末端无页码数字,则将该文本段落的页面跳转链接设置为下一个与其衔接的文本段落的页面跳转链接;若下一个与其衔接的文本段落的最末端仍无页码数字,则继续寻找再下一个与其衔接的文本段落,直到找到最末端存在页码数字能够设置对应的页面跳转链接的与其衔接的文本段落为止。

本申请实施例的第二方面,提供了一种电子设备,该电子设备6000可以是任意类型的智能终端,如手机、平板电脑、个人计算机等。

如图6所示,根据本申请的一些实施例,该电子设备6000包括:一个或多个处理器6001和存储器6002,图6中以一个处理器6001为例。

处理器6001和存储器6002可以通过总线或其他方式进行通信连接,图6以通过总线连接为例。

存储器6002作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态性计算机可执行程序以及单元,如本申请实施例中的电子设备6000对应的程序指令/单元。处理器6001通过运行存储在存储器6002中的非暂态软件程序、指令以及单元,从而执行各种功能应用以及数据处理,即实现上述方法实施例的测量设备点检方法。

存储器6002可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据程序指令/单元创建的数据等。此外,存储器6002可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施例中,存储器6002可选包括相对于处理器6001远程设置的存储器,这些远程存储器可以通过网络连接至该电子设备6000。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

一个或者多个单元存储在存储器6002中,当被一个或者多个处理器6001执行时,执行上述任意方法实施例中的PDF目录识别方法。例如,执行以上描述的图1中的方法步骤S100至S500,图2中的方法步骤S210至S230,图3中的方法步骤S110至S140,图4中的方法步骤S310至S330,图5中的方法步骤S311至S313,图7中的方法步骤S331至S333,图8中的方法步骤S410至S440。

本申请实施例的第三方面,还提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器6001执行,例如,被图6中的一个处理器6001执行,可使得上述一个或多个处理器6001执行上述方法实施例中的PDF目录识别方法,例如,执行以上描述的图1中的方法步骤S100至S500,图2中的方法步骤S210至S230,图3中的方法步骤S110至S140,图4中的方法步骤S310至S330,图5中的方法步骤S311至S313,图7中的方法步骤S331至S333,图8中的方法步骤S410至S440。

以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

通过以上的实施方式的描述,本领域普通技术人员可以清楚地了解到各实施方式可借助软件加通用硬件平台的方式来实现,当然也可以通过硬件。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程是可以通过计算机程序来指令相关的硬件来完成,程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示意性实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。

尽管已经示出和描述了本申请的实施例,本领域的普通技术人员可以理解:在不脱离本申请的原理和宗旨的情况下可以对这些实施例进行的多种变化、修改、替换和变型,均应包含在本申请的保护范围之内。

相关技术
  • PDF目录识别方法及电子设备、计算机可读存储介质
  • 一种题目录入方法、题目录入装置、电子设备及计算机可读存储介质
技术分类

06120112586552