一种计算机程序提取PDF文档及图片中文字内容的方法
文献发布时间:2023-06-19 12:00:51
技术领域
本发明提供一种计算机程序提取PDF文档及图片中文字内容的方法,属于适用于扫描版的PDF文件、文档版的PDF文件和PNG/JPG/JPEG格式的图片。
背景技术
在企业经营活动之中,许多电子文档和图片中的文字内容都需要被记录到企业管理系统之中。为了减少人工、提高效率,OCR技术开始被广泛应用。常用的有全文识别不带位置、模板识别和全文识别带位置等。
全文识别不带位置,指把识别出的文字内容以一段文字的方式返回给使用者。这种模式适合整体提取文档或图片内容的场景,不适合提取文档或图片的部分内容。
模板识别,指配置指定模板,模板一般包含多个锚点位置,锚点信息一般包含锚点值、锚点位置、锚点相对于值的位置(上、下、左、右)、值的区域,按照配置信息把特定的内容返回给使用者。这种模式适合处理单页固定格式的文档,不适合处理内容会翻页的文档,也无法处理锚点识别有偏差的场景。
全文识别带位置,指把识别出的文字以块的方式返回给使用者,同时返回每个文字块的内容和位置信息(X、Y、长、宽)。这种模式把处理权交给了使用者,使用者可以根据文字块和位置信息实现自己期望的处理算法。
发明内容
本发明的目的在于提供一种计算机程序提取PDF文档及图片中文字内容的方法,能处理多页文档并能兼容锚点偏差的内容提取方法。
为实现上述目的,本发明提供如下技术方案:一种计算机程序提取PDF文档及图片中文字内容的方法依赖于全文识别带位置的服务,具体方法包含以下步骤:
步骤一、设计了页面标识配置,结构如下:
页面名字:某公司商业发票。
标识列表:序号:1;标识名字:公司名字;匹配模式:相似;值:公司名字1,公司名字2。
序号:2;标识名字:金额;匹配模式:包含;值:金额。
页面标识配置说明如下
1-1、页面名字,页面简明概要的名字,配置者自己定义。
1-2、标识列表,表示可以配置多个标识。
1-3、序号,表示标识的匹配顺序。
1-4、标识名字,用于说明当前标识的意义。
1-5、匹配模式,可选相似、包含、以…开始、以…结束和相等,其中字符相似度使用了LevenshteinDistance(编辑距离)算法。
1-7、值,允许配置多个值,只要其中一个值能匹配则算匹配生效。
步骤二、设计了锚点配置,结构如下:
锚点列表:序号:1;锚点名字:CompanyName;锚点值:Company Name,CompanyName;锚点匹配模式:相似;锚点位置:左,锚点长:100;锚点宽:100;值长:200;值宽:300。
锚点配置说明如下
2-1、锚点列表,表示可以支持配置多个锚点。
2-2、序号,表示锚点的序号,无实际意义。
2-3、锚点名字,用于区分锚点,确定锚点的意义等,同一个锚点列表中锚点名字不允许重复。
2-4、锚点值,支持多个值,只要其中一个值匹配生效则根据当前匹配到的文字块作为锚点。
2-5、锚点匹配模式:可选相似、包含和相等,其中字符相似度可使用LevenshteinDistance(编辑距离)算法。
2-6、锚点位置,锚点相对于值的位置,支持上、下、左和右,其中左是最常见的。
2-7、锚点长、锚点宽,用于和OCR结果中的锚点长宽计算比率,以便于计算实际值的长宽。
2-8、值长、值宽,用于和锚点计算出来的比率相乘,得出实际的值长宽;
步骤三、针对多页文档,处理时将文档按原有顺序拆分为多个单页文档,从头到尾对这些单页文档进行计算处理。
进一步优选,所述的步骤三中文档具体处理步骤如下:
3-1、匹配待识别的页面,通过全文识别带位置的服务,得到文档的文字块和位置信息,配合页面标识配置,计算当前页面是不是期望的页面,标识值中只要有一个值能够根据对应的匹配模式可以匹配出文字块则表示这个表示匹配生效,当且仅当所有的标识都匹配生效这个页面才算匹配生效。
3-2、根据锚点信息提取值信息,首先匹配到锚点的文字块,根据这个文字块的位子信息计算出值的位置信息,再计算出所有和值位置信息的有相交的文字块,对得到的所有文字块按照行列排序,得到的结果就是期望提取的值。
与现有技术相比,本发明的有益效果是:本方法是能处理多页文档并能兼容锚点偏差的内容提取方法,且方法操作简单。
附图说明
图1为本发明中锚点的四种位置结构示意图。
图2为本发明文字提取和排除结构图。
图3为本发明实施例中用程序语言实现矩形相交的算法计算出相交后新矩形和文字块矩形的对比结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本实施例提供一种技术方案:一个已知的OCR服务,该服务可能根据pdf文档或者图片返回字块信息和字块的位置信息。
其具体步骤如下:
1.用自己最熟悉的语言创建一个应用程序。
2.对接该OCR服务,取得结构化的文字块信息和对应的位置信息。
3.创建新的数据类型,对应页面配置结构。
4.创建新的数据类型,对应锚点配置结构。
5.用程序语言实现LevenshteinDistance(编辑距离)算法,该算法用于计算字符串的相似度。
6.用程序语言实现矩形相交的算法,该算法可计算出相交后的新矩形,通过新矩形和文字块矩形的对比,可以判断该文字块是否能被提取;参照图3所示:
a)推荐的相交判断实现
矩形A的宽Wa=Xa2-Xa1高Ha=Ya2-Ya1
矩形B的宽Wb=Xb2-Xb1高Hb=Yb2-Yb1
矩形A的中心坐标(Xa3,Ya3)=((Xa2+Xa1)/2,(Ya2+Ya1)/2)
矩形B的中心坐标(Xb3,Yb3)=((Xb2+Xb1)/2,(Yb2+Yb1)/2)
相交需要满足如下两个条件
1)|Xb3-Xa3|<=Wa/2+Wb/2
2)|Yb3-Ya3|<=Ha/2+Hb/2
b)获取相交矩形的信息
对于这个问题,假设两个矩形相交,设相交之后的矩形为C,且矩形C的左上角坐标为(Xc1,Yc1),右下角坐标为(Xc2,Yc2),显然可以得到:
Xc1=max(Xa1,Xb1)
Yc1=max(Ya1,Yb1)
Xc2=min(Xa2,Xb2)
Yc2=min(Ya2,Yb2)
这样就求出了矩形的相交区域。
7、根据你要提取的文档或者图片配置页面标识,和提取锚点。
8、根据配置的页面信息、锚点信息、OCR服务返回的文字块信息和位置信息,提取期望的值。
本申请所提供的实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
需要说明的是,在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合,本说明书系统实施例,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的系统实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元提示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,RandomAccessMemory)、磁碟或者光盘等各种可以存储程序代码的介质。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以专利要求的保护范围为准。
- 一种计算机程序提取PDF文档及图片中文字内容的方法
- 一种PDF文档中文字的分段方法、装置及电子设备