CN115659942A - 合同模板的生成、装置及设备 - Google Patents
合同模板的生成、装置及设备 Download PDFInfo
- Publication number
- CN115659942A CN115659942A CN202211419678.4A CN202211419678A CN115659942A CN 115659942 A CN115659942 A CN 115659942A CN 202211419678 A CN202211419678 A CN 202211419678A CN 115659942 A CN115659942 A CN 115659942A
- Authority
- CN
- China
- Prior art keywords
- elements
- style
- contract template
- data
- style data
- 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
Landscapes
- Document Processing Apparatus (AREA)
Abstract
本申请实施例提供了一种合同模板的生成方法、装置及电子设备,该方法包括:获取待处理合同模板的各个元素,元素的样式数据用于表示待处理合同模板的样式;确定各个元素的排列顺序,根据排列顺序,确定各个元素的父子关系模型;根据父子关系模型,确定元素的继承关系;元素的继承关系为子元素继承父元素的样式数据的关系;根据继承关系,更新各个元素中每个子元素的样式数据;将各个元素中的样式数据转换为待处理合同模板对应的样式数据结构;根据待处理合同模板对应的样式数据结构,生成目标合同模板。
Description
技术领域
本申请涉及金融科技(Fintech)的合同模板的生成技术,涉及但不限于一种合同模板的生成、装置及电子设备。
背景技术
随着计算机技术的发展,越来越多的技术应用在金融领域,传统金融业正在逐步向金融科技转变,但由于金融行业的安全性、实时性要求,也对技术提出了更高的要求。
合同模板的样式也就是是合同的格式,例如合同中文本的字体、字号、加粗、对齐、缩进、页边距、行距、页码等其它格式信息。合同模板的样式的正确与否会直接影响到合同的有效性,因此,在生成一份合同时,保证合同模板样式的准确是十分重要的。目前,在基于超文本标记语言(Hyper Text Markup Language,HTML)生成合同模板时,一般是基于标准合同模板生成,即会预先配置标准合同模板的样式,使用固定字符串在标准合同模板中传入参数占位符,在生成合同模板时,通过传入参数键值对,对参数占位符进行替换,即可以将待写入的合同信息传入标准合同模板中,从而生成合同模板。
这种方式虽然可以快速地生成合同模板,但合同模板的样式完全依赖于标准合同模板的正确性,并且,合同模板的样式是零散配置在HTML文本的各个元素中,这导致从单个元素中提取到的合同模板的样式信息是不完整的,无法通过提取HTML文本中各个元素的样式信息判断合同模板的样式是否正确,只有在生成合同模板后才能发现合同模板是否出现错误,这会极大影响生成合同模板的准确性和效率。
发明内容
本申请实施例提供一种合同模板的生成方法、装置、电子设备和计算机储存介质。
本申请实施例的技术方案是这样实现的:
本申请实施例提供一种合同模板的生成方法,所述方法包括:
获取待处理合同模板的各个元素,所述元素的样式数据用于表示所述待处理合同模板的样式;
确定所述各个元素的排列顺序,根据所述排列顺序,确定所述各个元素的父子关系模型;
根据所述父子关系模型,确定元素的继承关系;所述元素的继承关系为子元素继承父元素的样式数据的关系;
根据所述继承关系,更新所述各个元素中每个子元素的样式数据;
将所述各个元素中的样式数据转换为所述待处理合同模板对应的样式数据结构;
根据所述待处理合同模板对应的样式数据结构,生成目标合同模板。
在本申请的一些实施例中,所述根据所述排列顺序,确定所述各个元素的父子关系模型,包括:确定所述各个元素中每个元素的对称标签,所述对称标签包括开始标签和闭合标签;根据所述各个元素的对称标签之间的排列顺序,确定所述各个元素之间的嵌套关系;根据所述各个元素之间的嵌套关系,确定所述各个元素之间的父子关系模型。
本申请实施例中,通过分析各个元素中每个元素的对称标签之间的排列顺序,可以确定各个元素之间的嵌套关系,通过嵌套关系可以确定各个元素之间的父子关系,从而可以准确地构建各个元素之间的父子关系模型,有利于提高确定元素的样式数据的准确性。
在本申请的一些实施例中,所述根据所述各个元素之间的嵌套关系,确定所述各个元素之间的父子关系模型,包括:确定所述各个元素中的第1层元素,所述第1层元素表示自身内部不包含其它元素的对称标签的元素;从每个所述第1层元素开始,按照从内到外的顺序查找嵌套所述每一层元素的上一层元素,直至查找到不存在上一层元素的最外层元素;所述每一层元素的对称标签位于对应的上一层元素的开始标签和闭合标签之间;将所述每一层元素的上一层元素确定为所述每一层元素的父元素,将所述每一层元素确定为对应的上一层元素的子元素。
本申请实施例中,通过确定各个元素中的第一层元素,然后从第一层元素开始,按照从内到外的顺序查找嵌套每一层元素的上一层元素,可以得到两个具有嵌套关系的元素之间的父子关系,即可较为准确地确定各个元素的父子关系模型,有利于提高确定元素的样式数据的准确性。
在本申请的一些实施例中,所述根据所述继承关系,更新所述各个元素中每个子元素的样式数据,包括:在所述父元素的样式数据的类型与所述子元素的样式数据的类型不存在交集的情况下,将更新后的所述子元素的样式数据确定为更新前的所述子元素的样式数据与所述父元素的样式数据的并集;在所述父元素的样式数据的类型与所述子元素的样式数据的类型存在交集的情况下,确定更新后的所述子元素的样式数据包括第一数据和更新前的所述子元素的样式数据,所述第一数据为所述父元素的样式数据中除与所述子元素的样式数据的类型相同的数据之外的数据。
本申请实施例中,基于父元素的样式数据的类型与子元素的样式数据的类型的是否存在交集,根据继承关系,对子元素的样式数据进行更新,使得每个子元素的样式数据中都包含了其继承的父元素的样式数据,则每个子元素能够准确反映对应的合同模板的样式。
在本申请的一些实施例中,所述将所述各个元素中的样式数据转换为所述待处理合同模板对应的样式数据结构,包括:通过对所述各个元素的至少部分元素的样式数据进行排序和散列化处理,得到所述至少部分元素的样式指纹数据,所述样式指纹数据为以字符串形式表示的元素的样式数据;将所述至少部分元素的样式指纹数据和所述至少部分元素的类型进行组合,得到所述待处理合同模板对应的样式数据结构。
本申请实施例中,通过对各个元素的至少部分元素的样式数据进行排序和散列化处理,可以将元素的样式数据转换为唯一的样式指纹数据,样式指纹数据以字符串形式构成,根据样式指纹数据判断元素的样式数据,能够有效提升比对效率,使得元素的样式数据便于管理。
在本申请的一些实施例中,在通过对每个元素的样式数据进行排序和散列化处理之前,所述方法还包括:在所述各个元素中,将重要性加权值小于预设阈值的非标准元素滤除;其中,所述重要性加权值用于表示元素的重要性程度,所述非标准元素表示与自定义的标准样式数据不相符的元素。
本申请实施例中,通过筛选出待处理合同模板中的标准元素与非标准元素,并通过计算非标准元素的重要性加权值,将重要性加权值小于预设阈值的非标准元素滤除,得到待处理合同模板中的标准元素以及重要性较高的非标准元素,能够有效消除待处理合同模板中的无效元素,有利于提高待处理合同模板中元素的比对效率。
在本申请的一些实施例中,所述根据所述待处理合同模板对应的样式数据结构,生成目标合同模板,包括:根据所述待处理合同模板对应的样式数据结构中元素的类型,对所述各个元素进行分组,得到至少一组元素集合;所述元素集合表示类型相同的元素的集合;在所述至少一组元素集合中每组元素集合都满足预设的第一条件时,根据所述待处理合同模板对应的样式数据结构,生成目标合同模板;所述第一条件包括:所述元素集合中各个元素的样式指纹数据相同;在所述至少一组元素集合中存在不满足所述预设的第一条件的元素集合时,确定至少一组异常元素集合;所述异常元素集合表示所述元素集合中元素的样式指纹数据不相同的元素集合;确定标准合同模板中第一类型的元素的样式指纹数据;所述第一类型表示所述至少一组异常元素集合中每组异常元素集合的元素的类型;将所述每组异常元素集合的元素的样式指纹数据,对应替换为所述标准合同模板的第一类型的元素的样式指纹数据,得到替换后的待处理合同模板对应的样式数据结构;根据所述替换后的待处理合同模板对应的样式数据结构,生成目标合同模板。
本申请实施例中,通过对待处理合同模板中相同类型的元素进行分组,并比较相同类型的元素的样式指纹数据是否一致,能够快速地判断待处理合同模板中相同的内容的样式是否一致,并且在发现存在不一致时,可以根据标准合同模板中第一类型的元素的样式指纹数据对应进行修改,能够有效去除待处理合同模板中上下文不一致的样式。
在本申请的一些实施例中,所述根据所述待处理合同模板对应的样式数据结构,生成目标合同模板,包括:获取标准合同模板对应的样式数据结构;针对所述待处理合同模板对应的样式数据结构和所述标准合同模板对应的样式数据结构,判断同一类型的元素的样式指纹数据是否相同;在所述同一类型的元素的样式指纹数据都相同时,根据所述待处理合同模板对应的样式数据结构,生成目标合同模板;在所述同一类型的元素的样式指纹数据存在不相同时,确定至少一个异常元素;所述异常元素表示所述同一类型的元素的样式指纹数据不相同的元素;确定标准合同模板中第二类型的元素的样式指纹数据;所述第二类型表示所述至少一个异常元素中每个异常元素的类型;将所述每个异常元素的样式指纹数据,对应替换为所述标准合同模板的第二类型的元素的样式指纹数据,得到替换后的待处理合同模板对应的样式数据结构;根据所述替换后的待处理合同模板对应的样式数据结构,生成目标合同模板。
本申请实施例中,通过将待处理合同模板中与标准合同模板中同一类型的元素的样式指纹数据进行比较,可以快速判断待处理合同模板的样式是否与标准合同模板的样式一致,并且在发现存在不一致时,可以根据标准合同模板中第二类型的元素的样式指纹数据对应进行修改,能够有效去除待处理合同模板中与标准合同模板不一致的样式。
本申请实施例提供一种合同模板的生成装置,所述装置包括:
获取模块,用于获取待处理合同模板的各个元素,所述元素的样式数据用于表示所述待处理合同模板的样式;
第一确定模块,用于确定所述各个元素的排列顺序,根据所述排列顺序,确定所述各个元素的父子关系模型;
第二确定模块,用于根据所述父子关系模型,确定元素的继承关系;所述元素的继承关系为子元素继承父元素的样式数据的关系;
更新模块,用于根据所述继承关系,更新所述各个元素中每个子元素的样式数据;
转换模块,用于将所述各个元素中的样式数据转换为所述待处理合同模板对应的样式数据结构;
生成模块,用于根据所述待处理合同模板对应的样式数据结构,生成目标合同模板。
本申请实施例提供一种电子设备,所述电子设备包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现上述任意一种合同模板的生成方法。
本申请实施例提供一种计算机可读存储介质,存储有可执行指令,用于被处理器执行时,实现上述任意一种合同模板的生成方法。
可以看出,本申请实施例中,通过确定待处理合同模板的各个元素的排列顺序,可以确定各个元素的父子关系模型,然后,根据父子关系模型,确定各个元素的继承关系,这里,元素的继承关系为子元素继承父元素的样式数据的关系,元素的样式数据用于表示待处理合同模板的样式,进而,可以根据各个元素的继承关系,更新各个元素中每个子元素的样式数据,即更新后的子元素的样式数据还包括了其继承的父元素的样式数据,从而可以准确得到各个元素的样式数据;并且,还将各个元素中的样式数据转换为待处理合同模板对应的样式数据结构。可以看出,本申请实施例能够准确提取到待处理合同模板的样式信息,能够有效提升生成目标合同模板的准确性。
附图说明
图1为本申请实施例提供的相关技术中HTML文本的示意图;
图2为本申请实施例提供的合同模板的生成方法的一个流程图;
图3为本申请实施例提供的待处理合同模板的HTML文本的一个示意图;
图4为本申请实施例提供的环形数据结构的第一个示意图;
图5为本申请实施例提供的环形数据结构的第二个示意图;
图6为本申请实施例提供的环形数据结构的第三个示意图;
图7为本申请实施例提供的待处理合同模板中各个元素的标签的移动过程的一个示意图;
图8为本申请实施例提供的父子关系模型的一个示意图;
图9为本申请实施例提供的读取元素的样式数据的第一个流程示意图;
图10为本申请实施例提供的读取元素的样式数据的第二个流程示意图;
图11为本申请实施例提供的读取元素的样式数据的第三个流程示意图;
图12为本申请实施例提供的更新子元素的样式数据的第一个示意图;
图13为本申请实施例提供的更新子元素的样式数据的第二个示意图;
图14为本申请实施例提供的更新子元素的样式数据的第三个示意图;
图15为本申请实施例提供的元素的样式数据散裂化处理的第一个示意图;
图16为本申请实施例提供的元素的样式数据散裂化处理的第二个示意图;
图17为本申请实施例提供的合同模板对应的样式数据结构的一个示意图;
图18为本申请实施例提供的配置标准合同模板的各个元素的样式数据的一个示意图;
图19为本申请实施例提供的螺旋线数据结构的一个示意图;
图20为本申请实施例提供的待处理合同模板的各个元素的分组结果的示意图;
图21为本申请实施例提供的一组元素集合的每个元素的样式数据结构的示意图;
图22为本申请实施例提供的待处理合同模板中与标准合同模板中同一类型的元素的样式数据结构的示意图;
图23为本申请实施例提供的合同模板的生成方法的一个具体实现的流程示意图;
图24为本申请实施例的提供的合同模板的生成装置的一个可选的组成结构示意图;
图25为本申请实施例提供的电子设备的一个可选的组成结构示意图。
具体实施方式
以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所提供的实施例仅仅用以解释本申请,并不用于限定本申请。另外,以下所提供的实施例是用于实施本申请的部分实施例,而非提供实施本申请的全部实施例,在不冲突的情况下,本申请实施例记载的技术方案可以任意组合的方式实施。
需要说明的是,在本申请实施例中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的方法或者装置不仅包括所明确记载的要素,而且还包括没有明确列出的其他要素,或者是还包括为实施方法或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括该要素的方法或者装置中还存在另外的相关要素(例如方法中的步骤或者装置中的单元,例如的单元可以是部分电路、部分处理器、部分程序或软件等等)。
例如,本申请实施例提供的合同模板的生成方法包含了一系列的步骤,但是本申请实施例提供的合同模板的生成方法不限于所记载的步骤,同样地,本申请实施例提供的合同模板的生成装置包括了一系列模块,但是本申请实施例提供的装置不限于包括所明确记载的模块,还可以包括为获取相关信息、或基于信息进行处理时所需要设置的模块。
在相关技术中,一般是基于HTML生成合同模板,由于不能在生成合同模板时准确提取合同模板的样式,因此容易生成错误的样式,例如,(1)合同中部分文本的样式使用了未经授权的字体,可能会引起法律纠纷,被第三方公司上诉侵权;(2)合同中各部分正文的字号大小不一致;(3)合同中同段落的字体、缩进不一致;(4)合同中,不同段落的条款序号分级不一致;(5)不同合同之间,页边距、字号等样式不一致。当合同中出现错误的样式时,签订合同的双方会对合同的有效性产生质疑,甚至产生民事纠纷,尤其是对于金融合同,相关法律法规要求:若签订双方不能达成一致,不允许重新签订合同,这会极大地影响合同双方的权益,因此,准确地提取合同模板的样式,在生成合同模板之前检验合同模板的样式是否准确十分重要。
在基于HTML生成合同模板时,合同模板的样式是零散配置在HTML文本的各个元素中的,这里,元素一般是由成对出现的对称标签组成的,包括开始标签和闭合标签,例如,<h1></h1>,<h1>为开始标签,</h1>为闭合标签。元素的对称标签中间还可以嵌套其它元素,通过对各个元素分别配置样式数据,可以对合同模板的样式进行配置。
图1为本申请实施例提供的相关技术中HTML文本的示意图,如图1所示,HTML文本包括5个元素,分别为:<body></body>元素、<h1></h1>元素、<h2></h2>元素、<span></span>元素、<br></br>元素,其中,<br></br>元素中没有配置样式数据,<h2></h2>元素中配置有样式数据:color=red,<h1></h1>元素中配置有样式数据:font-size=20;<br></br>元素的上一层元素为<h2></h2>元素,则<h2></h2>元素的样式数据也会影响<br></br>元素的样式数据,<h2></h2>元素的上一层元素为<h1></h1>元素,则<h1></h1>元素的样式数据也会影响<h2></h2>元素的样式数据。
当提取<h2></h2>元素中的样式数据时,只能得到样式数据为:color=red,而不能提取到其上层元素的样式数据:font-size=20;当提取<br></br>元素中的样式数据时,得到样式数据为空,而不能提取到其上层元素的样式数据:color=red和font-size=20,因此,会导出从单个元素中提取到的样式信息不准确,因此,无法通过提取HTML文本中各个元素的样式信息判断合同模板的样式是否正确,只有在生成合同模板后才能发现合同模板是否出现错误,这会极大影响生成合同模板的准确性和效率。
针对相关技术中存在的问题,提出本申请实施例的技术方案。本申请实施例可以应用于终端和/服务器中,这里,终端可以是瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、可编程消费电子产品、网络个人电脑、小型计算机系统,等等。服务器可以是小型计算机系统﹑大型计算机系统和包括上述任何系统的分布式云计算技术环境,等等。
终端、服务器等电子设备可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括例程、程序、目标程序、组件、逻辑、数据结构等等,它们执行特定的任务或者实现特定的抽象数据类型。计算机系统/服务器可以在分布式云计算环境中实施,分布式云计算环境中,任务是由通过通信网络链接的远程处理设备执行的。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。
图2为本申请实施例提供的合同模板的生成方法的一个流程图,如图2所示,该流程可以包括:
步骤201:获取待处理合同模板的各个元素,元素的样式数据用于表示待处理合同模板的样式。
本申请实施例中,待处理合同模板表示的是需要生成的合同模板,可以基于HTML文本配置待处理合同模板的样式。HTML文本中包括多个元素,可以通过配置多个元素的样式数据,实现配置待处理合同模板的样式。
示例性地,一个配置合同模板的样式的HTML文本如图3所示,HTML文本中包括元素:<body></body>元素、<h1></h1>元素、<h2></h2>元素、<span></span>元素、<br></br>元素,<body></body>元素的样式数据可以为:color=black,其表示合同模板的样式为:字体的颜色为黑色;<h1></h1>元素的样式数据可以为:font-size=20,其表示合同模板的样式为:字体的大小为20;<h2></h2>元素的样式数据可以为:font-size=14,其表示合同模板的样式为:字体的大小为14;<span></span>元素的样式数据可以为:margin=18,其表示合同模板的样式为:页边距为18;<br></br>元素的样式数据可以为:color=red、margin=16,其表示合同模板的样式为:字体的颜色为红色、以及页边距为16。
本申请实施例中,可以通过获取HTML文本得到待处理合同模板的各个元素,并得到各个元素对应的样式数据。
步骤202:确定各个元素的排列顺序,根据排列顺序,确定各个元素的父子关系模型。
本申请实施例中,待处理合同模板的样式信息是零散配置在HTML文本的各个元素中的,因此,通过获取得到的待处理合同模板的各个元素,只能确定单个元素的样式数据,但HTML文本中元素都是左右闭合对称排列的,并且闭合的元素中间还可以嵌套其它的元素,而嵌套的其它元素会继承被嵌套的元素的样式数据,因此,只获取待处理合同模板的各个元素的样式数据,不能准确确定待处理合同模板的样式。
本申请实施例中,如图3所示,<h2></h2>元素的中间嵌套着<br></br>元素,一个<h1></h1>元素中间嵌套着<h2></h2>元素,另一个<h1></h1>元素中间嵌套着<span></span>元素,<body></body>元素中间嵌套着两个<h1></h1>元素,可以看出,HTML文本中的元素是逐层嵌套组成的,嵌套在某个元素里的元素即为该元素的子元素,而该元素排列在子元素的外面,该元素即为父元素。
示例性地,如图3所示,<h2></h2>元素的中间嵌套着<br></br>元素,则<br></br>元素为子元素,<h2></h2>元素为父元素,<br></br>元素会继承<h2></h2>元素的样式数据。
本申请实施例中,HTML文本中元素是逐层嵌套组成的,因此,可以逐层确定各个元素的排列顺序,根据各个元素的排列顺序,即可以确定各个元素的父子关系,从而构建各个元素的父子关系模型,这里,父子关系模型用于表示相邻排列的两个元素的父子关系。
步骤203:根据父子关系模型,确定元素的继承关系;元素的继承关系为子元素继承父元素的样式数据的关系。
本申请实施例中,在父子关系模型中,子元素会继承父元素的样式数据,示例性地,如图3所示,<h2></h2>元素的中间嵌套着<br></br>元素,则<br></br>元素为子元素,<h2></h2>元素为父元素,<br></br>元素会继承<h2></h2>元素的样式数据。若<h2></h2>元素的样式数据为:font-size=20、color=black、margin=18,<br></br>元素的样式数据为:font-size=14,则<br></br>元素继承<h2></h2>元素的样式数据后,<b></br>元素的样式数据为:font-size=14、color=black、margin=18。
本申请实施例中,元素的样式数据会逐层传递,即子元素会继承其父元素的样式数据,而其父元素在父子关系模型中作为子元素时,同样也会继承其对应的父元素的样式数据,因此,元素的样式数据会逐层传递,直至最底层的元素,最底层的元素会继承其上层所有元素的样式数据。
步骤204:根据继承关系,更新各个元素中每个子元素的样式数据。
本申请实施例中,根据各个元素的继承关系,可以对各个元素的样式数据进行更新,这里,由于元素会继承其上层所有元素的样式数据,同时,元素本身可能也配置有样式数据,因此,可以根据元素本身配置的样式数据中是否包括继承的样式数据,对元素的样式数据进行更新,若元素本身配置的样式数据中包括继承的样式数据,则确定元素的样式数据为其本身配置的样式数据,若元素本身配置的样式数据中不包括继承的样式数据,则确定元素的样式数据为其本身配置的样式数据和继承的样式数据并集。
示例性地,父元素的样式数据为:font-size=20、color=black、margin=18,子元素的样式数据为:font-size=14,由于子元素的样式数据中已经包括了样式“font-size”的数据,因此,确定子元素的样式“font-size”的数据为:font-size=14,同时,由于子元素的样式数据中不包括继承的样式“color”和样式“margin”的数据,因此,确定子元素的样式“color”的数据为:color=black,子元素的样式“margin”的数据为:margin=18,最终得到子元素的样式数据为:font-size=14、color=black、margin=18。
步骤205:将各个元素中的样式数据转换为待处理合同模板对应的样式数据结构。
本申请实施例中,合同模板的样式数据结构(Style Message In Contract,SMIC)用于记录合同模板中各个元素的样式数据,通过将各个元素中的样式数据转换为样式数据结构,这里,SMIC为结构化数据,可以实现根据SMIC表示合同模板的样式信息。
本申请实施例中,可以基于合同模板的样式数据的采集算法(Style MessageAlgorithm,SMA),对待处理合同模板的各个元素的样式数据进行处理,将待处理合同模板中每个元素的样式数据通过SMA算法生成SMIC。这里,SMA算法包括对待处理合同模板中的元素进行第一次过滤和第二次过滤,以及对各个元素的样式数据进行排序、散列化、取模运算的处理。
本申请实施例中,合同模板的样式数据结构,除了记录合同模板中各个元素的样式数据,还可以用于记录待处理合同的编码信息,这里,合同的编码信息即相当于合同的标识信息,每个合同的编码信息是唯一的,可以根据合同的编码信息确定对应的合同。合同的编码信息可以是基于自增加的数字自动生成的,根据数字预设的位数,可以确定合同模板的最大数量,示例性地,合同的编码信息预设为5位数,则可以容纳十万个合同模板,对应的,可以通过调整合同的编码信息的位数,调整容纳的合同模板的数量。
本申请实施例中,合同模板的样式数据结构还可以用于记录当前元素的标识信息,以及当前元素的父元素的标识信息,这里,每个元素的标识信息也是唯一的,可以根据元素的标识信息确定对应的元素。
步骤206:根据待处理合同模板对应的样式数据结构,生成目标合同模板。
可以看出,本申请实施例中,基于待处理合同模板的各个元素的排列顺序,确定各个元素的父子关系模型,从而可以根据父子关系模型,确定元素的继承关系,从而对各个元素中每个元素的样式数据进行更新,使得各个元素的样式数据包括了其继承的元素的样式数据,从而可以准确得到各个元素的样式数据;并且,还将各个元素中的样式数据转换为待处理合同模板对应的样式数据结构,可以通过样式数据结构判断待处理合同模板的样式是否正确,可以有效提升生成目标合同模板的准确性。
在实际应用中,步骤201至步骤206可以基于电子设备的处理器实现,上述处理器可以是特定用途集成电路(Application Specific Integrated Circuit,ASIC)、数字信号处理器(Digital Signal Processor,DSP)、数字信号处理装置(Digital SignalProcessing Device,DSPD)、可编程逻辑装置(Programmable Logic Device,PLD)、现场可编程门阵列(Field Programmable Gate Array,FPGA)、中央处理器(Central ProcessingUnit,CPU)、控制器、微控制器、微处理器中的至少一种。可以理解地,实现上述处理器功能的电子器件还可以为其它,本申请实施例不作限制。
在一些实施例中,所述根据所述排列顺序,确定所述各个元素的父子关系模型,包括:确定所述各个元素中每个元素的对称标签,所述对称标签包括开始标签和闭合标签;根据所述各个元素的对称标签之间的排列顺序,确定所述各个元素之间的嵌套关系;根据所述各个元素之间的嵌套关系,确定所述各个元素之间的父子关系模型。
本申请实施例中,元素具有左右闭合对称的特点,即每个元素包括一组对称标签,分别为开始标签和闭合标签,对称标签中左边的标签为开始标签,左边的标签为结束标签。示例性地,<br></br>元素包括:开始标签<br>和结束标签</br>。
本申请实施例中,元素的中间还可以嵌套其它的元素,示例性地,对于HTML文本:<h1><br></br></h1>,<br></br>元素嵌套在<h1></h1>元素的对称标签之间,则<h1></h1>元素和<br></br>元素的排列顺序为:<h1></h1>元素排列在外层,<br></br>元素排列在里层,<br></br>元素先闭合,<h1></h1>元素后闭合,因此,可以根据各个元素的对称标签之间的排列顺序,确定各个元素之间的嵌套关系。
本申请实施例中,根据各个元素之间的嵌套关系,可以逐层确定相邻排列的两个元素中,哪一个排列在里层,哪一个排列在外层,其中,排列在外层的元素为父元素,排列在里层的元素为子元素,从而可以确定各个元素之间的父子关系模型。
本申请实施例中,如图3所示,HTML文本中各个元素的对称标签的排列顺序为:<body></body>元素排列在最外层,两个<h1></h1>元素排列在<body></body>元素的下一层,<span></span>元素和<h2></h2>元素分别对应排列在两个<h1></h1>元素的下一层,<br></br>元素排列在<h2></h2>元素的下一层,则根据排列顺序可以确定各个元素之间的嵌套关系为:<h2></h2>元素的中间嵌套<br></br>元素,一个<h1></h1>元素中间嵌套<h2></h2>元素,另一个<h1></h1>元素中间嵌套<span></span>元素,<body></body>元素中间嵌套两个<h1></h1>元素。
从而可以得到各个元素之间的父子关系模型为:<body></body>元素为两个<h1></h1>元素的父元素,两个<h1></h1>元素分别为<span></span>元素和<h2></h2>元素的父元素,<h2></h2>元素为<br></br>元素的父元素。
可以看出,本申请实施例中,通过分析各个元素中每个元素的对称标签之间的排列顺序,可以确定各个元素之间的嵌套关系,通过嵌套关系可以确定各个元素之间的父子关系,从而可以准确地构建各个元素之间的父子关系模型,有利于提高确定元素的样式数据的准确性。
在一些实施例中,所述根据所述各个元素之间的嵌套关系,确定所述各个元素之间的父子关系模型,包括:确定所述各个元素中的第1层元素,所述第1层元素表示自身内部不包含其它元素的对称标签的元素;从每个所述第1层元素开始,按照从内到外的顺序查找嵌套所述每一层元素的上一层元素,直至查找到不存在上一层元素的最外层元素;所述每一层元素的对称标签位于对应的上一层元素的开始标签和闭合标签之间;将所述每一层元素的上一层元素确定为所述每一层元素的父元素,将所述每一层元素确定为对应的上一层元素的子元素。
本申请实施例中,第1层元素表示自身内部不包含其他元素的对称标签的元素,即为最内层的元素,最内层的元素中不嵌套任何其它元素。在确定最内层的元素后,查找最内层的元素的上一层元素,这里,最内层的元素的对称标签位于对应的上一层元素的开始标签和闭合标签之间;同样地,在确定最内层的元素的上一层元素后,再查找该元素对应的上一层元素,按照从内到外的顺序查找嵌套每一层元素的上一层元素,直至查找到不存在上一层元素的最外层元素。
本申请实施例中,将每一层元素的上一层元素确定为每一层元素的父元素,将每一层元素确定为对应的上一层元素的子元素,从而可以得到两个具有嵌套关系的元素之间的父子关系,并按照从内到外的顺序,可以依次得到待处理合同模板中各个元素之间的父子关系,从而确定各个元素的父子关系模型。
本申请实施例中,可以通过设置一个单向进入的环形数据结构,将待处理合同模板的各个元素依次存储至环形数据结构中。图4为本申请实施例提供的环形数据结构的一个示意图,参见图4,该环形数据结构设置有若干层存储空间,每层存储空间可以存储一个标签,每存储一个标签,则将环形数据结构按照顺时针的旋转方向前进一位,使得环形数据结构顶端的存储空间为空,可以用于存储下一个新的标签。环形数据结构可以有效降低地控制元素的复杂程度,一般可以设置环形数据结构有50个存储空间,如果环形数据结构的容量不够,所有存储空间均存储了标签,则会生成预警信息,警示当前合同目标的元素太过复杂,超过了50层,合同模板的元素的样式数据会非常冗杂,导致合同模板的样式显示效果差。
本申请实施例中,当新的标签存储至环形数据结构之前,会先比较新的标签与环形数据结构顶端的存储空间存储的标签是否为对称标签,若是,则取出该对称标签,得到对应的元素,并将环形数据结构按照逆时针的旋转方向后退一位;若否,则将环形数据结构按照顺时针的旋转方向前进一位,将新的标签存储至环形数据结构顶端的空间中。
本申请实施例中,根据对称标签从环形数据结构中取出顺序,可以确定各个元素中的第1层元素。由于第1层元素为最内层元素,最内层的元素中不嵌套任何其它元素,因此,当从环形数据结构中取出的元素没有子元素时,可以确定当前取出的元素为第1层元素。
示例性地,对于如图3所示的待处理合同模板的HTML文本,将HTML文本中的各个元素的标签依次存储至图4所示的环形数据结构的多层存储空间中,第一个待存储的标签为<body>,当将标签<body>存储至环形数据结构顶端的存储空间后,新的待存储的标签为<h1>,通过比较标签<h1>与标签<body>不为对称标签,则将环形数据结构顺时针旋转前进一位,并将标签<h1>存储至环形数据结构顶端的存储空间;同样地,将标签<span>存储至环形数据结构顶端的存储空间。
如图5所示,当将标签<span>存储至环形数据结构顶端的存储空间后,新的待存储标签为</span>,通过比较标签<span>与标签</span>为对称标签,则将该组对称标签取出,得到元素<span></span>,由于在取出元素<span></span>之前,没有取出过任何其它元素,则为元素<span></span>各个元素中的第1层元素,并且,通过分析图3所示的HTML文本,也可以发现元素<span></span>不嵌套任何其它元素。
如图5所示,当取出元素<span></span>后,环形数据结构按照逆时针方向旋转后退一位,使得标签<h1>当前存储至环形数据结构顶端的存储空间中。新的待存储的标签为</h1>,通过比较标签<h1>与标签</h1>为对称标签,则取出该组对称标签,同时,确定元素<span></span>的对称标签位于元素<h1></h1>的开始标签和闭合标签之间,因此,可以确定元素<h1></h1>为元素<span></span>的上一层元素,即元素<h1></h1>为元素<span></span>的父元素,元素<span></span>为元素<h1></h1>的子元素。
如图6所示,当取出元素<h1></h1>后,环形数据结构按照逆时针方向旋转后退一位,使得标签<body>当前存储至环形数据结构顶端的存储空间中。再按照上述步骤将HTML文本中的各个元素剩余的标签依次存储至环形数据结构中,并在新的待存储标签与环形数据结构顶端的存储空间存储的标签为对称标签时,将对应的对称标签取出,根据对称标签确定各个元素的父子关系模型。
图7为本申请实施例提供的待处理合同模板中各个元素的标签的移动过程的一个示意图,参见图7,上方的箭头表示待处理合同模板中各个元素的标签存储至环形数据结构中,下方的箭头表示从环形数据结构中取出对称标签。可以看出,元素<span></span>和元素<br></br>为第1层元素,元素<span></span>的上一层元素为第一个元素<h1></h1>,元素<br></br>的上一层元素为元素<h2></h2>,元素<h2></h2>的上一层元素为第二个元素<h1></h1>,第一个元素<h1></h1>和第二个元素<h1></h1>的上一层元素均为元素<body></body>。
本申请实施例中,将每一层元素的上一层元素确定为每一层元素的父元素,将每一层元素确定为对应的上一层元素的子元素,即可得到各个元素的父子关系模型,如图8所示,图8为本申请实施例提供的父子关系模型的一个示意图,在待处理合同模板的各个元素的父子关系模型中,元素<br></br>与元素<h2></h2>的子元素,元素<h2></h2>为第二个元素<h1></h1>的子元素,第二个元素<h1></h1>为元素<body></body>的子元素,元素<span></span>为第一个元素<h1></h1>的子元素,第一个元素<h1></h1>为元素<body></body>的子元素,则第一个元素<h1></h1>与第二个元素<h1></h1>均为元素<body></body>的子元素,因此,第一个元素<h1></h1>与第二个元素<h1></h1>为兄弟关系,即为兄弟元素。
可以看出,本申请实施例中,通过确定各个元素中的第一层元素,然后从第一层元素开始,按照从内到外的顺序查找嵌套每一层元素的上一层元素,可以得到两个具有嵌套关系的元素之间的父子关系,即可准确地确定各个元素的父子关系模型,有利于提高确定元素的样式数据的准确性。
在一些实施例中,所述根据所述继承关系,更新所述各个元素中每个子元素的样式数据,包括:在所述父元素的样式数据的类型与所述子元素的样式数据的类型不存在交集的情况下,将更新后的所述子元素的样式数据确定为更新前的所述子元素的样式数据与所述父元素的样式数据的并集;在所述父元素的样式数据的类型与所述子元素的样式数据的类型存在交集的情况下,确定更新后的所述子元素的样式数据包括第一数据和更新前的所述子元素的样式数据,所述第一数据为所述父元素的样式数据中除与所述子元素的样式数据的类型相同的数据之外的数据。
本申请实施例中,基于父子元素的继承关系,子元素会继承父元素的样式数据,因此,为了准确得到各个元素的样式数据,必须从最外层的根元素开始分析,这里,根元素表示的是没有父元素的元素,即先读取上层元素的样式数据,然后由外到内的顺序,依次读取下层的元素数据,则上层元素的样式数据可以传递给下层元素,通过逐层传递的方式,下层元素可以继承得到多项样式数据。
本申请实施例中,当一个父元素有多个子元素时,先读取得到第一个兄弟子元素的样式数据,再读取第一个兄弟子元素对应的子元素的样式数据,直至查找不到当前元素的子元素,才会读取得到下一个兄弟子元素的样式数据,并查找下一个兄弟子元素对应的子元素的样式数据,直至查找不到当前元素的子元素,同理,依次对其它兄弟子元素的样式数据进行读取。
示例性地,基于8所示的父子关系模型,第一个元素<h1></h1>与第二个元素<h1></h1>为兄弟元素,其父元素均为元素<body></body>,则先读取第一个元素<h1></h1>的样式数据,图9为本申请实施例提供的读取元素的样式数据的第一个流程示意图,如图9所示,当读取到元素<body></body>的样式数据后,先读取第一个元素<h1></h1>的样式数据,然后读取元素<span></span>的样式数据。
图10为本申请实施例提供的读取元素的样式数据的第二个流程示意图,如图10所示,当元素<span></span>没有子元素也没有兄弟元素时,会返回查找第一个元素<h1></h1>是否有兄弟元素,当第一个元素<h1></h1>存在兄弟元素为第二个元素<h1></h1>时,则读取第二个元素<h1></h1>的样式数据。
图11为本申请实施例提供的读取元素的样式数据的第三个流程示意图,如图11所示,读取第二个元素<h1></h1>的样式数据后,读取元素<h2></h2>的样式数据,最后读取元素<br></br>的样式数据,从而可以读取得到待处理合同模板的各个元素的样式数据。
本申请实施例中,按照父子关系模型中由外到内的顺序,依次读取各个元素的样式数据,根据父子元素的继承关系,更新每个子元素的样式数据。当父元素的样式数据的类型与子元素的样式数据的类型不存在交集的情况下,将更新后的子元素的样式数据确定为更新前的子元素的样式数据与父元素的样式数据的并集,如图12所示,图12为本申请实施例提供的更新子元素的样式数据的第一个示意图,将父元素的样式数据的类型记为f,将子元素的样式数据的类型记为s,将更新后的子元素的样式数据记为Result,则Result=f∪s。
当父元素的样式数据的类型与子元素的样式数据的类型存在交集的情况下,若父元素的样式数据的类型与子元素的样式数据的类型存在一部分交集,如图13所示,图13为本申请实施例提供的更新子元素的样式数据的第二个示意图,则更新后的子元素的样式数据为子元素本身的样式数据,以及父元素的样式数据中除与子元素的样式数据的类型相同的数据之外的数据,则Result=(f-f∩s)+s。
若元素的样式数据的类型全部与父元素的样式数据的类型存在交集,如图14所示,图14为本申请实施例提供的更新子元素的样式数据的第三个示意图,则更新后的子元素的样式数据为子元素本身的样式数据,以及父元素的样式数据中除子元素的样式数据的类型之外的数据,则Result=s+Cus。
可以看出,本申请实施例中,基于父元素的样式数据的类型与子元素的样式数据的类型的是否存在交集,根据继承关系,对子元素的样式数据进行更新,使得每个子元素的样式数据中都包含了其继承的父元素的样式数据,则每个子元素能够准确反映对应的合同模板的样式。
在一些实施例中,在通过对每个元素的样式数据进行排序和散列化处理之前,所述方法还包括:在所述各个元素中,将重要性加权值小于预设阈值的非标准元素滤除;其中,所述重要性加权值用于表示元素的重要性程度,所述非标准元素表示与自定义的标准样式数据不相符的元素。本申请实施例中,待处理合同模板的各个元素中可能存在带有无效样式数据的元素,则对应的元素为无效元素。示例性地,一些自定义的元素,这些自定义的元素可能只在某一个合同模板中使用,而其它合同模板并不会使用到,属于无效元素,因此,需要对待处理合同模板中的无效元素进行过滤处理。通过第一次过滤和第二次过滤,可以去除待处理合同模板中的元素的噪点,这里,元素的噪点记为无效元素。
本申请实施例中,第一次过滤是基于标准的HTML规范对待处理合同模板的各个元素进行筛选,将不属于标准的HTML规范中的非标准元素进行剔除,剩余的元素均为属于标准的HTML规范中的元素。示例性地,标准的HTML规范可以是基于标准HTML元素库字典确定的,可以通过剔除不在标准HTML元素库字典中的元素,确定标准元素。
本申请实施例中,第二次过滤是在第一次过滤剔除的非标准元素中,过滤出比较重要的非标准元素,这是由于待处理合同模板中存在大量的自定义元素,对合同模板的样式有一定的影响,在第一次过滤处理时,若直接剔除掉这些自定义元素,会影响到生成的合同模板的样式,因此,需要过滤出比较重要的非标准的元素,与第一次过滤得到的标准的元素一并进行处理,得到待处理合同模板对应的样式数据结构,生成目标合同模板。
本申请实施例中,通过对待处理合同模板中非标准元素的使用次数进行统计并进行排序,计算可以得到每个非标准元素的使用次数占所有非标准元素的使用次数的比例。示例性地,有n个非标准元素,n个非标准元素的使用次数的排序为:k1≤k2≤k3≤k4……≤kn,则在n个非标准元素中,将第x个非标准元素的使用次数占所有非标准元素的使用次数的比例记为f(x),其中,这里,1≤x≤n。
但是上式并不能准确表达非标准元素的重要性,由于对于合同模板的样式不仅受到非标准元素的使用次数,还受到非标准元素关联的合同模板的数量。示例性地,每个合同中有且只有一个标题,合同模板中以非标准元素<h></h>配置标题的样式,则非标准元素<h></h>在一个合同模板的使用次数为1,但其关联所有的合同模板,可以看出,非标准元素<h></h>对于合同模板的重要性较高,而只通过使用次数的占比不能很好的反映非标准元素的重要性。
本申请实施例中,还通过统计每个非标准元素关联的合同模板的数量,随着非标准元素关联的合同模板个数的增长,非标准元素对合同模板的影响较大,并非线型增长,因此,统计每个非标准元素关联的合同模板的数据为:h1、h2、h3、h4……hn,以非标准元素关联的合同模板个数的平方作为影响因子,设计非标准元素重要性的加权影响函数。除此以外,还对非标准元素中的使用次数较少的一部分非标准元素进行剔除,则可以根据非标准元素重要性的加权影响函数:其中,f(x)表示的是第x个非标准元素的重要性加权值,这里,1≤x≤n;hn表示的是非标准元素关联的合同模板个数,C为一个常数,示例性地,C为95时,表示的是对非标准元素中的使用次数最少的5%的非标准元素进行剔除。
示例性地,基于上述非标准元素重要性的加权影响函数,可以计算得到第一次过滤的非标准元素的重要性加权值,如表1所示。
表1非标准元素重要性的加权值
可以看出,综合考虑非标准元素的使用次数,以及关联的合同模板的个数能够有效反映非标准元素的重要性,更加贴近真实情况。
本申请实施例中,根据非标准元素重要性的加权影响函数,可以计算得到第一次过滤的非标准元素的重要性加权值,对非标准元素的重要性加权值进行排序,将重要性加权值小于预设阈值的非标准元素滤除,得到重要性靠前的非标准元素,这里,预设阈值可以为20%,也可以为40%,对此本申请不作限定。
本申请实施例中,将过滤得到的重要性靠前的非标准的元素,与第一次过滤得到的标准的元素一并进行处理,得到待处理合同模板对应的样式数据结构,生成目标合同模板。
可以看出,本申请实施例中,通过筛选出待处理合同模板中的标准元素与非标准元素,并通过计算非标准元素的重要性加权值,将重要性加权值小于预设阈值的非标准元素滤除,得到待处理合同模板中的标准元素以及重要性较高的非标准元素,能够有效消除待处理合同模板中的无效元素,有利于提高待处理合同模板中元素的比对效率。
在一些实施例中,所述将所述各个元素中的样式数据转换为所述待处理合同模板对应的样式数据结构,包括:通过对所述各个元素的至少部分元素的样式数据进行排序和散列化处理,得到所述至少部分元素的样式指纹数据,所述样式指纹数据为以字符串形式表示的元素的样式数据;将所述至少部分元素的样式指纹数据和所述至少部分元素的类型进行组合,得到所述待处理合同模板对应的样式数据结构。
本申请实施例中,样式指纹数据是以字符串形式表示的元素的样式数据,因此,需要将每个元素的样式数据转换为字符串形式的数据,可以根据元素的样式指纹数据判断两个元素的样式数据是否一致。但元素的样式数据是由若干组无序的数据组成的,不同顺序的样式数据转换得到的样式指纹数据是不同的,为了使相同的元素转换得到的样式指纹数据是相同的,因此,需要对元素的样式数据的类型进行排序。
示例性地,在待处理合同模板中有两个相同的元素<h1></h1>,第一个元素<h1></h1>的样式数据为:color=red、font-size=18;第二个元素<h1></h1>的样式数据为:font-size=18、color=red。第一个元素<h1></h1>转换得到的样式指纹数据为:10001000,第二个元素<h1></h1>转换得到的样式指纹数据为:01110111,可以看出,第一个元素<h1></h1>和第二个元素<h1></h1>的样式数据是相同的,但由于样式数据的顺序不同,转换得到的样式指纹数据不同,这使得无法根据元素的样式指纹数据判断元素的样式数据。
本申请实施例中,可以根据样式数据中的样式的首字母进行排序,例如,align、background、color、dynsrc、font-size。还可以在元素的字典数据结构中预先对各个元素的样式进行排序,并将排序结果加载在内存中,当需要对元素的样式数据进行排序时,按照预先设置的排序结果进行排序即可,并且,这种方式可以人工控制新加入的样式,将新加入的样式排序在最后的位置,对元素已有的样式数据影响较小。
本申请实施例中,通过对各个元素的至少部分元素的样式数据进行排序后,转换得到的各个元素的样式指纹数据依据已经可以用于判断元素的样式数据,需要说明的是,各个元素的至少部分元素是对各个元素进行筛选,去除掉无用的元素后得到的元素。
本申请实施例中,基于父子关系模型,底层元素会继承多个上层元素的样式数据,这导致越是底层的元素,其会携带了大量的样式数据,则对应转换得到的样式指纹数据的数据串会非常多,若直接比较样式指纹数据,会导致大量的计算机存储空间浪费,拖慢比对时间,因此,还需要对样式指纹数据进行散裂化处理。散列化处理的核心目标是将排序后的样式数据处理成唯一且可重复生成的一个字符串,类似人体的指纹。
本申请实施例中,对排序后的样式数据散列化处理,第一,对排序后的样式数据进行二进制取数,由于样式数据均由0-9、a-z、A-Z之间的字符组成,因此,可以先转换为二进制0、1的字符串。任何一个数据转成二进制都是可重复生成的。二进制转换得到的数据的前32位和后32位是稳定的,因此,取这两个数据为样式数据经过散列后的数据,如果长度不足,则用0补齐,如图15所示,图15为本申请实施例提供的元素的样式数据散裂化处理的第一个示意图。
第二、为了使元素的样式数据散裂化的效果更好,对二进制转换得到的两个数据进行异或运算:f(x)=A^B,如图16所示,图16为本申请实施例提供的元素的样式数据散裂化处理的第二个示意图。经过异或运算,可以对元素的样式数据上所有的字符转换得到一个可重复得到的唯一二进制数据。
示例性地,一个元素的样式数据为:font-size=14、color=black、margin=18;line-height=200,经过散裂化处理,可以得到一个32位的二进制数11010010……110000011。
第三,经过异或运算得到的二进制数据位数有32位,位数过长会导致计算机存储空间浪费,拖慢比对时间,因此,再将32位的二进制数据转换为10进制数据,则可以降低为10^9数量级,再通过对8位大素数(12!+1)取模运算,进一步降低数据的数量级,得到8位有效数据,将这8位有效数据作为元素的样式指纹数据。
本申请实施例中,元素的类型用于表示元素配置的待处理合同模板中某一项内容的类型。示例性地,元素<p></p>用于配置待处理合同模板中的文本内容,元素<h1></h1>用于配置待处理合同模板中的一级标题。这里,元素的类型可以是以字符串的形式进行存储,示例性地,元素<p></p>的类型记为01、元素<h1></h1>的类型记为02。
本申请实施例中,将至少部分元素的样式指纹数据和至少部分元素的类型进行组合,得到合同模板对应的样式数据结构。图17为本申请实施例提供的合同模板对应的样式数据结构的一个示意图,如图17所示,样式数据结构的第1至5位为合同的编码信息;第6至8位为当前元素的标识信息;第9至11位为当前元素的父元素的标识信息;第12至19位为当前元素的样式指纹数据;第20位为该样式数据结构的来源信息,这里,样式数据结构的来源包括:待处理合同模板中的元素,记录为1、标准合同模板中的元素,记录为2、比对正常的合同模板中的元素,记录为3、待处理合同模板中与标准合同模板的样式不一致的元素,记录为4、待处理合同模板中相同类型的元素的样式指纹数据不一致的元素,记录为5;第21至22位为元素的类型数据。
可以看出,本申请实施例中,通过对各个元素的至少部分元素的样式数据进行排序和散列化处理,可以将元素的样式数据转换为唯一的样式指纹数据,样式指纹数据以字符串形式构成,根据样式指纹数据判断元素的样式数据,能够有效提升比对效率,使得元素的样式数据便于管理。
相关技术中,生成的合同文件样式的准确是十分重要的,尤其是对于合同文件中上下文的一致性,这里,上下文的一致性是指合同文件中相同类型的内容的样式应当保持一致,示例性地,合同文件中有三个一级标题,分别为“第一章”、“第二章”和“第三章”,则这三个一级标题的样式应该保持一致,若有样式不相同的标题出现,则说明生成的合同文件的样式错误。
而在相关技术中,合同模板的样式是零散配置在HTML文本的各个元素中,从单个元素中提取到的合同模板的样式信息是不完整的,即通过读取配置一级标题的元素的样式数据,只能读取到单个元素的样式信息,而无法得到上层元素传递至该元素的样式信息,这使得无法通过提取HTML文本中各个元素的样式信息预先判断合同文件的上下文是否保持一致,可能会导致生成的合同文件出现很多上下文不一致的样式。
在一些实施例中,所述根据所述待处理合同模板对应的样式数据结构,生成目标合同模板,包括:根据所述待处理合同模板对应的样式数据结构中元素的类型,对所述各个元素进行分组,得到至少一组元素集合;所述元素集合表示类型相同的元素的集合;在所述至少一组元素集合中每组元素集合都满足预设的第一条件时,根据所述待处理合同模板对应的样式数据结构,生成目标合同模板;所述第一条件包括:所述元素集合中各个元素的样式指纹数据相同;在所述至少一组元素集合中存在不满足所述预设的第一条件的元素集合时,确定至少一组异常元素集合;所述异常元素集合表示所述元素集合中元素的样式指纹数据不相同的元素集合;确定标准合同模板中第一类型的元素的样式指纹数据;所述第一类型表示所述至少一组异常元素集合中每组异常元素集合的元素的类型;将所述每组异常元素集合的元素的样式指纹数据,对应替换为所述标准合同模板的第一类型的元素的样式指纹数据,得到替换后的待处理合同模板对应的样式数据结构;根据所述替换后的待处理合同模板对应的样式数据结构,生成目标合同模板。
本申请实施例中,标准合同模板表示是预先设定的具有标准规范样式的合同模板,对于不同的业务类型,标准合同模板的规范样式也不相同,例如,金融、矿产、娱乐业等不同的业务类型,需要设定不同的规范样式的标准合同模板。以金融业务为例,设定标准合同模板的规范样式时,是先通过获取现存的金融业务的合同模板的各个元素,然后根据前述的第一次过滤和第二次过滤处理,可以筛选得到金融业务的合同模板中的标准元素以及重要性较高的非标准元素,将该标准元素以及重要性较高的非标准元素作为标准合同模板的各个元素。
本申请实施例中,对筛选得到的标准合同模板的各个元素的样式数据进行配置,图18为本申请实施例提供的配置标准合同模板的各个元素的样式数据的一个示意图,参见图18,筛选得到的标准合同模板的元素包括:元素<h1></h1>、元素<p></p>、元素<body></body>、元素<th></th>、元素<tr></tr>等,配置元素<h1></h1>的样式数据为:font-weight=blod、font-size=36、font-family=“宋体”、align=left;配置元素<p></p>的样式数据为:font-family=“宋体”、font-size=14;配置元素<body></body>的样式数据为:margin=30;配置元素<th></th>的样式数据为:valign=center、align=center、font-weight=blod;配置元素<tr></tr>的样式数据为:heigth=12、bgcolor=#FFFFFF。通过配置标准合同模板的各个元素的样式数据,可以确定标准合同模板的样式信息。
本申请实施例中,在对筛选得到的标准合同模板的各个元素的样式数据进行配置完成后,还会对标准合同模板的样式进行验证,这里,可以是通过人工核验标准合同模板的样式效果,若验证通过,则会对标准合同模板的验证状态标注为:“已生效”,若验证未通过,则会对标准合同模板的验证状态标注为:“验证失败”,并生成提醒重新配置各个元素的样式数据的警示信息,若未对标准合同模板的样式进行验证,则会对标准合同模板的验证状态标注为:“暂未验证”,并生成提醒验证的信息。
本申请实施例中,只需要对标准合同模板的样式进行一次验证,且可以跨合同模板验证,使得各个元素的样式数据的准确性要求更高。
本申请实施例中,对于验证通过的标准合同模板的各个元素,根据配置的各个元素的样式数据,对各个元素的样式数据进行上述排序和散列化处理,得到各个元素的样式指纹数据,并将各个元素的样式指纹数据、元素的类型、元素的标识信息,元素的父元素的标识信息、合同模板的编码信息、以及样式数据的来源信息进行组合,得到标准合同模板对应的样式数据结构。
本申请实施例中,在验证标准合同模板的样式通过的情况下,还会动态调整标准合同模板的各个元素。由于随着相关业务的合同的模板越来越多,之前筛选得到的标准合同模板的各个元素的重要性也会发生变化,同时,还可能会出现一些新的元素,因此,需要周期性的对标准合同模板的各个元素进行动态调整,根据前述的第一次过滤和第二次过滤处理,重新确定标准合同模板的各个元素,使得对合同模板的样式控制更加精准。
示例性地,相关业务的合同模板出现了新的元素data-ignore,通过第一次过滤和第二次过滤处理,重新计算相关业务的合同模板中所有出现的元素的重要性加权值,如图表2所示。
表2相关业务的合同模板中所有出现的元素的重要性加权值
可以看出,新出现的元素data-ignore的重要性加权值为89.33,其重要性较高,应该将其确定为标准合同模板的元素,并对原标准合同模板的各个元素进行相应调整。
本申请实施例中,当业务频繁发生变化时,可能也会对合同模板的样式进行及时变更,对应的,标准合同模板的各个元素的样式数据也会频繁变化,因此,还需要对标准合同模板的各个元素的样式数据及时进行更新,从而提高控制标准合同模板的样式的准确性。
相关技术中,对于更新标准合同模板的各个元素的样式数据,一种方式是:为每个元素配置一个单独的更新任务,这种方式实现较为简单,但缺陷在于,当标准合同模板中元素的数量过大时,如标准合同模板中元素的数量为600,则需要分别配置600个更新任务,这使得维护成本巨大。
另一种方式是:为所有元素配置一个更新任务,虽然这种方式不需要配置大量的更新任务,但如果短时间内,大量的元素的样式数据都需要进行更新,那么很容易造成计算机运算资源不够,严重时会导致宕机。
本申请实施例中,可以基于螺旋线数据结构对标准合同模板的各个元素的样式数据进行更新,这里,螺旋线数据结构也可称为元素更新沙漏。螺旋线数据结构如图19所示,更新各个元素的任务从中心点开始,这里,中心点即为开始刻度,将螺旋线数据结构按照等角度划分,划分为n份,这里,n表示的是标准合同模板中元素的个数。预设一个更新的时间周期T,则每T/n个时间段,就执行一个元素的样式数据的更新任务。当更新各个元素的任务到的终止刻度时,则重新开始执行下一个周期的更新任务,这里,终止刻度与开始刻度的刻度相同。需要说明的是,当标准合同模板中元素的个数较多时,可以设置单个时间段内,执行多个元素的样式数据的更新任务。
示例性地,标准合同模板中元素的个数为60,预设一个更新的时间周期为60秒,则可以将螺旋线数据结构按照等角度划分为60份,每1秒执行对应的元素的样式数据的更新任务,当从19:00:00开始执行更新各个元素的任务,当一个更新的时间周期的更新任务完成后,会进入下一个更新的时间周期,则到19:02:25应该执行第25个元素的样式数据的更新任务,当检测到第25个元素的样式数据的发生变化时,对该元素的样式数据进行更新。
示例性地,当标准合同模板中元素的个数为600,预设一个更新的时间周期为60秒,可以通过在单个时间段内执行多个元素的样式数据的更新任务,如每1秒执行对应10个元素的样式数据的更新任务,但这种方式会使更新任务的执行速度降低,并且同时维护多项更新任务也比较困难,因此,可以通过增加
时间节点,如600个元素的样式数据的更新任务可以均匀的设置在600个时间段内,每个时间段为0.1秒。
本申请实施例中,基于螺旋线数据结构对标准合同模板的各个元素的样式数据进行更新,只需要配置一个更新任务,就可以实现对所有元素的样式数据进行更新,同时,在更新任务执行时,将所有的更新任务均匀的设置在等时间段上,则不存在峰值处理压力,能够提高更新任务的稳定性。
本申请实施例中,根据待处理合同模板对应的样式数据结构中的第21至22位数据,即元素的类型对各个元素进行分组,将相同类型的元素分为一组元素集合,可以得到至少一组元素集合。
示例性地,对图3所示的待处理合同模板的各个元素进行分组,图20为本申请实施例提供的待处理合同模板的各个元素的分组结果的示意图,参见图20,待处理合同模板的各个元素可以分为5组元素集合,分别为第一组元素集合S11、第二组元素集合S12、第三组元素集合S13、第四组元素集合S14、第五组元素集合S15,其中,第一组元素集合S11包括元素<body></body>,第二组元素集合S12包括第一个元素<h1></h1>和第二个元素<h1></h1>,第三组元素集合S13包括元素<span></span>,第四组元素集合S14包括元素<h2></h2>,第五组元素集合S15包括元素<br></br>。
本申请实施例中,相同类型的元素用于配置待处理合同模板相同类型的内容,合同模板中相同的内容其样式应该是一致的,因此,只需要控制对应类型的元素的样式数据保持一致,即可实现待处理合同模板样式的上下文一致。
本申请实施例中,元素的样式指纹数据是以字符串形式表示的元素的样式数据,因此,对于相同类型的元素的集合,在元素集合中每个元素的样式指纹数据相同的情况下,说明该类型的元素的样式数据是一致的;在元素集合中存在元素的样式指纹数据不相同的情况下,说明该类型的元素的样式数据是不一致的,则将该元素集合确定为异常元素集合。
示例性地,通过对待处理合同模板的各个元素进行分组,得到一组元素集合,图21为本申请实施例提供的一组元素集合的每个元素的样式数据结构的示意图,参见图21,待处理合同模板的编码信息为:00020,元素集合中每个元素的标识均为:001,每个元素的类型均为:06,元素的样式数据均来源于待处理合同模板,但是每个元素的父元素的标识均不同,说明每个元素的父元素都不相同。
通过比较发现,元素集合中四个元素的样式指纹数据一致,均为:51206565,一个元素的样式指纹数据与其它元素的样式指纹数据不一致,该元素的样式指纹数据为:01209870,说明06类型的元素的样式数据存在不一致,则将该元素集合确定为异常元素集合。
本申请实施例中,第一类型表示的是异常元素集合中元素的类型,通过确定标准合同模板中第一类型的元素的样式指纹数据,即可以确定异常元素集合中元素的类型在标准合同模板中对应元素的样式指纹数据。将异常元素集合的元素的样式指纹数据,对应替换为标准合同模板中第一类型的元素的样式指纹数据,即得到替换后的待处理合同模板对应的样式数据结构,根据替换后的待处理合同模板对应的样式数据结构,生成目标合同模板,即可以实现待处理合同模板的样式与标准合同模板的样式一致,并且,待处理合同模板中该类型的元素的样式数据保持一致,即可以实现待处理合同模板样式的上下文一致。
本申请实施例中,在将异常元素集合的元素的样式指纹数据,对应替换为标准合同模板中第一类型的元素的样式指纹数据之前,还可以通过重新执行确定待处理合同模板中各个元素的父子关系模型的步骤,再次得到异常元素集合中元素的标识信息,判断重新得到的元素的标识信息是否与之前的元素的标识信息是否一致,若一致,则说明重新确定的待处理合同模板中各个元素的父子关系模型与之前确定的父子关系模型是一致的,则需要根据标准合同模板的第一类型的元素的样式指纹数据,对异常元素集合的元素的样式指纹数据进行替换。
可以看出,本申请实施例中,通过对待处理合同模板中相同类型的元素进行分组,并比较相同类型的元素的样式指纹数据是否一致,能够快速地判断待处理合同模板中相同的内容的样式是否一致,并且在发现存在不一致时,可以根据标准合同模板中第一类型的元素的样式指纹数据对应进行修改,能够有效去除待处理合同模板中上下文不一致的样式。
相关技术中,生成合同文件的样式完全沿用HTML中的样式信息,没有统一的合同模板的标准样式,这导致在生成合同文件时可能会引入不规范的样式信息,容易出现样式错误,并且,在生成的同文件的样式出现错误时,也只能对错误的样式单独进行修复,修复效率和智能性都较低。
在一些实施例中,所述根据所述待处理合同模板对应的样式数据结构,生成目标合同模板,包括:获取标准合同模板对应的样式数据结构;针对所述待处理合同模板对应的样式数据结构和所述标准合同模板对应的样式数据结构,判断同一类型的元素的样式指纹数据是否相同;在所述同一类型的元素的样式指纹数据都相同时,根据所述待处理合同模板对应的样式数据结构,生成目标合同模板;在所述同一类型的元素的样式指纹数据存在不相同时,确定至少一个异常元素;所述异常元素表示所述同一类型的元素的样式指纹数据不相同的元素;确定标准合同模板中第二类型的元素的样式指纹数据;所述第二类型表示所述至少一个异常元素中每个异常元素的类型;将所述每个异常元素的样式指纹数据,对应替换为所述标准合同模板的第二类型的元素的样式指纹数据,得到替换后的待处理合同模板对应的样式数据结构;根据所述替换后的待处理合同模板对应的样式数据结构,生成目标合同模板。
本申请实施例中,标准合同模板表示是预先设定的具有标准规范样式的合同模板,待处理合同模板的样式需要与标准合同模板的样式保持一致。通过获取标准合同模板对应的样式数据结构,可以得到标准合同模板中各个元素的样式指纹数据。针对待处理合同模板对应的样式数据结构和标准合同模板对应的样式数据结构,通过比较待处理合同模板中与标准合同模板中同一类型的元素的样式指纹数据是否相同,可以确定待处理合同模板的样式是否符合标准合同模板的样式规范。
本申请实施例中,可以根据预先设计的lastWords()方法,确定待处理合同模板中与标准合同模板中同一类型的元素,这里,lastWords()方法可以得到每个元素的样式数据结构的最后两位数据,其中,样式数据结构的最后两位数据表示的是元素的类型数据,通过lastWords()方法确定待处理合同模板中各个元素的类型,再根据lastWords()方法在标准合同模板中确定与待处理合同模板中各个元素的类型相同的元素。
示例性地,将待处理合同模板中n个元素的样式数据结构分别记为:S11、S12、S13、S14、……S1n,基于lastWords()方法,确定lastWords(S1n)=lastWords(S2n),可以得到标准合同模板中确定与待处理合同模板中n个元素的类型相同的元素,其中,S2n表示的是标准合同模板中与待处理合同模板中第n个元素的类型相同的元素。
本申请实施例中,在同一类型的元素的样式指纹数据都相同时,说明待处理合同模板中各个元素的样式数据,对应与标准合同模板中同一类型的元素的样式数据相同,则待处理合同模板的样式与标准合同模板的样式一致,符合标准规范,即可以根据待处理合同模板对应的样式数据结构,生成目标合同模板。
本申请实施例中,在同一类型的元素的样式指纹数据存在不相同时,说明待处理合同模板中存在元素的样式数据,对应与标准合同模板中同一类型的元素的样式数据不相同,则待处理合同模板的样式与标准合同模板的样式不一致,不符合标准规范,需要对处理合同模板的样式进行修复。
本申请实施例中,异常元素表示的是待处理合同模板中与标准合同模板中同一类型的元素的样式指纹数据不相同的元素,在同一类型的元素的样式指纹数据存在不相同时,确定至少一个异常元素,这里,至少一个异常元素即为待修复元素。
本申请实施例中,第二类型表示的是至少一个异常元素中每个异常元素的类型,通过确定标准合同模板中第二类型的元素的样式指纹数据,即可以确定每个异常元素的类型在标准合同模板中对应元素的样式指纹数据。将每个异常元素的样式指纹数据,对应替换为标准合同模板的第二类型的元素的样式指纹数据,即得到替换后的待处理合同模板对应的样式数据结构,根据替换后的待处理合同模板对应的样式数据结构,生成目标合同模板,即可以实现待处理合同模板中各个元素的样式数据与标准合同模板的各个元素的样式数据保持一致,从而实现待处理合同模板的样式与标准合同模板的样式一致。
示例性地,比较待处理合同模板中与标准合同模板中同一类型的元素的样式指纹数据是否相同,如图22所示,图22为本申请实施例提供的待处理合同模板中与标准合同模板中同一类型的元素的样式数据结构的示意图,通过获取待处理合同模板中元素的样式数据结构的第21至22位,可以得到元素的类型数据为:00,同样获取标准合同模板中元素的样式数据结构的第21至22位,可以得到元素的类型数据为:00,则说明在该样式数据结构中,待处理合同模板中与标准合同模板中元素的类型相同。
通过比较发现,待处理合同模板中元素的样式指纹数据为:00000000,标准合同模板中元素的样式指纹数据也为:00000000,则说明同一类型的元素的样式指纹数据都相同,则待处理合同模板的样式与标准合同模板的样式一致,符合标准规范,即可以根据待处理合同模板对应的样式数据结构,生成目标合同模板。
本申请实施例中,在将每个异常元素的样式指纹数据,对应替换为标准合同模板中第二类型的元素的样式指纹数据之前,还可以通过重新执行确定待处理合同模板中各个元素的父子关系模型的步骤,再次得到每个异常元素的标识信息,判断重新得到的元素的标识信息是否与之前的元素的标识信息是否一致,若一致,则说明重新确定的待处理合同模板中各个元素的父子关系模型与之前确定的父子关系模型是一致的,则需要根据标准合同模板的第二类型的元素的样式指纹数据,对每个异常元素的样式指纹数据进行替换。
可以看出,本申请实施例中,通过将待处理合同模板中与标准合同模板中同一类型的元素的样式指纹数据进行比较,可以快速判断待处理合同模板的样式是否与标准合同模板的样式一致,并且在发现存在不一致时,可以根据标准合同模板中第二类型的元素的样式指纹数据对应进行修改,能够有效去除待处理合同模板中与标准合同模板不一致的样式。
图23为本申请实施例提供的合同模板的生成方法的一个具体实现的流程示意图,如图23所示,该流程可以包括:
步骤2301:确定待处理合同模板的各个元素父子关系模型。
步骤2302:更新待处理合同模板的各个元素的样式数据。
步骤2303:确定待处理合同模板对应的样式数据结构。
步骤2304:获取标准合同模板的各个元素的样式数据。
步骤2305:确定标准合同模板对应的样式数据结构。
步骤2306:判断同一类型的元素的样式指纹数据是否相同,若是,则执行步骤2307,若否,则执行步骤2310。
步骤2307:判断待处理合同模板中相同类型的元素的样式指纹数据是否相同,若是,则执行步骤2308,若否,则执行步骤2309。
步骤2308:根据待处理合同模板对应的样式数据结构,生成目标合同模板。
步骤2309:根据标准合同模板中第一类型的元素的样式指纹数据,对异常元素集合的元素进行替换,执行步骤2308。
步骤2310:根据标准合同模板中第二类型的元素的样式指纹数据,对异常元素进行替换,执行步骤2308。
在前述实施例提出的合同模板的生成方法的基础上,本申请实施例还提出了一种合同模板的生成装置;图24为本申请实施例提供的合同模板的生成装置的一个可选的组成结构示意图,如图24所示,该合同模板的生成装置可以包括:
获取模块2401,用于获取待处理合同模板的各个元素,所述元素的样式数据用于表示所述待处理合同模板的样式;
第一确定模块2402,用于确定所述各个元素的排列顺序,根据所述排列顺序,确定所述各个元素的父子关系模型;
第二确定模块2403,用于根据所述父子关系模型,确定元素的继承关系;所述元素的继承关系为子元素继承父元素的样式数据的关系;
更新模块2404,用于根据所述继承关系,更新所述各个元素中每个子元素的样式数据;
转换模块2405,用于将所述各个元素中的样式数据转换为所述待处理合同模板对应的样式数据结构;
生成模块2406,用于根据所述待处理合同模板对应的样式数据结构,生成目标合同模板。
在一些实施例中,所述第一确定模块2402,用于确定所述各个元素的排列顺序,根据所述排列顺序,确定所述各个元素的父子关系模型,包括:
确定所述各个元素中每个元素的对称标签,所述对称标签包括开始标签和闭合标签;
根据所述各个元素的对称标签之间的排列顺序,确定所述各个元素之间的嵌套关系;
根据所述各个元素之间的嵌套关系,确定所述各个元素之间的父子关系模型。
在一些实施例中,所述第一确定模块2402,用于根据所述各个元素之间的嵌套关系,确定所述各个元素之间的父子关系模型,包括:
确定所述各个元素中的第1层元素,所述第1层元素表示自身内部不包含其它元素的对称标签的元素;
从每个所述第1层元素开始,按照从内到外的顺序查找嵌套所述每一层元素的上一层元素,直至查找到不存在上一层元素的最外层元素;所述每一层元素的对称标签位于对应的上一层元素的开始标签和闭合标签之间;
将所述每一层元素的上一层元素确定为所述每一层元素的父元素,将所述每一层元素确定为对应的上一层元素的子元素。
在一些实施例中,所述更新模块2404,用于根据所述继承关系,更新所述各个元素中每个子元素的样式数据,包括:
在所述父元素的样式数据的类型与所述子元素的样式数据的类型不存在交集的情况下,将更新后的所述子元素的样式数据确定为更新前的所述子元素的样式数据与所述父元素的样式数据的并集;
在所述父元素的样式数据的类型与所述子元素的样式数据的类型存在交集的情况下,确定更新后的所述子元素的样式数据包括第一数据和更新前的所述子元素的样式数据,所述第一数据为所述父元素的样式数据中除与所述子元素的样式数据的类型相同的数据之外的数据。
在一些实施例中,所述转换模块2405,用于将所述各个元素中的样式数据转换为所述待处理合同模板对应的样式数据结构,包括:
通过对所述各个元素的至少部分元素的样式数据进行排序和散列化处理,得到所述至少部分元素的样式指纹数据,所述样式指纹数据为以字符串形式表示的元素的样式数据;
将所述至少部分元素的样式指纹数据和所述至少部分元素的类型进行组合,得到所述待处理合同模板对应的样式数据结构。
在一些实施例中,所述转换模块2405,在通过对每个元素的样式数据进行排序和散列化处理之前,还用于:
在所述各个元素中,将重要性加权值小于预设阈值的非标准元素滤除;其中,所述重要性加权值用于表示元素的重要性程度,所述非标准元素表示与自定义的标准样式数据不相符的元素。
在一些实施例中,所述生成模块2406,用于根据所述待处理合同模板对应的样式数据结构,生成目标合同模板,包括:
根据所述待处理合同模板对应的样式数据结构中元素的类型,对所述各个元素进行分组,得到至少一组元素集合;所述元素集合表示类型相同的元素的集合;
在所述至少一组元素集合中每组元素集合都满足预设的第一条件时,根据所述待处理合同模板对应的样式数据结构,生成目标合同模板;所述第一条件包括:所述元素集合中各个元素的样式指纹数据相同;
在所述至少一组元素集合中存在不满足所述预设的第一条件的元素集合时,确定至少一组异常元素集合;所述异常元素集合表示所述元素集合中元素的样式指纹数据不相同的元素集合;确定标准合同模板中第一类型的元素的样式指纹数据;所述第一类型表示所述至少一组异常元素集合中每组异常元素集合的元素的类型;将所述每组异常元素集合的元素的样式指纹数据,对应替换为所述标准合同模板的第一类型的元素的样式指纹数据,得到替换后的待处理合同模板对应的样式数据结构;根据所述替换后的待处理合同模板对应的样式数据结构,生成目标合同模板。
在一些实施例中,所述生成模块2406,用于根据所述待处理合同模板对应的样式数据结构,生成目标合同模板,包括:
获取标准合同模板对应的样式数据结构;
针对所述待处理合同模板对应的样式数据结构和所述标准合同模板对应的样式数据结构,判断同一类型的元素的样式指纹数据是否相同;
在所述同一类型的元素的样式指纹数据都相同时,根据所述待处理合同模板对应的样式数据结构,生成目标合同模板;
在所述同一类型的元素的样式指纹数据存在不相同时,确定至少一个异常元素;所述异常元素表示所述同一类型的元素的样式指纹数据不相同的元素;
确定标准合同模板中第二类型的元素的样式指纹数据;所述第二类型表示所述至少一个异常元素中每个异常元素的类型;将所述每个异常元素的样式指纹数据,对应替换为所述标准合同模板的第二类型的元素的样式指纹数据,得到替换后的待处理合同模板对应的样式数据结构;根据所述替换后的待处理合同模板对应的样式数据结构,生成目标合同模板。
在实际应用中,获取模块2401、第一确定模块2402、第二确定模块2403、更新模块2404、转换模块2405和生成模块2406均可以利用电子设备的处理器实现,上述处理器可以是ASIC、DSP、DSPD、PLD、FPGA、CPU、控制器、微控制器、微处理器中的至少一种。可以理解地,实现上述处理器功能的电子器件还可以为其它,本申请实施例不作限制。
需要说明的是,以上装置实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本申请装置实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。
需要说明的是,本申请实施例中,如果以软件功能模块的形式实现上述的方法,并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是终端、服务器等)执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的介质。这样,本申请实施例不限制于任何特定的硬件和软件结合。
对应地,本申请实施例再提供一种计算机程序产品,所述计算机程序产品包括计算机可执行指令,该计算机可执行指令用于实现本申请实施例提供的任意一种合同模板的生成方法。
相应的,本申请实施例再提供一种计算机存储介质,所述计算机存储介质上存储有计算机可执行指令,该计算机可执行指令用于实现上述实施例提供的任意一种合同模板的生成方法。
本申请实施例还提供一种电子设备,图25为本申请实施例提供的电子设备的一个可选的组成结构示意图,如图25所示,所述电子设备2500包括:
存储器2501,用于存储可执行指令;
处理器2502,用于执行所述存储器2501中存储的可执行指令时,实现上述任意一种合同模板的生成方法。
上述处理器2502可以为ASIC、DSP、DSPD、PLD、FPGA、CPU、控制器、微控制器、微处理器中的至少一种。
上述计算机可读存储介质/存储器可以是ROM、可编程只读存储器(ProgrammableRead-Only Memory,PROM)、可擦除可编程只读存储器(Erasable Programmable Read-OnlyMemory,EPROM)、电可擦除可编程只读存储器(Electrically Erasable ProgrammableRead-Only Memory,EEPROM)、磁性随机存取存储器(Ferromagnetic Random AccessMemory,FRAM)、快闪存储器(Flash Memory)、磁表面存储器、光盘、或只读光盘(CompactDisc Read-Only Memory,CD-ROM)等存储器;也可以是包括上述存储器之一或任意组合的各种终端,如移动电话、计算机、平板设备、个人数字助理等。
这里需要指出的是:以上存储介质和设备实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本申请存储介质和设备实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。
应理解,说明书通篇中提到的“一些实施例”意味着与实施例有关的特定特征、结构或特性包括在本申请的至少一个实施例中。因此,在整个说明书各处出现的“在一些实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本申请实施例方案的目的。
另外,在本申请各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
或者,本申请上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得设备自动测试线执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、磁碟或者光盘等各种可以存储程序代码的介质。
本申请所提供的几个方法实施例中所揭露的方法,在不冲突的情况下可以任意组合,得到新的方法实施例。
本申请所提供的几个方法或设备实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的方法实施例或设备实施例。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种合同模板的生成方法,其特征在于,所述方法包括:
获取待处理合同模板的各个元素,所述元素的样式数据用于表示所述待处理合同模板的样式;
确定所述各个元素的排列顺序,根据所述排列顺序,确定所述各个元素的父子关系模型;
根据所述父子关系模型,确定元素的继承关系;所述元素的继承关系为子元素继承父元素的样式数据的关系;
根据所述继承关系,更新所述各个元素中每个子元素的样式数据;
将所述各个元素中的样式数据转换为所述待处理合同模板对应的样式数据结构;
根据所述待处理合同模板对应的样式数据结构,生成目标合同模板。
2.根据权利要求1所述的方法,其特征在于,所述根据所述排列顺序,确定所述各个元素的父子关系模型,包括:
确定所述各个元素中每个元素的对称标签,所述对称标签包括开始标签和闭合标签;
根据所述各个元素的对称标签之间的排列顺序,确定所述各个元素之间的嵌套关系;
根据所述各个元素之间的嵌套关系,确定所述各个元素之间的父子关系模型。
3.根据权利要求2所述的方法,其特征在于,所述根据所述各个元素之间的嵌套关系,确定所述各个元素之间的父子关系模型,包括:
确定所述各个元素中的第1层元素,所述第1层元素表示自身内部不包含其它元素的对称标签的元素;
从每个所述第1层元素开始,按照从内到外的顺序查找嵌套所述每一层元素的上一层元素,直至查找到不存在上一层元素的最外层元素;所述每一层元素的对称标签位于对应的上一层元素的开始标签和闭合标签之间;
将所述每一层元素的上一层元素确定为所述每一层元素的父元素,将所述每一层元素确定为对应的上一层元素的子元素。
4.根据权利要求1所述的方法,其特征在于,所述根据所述继承关系,更新所述各个元素中每个子元素的样式数据,包括:
在所述父元素的样式数据的类型与所述子元素的样式数据的类型不存在交集的情况下,将更新后的所述子元素的样式数据确定为更新前的所述子元素的样式数据与所述父元素的样式数据的并集;
在所述父元素的样式数据的类型与所述子元素的样式数据的类型存在交集的情况下,确定更新后的所述子元素的样式数据包括第一数据和更新前的所述子元素的样式数据,所述第一数据为所述父元素的样式数据中除与所述子元素的样式数据的类型相同的数据之外的数据。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述将所述各个元素中的样式数据转换为所述待处理合同模板对应的样式数据结构,包括:
通过对所述各个元素的至少部分元素的样式数据进行排序和散列化处理,得到所述至少部分元素的样式指纹数据,所述样式指纹数据为以字符串形式表示的元素的样式数据;
将所述至少部分元素的样式指纹数据和所述至少部分元素的类型进行组合,得到所述待处理合同模板对应的样式数据结构。
6.根据权利要求5所述的方法,其特征在于,在通过对每个元素的样式数据进行排序和散列化处理之前,所述方法还包括:
在所述各个元素中,将重要性加权值小于预设阈值的非标准元素滤除;其中,所述重要性加权值用于表示元素的重要性程度,所述非标准元素表示与自定义的标准样式数据不相符的元素。
7.根据权利要求5所述的方法,其特征在于,所述根据所述待处理合同模板对应的样式数据结构,生成目标合同模板,包括:
根据所述待处理合同模板对应的样式数据结构中元素的类型,对所述各个元素进行分组,得到至少一组元素集合;所述元素集合表示类型相同的元素的集合;
在所述至少一组元素集合中每组元素集合都满足预设的第一条件时,根据所述待处理合同模板对应的样式数据结构,生成目标合同模板;所述第一条件包括:所述元素集合中各个元素的样式指纹数据相同;
在所述至少一组元素集合中存在不满足所述预设的第一条件的元素集合时,确定至少一组异常元素集合;所述异常元素集合表示所述元素集合中元素的样式指纹数据不相同的元素集合;确定标准合同模板中第一类型的元素的样式指纹数据;所述第一类型表示所述至少一组异常元素集合中每组异常元素集合的元素的类型;将所述每组异常元素集合的元素的样式指纹数据,对应替换为所述标准合同模板的第一类型的元素的样式指纹数据,得到替换后的待处理合同模板对应的样式数据结构;根据所述替换后的待处理合同模板对应的样式数据结构,生成目标合同模板。
8.根据权利要求5所述的方法,其特征在于,所述根据所述待处理合同模板对应的样式数据结构,生成目标合同模板,包括:
获取标准合同模板对应的样式数据结构;
针对所述待处理合同模板对应的样式数据结构和所述标准合同模板对应的样式数据结构,判断同一类型的元素的样式指纹数据是否相同;
在所述同一类型的元素的样式指纹数据都相同时,根据所述待处理合同模板对应的样式数据结构,生成目标合同模板;
在所述同一类型的元素的样式指纹数据存在不相同时,确定至少一个异常元素;所述异常元素表示所述同一类型的元素的样式指纹数据不相同的元素;
确定标准合同模板中第二类型的元素的样式指纹数据;所述第二类型表示所述至少一个异常元素中每个异常元素的类型;将所述每个异常元素的样式指纹数据,对应替换为所述标准合同模板的第二类型的元素的样式指纹数据,得到替换后的待处理合同模板对应的样式数据结构;根据所述替换后的待处理合同模板对应的样式数据结构,生成目标合同模板。
9.一种合同模板的生成装置,其特征在于,所述装置包括:
获取模块,用于获取待处理合同模板的各个元素,所述元素的样式数据用于表示所述待处理合同模板的样式;
第一确定模块,用于确定所述各个元素的排列顺序,根据所述排列顺序,确定所述各个元素的父子关系模型;
第二确定模块,用于根据所述父子关系模型,确定元素的继承关系;所述元素的继承关系为子元素继承父元素的样式数据的关系;
更新模块,用于根据所述继承关系,更新所述各个元素中每个子元素的样式数据;
转换模块,用于将所述各个元素中的样式数据转换为所述待处理合同模板对应的样式数据结构;
生成模块,用于根据所述待处理合同模板对应的样式数据结构,生成目标合同模板。
10.一种电子设备,其特征在于,所述电子设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现权利要求1-8中任一项所述的合同模板的生成方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211419678.4A CN115659942A (zh) | 2022-11-14 | 2022-11-14 | 合同模板的生成、装置及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211419678.4A CN115659942A (zh) | 2022-11-14 | 2022-11-14 | 合同模板的生成、装置及设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115659942A true CN115659942A (zh) | 2023-01-31 |
Family
ID=85020210
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211419678.4A Pending CN115659942A (zh) | 2022-11-14 | 2022-11-14 | 合同模板的生成、装置及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115659942A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116611419A (zh) * | 2023-07-20 | 2023-08-18 | 深圳市明心数智科技有限公司 | 一种合同自动生成方法、系统、金融终端和存储介质 |
-
2022
- 2022-11-14 CN CN202211419678.4A patent/CN115659942A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116611419A (zh) * | 2023-07-20 | 2023-08-18 | 深圳市明心数智科技有限公司 | 一种合同自动生成方法、系统、金融终端和存储介质 |
CN116611419B (zh) * | 2023-07-20 | 2024-01-30 | 深圳市明心数智科技有限公司 | 一种合同自动生成方法、系统、金融终端和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CA2738480C (en) | Detection of confidential information | |
CN110532353B (zh) | 基于深度学习的文本实体匹配方法、系统、装置 | |
CN107451106A (zh) | 文本纠正方法及装置、电子设备 | |
CN111539502A (zh) | 防伪二维码的生成方法、装置、服务器及存储介质 | |
CN116149669B (zh) | 一种基于二进制文件的软件成分分析方法、装置以及介质 | |
CN111758098A (zh) | 利用遗传编程的命名实体识别和提取 | |
US11836331B2 (en) | Mathematical models of graphical user interfaces | |
CN115659942A (zh) | 合同模板的生成、装置及设备 | |
CN115730313A (zh) | 一种恶意文档检测方法、装置、存储介质及设备 | |
CN117195220A (zh) | 基于Tree-LSTM和BiLSTM的智能合约漏洞检测方法及系统 | |
CN114691525A (zh) | 测试用例的选择方法及装置 | |
CN111737694B (zh) | 一种基于行为树的恶意软件同源性分析方法 | |
CN117009968A (zh) | 恶意代码的同源分析方法、装置、终端设备及存储介质 | |
CN111881288A (zh) | 笔录信息真假的判断方法、装置、存储介质及电子设备 | |
CN114996707B (zh) | 图片木马的静态检测方法、装置、电子设备及存储介质 | |
Yang et al. | Research on intelligent recognition and tracking technology of sensitive data for electric power big data | |
CN114818686A (zh) | 基于人工智能的文本推荐方法及相关设备 | |
CN115204144A (zh) | 一种基于异构图卷积网络的篇章级事件提取方法及系统 | |
CN114926082A (zh) | 基于人工智能的数据波动预警方法及相关设备 | |
CN114840767A (zh) | 基于人工智能的业务推荐方法及相关设备 | |
CN114881001A (zh) | 基于人工智能的报表生成方法及相关设备 | |
CN113688240A (zh) | 威胁要素提取方法、装置、设备及存储介质 | |
Uhlig et al. | Combining AI and AM–Improving approximate matching through transformer networks | |
CN113591881A (zh) | 基于模型融合的意图识别方法、装置、电子设备及介质 | |
CN113971282A (zh) | 一种基于ai模型的恶意应用程序检测方法及设备 |
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 |