CN116580414A - 基于icr字符矩阵的合同文档差异性检测方法和装置 - Google Patents
基于icr字符矩阵的合同文档差异性检测方法和装置 Download PDFInfo
- Publication number
- CN116580414A CN116580414A CN202310528742.0A CN202310528742A CN116580414A CN 116580414 A CN116580414 A CN 116580414A CN 202310528742 A CN202310528742 A CN 202310528742A CN 116580414 A CN116580414 A CN 116580414A
- Authority
- CN
- China
- Prior art keywords
- text
- page
- header
- contract
- footer
- 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
- 239000011159 matrix material Substances 0.000 title claims abstract description 41
- 238000001514 detection method Methods 0.000 title claims abstract description 28
- 238000005516 engineering process Methods 0.000 claims abstract description 7
- 238000000034 method Methods 0.000 claims description 47
- 238000012552 review Methods 0.000 claims description 6
- 238000012545 processing Methods 0.000 claims description 5
- 238000012163 sequencing technique Methods 0.000 claims description 5
- 238000007689 inspection Methods 0.000 claims description 4
- 230000009191 jumping Effects 0.000 claims description 4
- 238000010606 normalization Methods 0.000 claims description 4
- 238000011425 standardization method Methods 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 5
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000011835 investigation Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 101150035983 str1 gene Proteins 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/40—Document-oriented image-based pattern recognition
- G06V30/41—Analysis of document content
- G06V30/412—Layout analysis of documents structured with printed lines or input boxes, e.g. business forms or tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/10—Character recognition
- G06V30/14—Image acquisition
- G06V30/148—Segmentation of character regions
- G06V30/153—Segmentation of character regions using recognition of characters or words
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/40—Document-oriented image-based pattern recognition
- G06V30/41—Analysis of document content
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/40—Document-oriented image-based pattern recognition
- G06V30/42—Document-oriented image-based pattern recognition based on the type of document
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Theoretical Computer Science (AREA)
- Artificial Intelligence (AREA)
- Character Input (AREA)
Abstract
本申请涉及一种基于ICR字符矩阵的合同文档差异性检测方法和装置。基于ICR字符矩阵的合同文档差异性检测方法包括以下步骤:利用ICR技术提取原合同文档与比较合同文档的文本数据;将合同文档分割成页眉、正文、页脚和表格文本四部分,分别拼接成长字符串;利用一种二段式差异检测算法依次从正文和表格文本中查询差异点,生成文本比对结果,返回差异点类型、相关字符串与相关字符的位置信息。与现有的文档比对工具相比,本发明可对扫描件甚至照片形式的合同电子版文件进行差异性检测;在设计比对规则时考虑了合同具有页眉、页脚和表格等结构文本的特性,忽略不影响语义的如文本换行、换页等差别,从而能够反馈符合人期待的差异比对结果。
Description
技术领域
本申请涉及自然语言处理技术领域,具体而言,涉及一种基于ICR字符矩阵的合同文档差异性检测方法和装置。
背景技术
商业往来中经常需要进行合同审查,即比较两份合同的文本差异。人工核查费时费力且容易出现疏漏,在电子化办公的时代,业务人员可利用文档工具软件完成此工作。这些文档工具可以识别并忽略合同可能包含的页眉和页脚,分别处理表格和正文。然而,它们通常不能处理合同的扫描件等图片型PDF文档;它们的比对方法通常为逐行比对,无法忽略合同中对语义无影响的差异,例如表格内一行文本被分成多行,或增加或删除文本导致当前行末尾缺少文本或增加了下一行的部分文本,造成反馈结果中的差异点数量多于真实值。
发明内容
本申请的目的是提供一种基于ICR字符矩阵的合同文档差异性检测方法和装置,用以提供更符合人预期的合同差异检测结果。
为了实现上述目的,第一方面,本发明提供了一种基于ICR字符矩阵的合同文档差异性检测方法,包括以下步骤:
S1,将原合同和比较合同的PDF文件转换为图片,利用ICR技术从图片中取得合同的文本数据,文本数据提供的信息包括合同文本、合同文本的字符的位置信息、合同文本所属单元格的位置信息;
S2,利用基于规则的版式识别方法,将文本数据拆分成页眉、正文、页脚和表格文本四部分,分别按序拼接为长字符串,表格文本的一个单元格拼接为一行,其余部分一个文本框为一行;
S3,检测原文档与比较文档之间的差异,利用二步式差异点查询算法依次从正文和表格文本中查询差异点,生成文本比对结果。
在可选的实施方式中,所述步骤S2中,基于规则的版式识别方法包括:
S21,根据是否存在所属单元格将文本数据划分成表格文本数据和非表格文本数据;
S22,利用基于规则的纵坐标标准化方法,取得非表格文本每一个文本框的标准纵坐标,并根据文本框的横坐标和标准纵坐标自左而右、自上而下排序;
S23,利用基于规则的页眉识别算法,识别非表格文本数据中的页眉;
S24,利用基于规则的页脚识别算法,识别非表格文本数据中的页脚;
S25,根据页眉和页脚的识别结果,将非表格文本数据进一步划分成页眉、正文和页脚三部分。
在可选的实施方式中,所述步骤S22中,基于规则的纵坐标标准化方法包括以下步骤:
S221,初始化行索引字典,默认一个文本框为一行,因此字典元素数量为当前页的文本数,键名i代表第i个文本框,键值为包含元素i的列表;
S222,顺序遍历当前页的每一个文本框,对文本框i,顺序遍历其后的文本框,若文本框j和i在y轴上的重叠度大于阈值,则在索引字典中将i的键值合并至j移除i后跳出循环;
若文本框j和i在y轴上的重叠度小于等于阈值时不做操作,继续考察文本框i和文本框j+1,如果j已是最后一个文本框,再考察文本框i和i+1;
S223,遍历行索引字典,对字典中每一个元素i,若键值列表中的文本框索引数量大于1,则计算这些文本框的初始y值的平均值并标记为标准y值,否则该文本框的标准y值为初始y值。
在可选的实施方式中,所述步骤S23中,基于规则的页眉识别算法包括以下步骤:
S231,初始化页眉索引字典,该字典用于记录每页待考察行的首个文本框的索引,初始值为0;
S232,根据页眉索引字典和文本框的标准纵坐标,每页取得一行文本框,若某页已完成对文本框的遍历,则执行步骤S235,否则提取并拼接文本框内文本并将页码替换为X;
S233,利用基于规则的判断方法,判断待考察行是否包含页眉,若是,则执行S232,否则执行S234;
S234,利用基于规则的考察文本补齐方法,修正待考察行,利用基于规则的判断方法判断待考察行是否包含页眉,若是,则执行S232,否则执行S235;
S235,输出页眉索引字典,字典记录了每页首个属于正文的文本框的索引。
在可选的实施方式中,所述步骤S24中,基于规则的页脚识别算法包括以下步骤:
S241,初始化页脚索引字典,该字典用于记录每页待考察行的首个文本框的倒序索引,初始值为-1;
S242,根据页脚索引字典和文本框的标准纵坐标,每页取得一行文本框,若某页已完成对文本框的遍历,则执行步骤S244,否则提取并拼接文本框内文本并将页码替换为X;
S243,利用基于规则的判断方法,判断待考察行是否包含页脚,若是,则执行S242,否则执行S244;
S244,输出页脚索引字典,字典记录了每页最后一个属于正文的文本框的倒序索引。
在可选的实施方式中,所述步骤S234中,基于规则的考察文本补齐方法包括:
统计各页待考察文本长度,记第i页待考察文本的非空格字符数为ni,下一行非空格字符数为n′i,ni最大值为nmax;
遍历每一页,若ni+n′i<nmax-2,则提取第i页下一行的框内文本并拼接至当前考察文本之后。
在可选的实施方式中,所述步骤S233及步骤S243中,基于规则的判断方法包括:
利用Levenstein算法计算第i页与第j页的考察文本相似度sim(i,j),若sim(i,j)的最小值大于0.8,则遍历每一页,若当前考察的是页眉,则页眉索引字典第i页的键值更新为考察文本框索引最大值+1;若当前考察的是页脚,则页脚索引字典第i页的键值更新为考察文本框倒序索引最小值-1,反馈判定结果为包含页眉或页脚,否则执行以下操作;
遍历每一页,若sim(i,j)(i,j≠i')的最小值大于0.8,则遍历除i'以外的每一页,若当前考察的是页眉,则页眉索引字典第i页的键值更新为考察文本框索引最大值+1,若当前考察的是页脚,则页脚索引字典第i页的键值更新为考察文本框倒序索引最小值-1,反馈判定结果为包含页眉或页脚,否则反馈判定结果为不包含页眉或页脚。
在可选的实施方式中,所述步骤S3中,所述二步式差异点查询算法包括以下步骤:
S31,利用基于动态规划的最小编辑距离算法,取得以行为单位的文本最小编辑矩阵;
S32,根据最小编辑矩阵,取得最小编辑路径;
S33,判断考察的文本是否为正文,若是,则通过差异点合并算法合并路径中连续的差异点;否则,不做处理;
S34,遍历最小编辑路径,对每一个差异点,若操作为添加或删除,则判定查询到一个添加或删除差异点,记录该查询结果,若操作为替换,则执行字符级差异点检索;完成遍历后,查询算法结束;
所述字符级差异点检索包括以下步骤:
S341,利用Levenstein算法计算需被替换的字符串之间的相似度,若相似度小于等于给定阈值,则判定查询到一个替换差异点,记录该查询结果;否则执行S342;
S342,利用基于动态规划的最小编辑距离算法,取得以字符为单位的最小编辑距离矩阵;
S343,根据最小编辑距离矩阵,取得最小编辑路径;
S344,通过差异点合并算法合并路径中连续的差异点;
S345,编辑最小编辑路径,对每一个差异点,根据操作为添加、删除或替换,判定查询到一个添加、删除或替换差异点,记录该查询结果,完成遍历后,结束字符级差异点检索。
在可选的实施方式中,所述步骤S33及步骤S344中,所述差异点合并算法包括:
遍历编辑路径,若路径点i至j的类型均不为“相同”,则合并路径点i至j为一个差异点,统计路径点i至j的类型数ntype,若ntype>1,则差异点类型为“修改”,否则差异点类型与路径点i至j的类型相同;
所述步骤S345中,所述查询结果记录的信息包括:
差异点的类型;差异点相关文本;位于原文档或比较文档的页码范围;若差异点类型为添加,则原文档的相关文本和页码均为空;若差异点类型为删除,则比较文档的相关文本和页码均为空;若需要可视化处理差异检测结果,还应提供相关文本的字符的四点坐标,并在反馈比较结果时提供经过预处理、输入至ICR模型的合同图片。
第二方面,本发明还提供了一种基于ICR字符矩阵的合同文档差异性检测装置,包括存储器以及与所述存储器连接的处理器,所述处理器被配置成执行上述基于ICR字符矩阵的合同文档差异性检测方法。
通过本发明中的基于ICR字符矩阵的合同文档差异性检测方法和装置,利用ICR技术提取文本信息,因此允许读取的合同为扫描件甚至照片。
比对规则的设计针对合同文档具有页眉页脚和表格等结构文本的特性并考虑了人通常对差异点的理解,使本发明具备忽略不影响合同语义的差异的能力,能反馈符合人的预期的差异统计结果。
本申请的其他特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本发明基于ICR字符矩阵的合同文档差异性检测方法的流程图;
图2为本申请实施例提供的读入文本数据的文本框示意图;
图3为本申请实施例提供的读入文本数据的单元格示意图;
图4为本申请实施例提供的读入文本数据的字符坐标示意图;
图5为本申请实施例提供的一种基于ICR字符矩阵的合同文档差异性检测装置的模块框图;
图6为本申请中判断文本框是否为一行时的示意图;
图7为本申请中计算文本框i和j的重叠度的示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。
在本申请的描述中,需要说明的是,术语“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,或者是该申请产品使用时惯常摆放的方位或位置关系,仅是为了便于描述本申请和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本申请的限制。此外,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
在本申请的描述中,还需要说明的是,除非另有明确的规定和限定,术语“设置”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本申请中的具体含义。
本申请中的基于ICR字符矩阵的合同文档差异性检测方法,具体为合同的文档比对方法,流程图如图1所示,本实施例不对原文档和比较文档的页眉和页脚进行比较,因此在差异点检测环节只分别比较两份文档的单元格内文本与正文部分。
在需要进行文档比对的业务中,通常不需要将因为种种原因导致的文本换页标记为差异,因此尽管不涉及页眉、页脚的比较,本实施例仍需识别页眉和页脚并将它们从正文中移除。另外,表格位置变化,如从某段文本上方移动至下方同样不需要反馈差异,因此本申请将正文和单元格内文本分开,分别进行比对。
主要流程包括以下步骤:
S1,取得PDF文件的文本及其他文档比对所需信息。已有的PDF解析工具可提取可编辑PDF中的文本及坐标信息,但无法提取扫描文档等不可编辑PDF文件中的所需信息。为确保能从文档中提取相关信息,本申请采用了ICR技术。首先,将原合同和比较合同的PDF文件转换为图片,然后利用ICR技术从图片中取得合同的文本数据,文本数据提供的信息包括合同文本、合同文本的字符的位置信息、合同文本所属单元格的位置信息;
具体地,本申请实施例采用ICR模型取得文本数据,ICR模型具有表格检测和字符检测功能,可提供文本框位置坐标、字符坐标和单元格坐标。图2示出了ICR模型对一页合同的文本提取结果,一个红色矩形框为一个文本框。图3示出了ICR模型的表格检测能力,该能力可提供单元格与文本框的包含关系,ICR模型还提供了经过倾斜矫正等预处理的合同图片,图片与字符顶点坐标的关系参考图4。
S2,利用基于规则的版式识别方法,将文本数据拆分成页眉、正文、页脚和表格文本四部分,分别按序拼接为长字符串,表格文本的一个单元格拼接为一行,其余部分一个文本框为一行。
在一个实施例中,所述步骤S2中,基于规则的版式识别方法包括:
S21,根据是否存在所属单元格将文本数据划分成表格文本数据和非表格文本数据;
S22,文本框排序。ICR模型通常会将一行文本识别进一个文本框内,但文本间存在较大空隙时,一行文本可能被拆分进多个文本框中,且这些文本框的纵坐标不一定相等,因此在排序前需要对文本框的纵坐标进行标准化处理。本申请利用基于规则的纵坐标标准化方法,取得非表格文本每一个文本框的标准纵坐标,并根据文本框的横坐标和标准纵坐标自左而右、自上而下排序;
S23,利用基于规则的页眉识别算法,识别非表格文本数据中的页眉;
S24,利用基于规则的页脚识别算法,识别非表格文本数据中的页脚;
S25,根据页眉和页脚的识别结果,将非表格文本数据进一步划分成页眉、正文和页脚三部分。
在一个实施例中,所述步骤S22中,基于规则的纵坐标标准化方法包括以下步骤:
S221,初始化行索引字典,默认一个文本框为一行,因此字典元素数量为当前页的文本数,键名i代表第i个文本框,键值为包含元素i的列表;
S222,顺序遍历当前页的每一个文本框,对文本框i,顺序遍历其后的文本框,若文本框j和i在y轴上的重叠度大于0.6,则在索引字典中将i的键值合并至j移除i后跳出循环;
若文本框j和i在y轴上的重叠度小于等于0.6时不做操作,继续考察文本框i和文本框j+1,如果j已是最后一个文本框,再考察文本框i和i+1。
索引字典的作用是将一行的文本框归类在一起,OCR通常会将一行文本放在一个文本框中,但在文本之间存在较大空隙时会被划分至两个文本框中,参见图6所示。
初始认为每一个文本框为一行,因此索引字典的初始状态为:{1:[1],2:[2],3:[3],4:[4]},因为2和3在同一行,所以希望把它们归类到同一个列表内。
既然要判断文本框是否属于同一行,必然会涉及两个文本框,其中一个文本框标记为i,另一个标记为j。以图6为例,当i等于1时,顺序遍历1之后的2、3、4文本框。在i=2时,发现文本框2和3的重叠度大于0.6,将字典中2的键值([2])合并至3的键值([3])中,成为[3,2],表示文本框2和3属于同一行,并移除索引字典的2,此时索引字典被修改为{1:[1],3:[3,2],4:[4]}。
具体地,在本实施例中,文本框i和j的重叠度定义为:
其中,iy为文本框i的纵坐标,ih为文本框i的高度;
jy为文本框j的纵坐标,jh为文本框j的高度。
max(x,y)指内部参数取大值,若x>=y,则max(x,y)=x,否则max(x,y)=y。
min(x,y)指内部参数取小值,若x>=y,则min(x,y)=y,否则max(x,y)=x。该公式用于计算文本框i和j的重叠度,如图7所示。
S223,遍历行索引字典,对字典中每一个元素i,若键值列表中的文本框索引数量大于1,则计算这些文本框的初始y值的平均值并标记为标准y值,否则该文本框的标准y值为初始y值。
在一个实施例中,所述步骤S23中,基于规则的页眉识别算法包括以下步骤:
S231,初始化页眉索引字典,该字典用于记录每页待考察行的首个文本框的索引,初始值为0;
S232,根据页眉索引字典和文本框的标准纵坐标,每页取得一行文本框,若某页已完成对文本框的遍历,则执行步骤S235,否则提取并拼接文本框内文本并将页码替换为X,从而避免每页均不相同的页码影响文本相似度的计算;
S233,利用基于规则的判断方法,判断待考察行是否包含页眉,若是,则执行S232,否则执行S234;
S234,利用基于规则的考察文本补齐方法,修正待考察行,利用基于规则的判断方法判断待考察行是否包含页眉,若是,则执行S232,否则执行S235;
S235,输出页眉索引字典,字典记录了每页首个属于正文的文本框的索引。
在一个实施例中,所述步骤S24中,基于规则的页脚识别算法包括以下步骤:
S241,初始化页脚索引字典,该字典用于记录每页待考察行的首个文本框的倒序索引,初始值为-1;
S242,根据页脚索引字典和文本框的标准纵坐标,每页取得一行文本框,若某页已完成对文本框的遍历,则执行步骤S244,否则提取并拼接文本框内文本并将页码替换为X,从而避免每页均不相同的页码影响文本相似度的计算;
S243,利用基于规则的判断方法,判断待考察行是否包含页脚,若是,则执行S242,否则执行S244;
S244,输出页脚索引字典,字典记录了每页最后一个属于正文的文本框的倒序索引。
在一个实施例中,所述步骤S234中,基于规则的考察文本补齐方法包括:
统计各页待考察文本长度,记第i页待考察文本的非空格字符数为ni,下一行非空格字符数为n′i,ni最大值为nmax;
遍历每一页,若ni+n′i<nmax-2,则提取第i页下一行的框内文本并拼接至当前考察文本之后。
在一个实施例中,所述步骤S233及步骤S243中,基于规则的判断方法包括:
利用Levenstein算法计算第i页与第j页的考察文本相似度sim(i,j),若sim(i,j)的最小值大于0.8,则遍历每一页,若当前考察的是页眉,则页眉索引字典第i页的键值更新为考察文本框索引最大值+1;若当前考察的是页脚,则页脚索引字典第i页的键值更新为考察文本框倒序索引最小值-1,反馈判定结果为包含页眉或页脚,否则执行以下操作;
遍历每一页,若sim(i,j)(i,j≠i')的最小值大于0.8,则遍历除i'以外的每一页,若当前考察的是页眉,则页眉索引字典第i页的键值更新为考察文本框索引最大值+1,若当前考察的是页脚,则页脚索引字典第i页的键值更新为考察文本框倒序索引最小值-1,反馈判定结果为包含页眉或页脚,否则反馈判定结果为不包含页眉或页脚。
sim(i,j)(i,j≠i')中后面的括号是限定条件,这里考察的是一系列sim(i,j)的最小值,但涉及i'的不在考察范围里,所以i和j均不应等于i'。
S3,检测原文档与比较文档之间的差异。为减少文档比对所需时间和内存开销,本申请采用二步式差异点查询算法依次从正文和表格文本中查询差异点,生成文本比对结果。
在一个实施例中,所述步骤S3中,所述二步式差异点查询算法包括以下步骤:
S31,利用基于动态规划的最小编辑距离算法,取得以行为单位的文本最小编辑矩阵,此处将正文中一个文本框称为一行、表格的一个单元格内文本称为一行,页眉、页脚与正文相同;
S32,根据最小编辑矩阵,取得最小编辑路径;
S33,判断考察的文本是否为正文,若是,则通过差异点合并算法合并路径中连续的差异点;否则,不做处理;
S34,遍历最小编辑路径,对每一个差异点,若操作为添加或删除,则判定查询到一个添加或删除差异点,记录该查询结果,若操作为替换,则执行字符级差异点检索;完成遍历后,查询算法结束。
本实施例中,所述字符级差异点检索包括以下步骤:
S341,由于在文档比对的相关业务中,业务人员不关心两个毫无关联的段落之间可能存在的相同文本。因此首先计算该差异点的原文档、比较文档字符串之间的相似度,若相似度小于等于阈值,则判定查询到一个替换差异点并记录该查询结果,否则执行S342对差异点进行更为精确的定位。
具体地,利用Levenstein算法计算需被替换的字符串之间的相似度,若相似度小于等于0.5,则判定查询到一个替换差异点,记录该查询结果;否则执行S342;
S342,利用基于动态规划的最小编辑距离算法,取得以字符为单位的最小编辑距离矩阵;
S343,根据最小编辑距离矩阵,取得最小编辑路径;
S344,通过差异点合并算法合并路径中连续的差异点;
S345,编辑最小编辑路径,对每一个差异点,根据操作为添加、删除或替换,判定查询到一个添加、删除或替换差异点,记录该查询结果,完成遍历后,结束字符级差异点检索。
所述步骤S33及步骤S344中,差异点合并算法包括:
遍历编辑路径,若路径点i至j的类型均不为“相同”,则合并路径点i至j为一个差异点,统计路径点i至j的类型数ntype,若ntype>1,则差异点类型为“修改”,否则差异点类型与路径点i至j的类型相同。
具体地,合同两行文本替换成一行通常被认为是一处差异,然而根据编辑路径的定义,它是一处替换差异和一处删除差异。但连续的单元格内差异不会被认为是同一处差异,因此所述差异查询算法不合并表格文本的行级差异点。
在一个实施例中,所述步骤S345中,所述查询结果记录的信息包括:差异点的类型;差异点相关文本;位于原文档或比较文档的页码范围;若差异点类型为添加,则原文档的相关文本和页码均为空;若差异点类型为删除,则比较文档的相关文本和页码均为空;若需要可视化处理差异检测结果,还应提供相关文本的字符的四点坐标,并在反馈比较结果时提供经过预处理、输入至ICR模型的合同图片。
通过最小编辑路径查询将原文档修改为比较文档的最小修改方案,因此需要用基于动态规划的最小编辑距离算法取得最小编辑矩阵,利用矩阵取得该路径。
动态规划的最小编剧距离算法中,动态规划的核心思想是将问题分解为规模更小、且相互之间具有联系的若干子问题,并用一个表记录子问题的解,避免重复计算,从而大幅缩短求最优解所需要的时间。本申请采用这一算法的目的除了节省时间外,还需要取得记录子问题解的表格,即文中的最小编辑矩阵,利用该矩阵可以求得最小编辑路径。
随着文档长度的增加,基于动态规划的最小编辑距离算法所需时间和内存开销呈几何增长,比较两份文档的差异需要相当长的时间和内存。二步式差异点查询算法的核心思想是先定位差异点所在行,再在这个范围里进一步定位差异点涉及的字符,从而避免构造超大规模的矩阵。
假设两份文档11行,每行10个字符,用传统的最小编辑距离算法需要构造110*110的矩阵,时间、内存的消耗均为110*110个单位。以行为单位则所需的时间、内存均只有11*11个单位,如果差异点只存在于其中一行的话,只需要再构造一个10*10的矩阵即可,即便只有中间一行是相同的,构造两个50*50的矩阵所需时间、内存也远小于110*110。通常进行比对的两份文档不会出现成片的差异,因此该方法可极大程度地减少时间和内存的消耗。
Levenstein算法计算需被替换的字符串之间的相似度时,包括Levenstein.ratio(str1,str2),计算公式包括:
r=(sum-ldist)/sum,其中sum是指str1和str2字符串的长度总和,ldist是类编辑距离。
其中,类编辑距离删除、插入+1,但是替换+2。
图5提供了一种基于ICR字符矩阵的合同文档差异性检测装置的模块框图。该装置包括:
存储器201,及与所述存储器201连接的处理器202。
所述处理器201被配置成执行以下方法步骤:
S1,将原合同和比较合同的PDF文件转换为图片,利用ICR技术从图片中取得合同的文本数据,文本数据提供的信息包括合同文本、合同文本的字符的位置信息、合同文本所属单元格的位置信息;
S2,利用基于规则的版式识别方法,将文本数据拆分成页眉、正文、页脚和表格文本四部分,分别按序拼接为长字符串,表格文本的一个单元格拼接为一行,其余部分一个文本框为一行;
S3,检测原文档与比较文档之间的差异,利用二步式差异点查询算法依次从正文和表格文本中查询差异点,生成文本比对结果。
在一个实施例中,处理器还被配置为执行以下步骤:
步骤S2中,基于规则的版式识别方法包括:
S21,根据是否存在所属单元格将文本数据划分成表格文本数据和非表格文本数据;
S22,利用基于规则的纵坐标标准化方法,取得非表格文本每一个文本框的标准纵坐标,并根据文本框的横坐标和标准纵坐标自左而右、自上而下排序;
S23,利用基于规则的页眉识别算法,识别非表格文本数据中的页眉;
S24,利用基于规则的页脚识别算法,识别非表格文本数据中的页脚;
S25,根据页眉和页脚的识别结果,将非表格文本数据进一步划分成页眉、正文和页脚三部分。
在一个实施例中,处理器还被配置为执行以下步骤:
所述步骤S22中,基于规则的纵坐标标准化方法包括以下步骤:
S221,初始化行索引字典,默认一个文本框为一行,因此字典元素数量为当前页的文本数,键名i代表第i个文本框,键值为包含元素i的列表;
S222,顺序遍历当前页的每一个文本框,对文本框i,顺序遍历其后的文本框,若文本框j和i在y轴上的重叠度大于阈值,则在索引字典中将i的键值合并至j移除i后跳出循环;
若文本框j和i在y轴上的重叠度小于等于阈值时不做操作,继续考察文本框i和文本框j+1,如果j已是最后一个文本框,再考察文本框i和i+1;
S223,遍历行索引字典,对字典中每一个元素i,若键值列表中的文本框索引数量大于1,则计算这些文本框的初始y值的平均值并标记为标准y值,否则该文本框的标准y值为初始y值。
在一个实施例中,处理器还被配置为执行以下步骤:
所述步骤S23中,基于规则的页眉识别算法包括以下步骤:
S231,初始化页眉索引字典,该字典用于记录每页待考察行的首个文本框的索引,初始值为0;
S232,根据页眉索引字典和文本框的标准纵坐标,每页取得一行文本框,若某页已完成对文本框的遍历,则执行步骤S235,否则提取并拼接文本框内文本并将页码替换为X;
S233,利用基于规则的判断方法,判断待考察行是否包含页眉,若是,则执行S232,否则执行S234;
S234,利用基于规则的考察文本补齐方法,修正待考察行,利用基于规则的判断方法判断待考察行是否包含页眉,若是,则执行S232,否则执行S235;
S235,输出页眉索引字典,字典记录了每页首个属于正文的文本框的索引。
在一个实施例中,处理器还被配置为执行以下步骤:
所述步骤S24中,基于规则的页脚识别算法包括以下步骤:
S241,初始化页脚索引字典,该字典用于记录每页待考察行的首个文本框的倒序索引,初始值为-1;
S242,根据页脚索引字典和文本框的标准纵坐标,每页取得一行文本框,若某页已完成对文本框的遍历,则执行步骤S244,否则提取并拼接文本框内文本并将页码替换为X;
S243,利用基于规则的判断方法,判断待考察行是否包含页脚,若是,则执行S242,否则执行S244;
S244,输出页脚索引字典,字典记录了每页最后一个属于正文的文本框的倒序索引。
在一个实施例中,处理器还被配置为执行以下步骤:
所述步骤S234中,基于规则的考察文本补齐方法包括:
统计各页待考察文本长度,记第i页待考察文本的非空格字符数为ni,下一行非空格字符数为n′i,ni最大值为nmax;
遍历每一页,若ni+n′i<nmax-2,则提取第i页下一行的框内文本并拼接至当前考察文本之后。
在一个实施例中,处理器还被配置为执行以下步骤:
所述步骤S233及步骤S243中,基于规则的判断方法包括:
利用Levenstein算法计算第i页与第j页的考察文本相似度sim(i,j),若sim(i,j)的最小值大于0.8,则遍历每一页,若当前考察的是页眉,则页眉索引字典第i页的键值更新为考察文本框索引最大值+1;若当前考察的是页脚,则页脚索引字典第i页的键值更新为考察文本框倒序索引最小值-1,反馈判定结果为包含页眉或页脚,否则执行以下操作;
遍历每一页,若sim(i,j)(i,j≠i')的最小值大于0.8,则遍历除i'以外的每一页,若当前考察的是页眉,则页眉索引字典第i页的键值更新为考察文本框索引最大值+1,若当前考察的是页脚,则页脚索引字典第i页的键值更新为考察文本框倒序索引最小值-1,反馈判定结果为包含页眉或页脚,否则反馈判定结果为不包含页眉或页脚。
在一个实施例中,处理器还被配置为执行以下步骤:
所述步骤S3中,所述二步式差异点查询算法包括以下步骤:
S31,利用基于动态规划的最小编辑距离算法,取得以行为单位的文本最小编辑矩阵;
S32,根据最小编辑矩阵,取得最小编辑路径;
S33,判断考察的文本是否为正文,若是,则通过差异点合并算法合并路径中连续的差异点;否则,不做处理;
S34,遍历最小编辑路径,对每一个差异点,若操作为添加或删除,则判定查询到一个添加或删除差异点,记录该查询结果,若操作为替换,则执行字符级差异点检索;完成遍历后,查询算法结束;
在一个实施例中,处理器还被配置为执行以下步骤:
所述字符级差异点检索包括以下步骤:
S341,利用Levenstein算法计算需被替换的字符串之间的相似度,若相似度小于等于给定阈值,则判定查询到一个替换差异点,记录该查询结果;否则执行S342;
S342,利用基于动态规划的最小编辑距离算法,取得以字符为单位的最小编辑距离矩阵;
S343,根据最小编辑距离矩阵,取得最小编辑路径;
S344,通过差异点合并算法合并路径中连续的差异点;
S345,编辑最小编辑路径,对每一个差异点,根据操作为添加、删除或替换,判定查询到一个添加、删除或替换差异点,记录该查询结果,完成遍历后,结束字符级差异点检索。
在一个实施例中,处理器还被配置为执行以下步骤:
所述步骤S33及步骤S344中,所述差异点合并算法包括:
遍历编辑路径,若路径点i至j的类型均不为“相同”,则合并路径点i至j为一个差异点,统计路径点i至j的类型数ntype,若ntype>1,则差异点类型为“修改”,否则差异点类型与路径点i至j的类型相同;
在一个实施例中,处理器还被配置为执行以下步骤:
所述步骤S345中,所述查询结果记录的信息包括:
差异点的类型;差异点相关文本;位于原文档或比较文档的页码范围;若差异点类型为添加,则原文档的相关文本和页码均为空;若差异点类型为删除,则比较文档的相关文本和页码均为空;若需要可视化处理差异检测结果,还应提供相关文本的字符的四点坐标,并在反馈比较结果时提供经过预处理、输入至ICR模型的合同图片。
本发明公开的自然语义处理技术领域的一种基于ICR字符矩阵的合同文档差异性检测方法和装置。包括以下步骤:利用ICR技术提取原合同文档与比较合同文档的文本数据;将合同文档分割成页眉、正文、页脚和表格文本四部分,分别拼接成长字符串;利用一种二段式差异检测算法分别检测表格文本、页眉、正文和页脚中存在的差异点,返回差异点类型、相关字符串与相关字符的位置信息。
与现有的文档比对工具相比,本发明可对扫描件甚至照片形式的合同电子版文件进行差异性检测;在设计比对规则时考虑了合同具有页眉、页脚和表格等结构文本的特性,忽略不影响语义的如文本换行、换页等差别,从而能够反馈符合人期待的差异比对结果。
需要说明的是,在不冲突的情况下,本申请中的实施例中的特征可以相互结合。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种基于ICR字符矩阵的合同文档差异性检测方法,其特征在于,包括以下步骤:
S1,将原合同和比较合同的PDF文件转换为图片,利用ICR技术从图片中取得合同的文本数据,文本数据提供的信息包括合同文本、合同文本的字符的位置信息、合同文本所属单元格的位置信息;
S2,利用基于规则的版式识别方法,将文本数据拆分成页眉、正文、页脚和表格文本四部分,分别按序拼接为长字符串,表格文本的一个单元格拼接为一行,其余部分一个文本框为一行;
S3,检测原文档与比较文档之间的差异,利用二步式差异点查询算法依次从正文和表格文本中查询差异点,生成文本比对结果。
2.根据权利要求1所述的合同文档差异性检测方法,其特征在于,所述步骤S2中,基于规则的版式识别方法包括:
S21,根据是否存在所属单元格将文本数据划分成表格文本数据和非表格文本数据;
S22,利用基于规则的纵坐标标准化方法,取得非表格文本每一个文本框的标准纵坐标,并根据文本框的横坐标和标准纵坐标自左而右、自上而下排序;
S23,利用基于规则的页眉识别算法,识别非表格文本数据中的页眉;
S24,利用基于规则的页脚识别算法,识别非表格文本数据中的页脚;
S25,根据页眉和页脚的识别结果,将非表格文本数据进一步划分成页眉、正文和页脚三部分。
3.根据权利要求2所述的合同文档差异性检测方法,其特征在于,所述步骤S22中,基于规则的纵坐标标准化方法包括以下步骤:
S221,初始化行索引字典,默认一个文本框为一行,因此字典元素数量为当前页的文本数,键名i代表第i个文本框,键值为包含元素i的列表;
S222,顺序遍历当前页的每一个文本框,对文本框i,顺序遍历其后的文本框,若文本框j和i在y轴上的重叠度大于阈值,则在索引字典中将i的键值合并至j移除i后跳出循环;
若文本框j和i在y轴上的重叠度小于等于阈值时不做操作,继续考察文本框i和文本框j+1,如果j已是最后一个文本框,再考察文本框i和i+1;
S223,遍历行索引字典,对字典中每一个元素i,若键值列表中的文本框索引数量大于1,则计算这些文本框的初始y值的平均值并标记为标准y值,否则该文本框的标准y值为初始y值。
4.根据权利要求2所述的合同文档差异性检测方法,其特征在于,所述步骤S23中,基于规则的页眉识别算法包括以下步骤:
S231,初始化页眉索引字典,该字典用于记录每页待考察行的首个文本框的索引,初始值为0;
S232,根据页眉索引字典和文本框的标准纵坐标,每页取得一行文本框,若某页已完成对文本框的遍历,则执行步骤S235,否则提取并拼接文本框内文本并将页码替换为X;
S233,利用基于规则的判断方法,判断待考察行是否包含页眉,若是,则执行S232,否则执行S234;
S234,利用基于规则的考察文本补齐方法,修正待考察行,利用基于规则的判断方法判断待考察行是否包含页眉,若是,则执行S232,否则执行S235;
S235,输出页眉索引字典,字典记录了每页首个属于正文的文本框的索引。
5.根据权利要求4所述的合同文档差异性检测方法,其特征在于,所述步骤S24中,基于规则的页脚识别算法包括以下步骤:
S241,初始化页脚索引字典,该字典用于记录每页待考察行的首个文本框的倒序索引,初始值为-1;
S242,根据页脚索引字典和文本框的标准纵坐标,每页取得一行文本框,若某页已完成对文本框的遍历,则执行步骤S244,否则提取并拼接文本框内文本并将页码替换为X;
S243,利用基于规则的判断方法,判断待考察行是否包含页脚,若是,则执行S242,否则执行S244;
S244,输出页脚索引字典,字典记录了每页最后一个属于正文的文本框的倒序索引。
6.根据权利要求5所述的合同文档差异性检测方法,其特征在于,所述步骤S234中,基于规则的考察文本补齐方法包括:
统计各页待考察文本长度,记第i页待考察文本的非空格字符数为ni,下一行非空格字符数为n′i,ni最大值为nmax;
遍历每一页,若ni+n′i<nmax-2,则提取第i页下一行的框内文本并拼接至当前考察文本之后。
7.根据权利要求5所述的合同文档差异性检测方法,其特征在于,所述步骤S233及步骤S243中,基于规则的判断方法包括:
利用Levenstein算法计算第i页与第j页的考察文本相似度sim(i,j),若sim(i,j)的最小值大于0.8,则遍历每一页,若当前考察的是页眉,则页眉索引字典第i页的键值更新为考察文本框索引最大值+1;若当前考察的是页脚,则页脚索引字典第i页的键值更新为考察文本框倒序索引最小值-1,反馈判定结果为包含页眉或页脚,否则执行以下操作;
遍历每一页,若sim(i,j)(i,j≠i')的最小值大于0.8,则遍历除i'以外的每一页,若当前考察的是页眉,则页眉索引字典第i页的键值更新为考察文本框索引最大值+1,若当前考察的是页脚,则页脚索引字典第i页的键值更新为考察文本框倒序索引最小值-1,反馈判定结果为包含页眉或页脚,否则反馈判定结果为不包含页眉或页脚。
8.根据权利要求5所述的合同文档差异性检测方法,其特征在于,所述步骤S3中,所述二步式差异点查询算法包括以下步骤:
S31,利用基于动态规划的最小编辑距离算法,取得以行为单位的文本最小编辑矩阵;
S32,根据最小编辑矩阵,取得最小编辑路径;
S33,判断考察的文本是否为正文,若是,则通过差异点合并算法合并路径中连续的差异点;否则,不做处理;
S34,遍历最小编辑路径,对每一个差异点,若操作为添加或删除,则判定查询到一个添加或删除差异点,记录该查询结果,若操作为替换,则执行字符级差异点检索;完成遍历后,查询算法结束;
所述字符级差异点检索包括以下步骤:
S341,利用Levenstein算法计算需被替换的字符串之间的相似度,若相似度小于等于给定阈值,则判定查询到一个替换差异点,记录该查询结果;否则执行S342;
S342,利用基于动态规划的最小编辑距离算法,取得以字符为单位的最小编辑距离矩阵;
S343,根据最小编辑距离矩阵,取得最小编辑路径;
S344,通过差异点合并算法合并路径中连续的差异点;
S345,编辑最小编辑路径,对每一个差异点,根据操作为添加、删除或替换,判定查询到一个添加、删除或替换差异点,记录该查询结果,完成遍历后,结束字符级差异点检索。
9.根据权利要求8所述的合同文档差异性检测方法,其特征在于,所述步骤S33及步骤S344中,所述差异点合并算法包括:
遍历编辑路径,若路径点i至j的类型均不为“相同”,则合并路径点i至j为一个差异点,统计路径点i至j的类型数ntype,若ntype>1,则差异点类型为“修改”,否则差异点类型与路径点i至j的类型相同;
所述步骤S345中,所述查询结果记录的信息包括:
差异点的类型;差异点相关文本;位于原文档或比较文档的页码范围;若差异点类型为添加,则原文档的相关文本和页码均为空;若差异点类型为删除,则比较文档的相关文本和页码均为空;若需要可视化处理差异检测结果,还应提供相关文本的字符的四点坐标,并在反馈比较结果时提供经过预处理、输入至ICR模型的合同图片。
10.一种基于ICR字符矩阵的合同文档差异性检测装置,其特征在于,包括存储器以及与所述存储器连接的处理器,所述处理器被配置成执行权利要求1-9中任一项所述的基于ICR字符矩阵的合同文档差异性检测方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310528742.0A CN116580414A (zh) | 2023-05-11 | 2023-05-11 | 基于icr字符矩阵的合同文档差异性检测方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310528742.0A CN116580414A (zh) | 2023-05-11 | 2023-05-11 | 基于icr字符矩阵的合同文档差异性检测方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116580414A true CN116580414A (zh) | 2023-08-11 |
Family
ID=87539058
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310528742.0A Pending CN116580414A (zh) | 2023-05-11 | 2023-05-11 | 基于icr字符矩阵的合同文档差异性检测方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116580414A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117058704A (zh) * | 2023-09-15 | 2023-11-14 | 之江实验室 | 基于视觉和文本特征的教材内容及结构的提取方法和装置 |
CN117113384A (zh) * | 2023-10-25 | 2023-11-24 | 杭州易靓云科技有限公司 | 一种合同签约管理方法及系统 |
-
2023
- 2023-05-11 CN CN202310528742.0A patent/CN116580414A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117058704A (zh) * | 2023-09-15 | 2023-11-14 | 之江实验室 | 基于视觉和文本特征的教材内容及结构的提取方法和装置 |
CN117058704B (zh) * | 2023-09-15 | 2024-01-05 | 之江实验室 | 基于视觉和文本特征的教材内容及结构的提取方法和装置 |
CN117113384A (zh) * | 2023-10-25 | 2023-11-24 | 杭州易靓云科技有限公司 | 一种合同签约管理方法及系统 |
CN117113384B (zh) * | 2023-10-25 | 2024-01-09 | 杭州易靓云科技有限公司 | 一种合同签约管理方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Siddiqui et al. | Deeptabstr: Deep learning based table structure recognition | |
Siddiqui et al. | Rethinking semantic segmentation for table structure recognition in documents | |
Embley et al. | Table-processing paradigms: a research survey | |
CN116580414A (zh) | 基于icr字符矩阵的合同文档差异性检测方法和装置 | |
CN108614898B (zh) | 文档解析方法与装置 | |
US11803706B2 (en) | Systems and methods for structure and header extraction | |
Göbel et al. | A methodology for evaluating algorithms for table understanding in PDF documents | |
US20120041955A1 (en) | Enhanced identification of document types | |
US20100306260A1 (en) | Number sequences detection systems and methods | |
JPH11250041A (ja) | 文書処理装置および文書処理方法 | |
US9141853B1 (en) | System and method for extracting information from documents | |
CN110889310B (zh) | 金融文档信息智能提取系统及方法 | |
CN110968667A (zh) | 一种基于文本状态特征的期刊文献表格抽取方法 | |
CN110427488B (zh) | 文档的处理方法及装置 | |
CN111797630A (zh) | 一种面向pdf格式论文的生物医学实体识别方法 | |
CN114021543B (zh) | 基于表格结构解析的文档比对分析方法及系统 | |
CN113962201A (zh) | 一种单证的文本结构化与抽取方法 | |
CN115935412A (zh) | 一种非结构化数据自动分类分级方法及系统 | |
US20140181124A1 (en) | Method, apparatus, system and storage medium having computer executable instrutions for determination of a measure of similarity and processing of documents | |
CN112464907A (zh) | 一种文档处理系统及方法 | |
Yuan et al. | An opencv-based framework for table information extraction | |
CN113435449B (zh) | 基于深度学习的ocr图像文字识别与段落输出方法 | |
CN114429542A (zh) | 针对医疗化验单的结构化识别方法 | |
CN116340259A (zh) | 文档管理方法、文档管理系统和计算设备 | |
CN117454851B (zh) | 一种面向pdf文档的表格数据抽取方法及装置 |
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 |