CN109933754A - 查找合同修改部分的方法、装置、计算机设备和存储介质 - Google Patents
查找合同修改部分的方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN109933754A CN109933754A CN201910101283.1A CN201910101283A CN109933754A CN 109933754 A CN109933754 A CN 109933754A CN 201910101283 A CN201910101283 A CN 201910101283A CN 109933754 A CN109933754 A CN 109933754A
- Authority
- CN
- China
- Prior art keywords
- text
- contract
- editing distance
- distance matrix
- track
- 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.)
- Granted
Links
- 230000008859 change Effects 0.000 title claims abstract description 48
- 238000000034 method Methods 0.000 title claims abstract description 48
- 239000011159 matrix material Substances 0.000 claims abstract description 356
- 238000012986 modification Methods 0.000 claims abstract description 63
- 230000004048 modification Effects 0.000 claims abstract description 63
- 239000012634 fragment Substances 0.000 claims abstract description 48
- 238000004590 computer program Methods 0.000 claims description 13
- 238000004458 analytical method Methods 0.000 claims description 10
- 238000012216 screening Methods 0.000 claims description 8
- 238000012217 deletion Methods 0.000 abstract description 10
- 230000037430 deletion Effects 0.000 abstract description 10
- 238000010586 diagram Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 230000036651 mood Effects 0.000 description 4
- 238000013475 authorization Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000008439 repair process Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 238000009415 formwork Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Landscapes
- Document Processing Apparatus (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请揭示了一种查找合同修改部分的方法、装置、计算机设备和存储介质,其中方法包括:建立编辑距离矩阵;根据合同文本以及合同模板文本,计算所述编辑距离矩阵中各元素的值;获取所述编辑距离矩阵中各元素的值的计算轨迹,生成与所述编辑距离矩阵对应的轨迹矩阵;筛选相似度最高的轨迹,得到目标轨迹;根据目标轨迹,确定合同模板文本与合同文本的一一对应关系;根据合同模板文本与合同文本的一一对应关系,分析出合同文本中新增、修改的文本片段,及合同模板文本中被删除的文本片段。本申请根据相似度最高的目标轨迹确定合同文本与合同模板文本中的一一对应部分文本,然后确定合同文本相较合同模板文本的删除、增加、修改部分。
Description
技术领域
本申请涉及到计算机技术领域,特别是涉及到一种查找合同修改部分的方法、装置、计算机设备和存储介质。
背景技术
在甲方与乙方对一合作签订合同时,一般是甲方提供一个合作相关的合同模板给乙方参考,然后乙方根据合同模板增加或修改或删除一部分,以形成新的合同文本,然后乙方发送给甲方。甲方要找出乙方发来的新的合同文本与合同模板之间的不同之处,以便查看合同的具体内容。
当合同模板的页数很多时,需要甲方人工逐字逐句去比对,这样很耗费时间,而且容易出错,没有找出乙方全部的修改的地方。
发明内容
本申请的主要目的为提供一种利用矩阵算法快速查找合同修改部分的查找合同修改部分的方法、装置、计算机设备和存储介质。
为了实现上述发明目的,本申请提出一种查找合同修改部分的方法,包括:
建立编辑距离矩阵,将合同模板文本的字符从所述编辑距离矩阵的第一行第三列处起依次输入到第一行内,将合同文本的字符从所述编辑距离矩阵的第三行第一列处起依次输入到第一列内,将所述编辑距离矩阵中的元素从第二个元素开始以数字0为起点依次加1进行初始化,将所述编辑距离矩阵中第二列的元素从第二个元素开始以数字0为起点依次加1进行初始化;
根据所述合同文本的字符以及所述合同模板文本的字符,计算所述编辑距离矩阵中各元素的值;
获取所述编辑距离矩阵中各元素的值的计算轨迹,生成与所述编辑距离矩阵对应的轨迹矩阵;
计算所述轨迹矩阵中各轨迹的相似度,筛选所述合同文本与所述合同模板文本相似度最高的轨迹,作为目标轨迹;
根据目标轨迹,确定合同模板文本与合同文本中的相同部分的子片段;
根据所述子片段,分析出合同文本中新增、修改的文本片段,及合同模板文本中被删除的文本片段。
进一步地,所述根据所述合同文本以及所述合同模板文本,计算所述编辑距离矩阵中各元素的值的步骤包括:
判断所述编辑距离矩阵的第三列中的第三个元素所处于的列数对应所述合同模板文本的字符与所述编辑距离矩阵的第三列中的第三个元素所处于行数对应所述合同文本的字符是否相同;
若相同,则所述编辑距离矩阵的第三列中的第三个元素的值为第二列中的第二个元素的值;
若不相同,则所述编辑距离矩阵的第三列中的第三个元素的值为第二列中的第二个元素、第三列中的第二个元素、第二列中的第三个元素中最小值加1得到;
按照计算所述第三列中第三个元素的值的方法,依次计算所述编辑距离矩阵中各其他元素的值。
进一步地,所述获取所述编辑距离矩阵中各元素的值的计算轨迹,生成与所述编辑距离矩阵对应的轨迹矩阵的步骤包括:
记录所述编辑距离矩阵中各元素的值的计算来源的计算轨迹;
根据所述编辑距离矩阵中各元素的值的计算轨迹,标记所述编辑距离矩阵中各所述元素的值产生由来;
完成标记后,生成与所述编辑距离矩阵对应的轨迹矩阵。
进一步地,所述建立编辑距离矩阵的步骤之前,包括:
将所述合同模板文本的编号与所述合同文本的编号进行匹配;
若匹配成功,生成建立编辑距离矩阵的指令。
进一步地,所述根据合同模板文本与合同文本的一一对应关系,分析出合同文本中新增、修改的文本片段,及合同模板文本中被删除的文本片段的步骤之后,包括:
将所述新增、修改的文本片段以及合同模板文本中被删除的文本片段分别添加对应的变化类型标签,并加载在指定的文档中,生成所述合同文本的修改记录文档;
将所述合同文本以及所述修改记录文档存储在同一存储空间内。
进一步地,所述将所述合同文本以及所述修改记录文档存储在同一存储空间内的步骤之前,包括:
将所述合同文本添加电子印章。
进一步地,所述将所述合同文本添加电子印章的步骤,包括:
获取所述合同模板文本的合同类型;
在预设的合同类型与电子印章的对应关系中,调用与所述合同模板文本的合同类型对应的电子印章;
将所述电子印章添加在所述合同文本上。
本申请还提供一种查找合同修改部分的装置,包括:
建立模块,用于建立编辑距离矩阵,将合同模板文本的字符从所述编辑距离矩阵的第一行第三列处起依次输入到第一行内,将合同文本的字符从所述编辑距离矩阵的第三行第一列处起依次输入到第一列内,将所述编辑距离矩阵中第二行的元素从第二个元素开始以数字0为起点依次加1进行初始化,将所述编辑距离矩阵中第二列的元素从第二个元素开始以数字0为起点依次加1进行初始化;
计算值模块,用于根据所述合同文本的字符以及所述合同模板文本的字符,计算所述编辑距离矩阵中各元素的值;
生成模块,用于记录所述编辑距离矩阵中各元素的值的计算轨迹,生成与所述编辑距离矩阵对应的轨迹矩阵;
筛选模块,用于获取所述轨迹矩阵中各轨迹的相似度,筛选所述合同文本与所述合同模板文本相似度最高的轨迹,作为目标轨迹;
确定模块,用于根据目标轨迹,确定合同模板文本与合同文本中的相同部分的子片段;
分析模块,用于根据所述子片段,分析出合同文本中新增、修改的文本片段,及合同模板文本中被删除的文本片段。
本申请还提供一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述任一项所述方法的步骤。
本申请还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的方法的步骤。
本申请的查找合同修改部分的方法、装置、计算机设备和存储介质,首先根据模板文本与合同文本建立编辑距离矩阵,然后计算编辑距离矩阵中各元素的值,然后根据各元素值的计算路径得到轨迹矩阵,计算轨迹矩阵中的相似度,得到相似度最高的轨迹,根据相似度最高的目标轨迹确定合同文本与模板文本中的一一对应部分文本,根据两两一一对应部分文本中间的文字来确定合同文本相较模板文本是哪里有删除、哪里有增加、哪里有修改,准确快速的找出合同文本相对模板文本的修改记录。
附图说明
图1为本申请一实施例的查找合同修改部分的方法的流程示意图;
图2为本申请一实施例的查找合同修改部分的装置的结构示意框图;
图3为本申请一实施例的查找合同修改部分的装置的计算值模块的结构示意框图;
图4为本申请一实施例的查找合同修改部分的装置的生成模块的结构示意框图;
图5为本申请一实施例的查找合同修改部分的装置的结构示意框图;
图6为本申请一实施例的查找合同修改部分的装置的结构示意框图;
图7为本申请一实施例的计算机设备的结构示意框图。
本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
参照图1,本申请实施例提供一种查找合同修改部分的方法,包括步骤:
S1、建立编辑距离矩阵,将合同模板文本的字符从所述编辑距离矩阵的第一行第三列处起依次输入到第一行内,将合同文本的字符从所述编辑距离矩阵的第三行第一列处起依次输入到第一列内,将所述编辑距离矩阵中第二行的元素从第二个元素开始以数字0为起点依次加1进行初始化,将所述编辑距离矩阵中第二列的元素从第二个元素开始以数字0为起点依次加1进行初始化;
S2、根据所述合同文本的字符以及所述合同模板文本的字符,计算所述编辑距离矩阵中各元素的值;
S3、记录所述编辑距离矩阵中各元素的值的计算轨迹,生成与所述编辑距离矩阵对应的轨迹矩阵;
S4、获取所述轨迹矩阵中各轨迹的相似度,筛选所述合同文本与所述合同模板文本相似度最高的轨迹,作为目标轨迹;
S5、根据目标轨迹,确定合同模板文本与合同文本中的相同部分的子片段;
S6、根据所述子片段,分析出合同文本中新增、修改的文本片段,及合同模板文本中被删除的文本片段。
如上述步骤S1所述,合同模板文本是公司根据业务内容设置的合同模板格式。合同文本是相关人员根据合同模板签订的新合同中的文本。合同模板文本为将合同模板剔除标点符号的文字文本。合同文本为将上述新合同剔除标点符号的文字文本。建立一个编辑距离矩阵,同时获取合同模板文本的字符的长度,根据合同模板文本的字符的长度再增加两个字符的长度,作为列数。获取合同文本的字符的长度,根据合同文本的字符的长度再增加两个字符的长度,作为行数,然后以上述行数和列数确定编辑距离矩阵的大小。合同模板文本的字符长度再增加两个字符的长度作为列数、合同文本的字符的长度再增加两个字符的长度作为行数的目的是为了在第一行、第一列上分别输入合同模板文本、合同文本,以及在第二行、第二列输入初始化的值。将合同模板文本的字符输入到第一行,具体的,合同模板文本的第一个字符输入到第一行的第三列,第二个字符输入到第一行的第四列处,依此,将合同模板文本的字符依次输入到第一行内;同时将合同文本的字符输入到第一列,具体的,合同文本的第一个字符输入到第一列的第三行,第二个字符输入到第一列的第二行,依次,将合同文本的字符依次输入到第一列内。然后将编辑距离矩阵的第二行和第二列分别进行初始化。首先定义所述编辑距离矩阵的第二行中的第二个元素的值为0;然后以所述编辑距离矩阵的第二行中的第二个元素的值为0依次递增数值1,初始化所述编辑距离矩阵的第二行的各元素的值;并以所述编辑距离矩阵的第二列中的第二个元素的值为0依次递增数值1,初始化所述编辑距离矩阵的第二列的各元素的值。
如上述步骤S2所述,根据合同文本、合同模板文本,也就是,在编辑距离矩阵中,合同文本的字符对应合同模板文本的字符是否相同,决定编辑距离矩阵中各元素的值的计算方式,进而计算编辑距离矩阵中各元素的值。
如上述步骤S3所述,在计算编辑距离矩阵中各元素的值的过程中,获取编辑距离矩阵中各元素的值的计算轨迹,也就是,编辑距离矩阵中各元素的值是由哪一个元素的值决定的。在完成计算编辑距离矩阵中各元素的值之后,获取编辑距离矩阵中各元素的值的计算轨迹也完成,从而生成与编辑距离矩阵对应的轨迹矩阵。
如上述步骤S4所述,在生成轨迹矩阵之后,计算轨迹矩阵中各轨迹的相似度,在计算相似度时,首先识别所述轨迹矩阵中各轨迹中所述合同文本的字符与对应的所述合同模板文本的字符相同的个数,获得相同字符个数;然后比较所述轨迹矩阵中各轨迹中所述合同文本的字符的长度与对应的合同模板文本的字符的长度,选取长度长的作为字符总数;计算上述轨迹矩阵中各轨迹的相同字符个数与对应的字符总数的比值,获得所述轨迹矩阵中各轨迹的相似度。在生成轨迹矩阵之后,识别轨迹矩阵中各轨迹中合同文本的字符与对应的合同模板文本的字符相同的个数,获得相同字符个数,在获得轨迹矩阵中各轨迹中相同字符个数之后,比较轨迹矩阵中各轨迹中合同文本的字符的长度与对应的合同模板文本的字符的长度,选取长度长的作为字符总数,若轨迹矩阵中一个轨迹中合同文本的字符的长度大于对应的合同模板文本的字符的长度,则在该轨迹中选取合同文本的字符的长度为字符总数。若轨迹矩阵中该轨迹的合同文本的字符的长度小于对应的合同模板文本的字符的长度,则在轨迹矩阵的该轨迹中选取合同模板文本的字符的长度为字符总数。在选取长度长的作为字符总数之后,计算轨迹矩阵中各轨迹的相同字符个数与对应的字符总数的比值,在完成计算比值之后,获得轨迹矩阵中各轨迹的相似度。在完成计算各轨迹的相似度之后,筛选合同文本与合同模板文本相似度最高的一条轨迹,即目标轨迹,该目标轨迹认为是合同文本在合同模板文本上对应轨迹。
如上述步骤S5所述,获得了目标轨迹后,再计算目标轨迹中的子片段,子片段即是合同模板文本中的与合同文本相同的部分文本,即在合同模板文本中与合同文本中均出现的部分文本,即子片段。在获得目标轨迹之后,根据目标轨迹中最后一个元素,获得目标轨迹中最后一个元素对应列上的合同模板文本的字符,标记对应的合同模板文本的字符,从而获得终点。在得到终点之后,在合同模板文本中标记合同模板文本的第一个字符为始点,截取合同模板文本的始点与终点之间的字符,即合同模板文本与合同文本中相同部分的子片段。其中模板文本的始点与终点之间的字符包括模板文本的始点对应的字符和终点对应的字符。然后再以上述终点作为新的始点,继续上述方法获取到其他的子片段。如此获取到多个子片段。如,其中合同模板文本的一句话是我很开心,合同文本的一句话是我非常开心,则形成的子片段是两个,第一个是“我”,第二个是“开心”。根据合同模板文本的起点、终点以及子片段在合同模板文本中的位置,在起点、终点、子片段的两两对应的文本之间的文本为对应文本,即合同模板文本中与合同文本中没有对应上的文本,对应文本即合同模板文本与合同文本中不同的地方。
如上述步骤S6所述,每两个子片段之间的文本不相同,说明是这个位置有变化,因此,确定两个子片段之间的对应文本内容有修改,再根据合同模板文本的对应文本与合同文本的对应文本之间的字符数量比较,进而判断出修改的性质是增加还是删除还是修改。
如果合同模板文本中的一个对应文本与对应的合同文本中的对应文本的字数相同,则确定该对应文本的两个字符与合同文本两个字符一一对应,但这两对一一对应的文本中间的字符不对应,并且字数相同,则可以认为这些对应文本的字符为修改,例如,合同模板文本中的“很像的”与合同文本中的“很象的”中“很”、“的”一一对应,分别为两个相邻的子片段,则合同模板文本与合同文本的对应文本分别是“像”与“象”,则认为合同文本中的“象”为被修改了的字。
如果合同模板文本中的一个对应文本与对应的合同文本中的对应文本的字数较少,则认为合同文本中有增加字符。例如,合同模板文本是“我很开心”,合同文本是“我非常开心”,合同模板文本中的“我”、“开心”与合同文本中的“我”、“开心”一一对应,那么合同模板文本中的“很”字确定为对应文本,合同文本中出现了两个字符“非常”确定为对应文本,那么就有一个字符是多转的,此处可认为“常”是被多转的那个字。
如果合同模板文本中的一个对应文本与对应的合同文本中的对应文本的字数较多,则认为合同文本中有删除字符。例如,合同模板文本是“我非常开心”,合同文本是“我很开心”,如上述的判断一样,合同模板文本中的“非常”确定为对应文本,合同文本中出现的“很”确定为对应文本。则说明有一个字符是删除了。
在一个实施例中,上述根据所述合同文本以及所述合同模板文本,计算所述编辑距离矩阵中各元素的值的步骤S2包括:
S21、判断所述编辑距离矩阵的第三列中的第三个元素所处于的列数对应所述合同模板文本的字符与所述编辑距离矩阵的第三列中的第三个元素所处于行数对应所述合同文本的字符是否相同;
S22、若相同,则所述编辑距离矩阵的第三列中的第三个元素的值为第二列中的第二个元素的值;
S23、若不相同,则所述编辑距离矩阵的第三列中的第三个元素的值为第二列中的第二个元素、第三列中的第二个元素、第二列中的第三个元素中最小值加1得到;
S24、按照计算所述第三列中第三个元素的值的方法,依次计算所述编辑距离矩阵中各其他元素的值。
本实施例中,由于编辑距离矩阵中未被初始化的各元素的值由该元素在编辑距离矩阵中的左方(同一行中上一列的元素)、左上角(上一列的上一行的元素)、上方(同一列中上一行的元素)中的某一个元素的值来确定,在开始计算时,符合左方、左上角、上方的元素都存在数值的只有编辑距离矩阵的第三列中的第三个元素,或者说编辑距离矩阵的第三列中的第三个元素,在本实施例中,计算编辑距离矩阵的第三列中的第三个元素,识别编辑距离矩阵的第三列中的第三个元素所处于的列数、行数,在获得编辑距离矩阵的第三列中的第三个元素所处于的列数、行数之后,识别编辑距离矩阵的第三列中的第三个元素所处于的列数对应合同模板文本的字符,编辑距离矩阵的第三列中的第三个元素所处于的行数对应合同文本的字符。在获得对应的字符之后,判断编辑距离矩阵的第三列中的第三个元素所处于的列数对应合同模板文本的字符与编辑距离矩阵的第三列中的第三个元素所处于行数对应合同文本的字符是否相同,根据编辑距离矩阵的第三列中的第三个元素的合同模板文本的字符与对应的合同文本的字符是否相同,用于确定编辑距离矩阵的第三列中的第三个元素的值,若编辑距离矩阵的第三列中的第三个元素所处于的列数对应合同模板文本的字符与编辑距离矩阵的第三列中的第三个元素所处于行数对应合同文本的字符相同,则编辑距离矩阵的第三列中的第三个元素的值为其左上角的元素的值。若编辑距离矩阵的第三列中的第三个元素所处于的列数对应合同模板文本的字符与编辑距离矩阵的第三列中的第三个元素所处于行数对应合同文本的字符不相同,则编辑距离矩阵的第三列中的第三个元素的值为其左方、左上角、上方的元素中最小值加1得到。在计算完编辑距离矩阵的第三列中的第三个元素的值之后,按照计算这个元素的方法,再从第三列中的第四个元素开始,依次计算其他元素的值,直至完成计算编辑距离矩阵中各元素的值。
例如,合同模板文本为“我今天心情很好”,合同文本为“我今天心情还可以”,首先建立一个编辑距离矩阵,如下:
我 | 今 | 天 | 心 | 情 | 很 | 好 | ||
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | |
我 | 1 | 0 | 1 | 2 | 3 | 4 | 5 | 6 |
今 | 2 | 1 | 0 | 1 | 2 | 3 | 4 | 5 |
天 | 3 | 2 | 1 | 0 | 1 | 2 | 3 | 4 |
心 | 4 | 3 | 2 | 1 | 0 | 1 | 2 | 3 |
情 | 5 | 4 | 3 | 2 | 1 | 0 | 1 | 2 |
很 | 6 | 5 | 4 | 3 | 2 | 1 | 1 | 2 |
不 | 7 | 6 | 5 | 4 | 3 | 2 | 2 | 2 |
错 | 8 | 7 | 6 | 5 | 4 | 3 | 3 | 3 |
初始化后,计算第三行的第三个的元素的值时,这一元素对应的行所在的字符是“我”,对应的列所在的字符是“我”,这两个字符相同,则这一元素的值是左上角的元素的值,即第二行中第二个元素的值0。计算第三行的第四个元素的值时,这一元素对应所在的行的字符是“我”,对应所在的列的字符是“今”,这两个字符不相同,则这一元素的值是左上角(1)、左边(0)、上边(2)的三个元素的值中最小的值再加1,即0加上1,得到1,为该元素的值。如此计算其他各元素的值。
本实施例中,上述记录所述编辑距离矩阵中各元素的值的计算轨迹,生成与所述编辑距离矩阵对应的轨迹矩阵的步骤S3包括:
S31、获取所述编辑距离矩阵中各元素的值的计算来源的计算轨迹;
S32、根据所述计算轨迹,标记所述编辑距离矩阵中各所述元素的值产生由来;
S33、完成标记后,生成与所述编辑距离矩阵对应的轨迹矩阵。
本实施例中,根据所述编辑距离矩阵中各元素的计算由来,在轨迹矩阵中相应的位置上插入:”l”、”t”或者”lt”,以此来记录每个元素是由:左方、上方还是左上方的元素计算而来的。一边计算编辑距离矩阵中各元素的值,一边在轨迹矩阵中做相应的记录,当编辑距离矩阵计算完成时,其对应的轨迹矩阵也就生成了。编辑距离矩阵的计算过程为:编辑距离矩阵的第三列中的第三个元素是由编辑距离矩阵的第二列中的第二个元素确定的,则在编辑距离矩阵的第三列中的第三个元素输入lt,若编辑距离矩阵的第三列中的第三个元素是由编辑距离矩阵的第三列中的第二个元素确定的,则在编辑距离矩阵的第三列中的第三个元素输入t,若编辑距离矩阵的第三列中的第三个元素是由编辑距离矩阵的第二列中的第三个元素确定的,则在编辑距离矩阵的第三列中的第三个元素输入l,从而标记编辑距离矩阵的第三列中的第三个元素的产生由来。在完成标记后,生成与编辑距离矩阵对应的轨迹矩阵。记录编辑距离矩阵中各元素的值的计算轨迹,根据编辑距离矩阵中各元素的值的计算轨迹,即计算上述各元素的计算方法,例如,如果该元素所处的第五列对应所述合同模板文本的字符与编辑距离矩阵中该元素所处的第五行对应的合同文本的字符相同,该元素来自左上角的第四行第四列的元素,即形成一个轨迹,第五行第五列的元素的轨迹是从第四行第四列得来的,再与第四行元素的轨迹得来相连接,形成第五行第五列的元素的计算轨迹。计算得到多个计算轨迹后,生成与编辑距离矩阵对应的轨迹矩阵。
在一个实施例中,上述建立编辑距离矩阵的步骤之前,包括:
S101、将所述合同模板文本的编号与所述合同文本的编号进行匹配;
S102、若匹配成功,生成建立编辑距离矩阵的指令。
本实施例中,由于公司具有多个合同模板文本,为避免混淆,对每个合同模板文本进行编号,每个根据合同模板文本进行修改形成的合同也具有对应的编号,每个合同文本以及合同模板文本均有对应的编号,合同文本是在合同模板文本的基础上进行改写形成的。其中,合同文本的编号是与其对应的合同模板文本的编号是相匹配的。服务器在进行编辑距离矩阵前,先读取合同模板文本的编号与合同文本的编号,将两个编号进行匹配计算。例如,某一合同模板文本的编号是MB001,其对应的合同文本编号是:HT001-01,在上述两个编号中,第三位到第五位的字符是表示合同模板的编号,服务器读取到两个编号时,看两个合同的编号的第三位到第五位是否相同,如果相同,匹配成功。匹配成功,说明该合同文本是根据该合同模板文本进行修订的,因此有必要将两个文本进行比对,生成建立编辑距离矩阵的指令。
在一个实施例中,上述根据合同模板文本与合同文本的一一对应关系,分析出合同文本中新增、修改的文本片段,及合同模板文本中被删除的文本片段的步骤之后,包括:
S7、将所述新增、修改的文本片段以及合同模板文本中被删除的文本片段分别添加对应的变化类型标签,并加载在指定的文档中,生成所述合同文本的修改记录文档;
S8、将所述合同文本以及所述修改记录文档存储在同一存储空间内。
本实施例中,合同文本相对合同模板文本有修改,将与合同模板文本不同的文本片段分别添加与变化类型对应的变化类型标签,变化类型包括新增、修改、删除。将新增、修改的文本片段以及删除的文本片段以及对应的变化类型标签全部加载在一个指定的文档上,以形成该合同文本的修改记录文档。修改记录文档可以是txt、word等格式的文本文档。在一具体实施例中,还将各新增、修改的文本片段以及删除的文本片段根据在合同模板文本中的位置添加对应的位置标签。如,添加第几页第几行的位置标签。然后将合同文本和修改记录文档存储在同一存储空间内,即存储在同一个文件夹内,以便于工作人员直接根据修改记录文档就可以快速知道该合同文本与合同模板文本的区别,更加迅速的了解合同文本的重点查看部分。
在一个实施例中,上述将所述合同文本以及所述修改记录文档存储在同一存储空间内的步骤之前,包括:
S801、将所述合同文本添加电子印章。
本实施例中,电子印章是一张电子图片,上面承载有公司名称的字样,与实体的印章的图片一致。将合同文本添加电子印章,便于直接将合同打印出来。其中,电子印章是指合同上所有相关方的印章。电子印章是存储在服务器中的指定数据库,服务器获取到合同文本生成后,向服务器申请加盖电子印章,服务器获得到对应的授权后,将电子印章加盖在合同文本的最后一页。
在一个实施例中,上述将所述合同文本添加电子印章的步骤,包括:
S811、获取所述合同模板文本的合同类型;
S821、在预设的合同类型与电子印章的对应关系中,调用与所述合同模板文本的合同类型对应的电子印章;
S831、将所述电子印章添加在所述合同文本上。
本实施例中,服务器中存储有很多个合同模板文本,多个合同模板文本均是属于几个不同的合同类型。在一个保险公司中,按照业务类型分,合同类型包括人寿保险合同、汽车保险合同、房产保险合同这三个合同类型。每个合同模板文本根据不同的合同类型具有与合同对应的编号。如人寿保险合同对应的编号是RS,汽车保险合同对应的编号是QC,房产保险合同对应的编号是FC。服务器读取合同模板文本的编号的前两位,根据编号来获取合同模板文本的合同类型。不同的合同类型对应的合同需要加盖不同类型的电子印章,多个合同类型与多个电子印章之间有一个对应关系,该对应关系是工作人员预先存储在服务器中的。服务器获取到上述合同模板文本的合同类型后,根据该合同类型在对应关系中查找与该合同类型对应的电子印章。然后将该电子印章加载在合同文本上。
综上所述,本申请的查找合同修改部分的方法,首先根据合同模板文本与合同文本建立编辑距离矩阵,然后计算编辑距离矩阵中各元素的值,然后根据各元素值的计算路径得到轨迹矩阵,计算轨迹矩阵中的相似度,得到相似度最高的轨迹,根据相似度最高的目标轨迹确定合同文本与合同模板文本中的一一对应部分文本,根据两两一一对应部分文本中间的文字来确定合同文本相较合同模板文本是哪里有删除、哪里有增加、哪里有修改,准确的找出合同文本相对合同模板文本的修改记录。
参照图2,本申请实施例中还提供一种查找合同修改部分的装置,包括:
建立模块1,用于建立编辑距离矩阵,将合同模板文本的字符从所述编辑距离矩阵的第一行第三列处起依次输入到第一行内,将合同文本的字符从所述编辑距离矩阵的第三行第一列处起依次输入到第一列内,将所述编辑距离矩阵中第二行的元素从第二个元素开始以数字0为起点依次加1进行初始化,将所述编辑距离矩阵中第二列的元素从第二个元素开始以数字0为起点依次加1进行初始化;
计算值模块2,用于根据所述合同文本的字符以及所述合同模板文本的字符,计算所述编辑距离矩阵中各元素的值;
生成模块3,用于记录所述编辑距离矩阵中各元素的值的计算轨迹,生成与所述编辑距离矩阵对应的轨迹矩阵;
筛选模块4,用于获取所述轨迹矩阵中各轨迹的相似度,筛选所述合同文本与所述合同模板文本相似度最高的轨迹,作为目标轨迹;
确定模块5,用于根据目标轨迹,确定合同模板文本与合同文本中的相同部分的子片段;
分析模块6,用于根据所述子片段,分析出合同文本中新增、修改的文本片段,及合同模板文本中被删除的文本片段。
本实施例中,合同模板文本是公司根据业务内容设置的合同模板格式。合同文本是相关人员根据合同模板签订的新合同中的文本。合同模板文本为将合同模板剔除标点符号的文字文本。合同文本为将上述新合同剔除标点符号的文字文本。建立模块1建立一个编辑距离矩阵,同时获取合同模板文本的字符的长度,根据合同模板文本的字符长度再增加两个字符的长度,作为列数。获取合同文本的字符的长度,根据合同文本的字符的长度再增加两个字符的长度,作为行数,然后以上述行数和列数确定编辑距离矩阵的大小。合同模板文本的字符长度再增加两个字符的长度作为列数、合同文本的字符的长度再增加两个字符的长度作为行数的目的是为了在第一行、第一列上分别输入合同模板文本、合同文本,以及在第二行、第二列输入初始化的值。建立模块1将合同模板文本的字符输入到第一行,具体的,合同模板文本的第一个字符输入到第一行的第三列,第二个字符输入到第一行的第四列处,依此,建立模块1将合同模板文本的字符依次输入到第一行内;同时建立模块1将合同文本的字符输入到第一列,具体的,合同文本的第一个字符输入到第一列的第三行,第二个字符输入到第一列的第二行,依次,将合同文本的字符依次输入到第一列内。然后将编辑距离矩阵的第二行和第二列分别进行初始化。首先定义所述编辑距离矩阵的第二行中的第二个元素的值为0;然后以所述编辑距离矩阵的第二行中的第二个元素的值为0依次递增数值1,初始化所述编辑距离矩阵的第二行的各元素的值;并以所述编辑距离矩阵的第二列中的第二个元素的值为0依次递增数值1,初始化所述编辑距离矩阵的第二列的各元素的值。
根据合同文本、合同模板文本,也就是,在编辑距离矩阵中,计算值模块2计算合同文本的字符对应合同模板文本的字符是否相同,决定编辑距离矩阵中各元素的值的计算方式,进而计算值模块2计算编辑距离矩阵中各元素的值。
在计算编辑距离矩阵中各元素的值的过程中,获取编辑距离矩阵中各元素的值的计算轨迹,即,编辑距离矩阵中各元素的值是由哪一个元素的值决定的。在完成计算编辑距离矩阵中各元素的值之后,获取编辑距离矩阵中各元素的值的计算轨迹也完成,从而生成模块3生成与编辑距离矩阵对应的轨迹矩阵。
在生成轨迹矩阵之后,筛选模块4计算轨迹矩阵中各轨迹的相似度,在计算相似度时,筛选模块4首先识别所述轨迹矩阵中各轨迹中所述合同文本的字符与对应的所述合同模板文本的字符相同的个数,获得相同字符个数;然后比较所述轨迹矩阵中各轨迹中所述合同文本的字符的长度与对应的合同模板文本的字符的长度,选取长度长的作为字符总数;计算上述轨迹矩阵中各轨迹的相同字符个数与对应的字符总数的比值,获得所述轨迹矩阵中各轨迹的相似度。在生成轨迹矩阵之后,识别轨迹矩阵中各轨迹中合同文本的字符与对应的合同模板文本的字符相同的个数,获得相同字符个数,在获得轨迹矩阵中各轨迹中相同字符个数之后,比较轨迹矩阵中各轨迹中合同文本的字符的长度与对应的合同模板文本的字符的长度,选取长度长的作为字符总数,若轨迹矩阵中一个轨迹中合同文本的字符的长度大于对应的合同模板文本的字符的长度,则在该轨迹中选取合同文本的字符的长度为字符总数。若轨迹矩阵中该轨迹的合同文本的字符的长度小于对应的合同模板文本的字符的长度,则在轨迹矩阵的该轨迹中选取合同模板文本的字符的长度为字符总数。在选取长度长的作为字符总数之后,计算轨迹矩阵中各轨迹的相同字符个数与对应的字符总数的比值,在完成计算比值之后,筛选模块4获得轨迹矩阵中各轨迹的相似度。在完成计算各轨迹的相似度之后,筛选模块4筛选合同文本与合同模板文本相似度最高的一条轨迹,即目标轨迹,该目标轨迹认为是合同文本在合同模板文本上对应轨迹。
获得了目标轨迹后,再计算目标轨迹中的子片段,子片段即是合同模板文本中的与合同文本相同的部分文本,即确定模块5确定在合同模板文本中与合同文本中均出现的部分文本,即子片段。在获得目标轨迹之后,根据目标轨迹中最后一个元素,获得目标轨迹中最后一个元素对应列上的合同模板文本的字符,标记对应的合同模板文本的字符,从而获得终点。在得到终点之后,在合同模板文本中标记合同模板文本的第一个字符为始点,截取合同模板文本的始点与终点之间的字符,即合同模板文本与合同文本中相同部分的子片段。其中模板文本的始点与终点之间的字符包括模板文本的始点对应的字符和终点对应的字符。然后再以上述终点作为新的始点,继续上述方法获取到其他的子片段。如此获取到多个子片段。如,其中合同模板文本的一句话是我很开心,合同文本的一句话是我非常开心,则形成的子片段是两个,第一个是“我”,第二个是“开心”。根据合同模板文本的起点、终点以及子片段在合同模板文本中的位置,在起点、终点、子片段的两两对应的文本之间的文本为对应文本,即合同模板文本中与合同文本中没有对应上的文本,对应文本即合同模板文本与合同文本中不同的地方。
每两个子片段之间的文本不相同,说明是这个位置有变化,因此,确定两个子片段之间的对应文本内容有修改,分析模块6再根据合同模板文本的对应文本与合同文本的对应文本之间的字符数量比较,进而判断出修改的性质是增加还是删除还是修改。
如果合同模板文本中的一个对应文本与对应的合同文本中的对应文本的字数相同,则分析模块6确定该对应文本的两个字符与合同文本两个字符一一对应,但这两对一一对应的文本中间的字符不对应,并且字数相同,则分析模块6分析为这些对应文本的字符为修改,例如,合同模板文本中的“很像的”与合同文本中的“很象的”中“很”、“的”一一对应,分别为两个相邻的子片段,则合同模板文本与合同文本的对应文本分别是“像”与“象”,则认为合同文本中的“象”为被修改了的字。
如果合同模板文本中的一个对应文本与对应的合同文本中的对应文本的字数较少,则分析模块6分析合同文本中有增加字符。例如,合同模板文本是“我很开心”,合同文本是“我非常开心”,合同模板文本中的“我”、“开心”与合同文本中的“我”、“开心”一一对应,那么合同模板文本中的“很”字确定为对应文本,合同文本中出现了两个字符“非常”确定为对应文本,那么就有一个字符是多转的,此处可认为“常”是被多转的那个字。
如果合同模板文本中的一个对应文本与对应的合同文本中的对应文本的字数较多,则分析模块6分析为合同文本中有删除字符。例如,合同模板文本是“我非常开心”,合同文本是“我很开心”,如上述的判断一样,合同模板文本中的“非常”确定为对应文本,合同文本中出现的“很”确定为对应文本。则说明有一个字符是删除了。
参照图3,在一个实施例中,上述计算值模块2包括:
判断单元21,用于判断所述编辑距离矩阵的第三列中的第三个元素所处于的列数对应所述合同模板文本的字符与所述编辑距离矩阵的第三列中的第三个元素所处于行数对应所述合同文本的字符是否相同;
第一判定单元22,用于若所述编辑距离矩阵的第三列中的第三个元素所处于的列数对应所述合同模板文本的字符与所述编辑距离矩阵的第三列中的第三个元素所处于行数对应所述合同文本的字符相同,则所述编辑距离矩阵的第三列中的第三个元素的值为第二列中的第二个元素的值;
第二判定单元23,用于若所述编辑距离矩阵的第三列中的第三个元素所处于的列数对应所述合同模板文本的字符与所述编辑距离矩阵的第三列中的第三个元素所处于行数对应所述合同文本的字符不相同,则所述编辑距离矩阵的第三列中的第三个元素的值为第二列中的第二个元素、第三列中的第二个元素、第二列中的第三个元素中最小值加1得到;
计算单元24,用于按照计算所述第三列中第三个元素的值的方法,依次计算所述编辑距离矩阵中各其他元素的值。
本实施例中,由于编辑距离矩阵中未被初始化的各元素的值由该元素在编辑距离矩阵中的左方(同一行中上一列的元素)、左上角(上一列的上一行的元素)、上方(同一列中上一行的元素)中的某一个元素的值来确定,在开始计算时,符合左方、左上角、上方的元素都存在数值的只有编辑距离矩阵的第三列中的第三个元素,或者说编辑距离矩阵的第三列中的第三个元素,判断单元21计算编辑距离矩阵的第三列中的第三个元素,识别编辑距离矩阵的第三列中的第三个元素所处于的列数、行数,在获得编辑距离矩阵的第三列中的第三个元素所处于的列数、行数之后,识别编辑距离矩阵的第三列中的第三个元素所处于的列数对应合同模板文本的字符,编辑距离矩阵的第三列中的第三个元素所处于的行数对应合同文本的字符。在获得对应的字符之后,判断单元21判断编辑距离矩阵的第三列中的第三个元素所处于的列数对应合同模板文本的字符与编辑距离矩阵的第三列中的第三个元素所处于行数对应合同文本的字符是否相同,根据编辑距离矩阵的第三列中的第三个元素的合同模板文本的字符与对应的合同文本的字符是否相同,用于确定编辑距离矩阵的第三列中的第三个元素的值,若编辑距离矩阵的第三列中的第三个元素所处于的列数对应合同模板文本的字符与编辑距离矩阵的第三列中的第三个元素所处于行数对应合同文本的字符相同,则第一判定单元22判定编辑距离矩阵的第三列中的第三个元素的值为其左上角的元素的值。若编辑距离矩阵的第三列中的第三个元素所处于的列数对应合同模板文本的字符与编辑距离矩阵的第三列中的第三个元素所处于行数对应合同文本的字符不相同,则第二判定单元23判定编辑距离矩阵的第三列中的第三个元素的值为其左方、左上角、上方的元素中最小值加1得到。在计算完编辑距离矩阵的第三列中的第三个元素的值之后,计算单元24按照计算这个元素的方法,再从第三列中的第四个元素开始,依次计算其他元素的值,直至完成计算编辑距离矩阵中各元素的值。
例如,合同模板文本为“我今天心情很好”,合同文本为“我今天心情还可以”,首先建立一个编辑距离矩阵,如下:
我 | 今 | 天 | 心 | 情 | 很 | 好 | ||
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | |
我 | 1 | 0 | 1 | 2 | 3 | 4 | 5 | 6 |
今 | 2 | 1 | 0 | 1 | 2 | 3 | 4 | 5 |
天 | 3 | 2 | 1 | 0 | 1 | 2 | 3 | 4 |
心 | 4 | 3 | 2 | 1 | 0 | 1 | 2 | 3 |
情 | 5 | 4 | 3 | 2 | 1 | 0 | 1 | 2 |
很 | 6 | 5 | 4 | 3 | 2 | 1 | 1 | 2 |
不 | 7 | 6 | 5 | 4 | 3 | 2 | 2 | 2 |
错 | 8 | 7 | 6 | 5 | 4 | 3 | 3 | 3 |
初始化后,计算第三行的第三个的元素的值时,这一元素对应的行所在的字符是“我”,对应的列所在的字符是“我”,这两个字符相同,则这一元素的值是左上角的元素的值,即第二行中第二个元素的值0。计算第三行的第四个元素的值时,这一元素对应所在的行的字符是“我”,对应所在的列的字符是“今”,这两个字符不相同,则这一元素的值是左上角(1)、左边(0)、上边(2)的三个元素的值中最小的值再加1,即0加上1,得到1,为该元素的值。如此计算其他各元素的值。
参照图4,在一个实施例中,上述生成模块3包括:
获取轨迹单元31,用于获取所述编辑距离矩阵中各元素的值的计算来源的计算轨迹;
标记单元32,用于根据所述计算轨迹,标记所述编辑距离矩阵中各所述元素的值产生由来;
生成单元33,用于完成标记后,生成与所述编辑距离矩阵对应的轨迹矩阵。
本实施例中,根据所述编辑距离矩阵中各元素的计算由来,在轨迹矩阵中相应的位置上插入:”l”、”t”或者”lt”,以此来记录每个元素是由:左方、上方还是左上方的元素计算而来的。一边计算编辑距离矩阵中各元素的值,一边在轨迹矩阵中做相应的记录,当编辑距离矩阵计算完成时,其对应的轨迹矩阵也就生成了。编辑距离矩阵的计算过程为:编辑距离矩阵的第三列中的第三个元素是由编辑距离矩阵的第二列中的第二个元素确定的,则在编辑距离矩阵的第三列中的第三个元素输入lt,若编辑距离矩阵的第三列中的第三个元素是由编辑距离矩阵的第三列中的第二个元素确定的,则在编辑距离矩阵的第三列中的第三个元素输入t,若编辑距离矩阵的第三列中的第三个元素是由编辑距离矩阵的第二列中的第三个元素确定的,则在编辑距离矩阵的第三列中的第三个元素输入l,从而标记编辑距离矩阵的第三列中的第三个元素的产生由来。在完成标记后,生成与编辑距离矩阵对应的轨迹矩阵。记录编辑距离矩阵中各元素的值的计算轨迹,根据编辑距离矩阵中各元素的值的计算轨迹,即计算上述各元素的计算方法,例如,如果该元素所处的第五列对应所述合同模板文本的字符与编辑距离矩阵中该元素所处的第五行对应的合同文本的字符相同,该元素来自左上角的第四行第四列的元素,即形成一个轨迹,第五行第五列的元素的轨迹是从第四行第四列得来的,再与第四行元素的轨迹得来相连接,形成第五行第五列的元素的计算轨迹。计算得到多个计算轨迹后,生成与编辑距离矩阵对应的轨迹矩阵。
参照图5,在一个实施例中,上述查找合同修改部分的装置还包括:
匹配模块101,用于将所述合同模板文本的编号与所述合同文本的编号进行匹配;
指令模块102,用于若匹配成功,生成建立编辑距离矩阵的指令。
本实施例中,由于公司具有多个合同模板文本,为避免混淆,对每个合同模板文本进行编号,每个根据合同模板文本进行修改形成的合同也具有对应的编号,每个合同文本以及合同模板文本均有对应的编号,合同文本是在合同模板文本的基础上进行改写形成的。其中,合同文本的编号是与其对应的合同模板文本的编号是相匹配的。服务器在进行编辑距离矩阵前,匹配模块101先读取合同模板文本的编号与合同文本的编号,将两个编号进行匹配计算。例如,某一合同模板文本的编号是MB001,其对应的合同文本编号是:HT001-01,在上述两个编号中,第三位到第五位的字符是表示合同模板的编号,服务器读取到两个编号时,看两个合同的编号的第三位到第五位是否相同,如果相同,匹配成功。匹配成功,说明该合同文本是根据该合同模板文本进行修订的,因此有必要将两个文本进行比对,指令模块102生成建立编辑距离矩阵的指令。
参照图6,在一个实施例中,上述查找合同修改部分的装置还包括:
加载模块7,用于将所述新增、修改的文本片段以及合同模板文本中被删除的文本片段分别添加对应的变化类型标签,并加载在指定的文档中,生成所述合同文本的修改记录文档;
存储模块8,用于将所述合同文本以及所述修改记录文档存储在同一存储空间内。
本实施例中,合同文本相对合同模板文本有修改,加载模块7将与合同模板文本不同的文本片段分别添加与变化类型对应的变化类型标签,变化类型包括新增、修改、删除。将新增、修改的文本片段以及删除的文本片段以及对应的变化类型标签全部加载在一个指定的文档上,以形成该合同文本的修改记录文档。修改记录文档可以是txt、word等格式的文本文档。在一具体实施例中,还将各新增、修改的文本片段以及删除的文本片段根据在合同模板文本中的位置添加对应的位置标签。如,添加第几页第几行的位置标签。然后存储模块8将合同文本和修改记录文档存储在同一存储空间内,即存储在同一个文件夹内,以便于工作人员直接根据修改记录文档就可以快速知道该合同文本与合同模板文本的区别,更加迅速的了解合同文本的重点查看部分。
在一个实施例中,上述查找合同修改部分的装置还包括:
添加模块801,用于将所述合同文本添加电子印章。
本实施例中,电子印章是一张电子图片,上面承载有公司名称的字样,与实体的印章的图片一致。添加模块801将合同文本添加电子印章,便于直接将合同打印出来。其中,电子印章是指合同上所有相关方的印章。电子印章是存储在服务器中的指定数据库,服务器获取到合同文本生成后,向服务器申请加盖电子印章,服务器获得到对应的授权后,将电子印章加盖在合同文本的最后一页。
在一个实施例中,上述添加模块801包括:
获取类型单元811,用于获取所述合同模板文本的合同类型;
调用单元821,用于在预设的合同类型与电子印章的对应关系中,调用与所述合同模板文本的合同类型对应的电子印章;
添加单元831,用于将所述电子印章添加在所述合同文本上。
本实施例中,服务器中存储有很多个合同模板文本,多个合同模板文本均是属于几个不同的合同类型。在一个保险公司中,按照业务类型分,合同类型包括人寿保险合同、汽车保险合同、房产保险合同这三个合同类型。每个合同模板文本根据不同的合同类型具有与合同对应的编号。如人寿保险合同对应的编号是RS,汽车保险合同对应的编号是QC,房产保险合同对应的编号是FC。获取类型单元811读取合同模板文本的编号的前两位,根据编号来获取合同模板文本的合同类型。不同的合同类型对应的合同需要加盖不同类型的电子印章,多个合同类型与多个电子印章之间有一个对应关系,该对应关系是工作人员预先存储在服务器中的。获取到上述合同模板文本的合同类型后,调用单元821根据该合同类型在对应关系中查找与该合同类型对应的电子印章。然后添加单元831将该电子印章添加在合同文本上。
综上所述,本申请的查找合同修改部分的装置,首先根据合同模板文本与合同文本建立编辑距离矩阵,然后计算编辑距离矩阵中各元素的值,然后根据各元素值的计算路径得到轨迹矩阵,计算轨迹矩阵中的相似度,得到相似度最高的轨迹,根据相似度最高的目标轨迹确定合同文本与合同模板文本中的一一对应部分文本,根据两两一一对应部分文本中间的文字来确定合同文本相较合同模板文本是哪里有删除、哪里有增加、哪里有修改,准确的找出合同文本相对合同模板文本的修改记录。
参照图7,本申请实施例中还提供一种计算机设备,该计算机设备可以是服务器,其内部结构可以如图7所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设计的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储合同模板文本、合同文本等数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种查找合同修改部分的方法。
上述处理器执行上述查找合同修改部分的方法的步骤:建立编辑距离矩阵,将合同模板文本的字符从所述编辑距离矩阵的第一行第三列处起依次输入到第一行内,将合同文本的字符从所述编辑距离矩阵的第三行第一列处起依次输入到第一列内,将所述编辑距离矩阵中第二行的元素从第二个元素开始以数字0为起点依次加1进行初始化,将所述编辑距离矩阵中第二列的元素从第二个元素开始以数字0为起点依次加1进行初始化;根据所述合同文本的字符以及所述合同模板文本的字符,计算所述编辑距离矩阵中各元素的值;获取所述编辑距离矩阵中各元素的值的计算轨迹,生成与所述编辑距离矩阵对应的轨迹矩阵;计算所述轨迹矩阵中各轨迹的相似度,筛选所述合同文本与所述合同模板文本相似度最高的轨迹,得到目标轨迹;作为目标轨迹,确定合同模板文本与合同文本中相同部分的子片段;根据所述子片段,分析出合同文本中新增、修改的文本片段,及合同模板文本中被删除的文本片段。
在一个实施例中,上述处理器执行所述根据所述合同文本以及所述合同模板文本,计算所述编辑距离矩阵中各元素的值的步骤包括:判断所述编辑距离矩阵的第三列中的第三个元素所处于的列数对应所述合同模板文本的字符与所述编辑距离矩阵的第三列中的第三个元素所处于行数对应所述合同文本的字符是否相同;若相同,则所述编辑距离矩阵的第三列中的第三个元素的值为第二列中的第二个元素的值;若不相同,则所述编辑距离矩阵的第三列中的第三个元素的值为第二列中的第二个元素、第三列中的第二个元素、第二列中的第三个元素中最小值加1得到;按照计算所述第三列中第三个元素的值的方法,依次计算所述编辑距离矩阵中各其他元素的值。
在一个实施例中,上述处理器执行所述获取所述编辑距离矩阵中各元素的值的计算轨迹,生成与所述编辑距离矩阵对应的轨迹矩阵的步骤包括:记录所述编辑距离矩阵中各元素的值的计算来源的计算轨迹;根据所述编辑距离矩阵中各元素的值的计算轨迹,标记所述编辑距离矩阵中各所述元素的值产生由来;完成标记后,生成与所述编辑距离矩阵对应的轨迹矩阵。
在一个实施例中,上述处理器执行所述建立编辑距离矩阵的步骤之前,包括:将所述合同模板文本的编号与所述合同文本的编号进行匹配;若匹配成功,生成建立编辑距离矩阵的指令。
在一个实施例中,上述处理器执行所述根据合同模板文本与合同文本的一一对应关系,分析出合同文本中新增、修改的文本片段,及合同模板文本中被删除的文本片段的步骤之后,包括:将所述新增、修改的文本片段以及合同模板文本中被删除的文本片段分别添加对应的变化类型标签,并加载在指定的文档中,生成所述合同文本的修改记录文档;将所述合同文本以及所述修改记录文档存储在同一存储空间内。
在一个实施例中,上述处理器执行所述将所述合同文本以及所述修改记录文档存储在同一存储空间内的步骤之前,包括:将所述合同文本添加电子印章。
在一个实施例中,上述处理器执行所述将所述合同文本添加电子印章的步骤,包括:获取所述合同模板文本的合同类型;在预设的合同类型与电子印章的对应关系中,调用与所述合同模板文本的合同类型对应的电子印章;将所述电子印章添加在所述合同文本上。
综上所述,本申请的计算机设备首先根据模板文本与合同文本建立编辑距离矩阵,然后计算编辑距离矩阵中各元素的值,然后根据各元素值的计算路径得到轨迹矩阵,计算轨迹矩阵中的相似度,得到相似度最高的轨迹,根据相似度最高的目标轨迹确定合同文本与模板文本中的一一对应部分文本,根据两两一一对应部分文本中间的文字来确定合同文本相较模板文本是哪里有删除、哪里有增加、哪里有修改,准确快速的找出合同文本相对模板文本的修改记录。
本领域技术人员可以理解,图7中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定。
本申请一实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现一种查找合同修改部分的方法,具体为:建立编辑距离矩阵,将合同模板文本的字符从所述编辑距离矩阵的第一行第三列处起依次输入到第一行内,将合同文本的字符从所述编辑距离矩阵的第三行第一列处起依次输入到第一列内,将所述编辑距离矩阵中第二行的元素从第二个元素开始以数字0为起点依次加1进行初始化,将所述编辑距离矩阵中第二列的元素从第二个元素开始以数字0为起点依次加1进行初始化;根据所述合同文本的字符以及所述合同模板文本的字符,计算所述编辑距离矩阵中各元素的值;获取所述编辑距离矩阵中各元素的值的计算轨迹,生成与所述编辑距离矩阵对应的轨迹矩阵;计算所述轨迹矩阵中各轨迹的相似度,筛选所述合同文本与所述合同模板文本相似度最高的轨迹,作为目标轨迹;根据目标轨迹,确定合同模板文本与合同文本中相同部分的子片段;根据所述子片段,分析出合同文本中新增、修改的文本片段,及合同模板文本中被删除的文本片段。
在一个实施例中,上述处理器执行所述根据所述合同文本以及所述合同模板文本,计算所述编辑距离矩阵中各元素的值的步骤包括:判断所述编辑距离矩阵的第三列中的第三个元素所处于的列数对应所述合同模板文本的字符与所述编辑距离矩阵的第三列中的第三个元素所处于行数对应所述合同文本的字符是否相同;若相同,则所述编辑距离矩阵的第三列中的第三个元素的值为第二列中的第二个元素的值;若不相同,则所述编辑距离矩阵的第三列中的第三个元素的值为第二列中的第二个元素、第三列中的第二个元素、第二列中的第三个元素中最小值加1得到;按照计算所述第三列中第三个元素的值的方法,依次计算所述编辑距离矩阵中各其他元素的值。
在一个实施例中,上述处理器执行所述获取所述编辑距离矩阵中各元素的值的计算轨迹,生成与所述编辑距离矩阵对应的轨迹矩阵的步骤包括:记录所述编辑距离矩阵中各元素的值的计算来源的计算轨迹;根据所述编辑距离矩阵中各元素的值的计算轨迹,标记所述编辑距离矩阵中各所述元素的值产生由来;完成标记后,生成与所述编辑距离矩阵对应的轨迹矩阵。
在一个实施例中,上述处理器执行所述建立编辑距离矩阵的步骤之前,包括:将所述合同模板文本的编号与所述合同文本的编号进行匹配;若匹配成功,生成建立编辑距离矩阵的指令。
在一个实施例中,上述处理器执行所述根据合同模板文本与合同文本的一一对应关系,分析出合同文本中新增、修改的文本片段,及合同模板文本中被删除的文本片段的步骤之后,包括:将所述新增、修改的文本片段以及合同模板文本中被删除的文本片段分别添加对应的变化类型标签,并加载在指定的文档中,生成所述合同文本的修改记录文档;将所述合同文本以及所述修改记录文档存储在同一存储空间内。
在一个实施例中,上述处理器执行所述将所述合同文本以及所述修改记录文档存储在同一存储空间内的步骤之前,包括:将所述合同文本添加电子印章。
在一个实施例中,上述处理器执行所述将所述合同文本添加电子印章的步骤,包括:获取所述合同模板文本的合同类型;在预设的合同类型与电子印章的对应关系中,调用与所述合同模板文本的合同类型对应的电子印章;将所述电子印章添加在所述合同文本上。
综上所述,本申请的计算机设备首先根据模板文本与合同文本建立编辑距离矩阵,然后计算编辑距离矩阵中各元素的值,然后根据各元素值的计算路径得到轨迹矩阵,计算轨迹矩阵中的相似度,得到相似度最高的轨迹,根据相似度最高的目标轨迹确定合同文本与模板文本中的一一对应部分文本,根据两两一一对应部分文本中间的文字来确定合同文本相较模板文本是哪里有删除、哪里有增加、哪里有修改,准确快速的找出合同文本相对模板文本的修改记录。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的和实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双速据率SDRAM(SSRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchl ink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
以上所述仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。
Claims (10)
1.一种查找合同修改部分的方法,其特征在于,包括:
建立编辑距离矩阵,将合同模板文本的字符从所述编辑距离矩阵的第一行第三列处起依次输入到第一行内,将合同文本的字符从所述编辑距离矩阵的第三行第一列处起依次输入到第一列内,将所述编辑距离矩阵中第二行的元素从第二个元素开始以数字0为起点依次加1进行初始化,将所述编辑距离矩阵中第二列的元素从第二个元素开始以数字0为起点依次加1进行初始化;
根据所述合同文本的字符以及所述合同模板文本的字符,计算所述编辑距离矩阵中各元素的值;
获取所述编辑距离矩阵中各元素的值的计算轨迹,生成与所述编辑距离矩阵对应的轨迹矩阵;
计算所述轨迹矩阵中各轨迹的相似度,筛选所述合同文本与所述合同模板文本相似度最高的轨迹,作为目标轨迹;
根据目标轨迹,确定合同模板文本与合同文本中的相同部分的子片段;
根据所述子片段,分析出合同文本中新增、修改的文本片段,及合同模板文本中被删除的文本片段。
2.如权利要求1所述的查找合同修改部分的方法,其特征在于,所述根据所述合同文本以及所述合同模板文本,计算所述编辑距离矩阵中各元素的值的步骤包括:
判断所述编辑距离矩阵的第三列中的第三个元素所处于的列数对应所述合同模板文本的字符,与所述编辑距离矩阵的第三列中的第三个元素所处于行数对应所述合同文本的字符是否相同;
若相同,则所述编辑距离矩阵的第三列中的第三个元素的值为第二列中的第二个元素的值;
若不相同,则所述编辑距离矩阵的第三列中的第三个元素的值为第二列中的第二个元素、第三列中的第二个元素、第二列中的第三个元素中最小值加1得到;
按照计算所述第三列中第三个元素的值的方法,依次计算所述编辑距离矩阵中各其他元素的值。
3.如权利要求1所述的查找合同修改部分的方法,其特征在于,所述获取所述编辑距离矩阵中各元素的值的计算轨迹,生成与所述编辑距离矩阵对应的轨迹矩阵的步骤包括:
记录所述编辑距离矩阵中各元素的值的计算来源的计算轨迹;
根据所述编辑距离矩阵中各元素的值的计算轨迹,标记所述编辑距离矩阵中各所述元素的值产生由来;
完成标记后,生成与所述编辑距离矩阵对应的轨迹矩阵。
4.如权利要求1所述的查找合同修改部分的方法,其特征在于,所述建立编辑距离矩阵的步骤之前,包括:
将所述合同模板文本的编号与所述合同文本的编号进行匹配;
若匹配成功,生成建立编辑距离矩阵的指令。
5.如权利要求1所述的查找合同修改部分的方法,其特征在于,所述根据合同模板文本与合同文本的一一对应关系,分析出合同文本中新增、修改的文本片段,及合同模板文本中被删除的文本片段的步骤之后,包括:
将所述新增、修改的文本片段以及合同模板文本中被删除的文本片段分别添加对应的变化类型标签,并加载在指定的文档中,生成所述合同文本的修改记录文档;
将所述合同文本以及所述修改记录文档存储在同一存储空间内。
6.如权利要求5所述的查找合同修改部分的方法,其特征在于,所述将所述合同文本以及所述修改记录文档存储在同一存储空间内的步骤之前,包括:
将所述合同文本添加电子印章。
7.如权利要求6所述的查找合同修改部分的方法,其特征在于,所述将所述合同文本添加电子印章的步骤,包括:
获取所述合同模板文本的合同类型;
在预设的合同类型与电子印章的对应关系中,调用与所述合同模板文本的合同类型对应的电子印章;
将所述电子印章添加在所述合同文本上。
8.一种查找合同修改部分的装置,其特征在于,包括:
建立模块,用于建立编辑距离矩阵,将合同模板文本的字符从所述编辑距离矩阵的第一行第三列处起依次输入到第一行内,将合同文本的字符从所述编辑距离矩阵的第三行第一列处起依次输入到第一列内,将所述编辑距离矩阵中第二行的元素从第二个元素开始以数字0为起点依次加1进行初始化,将所述编辑距离矩阵中第二列的元素从第二个元素开始以数字0依次加1进行初始化;
计算值模块,用于根据所述合同文本的字符以及所述合同模板文本的字符,计算所述编辑距离矩阵中各元素的值;
生成模块,用于记录所述编辑距离矩阵中各元素的值的计算轨迹,生成与所述编辑距离矩阵对应的轨迹矩阵;
筛选模块,用于获取所述轨迹矩阵中各轨迹的相似度,筛选所述合同文本与所述合同模板文本相似度最高的轨迹,作为目标轨迹;
确定模块,用于根据目标轨迹,确定合同模板文本与合同文本中的相同部分的子片段;
分析模块,用于根据所述子片段,分析出合同文本中新增、修改的文本片段,及合同模板文本中被删除的文本片段。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910101283.1A CN109933754B (zh) | 2019-01-31 | 2019-01-31 | 查找合同修改部分的方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910101283.1A CN109933754B (zh) | 2019-01-31 | 2019-01-31 | 查找合同修改部分的方法、装置、计算机设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109933754A true CN109933754A (zh) | 2019-06-25 |
CN109933754B CN109933754B (zh) | 2023-12-29 |
Family
ID=66985408
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910101283.1A Active CN109933754B (zh) | 2019-01-31 | 2019-01-31 | 查找合同修改部分的方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109933754B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110442853A (zh) * | 2019-08-09 | 2019-11-12 | 深圳前海微众银行股份有限公司 | 文本定位方法、装置、终端及存储介质 |
CN110442876A (zh) * | 2019-08-09 | 2019-11-12 | 深圳前海微众银行股份有限公司 | 文本挖掘方法、装置、终端及存储介质 |
CN110580243A (zh) * | 2019-08-30 | 2019-12-17 | 深圳壹账通智能科技有限公司 | 一种文件比对方法、装置、电子设备及存储介质 |
CN111241803A (zh) * | 2020-01-15 | 2020-06-05 | 深圳壹账通智能科技有限公司 | 生成文本文件的方法、装置、计算机设备及可读存储介质 |
CN113033171A (zh) * | 2019-12-09 | 2021-06-25 | 阿里巴巴集团控股有限公司 | 模板创建方法、文件生成方法、装置及计算机设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080077570A1 (en) * | 2004-10-25 | 2008-03-27 | Infovell, Inc. | Full Text Query and Search Systems and Method of Use |
CN105589838A (zh) * | 2015-12-24 | 2016-05-18 | 中国电子科技集团公司第三十三研究所 | 一种基于文件比较的电子公文痕迹保留方法 |
CN107862062A (zh) * | 2017-11-15 | 2018-03-30 | 中国银行股份有限公司 | 一种信息查询方法、装置及电子设备 |
CN108509410A (zh) * | 2017-02-27 | 2018-09-07 | 广东神马搜索科技有限公司 | 文本语义相似度计算方法、装置及用户终端 |
-
2019
- 2019-01-31 CN CN201910101283.1A patent/CN109933754B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080077570A1 (en) * | 2004-10-25 | 2008-03-27 | Infovell, Inc. | Full Text Query and Search Systems and Method of Use |
CN105589838A (zh) * | 2015-12-24 | 2016-05-18 | 中国电子科技集团公司第三十三研究所 | 一种基于文件比较的电子公文痕迹保留方法 |
CN108509410A (zh) * | 2017-02-27 | 2018-09-07 | 广东神马搜索科技有限公司 | 文本语义相似度计算方法、装置及用户终端 |
CN107862062A (zh) * | 2017-11-15 | 2018-03-30 | 中国银行股份有限公司 | 一种信息查询方法、装置及电子设备 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110442853A (zh) * | 2019-08-09 | 2019-11-12 | 深圳前海微众银行股份有限公司 | 文本定位方法、装置、终端及存储介质 |
CN110442876A (zh) * | 2019-08-09 | 2019-11-12 | 深圳前海微众银行股份有限公司 | 文本挖掘方法、装置、终端及存储介质 |
CN110442876B (zh) * | 2019-08-09 | 2023-09-05 | 深圳前海微众银行股份有限公司 | 文本挖掘方法、装置、终端及存储介质 |
CN110580243A (zh) * | 2019-08-30 | 2019-12-17 | 深圳壹账通智能科技有限公司 | 一种文件比对方法、装置、电子设备及存储介质 |
CN113033171A (zh) * | 2019-12-09 | 2021-06-25 | 阿里巴巴集团控股有限公司 | 模板创建方法、文件生成方法、装置及计算机设备 |
CN111241803A (zh) * | 2020-01-15 | 2020-06-05 | 深圳壹账通智能科技有限公司 | 生成文本文件的方法、装置、计算机设备及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109933754B (zh) | 2023-12-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109933754A (zh) | 查找合同修改部分的方法、装置、计算机设备和存储介质 | |
CN110489321B (zh) | 测试用例筛选方法、装置、计算机设备和存储介质 | |
CN107622008B (zh) | 一种应用页面的遍历方法和装置 | |
CN109033058B (zh) | 合同文本验证方法、装置、计算机设备和存储介质 | |
CN110110726A (zh) | 电力设备铭牌识别方法、装置、计算机设备和存储介质 | |
CN106021014B (zh) | 一种内存管理方法及装置 | |
CN1664810A (zh) | 辅助表格填充 | |
CN101373446B (zh) | 文件系统的压力测试方法 | |
CN110231937B (zh) | 脚本缺陷扫描方法、装置、计算机设备和存储介质 | |
WO2008105611A1 (en) | Database auto-building method for link of search data in gis system using cad drawings | |
CN108415846A (zh) | 一种生成最小自动化测试用例集的方法和装置 | |
CN101675415B (zh) | 程序模式分析装置、模式出现状况信息产生方法、模式信息生成装置及程序 | |
CN105975269A (zh) | 一种基于流程模型的需求验证方法 | |
CN113572900B (zh) | 外呼测试方法、装置、计算机设备和计算机可读存储介质 | |
US11875234B2 (en) | Systems and/or methods for machine-learning based data correction and completion in sparse datasets | |
KR101373668B1 (ko) | 메모리 수리 장치 및 방법 | |
CN110297761A (zh) | 返回数据的获取方法、装置、计算机设备及存储介质 | |
CN109445778A (zh) | 一种基于svg文件的界面辅助生成的方法和装置 | |
CN117132763A (zh) | 电力图像异常检测方法、装置、计算机设备和存储介质 | |
CN109670534B (zh) | 政策热点预测的方法、装置、计算机设备和存储介质 | |
CN106033452A (zh) | 一种数据更新方法及装置 | |
CN104408403A (zh) | 一种二次录入不一致的仲裁方法及装置 | |
CN114077859A (zh) | 异常样本的检测方法及装置、电子设备、存储介质 | |
CN112445461B (zh) | 一种业务规则生成方法、装置、电子设备和可读存储介质 | |
WO2023275887A1 (en) | System and method for automated software testing |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |