CN113962201A - 一种单证的文本结构化与抽取方法 - Google Patents
一种单证的文本结构化与抽取方法 Download PDFInfo
- Publication number
- CN113962201A CN113962201A CN202110974974.XA CN202110974974A CN113962201A CN 113962201 A CN113962201 A CN 113962201A CN 202110974974 A CN202110974974 A CN 202110974974A CN 113962201 A CN113962201 A CN 113962201A
- Authority
- CN
- China
- Prior art keywords
- text
- content
- line
- merging
- 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
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
- G06F40/174—Form filling; Merging
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Machine Translation (AREA)
Abstract
本发明涉及单证识别技术领域,特别公开了一种单证的文本结构化与抽取方法,包括如下步骤:S1、获取文件并识别文件内容;S2、对识别的文件内容进行结构化处理:将识别的文件内容整理成统一格式;S3、对结构化后的文件内容进行目标内容抽取,得到需要的单证内容。本发明基于该方法将接单、制单、审单三个步骤的时间缩短至分秒级,提高了制单的作业效率,避免了人工录入差错。
Description
技术领域
本发明涉及单证识别技术领域,特别是涉及一种单证的文本结构化与抽取方法。
背景技术
国际物流行业,正常的货物进出口申报流程,一般有五个步骤:接单、制单、审单、申报、查验。接单,是相关工作人员接到任务后,从企业方面获取报关单所需要的相关材料;制单,则是根据企业提供的材料,按照统一格式,制成相应报关单;审单顾名思义,指工作人员对报关单进行审核,最后提交给海关。三个步骤看似简单,实则非常麻烦。首先,企业准备的材料不少,一般会超过5页A4纸,内容多而繁杂;其次,企业不同,其材料类型、格式甚至语言都不同。所以,一个业务相对熟练的报关单处理人员,操作上述三个步骤,大概需要半个小时左右,十分浪费时间。
发明内容
针对上述现有技术的不足,本发明提供了一种单证的文本结构化与抽取方法,以解决上述问题。
为了解决上述技术问题,本发明采用了如下的技术方案:
一种单证的文本结构化与抽取方法,包括如下步骤:
S1、获取文件并识别文件内容;
S2、对识别的文件内容进行结构化处理:将识别的文件内容整理成统一格式;
S3、对结构化后的文件内容进行目标内容抽取,得到需要的单证内容。
作为优化,所述文件的格式包括Excel、pdf、word以及图片。
作为优化,步骤S1中,通过OCR技术对图片进行识别,通过python的docx 库读取word文件,通过python的pandas库读取Excel文件,通过python的pdfplumber库读取pdf文件。
作为优化,步骤S2中,对Excel进行结构化处理包括:
合并单元格的处理:当表头是合并单元格,且该表头对应的表体占据多列时,需要将多列表体合并到一列;
同一条数据占据多行的处理:对于本是同一条数据却占据了excel的多行,基于文件内容的布局信息进行分析归类,将同一条数据合并成一行;
多列的表头、表体数据在一个单元格的处理:基于分隔符将表头、表体的内容分割开,并分析计算将该表头、表体拆分成多列并对齐;
表头、表体未对齐的处理:基于数据类型以及布局信息对表头表体进行对齐处理。
作为优化,对pdf和图片识别结果的结构化处理包括:
首先基于pdf和图片识别结果的预处理如下:
分页合并处理:当pdf有多页时,若pdf含有图片,首先需要将pdf的非图片内容与图片的识别内容进行合并,其次将与图片合并后的具有多页的pdf 集合并成一个结果集,然后再计算修改结果集中的坐标信息;
跨行/列内容的合并处理:基于pdf和/或图片中的表格单元格信息,计算查找出在同一表格单元格的多条文本数据,进行行/列上的合并处理;
将预处理后的格式为[文本,坐标信息]的输出结果转换为excel的结构模式;
结构化处理:基于文本的坐标信息以及表格的坐标信息进行计算,将识别的pdf和图片的内容放到excel对应的行列中,并实现表头、表体的对齐处理;
跨页表格合并处理:基于分页处表格的线条信息以及单元格是否封闭判断分页处的内容是否需要做合并处理。
作为优化,在合并单元格的处理时,获取Excel中的文本、文本所在行/列信息以及合并单元格信息,文本包括表头和表体;
通过合并单元格信息首先判断表头所在的列数,然后从表头的下一行开始按行遍历并获取对应的表体数据,判断每一行中该表头所在列对应的表体是否有超过一个非空单元格,如果有,就表示该表体多列,将该表头所在列对应的表体中位于非首列的表体合并至首列表体的单元格中;
同一条数据占据多行的处理时,判断上一行表体与下一行表体之间的空单元格有几行,并将空单元格与上一行表体的单元格进行合并;
多列的表头、表体数据在一个单元格的处理时,若原始资料存在本是多列的表头和表体的内容却合并在一个单元格时,此时每一行的非空单元格数量为1,分析计算将表头表体拆分成多列并对齐,步骤如下:首先根据关键词确定表格的开始位置和结束位置,并抽取出表格的内容;然后按行遍历获取每一行的非空单元格文本内容,该文本内容包含多个用空格隔开的词/句;用空格对该文本内容进行分割处理,得到每行分割后的列表;然后按列从左往右基于规则查找每一个表头对应的表体内容,接下来顺序往右按规则给每个表头分配表体内容;
表头表体未对齐的处理时,若资料存在表头和表体内容不在同一列,或部分表体内容不在同一列时,基于数据类型以及布局信息对表头、表体进行对齐处理:首先获取当前列表头到下一列表头之间的所有列内容,所述列内容包括表头和表体内容,计算得到没有表头对应的表体内容:遍历每列单元格,若有单元格的表体内容所对应的表头为空,则表明该表体内容在没有表头的列,然后将没有表头对应的表体内容移动合并到前一个有表头对应的列中。
作为优化,分页合并处理时,当pdf有多页时,若pdf含有图片,将pdf 含有图片的那一页转换成图片格式得到原图片,然后使用文本检测算法,定位原图片中的每一个文本行,得到原图片对应的文本框的左上角xy和右下角xy,然后将每一个文本框从原图片中剪切出来,进行文字识别,得到其中的文本内容;最后将文本内容和该文本内容对应的坐标信息进行组装,得到格式为[文本, x,y,w,h]的文本信息,[x,y,w,h]为文本对应的坐标信息,x、y是文本框的左上角坐标点的坐标值;w、h是文本框的宽和高;
跨行/列内容的合并处理时,首先找出pdf或图片中的表格单元格坐标和文本的中心点坐标,并根据pdf或图片中的表格单元格坐标和文本的中心点坐标,将相关的文本内容映射到表格单元格中,如果一个表格单元格内有多个文本内容,则将这多个文本内容合并成一个,合并时根据文本内容的y轴坐标进行判断,将在同一行的文本内容用空格作为分隔符进行合并,在不同行的文本内容用换行符作为分隔符进行合并;
结构化处理时,将pdf和图片输出格式为[文本,坐标信息]的文本信息转换为excel的结构模式,基于文本的坐标信息以及表格的坐标信息进行计算,将识别的pdf和图片的内容放到excel对应的行列中,并实现表头表体的对齐处理,计算方式如下:
a.首先从pdf和图片输出的所有[[文本,坐标信息]...]中找出最小的x坐标(min_x)和最大的x坐标(max_x);
b.然后使用文本框的坐标信息,对文本进行行分组处理,将文本分组处理得到rows组数据;
c.基于a、b步骤得到的rows、min_x和max_x生成一个rows行max_x-min_x 列的空白excel和rows行max_x-min_x列的全零数组,空白excel用来存文本,全零数组用来存坐标信息;
d.遍历步骤b中的每一组数据,再遍历这组中的每个文本,基于文本的x 坐标,将文本内容填入到对应的excel单元格、将坐标信息填入到坐标数组的对应位置;
e.遍历完所有组后,再从右往左遍历获取excel的每一列数据,判断当前列与前一列是否为同列数据,如果是,则将当前列的内容移动到前一列,当遍历完excel的所有列后,再删除excel中的所有空白列和坐标数组中的对应列,始终保持excel和坐标数组的形状一致;
f.读取pdf和图片的信息获得文本信息和表格信息,所述文本信息为[文本, x,y,h,w],所述表格信息包括表格左上角和右下角的坐标、表格行的左上角右下角坐标、表格单元格的左上角和右下角坐标;并根据pdf和图片给过来的表格坐标信息以及excel的行坐标信息,计算出需要合并的行,进行行级别的合并,并删除空白行;
跨页表格合并处理时,将pdf上一页最后一行的数据与pdf下一页第一行的数据进行对比,计算pdf上一页最后一行与pdf下一页第一行的非空的单元格比例,若pdf上一页最后一行与pdf下一页第一行的非空比大于60%,表明是两条数据,不能合并。
作为优化,步骤b中,判断两个文本是否在同一行的条件为:两个文本在y 轴方向重叠长度大于70%;步骤e中,判断当前列与前一列是否为同列的条件为:文本是右对齐或者中间对齐,且当前列和前一列在x轴的重叠长度大于70%。
作为优化,步骤S3中,对结构化后的文件的内容进行目标内容抽取具体为:制定目标内容对应的目标关键词,将目标关键词集合成关键词词库,并基于语义分析将目标内容进行标准化处理,标准化处理后的目标内容与关键词词库中的关键词对应,在结构化后的文件的内容中通过搜索关键词找到对应的目标内容。
本发明的有益效果是:
本发明基于该方法将接单、制单、审单三个步骤的时间缩短至分秒级,提高了制单的作业效率,避免了人工录入差错。
附图说明
图1为本发明的方法流程图。
具体实施方式
下面结合附图和具体实施例对本发明作进一步说明,以使本领域的技术人员可以更好的理解本发明并能予以实施,但所举实施例不作为对本发明的限定。下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清除、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例,以下对至少一个示例性实施例的描述实际上仅仅是说明性的,绝不作为对本发明及其应用或使用的任何限制。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。需要理解的是,方位词如“前、后”等所指示的方位或位置关系通常是基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,在未作相反说明的情况下,这些方位词说明书并不指示和暗示所指的装置或元件必须具有特定的方位或者以特定的方位构造和操作,因此不能理解为对本发明保护范围的限制。
一种单证的文本结构化与抽取方法,包括如下步骤:
S1、获取文件并识别文件内容;
S2、对识别的文件内容进行结构化处理:将识别的文件内容整理成统一格式;
S3、对结构化后的文件内容进行目标内容抽取,得到需要的单证内容。
本实施例中,所述文件的格式包括Excel、pdf、word以及图片。
本实施例中,步骤S1中,通过OCR技术对图片进行识别,通过python专门读取word的docx库,通过python读取Excel的pandas库,通过python读取pdf的pdfplumber库。
本实施例中,步骤S2中,对Excel进行结构化处理包括:
合并单元格的处理:当表头是合并单元格,且该表头对应的表体占据多列时,需要将多列表体合并到一列;
同一条数据占据多行的处理:对于本是同一条数据却占据了excel的多行,基于文件内容的布局信息进行分析归类,将同一条数据合并成一行;
多列的表头、表体数据在一个单元格的处理:基于分隔符将表头、表体的内容分割开,并分析计算将该表头、表体拆分成多列并对齐;
表头、表体未对齐的处理:基于数据类型以及布局信息对表头表体进行对齐处理。
word表格的结构化处理同EXCEL的结构化处理,程序获取到word的表格信息后直接调用了EXCEL结构处理的方法。
首先基于pdf和图片识别结果的预处理如下:
分页合并处理:当pdf有多页时,若pdf含有图片,首先需要将pdf的非图片内容与图片的识别内容进行合并,其次将与图片合并后的具有多页的pdf 集合并成一个结果集,然后再计算修改结果集中的坐标信息;图片可以是pdf 中的图片,也可以为单独的图片,图片的格式可以为就jpg、png、jpeg等常规格式。
跨行/列内容的合并处理:基于pdf和/或图片中的表格单元格信息,计算查找出在同一表格单元格的多条文本数据,进行行/列上的合并处理;
将预处理后的格式为[文本,坐标信息]的输出结果转换为excel的结构模式;
结构化处理:基于文本的坐标信息以及表格的坐标信息进行计算,将识别的pdf和图片的内容放到excel对应的行列中,并实现表头、表体的对齐处理;
跨页表格合并处理:基于分页处表格的线条信息以及单元格是否封闭判断分页处的内容是否需要做合并处理。这里的线条信息是指表格的单元格两端的,端点1的x1y1和端点2的x2y2,判断单元格是否封闭即可看单元格的上下左右是否有线条。
首先判断pdf上一页最后一行和pdf下一页第一行的线条封闭情况,如果上一页最后一行的下方不存在线条且下一页的第一行上方不存在线条,则合并这两行数据;否则将pdf上一页最后一行的数据与pdf下一页第一行的数据进行对比,计算pdf上一页最后一行与pdf下一页第一行的非空的单元格比例,若pdf上一页最后一行与pdf下一页第一行的非空比大于60%,表明是两条数据,不能合并。当然,非空比也可以设定为其他数字,根据实际情况来。
本实施例中,在合并单元格的处理时,获取Excel中的文本信息、文本所在行/列信息以及合并单元格信息,合并单元格信息是指[[start_row,end_row, start_col,end_col]...],定义statr_row:合并单元格的开始行,end_row:合并单元格结束行,start_col:合并单元格开始列,end_col:合并单元格结束列,文本包括表头和表体;
通过合并单元格信息首先判断表头所在的列数,然后从表头的下一行开始按行遍历并获取对应的表体数据,判断每一行中该表头所在列对应的表体是否有超过一个非空单元格,如果有,就表示该表体多列,将该表头所在列对应的表体中位于非首列的表体合并至首列表体的单元格中;
同一条数据占据多行的处理时,判断上一行表体与下一行表体之间的空单元格有几行,并将空单元格与上一行表体的单元格进行合并;
多列的表头、表体数据在一个单元格的处理时,若原始资料存在本是多列的表头和表体的内容却合并在一个单元格时,此时每一行的非空单元格数量为1,基于此需要基于空格作为分隔符将每一行的表头、表体的内容通过程序自动分割开,例如:给的原始资料中,不同的表头表体内容之间是用多个空格进行分割的,故用程序遍历每行的内容,并用至少一个空格进行内容分割,分割完后再将表头和表体的内容在列的方向上对齐,分析计算将表头表体拆分成多列并对齐,步骤如下:首先根据关键词确定表格的开始位置和结束位置,并抽取出表格的内容;然后按行遍历获取每一行的非空单元格文本内容,该文本内容包含多个用空格隔开的词/句;用空格对该文本内容进行分割处理,得到每行分割后的列表;然后按列从左往右基于规则查找每一个表头对应的表体内容,接下来顺序往右按规则给每个表头分配表体内容;一个表格可以有多行非空单元格;
表头表体未对齐的处理时,若资料存在表头和表体内容不在同一列,或部分表体内容不在同一列时,基于数据类型以及布局信息对表头、表体进行对齐处理:首先获取当前列表头到下一列表头之间的所有列内容,所述列内容包括表头和表体内容,计算得到没有表头对应的表体内容:遍历每列单元格,若有单元格的表体内容所对应的表头为空,则表明该表体内容在没有表头的列,然后将没有表头对应的表体内容移动合并到前一个有表头对应的列中。
本实施例中,分页合并处理时,当pdf有多页时,若pdf含有图片,将pdf 含有图片的那一页转换成图片格式得到原图片,然后使用文本检测算法,定位原图片中的每一个文本行,得到原图片对应的文本框的左上角xy和右下角xy,文本框是用来标注整个文本行在图片中的位置(坐标),即:文本行在文本框内的左上角xy和右下角xy,然后将每一个文本框从原图片中剪切出来,进行文字识别,得到其中的文本内容;最后将文本内容和该文本内容对应的坐标信息进行组装,得到格式为[文本,x,y,w,h]的文本信息,[x,y,w,h]为文本对应的坐标信息,x、y是文本框的左上角坐标点的坐标值;w、h是文本框的宽和高;
原始资料中,同一个字段的内容会存在跨行或跨列的情况,我们识别的最终目的是要抽取这些字段的完整内容,因此对于原始资料中跨行/跨列的数据,需要先做合并处理,以确保后续内容抽取时,字段内容的完整性,找出表格中每个表格单元格的坐标以及表格中的文本的中心点坐标,在做pdf读取时,能够获取到每页pdf中的表格信息,包括表格坐标[左上角xy,右下角xy]、行坐标信息[左上角xy,右下角xy]、单元格坐标信息[左上角xy,右下角xy],根据文本的坐标[x,y,w,h]计算文本中心点坐标(cx=(2x+w)/2,cy=(2y+h)/2),遍历每一个单元格坐标,判断文本中心点坐标(cx,cy)是否在单元格内,即 cell_x1<cx<cell_x2 and cell_y1<cy<cell_y2);
即,跨行/列内容的合并处理时,首先找出pdf或图片中的表格单元格坐标和文本的中心点坐标,并根据pdf或图片中的表格单元格坐标和文本的中心点坐标,将相关的文本内容映射到表格单元格中,这里的相关的文本内容是指中心点坐标在表格单元格坐标内,起初拿到的文本内容信息(文本内容信息是指文本和文本的坐标信息,中心点在用的时候可以用坐标计算)和坐标信息(表格单元格坐标)是分开的,之间没有映射关系,所以需要通过计算建立连接关系,如果一个表格单元格内有多个文本内容,则将这多个文本内容合并成一个,合并时根据文本内容的y轴坐标进行判断,将在同一行的文本内容用空格作为分隔符进行合并,在不同行的文本内容用换行符作为分隔符进行合并;
具体方式如下:首先根据文本内容的y轴坐标,将这个表格单元格中在同一行的文本内容分为一组,判断文本是否为同一行的具体方式如下:首先用文本框的y1、y2(y1:文本框左上角y轴坐标,y2:文本框右下角y轴坐标,优先用y1,在y1相同的情况下用y2),文本是一串文本字符,文本框就是定位这串文本的坐标。坐标从上到下排序,然后按顺序遍历排序后的文本信息,如果当前文本与上一个文本y轴重叠小于70%,则视为新行,否则表示当前文本与上一个文本在同一行,然后按组遍历这些文本内容,将这一组的文本内容用x1(x1为文本框左上角的x坐标)进行从左到右的排序处理,然后从左到右遍历这一组文本内容,判断当前文本内容与前一个文本内容在x轴的相隔距离,如果该相隔距离小于设定的阈值(比如20像素),则将这两个文本内容用空格作为分隔符进行合并;相隔距离大于阈值,则不做处理;最后将每组处理后的文本内容用换行符作为分隔符合并在一个Excel单元格内;
结构化处理时,将pdf和图片输出的[文本,坐标信息]转换为excel的结构模式,基于文本的坐标信息以及表格的坐标信息进行计算,将识别的pdf和图片的内容放到excel对应的行列中,并实现表头表体的对齐处理,计算方式如下:
a.首先从pdf和图片输出的所有[[文本,坐标信息]...]中找出最小的x坐标(min_x)和最大的x坐标(max_x);
b.然后使用文本框的坐标信息(x,y,h,w),对文本进行行分组处理,将文本分组处理得到rows组数据;进行行分组处理也是以文本的y轴坐标进行判断;
c.基于a、b步骤得到的rows、min_x和max_x生成一个rows行max_x-min_x 列的空白excel和rows行max_x-min_x列的全零数组,空白excel用来存文本,全零数组用来存坐标信息;
d.遍历步骤b中的每一组数据,再遍历这组中的每个文本,基于文本的x 坐标,将文本内容填入到对应的excel单元格;
e.遍历完所有组后,再从右往左遍历获取excel的每一列数据,判断当前列与前一列是否为同列数据,如果是,则将当前列的内容移动到前一列,当遍历完excel的所有列后,再删除excel中的所有空白列;
f.读取pdf和图片的信息获得文本信息和表格信息,所述文本信息为[文本内容,文本框坐标xy],所述表格信息包括表格左上角和右下角的坐标、表格行的左上角右下角坐标、表格单元格的左上角和右下角坐标;并根据pdf和图片给过来的表格坐标信息以及excel的行坐标信息,计算出需要合并的行,首先这里有两份坐标信息,分别是pdf给的表格行坐标信息和文本转excel时对应的坐标数组,遍历pdf表格行坐标找出包含在pdf行坐标内 (pdf_y1<=excel_y1<=pdf_y2,pdf_y1<=excel_y2<=pdf_y2)的excel行索引,进行行级别的合并,并删除空白行;
跨页表格合并处理时,将pdf上一页最后一行的数据与pdf下一页第一行的数据进行对比,计算pdf上一页最后一行与pdf下一页第一行的非空的单元格比例,若pdf上一页最后一行与pdf下一页第一行的非空比大于60%,非空比的计算方式为:首先获取pdf上一页的最后一行数据并算出非空文本的个数(假设为a),然后获取pdf下一页第一行的数据并计算出非空文本的个数(假设为 b),则非空比=b/a,表明是两条数据,不能合并。
本实施例中,步骤b中,判断两个文本是否在同一行的条件为:两个文本在y轴方向重叠长度大于70%;
假设有两个文本A(a_y1,a_y2)和B(b_y1,b_y2),a_y1,a_y2为文本A的上端y轴坐标和下端y轴坐标;b_y1,b_y2为文本B的上端y轴坐标和下端y轴坐标;
步骤e中,判断当前列与前一列是否为同列的条件为:文本是右对齐或者中间对齐,且当前列和前一列在x轴的重叠长度大于70%。判断x轴的重叠长度的方法如下:首先获取这两列的文本数据和坐标数组,根据坐标数组分别获取这两列非空的行索引(单个文本框的坐标数组为[x,y,w,h],如果x+y+w+h=0,表示这个单元格无文本),假设获取到的非空数组分别为
A=[[x,y,w,h],[x,y,w,h]]=[[10,30,20,9],[10,40,50,9]...]
B=[[x,y,w,h],[x,y,w,h]]=[[15,30,20,9],[15,40,50,9]...]
首先根据A计算出这一列x最小值(a_x_min)和x最大值(a_x_max)
首先根据B计算出这一列x最小值(b_x_min)和x最大值(b_x_max)
本实施例中,步骤S3中,对结构化后的文件的内容进行目标内容抽取具体为:制定目标内容对应的目标关键词,将目标关键词集合成关键词词库,并基于语义分析将目标内容进行标准化处理,标准化处理后的目标内容与关键词词库中的关键词对应,在结构化后的文件的内容中通过搜索关键词找到对应的目标内容。
最后应说明的是:本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等统计数的范围之内,则本发明也意图包含这些改动和变型。
Claims (9)
1.一种单证的文本结构化与抽取方法,其特征在于,包括如下步骤:
S1、获取文件并识别文件内容;
S2、对识别的文件内容进行结构化处理:将识别的文件内容整理成统一格式;
S3、对结构化后的文件内容进行目标内容抽取,得到需要的单证内容。
2.根据权利要求1所述的一种单证的文本结构化与抽取方法,其特征在于,所述文件的格式包括Excel、pdf、word以及图片。
3.根据权利要求2所述的一种单证的文本结构化与抽取方法,其特征在于,步骤S1中,通过OCR技术对图片进行识别,通过python的docx库读取word文件,通过python的pandas库读取Excel文件,通过python的pdfplumber库读取pdf文件。
4.根据权利要求2所述的一种单证的文本结构化与抽取方法,其特征在于,步骤S2中,对Excel进行结构化处理包括:
合并单元格的处理:当表头是合并单元格,且该表头对应的表体占据多列时,需要将多列表体合并到一列;
同一条数据占据多行的处理:对于本是同一条数据却占据了excel的多行,基于文件内容的布局信息进行分析归类,将同一条数据合并成一行;
多列的表头、表体数据在一个单元格的处理:基于分隔符将表头、表体的内容分割开,并分析计算将该表头、表体拆分成多列并对齐;
表头、表体未对齐的处理:基于数据类型以及布局信息对表头表体进行对齐处理。
5.根据权利要求2所述的一种单证的文本结构化与抽取方法,其特征在于,对pdf和图片识别结果的结构化处理包括:
首先基于pdf和图片识别结果的预处理如下:
分页合并处理:当pdf有多页时,若pdf含有图片,首先需要将pdf的非图片内容与图片的识别内容进行合并,其次将与图片合并后的具有多页的pdf集合并成一个结果集,然后再计算修改结果集中的坐标信息;
跨行/列内容的合并处理:基于pdf和/或图片中的表格单元格信息,计算查找出在同一表格单元格的多条文本数据,进行行/列上的合并处理;
将预处理后的格式为[文本,坐标信息]的输出结果转换为excel的结构模式;
结构化处理:基于文本的坐标信息以及表格的坐标信息进行计算,将识别的pdf和图片的内容放到excel对应的行列中,并实现表头、表体的对齐处理;
跨页表格合并处理:基于分页处表格的线条信息以及单元格是否封闭判断分页处的内容是否需要做合并处理。
6.根据权利要求4所述的一种单证的文本结构化与抽取方法,其特征在于,在合并单元格的处理时,获取Excel中的文本、文本所在行/列信息以及合并单元格信息,文本包括表头和表体;
通过合并单元格信息首先判断表头所在的列数,然后从表头的下一行开始按行遍历并获取对应的表体数据,判断每一行中该表头所在列对应的表体是否有超过一个非空单元格,如果有,就表示该表体多列,将该表头所在列对应的表体中位于非首列的表体合并至首列表体的单元格中;
同一条数据占据多行的处理时,判断上一行表体与下一行表体之间的空单元格有几行,并将空单元格与上一行表体的单元格进行合并;
多列的表头、表体数据在一个单元格的处理时,若原始资料存在本是多列的表头和表体的内容却合并在一个单元格时,此时每一行的非空单元格数量为1,分析计算将表头表体拆分成多列并对齐,步骤如下:首先根据关键词确定表格的开始位置和结束位置,并抽取出表格的内容;然后按行遍历获取每一行的非空单元格文本内容,该文本内容包含多个用空格隔开的词/句;用空格对该文本内容进行分割处理,得到每行分割后的列表;然后按列从左往右基于规则查找每一个表头对应的表体内容,接下来顺序往右按规则给每个表头分配表体内容;
表头表体未对齐的处理时,若资料存在表头和表体内容不在同一列,或部分表体内容不在同一列时,基于数据类型以及布局信息对表头、表体进行对齐处理:首先获取当前列表头到下一列表头之间的所有列内容,所述列内容包括表头和表体内容,计算得到没有表头对应的表体内容:遍历每列单元格,若有单元格的表体内容所对应的表头为空,则表明该表体内容在没有表头的列,然后将没有表头对应的表体内容移动合并到前一个有表头对应的列中。
7.根据权利要求5所述的一种单证的文本结构化与抽取方法,其特征在于,分页合并处理时,当pdf有多页时,若pdf含有图片,将pdf含有图片的那一页转换成图片格式得到原图片,然后使用文本检测算法,定位原图片中的每一个文本行,得到原图片对应的文本框的左上角xy和右下角xy,然后将每一个文本框从原图片中剪切出来,进行文字识别,得到其中的文本内容;最后将文本内容和该文本内容对应的坐标信息进行组装,得到格式为[文本,x,y,w,h]的文本信息,[x,y,w,h]为文本对应的坐标信息,x、y是文本框的左上角坐标点的坐标值;w、h是文本框的宽和高;
跨行/列内容的合并处理时,首先找出pdf或图片中的表格单元格坐标和文本的中心点坐标,并根据pdf或图片中的表格单元格坐标和文本的中心点坐标,将相关的文本内容映射到表格单元格中,如果一个表格单元格内有多个文本内容,则将这多个文本内容合并成一个,合并时根据文本内容的y轴坐标进行判断,将在同一行的文本内容用空格作为分隔符进行合并,在不同行的文本内容用换行符作为分隔符进行合并;
结构化处理时,将pdf和图片输出格式为[文本,坐标信息]的文本信息转换为excel的结构模式,基于文本的坐标信息以及表格的坐标信息进行计算,将识别的pdf和图片的内容放到excel对应的行列中,并实现表头表体的对齐处理,计算方式如下:
a.首先从pdf和图片输出的所有[[文本,坐标信息]...]中找出最小的x坐标(min_x)和最大的x坐标(max_x);
b.然后使用文本框的坐标信息,对文本进行行分组处理,将文本分组处理得到rows组数据;
c.基于a、b步骤得到的rows、min_x和max_x生成一个rows行max_x-min_x列的空白excel和rows行max_x-min_x列的全零数组,空白excel用来存文本,全零数组用来存坐标信息;
d.遍历步骤b中的每一组数据,再遍历这组中的每个文本,基于文本的x坐标,将文本内容填入到对应的excel单元格、将坐标信息填入到坐标数组的对应位置;
e.遍历完所有组后,再从右往左遍历获取excel的每一列数据,判断当前列与前一列是否为同列数据,如果是,则将当前列的内容移动到前一列,当遍历完excel的所有列后,再删除excel中的所有空白列和坐标数组中的对应列,始终保持excel和坐标数组的形状一致;
f.读取pdf和图片的信息获得文本信息和表格信息,所述文本信息为[文本,x,y,h,w],所述表格信息包括表格左上角和右下角的坐标、表格行的左上角右下角坐标、表格单元格的左上角和右下角坐标;并根据pdf和图片给过来的表格坐标信息以及excel的行坐标信息,计算出需要合并的行,进行行级别的合并,并删除空白行;
跨页表格合并处理时,将pdf上一页最后一行的数据与pdf下一页第一行的数据进行对比,计算pdf上一页最后一行与pdf下一页第一行的非空的单元格比例,若pdf上一页最后一行与pdf下一页第一行的非空比大于60%,表明是两条数据,不能合并。
8.根据权利要求7所述的一种单证的文本结构化与抽取方法,其特征在于,步骤b中,判断两个文本是否在同一行的条件为:两个文本在y轴方向重叠长度大于70%;步骤e中,判断当前列与前一列是否为同列的条件为:文本是右对齐或者中间对齐,且当前列和前一列在x轴的重叠长度大于70%。
9.根据权利要求7所述的一种单证的文本结构化与抽取方法,其特征在于,步骤S3中,对结构化后的文件的内容进行目标内容抽取具体为:制定目标内容对应的目标关键词,将目标关键词集合成关键词词库,并基于语义分析将目标内容进行标准化处理,标准化处理后的目标内容与关键词词库中的关键词对应,在结构化后的文件的内容中通过搜索关键词找到对应的目标内容。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110974974.XA CN113962201A (zh) | 2021-08-24 | 2021-08-24 | 一种单证的文本结构化与抽取方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110974974.XA CN113962201A (zh) | 2021-08-24 | 2021-08-24 | 一种单证的文本结构化与抽取方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113962201A true CN113962201A (zh) | 2022-01-21 |
Family
ID=79460533
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110974974.XA Pending CN113962201A (zh) | 2021-08-24 | 2021-08-24 | 一种单证的文本结构化与抽取方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113962201A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115273111A (zh) * | 2022-06-27 | 2022-11-01 | 北京互时科技股份有限公司 | 一种无模板识别图纸材料表的装置 |
CN116226172A (zh) * | 2023-05-08 | 2023-06-06 | 深圳市新国都数字科技有限公司 | 统计分析文件解析方法、装置及存储介质 |
CN117764033A (zh) * | 2024-02-22 | 2024-03-26 | 恒丰银行股份有限公司 | 一种企业财报智能识别方法、系统、设备及存储介质 |
-
2021
- 2021-08-24 CN CN202110974974.XA patent/CN113962201A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115273111A (zh) * | 2022-06-27 | 2022-11-01 | 北京互时科技股份有限公司 | 一种无模板识别图纸材料表的装置 |
CN116226172A (zh) * | 2023-05-08 | 2023-06-06 | 深圳市新国都数字科技有限公司 | 统计分析文件解析方法、装置及存储介质 |
CN117764033A (zh) * | 2024-02-22 | 2024-03-26 | 恒丰银行股份有限公司 | 一种企业财报智能识别方法、系统、设备及存储介质 |
CN117764033B (zh) * | 2024-02-22 | 2024-07-12 | 恒丰银行股份有限公司 | 一种企业财报智能识别方法、系统、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113962201A (zh) | 一种单证的文本结构化与抽取方法 | |
US5164899A (en) | Method and apparatus for computer understanding and manipulation of minimally formatted text documents | |
Shafait et al. | Table detection in heterogeneous documents | |
US5956422A (en) | Processor based method for extracting tablets from printed documents | |
US7310773B2 (en) | Removal of extraneous text from electronic documents | |
Perez-Arriaga et al. | TAO: system for table detection and extraction from PDF documents | |
Tupaj et al. | Extracting tabular information from text files | |
CN111090990B (zh) | 一种医疗体检报告单文字识别及纠正方法 | |
CN106709032A (zh) | 抽取电子表格文档中结构化信息的方法及装置 | |
JPH05307638A (ja) | ビットマップ・イメージ・ドキュメントのコード化データへの変換方法 | |
CN110704570A (zh) | 一种连续页版式文档结构化信息提取方法 | |
CN112395418B (zh) | 网页中的目标对象提取方法、装置、电子设备 | |
Colter et al. | Tablext: A combined neural network and heuristic based table extractor | |
CN113761202A (zh) | 一种将非结构金融Excel表格映射到数据库的优化系统 | |
CN107590448A (zh) | 从文献中自动获取qtl数据的方法 | |
Nagy et al. | Table headers: An entrance to the data mine | |
Baker et al. | Comparing approaches to mathematical document analysis from PDF | |
Saitoh et al. | Document image segmentation and layout analysis | |
He et al. | Bar charts detection and analysis in biomedical literature of PubMed Central | |
US11823477B1 (en) | Method and system for extracting data from tables within regulatory content | |
Kamola et al. | Image-based logical document structure recognition | |
CN113779218B (zh) | 问答对构建方法、装置、计算机设备和存储介质 | |
Giguet et al. | Daniel at the FinSBD-2 task: Extracting Lists and Sentences from PDF Documents: a model-driven end-to-end approach to PDF document analysis | |
CN113642291B (zh) | 上市公司报告的逻辑结构树构建方法、系统、存储介质及终端 | |
JPH11232439A (ja) | 文書画像構造解析方法 |
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 |