获取用于生成合同的引导问题节点图的方法及应用和装置与流程

文档序号:24622510发布日期:2021-04-09 20:28阅读:75来源:国知局
获取用于生成合同的引导问题节点图的方法及应用和装置与流程

本公开涉及计算机技术,尤其是涉及一种获取用于生成合同的引导问题节点图的方法、合同生成方法、用于生成合同的引导问题节点图的生成装置、合同生成装置、电子设备以及存储介质。



背景技术:

目前,存在基于引导问题自动生成合同的技术,即在向用户提供一个引导问题时,可以基于用户针对当前引导问题中的选项的选择,为用户提供相应的下一个引导问题,在用户针对最后一个引导问中的选项进行了选择后,基于用户选择的所有选项,形成相应的合同。

本公开的发明人发现:所有引导问题可以基于引导问题间的逻辑关系形成引导问题节点图,在为用户提供引导问题时,可以基于引导问题节点图中的各引导问题节点各自对应的用于确定下游路径的函数,确定为用户提供的下一个引导问题。然而,合同类型较丰富以及合同中的内容灵活多变等因素,不但会使引导问题节点图中包含较多数量的引导问题节点,而且会使引导问题节点间的跳转关系较复杂,从而会大幅度增加用于确定下游路径的函数的复杂度,最终导致引导问题节点图的维护难度大幅度增加。



技术实现要素:

本公开实施例提供一种获取用于生成合同的引导问题节点图的技术方案以及生成合同的技术方案,以形成易于维护的引导问题节点图,提高用于生成合同的引导问题节点图的维护效率,从而提高合同生成效率,并提高合同生成技术的易用性。

本公开实施例的一个方面,提供一种获取用于生成合同的引导问题节点图的方法,包括:获取用于生成合同的多个引导问题节点链,形成节点链集合;对所述节点链集合所包含的引导问题节点进行节点后效性检测,获得具有后效性的引导问题节点;对所述具有后效性的引导问题节点进行节点拆分处理;为包含节点拆分处理后的引导问题节点在内的多个引导问题节点分别设置用于确定下游路径的函数,获得用于生成合同的引导问题节点图。

可选地,在本公开任一实施例的方法中,所述获取用于生成合同的多个引导问题节点链,形成节点链集合,包括:获取用于根据同一合同模板生成同一类型的合同的多个引导问题节点链,形成节点链集合;或者,获取用于根据不同合同模板生成不同类型的合同的多个引导问题节点链,形成节点链集合。

可选地,在本公开任一实施例的方法中,所述对所述节点链集合所包含的引导问题节点进行节点后效性检测,获得具有后效性的引导问题节点,包括:根据所述节点链集合中的各引导问题节点链所包含的所有引导问题节点以及所有引导问题节点间的跳转关系,生成一有向无环图;获取所述有向无环图所包含的节点路径,获得路径集合;根据所述路径集合,对所述节点链集合所包含的引导问题节点进行节点后效性检测,获得具有后效性的引导问题节点。

可选地,在本公开任一实施例的方法中,所述获取所述有向无环图所包含的节点路径,获得路径集合,包括:对所述有向无环图进行路径遍历,获得所述有向无环图所包含的所有节点路径,形成路径集合。

可选地,在本公开任一实施例的方法中,所述根据所述路径集合,对所述节点链集合所包含的引导问题节点进行节点后效性检测,获得具有后效性的引导问题节点,包括:针对任一末端节点,根据所述路径集合,基于广度优先搜索的方式,对所述节点链集合中的基于该末端节点的各引导问题节点链中的引导问题节点,依次进行节点后效性检测,获得基于该末端节点的具有后效性的引导问题节点。

可选地,在本公开任一实施例的方法中,所述根据所述路径集合,基于广度优先搜索的方式,对所述节点链集合中的基于该末端节点的各引导问题节点链中的引导问题节点,依次进行节点后效性检测,获得基于该末端节点的具有后效性的引导问题节点,包括:获取所述路径集合与所述节点链集合中的基于该末端节点的各引导问题节点链的差异;基于广度优先搜索的方式,将所述节点链集合中的基于该末端节点的各引导问题节点链中的一引导问题节点作为待检测节点;获取所述待检测节点在所述差异中的第一下游节点集合,并获取所述待检测节点在所述基于该末端节点的各引导问题节点链中的第二下游节点集合;在确定出所述第一下游节点集合不属于所述第二下游节点集合时,将所述待检测节点作为具有后效性的引导问题节点。

可选地,在本公开任一实施例的方法中,所述对所述具有后效性的引导问题节点进行节点拆分处理,包括:针对任一具有后效性的引导问题节点,形成该具有后效性的引导问题节点的拆分节点,并将所述节点链集合中的包含该具有后效性的引导问题节点的部分引导问题链中的该具有后效性的引导问题节点更新为所述拆分节点。

可选地,在本公开任一实施例的方法中,所述为包含节点拆分处理后的引导问题节点在内的多个引导问题节点分别设置用于确定下游路径的函数,获得用于生成合同的引导问题节点图,包括:针对任一引导问题节点,将该引导问题节点所对应的题目的各选项作为自变量,并将该引导问题节点的所有下游节点作为因变量,为该引导问题节点设置用于确定下游路径的函数。

本公开实施例的另一个方面,提供一种生成合同的方法,包括:确定用户选择的合同模板;确定所述合同模板所对应的引导问题节点图;其中,所述引导问题节点图包括:多个引导问题节点,所述多个引导问题节点均设置有用于确定下游路径的函数,且所述多个引导问题节点包括:对具有后效性的引导问题节点进行节点拆分处理后,获得的拆分节点;根据所述用户针对所述引导问题节点图中的当前引导问题节点所对应的题目的选项的选择信息以及所述当前引导问题节点的用于确定下游路径的函数,确定所述当前引导问题节点的下游节点,并将所述下游节点作为所述当前引导问题节点;根据所述用户针对所述引导问题节点图中的至少一当前引导问题节点所对应的题目的选项的选择信息,利用所述合同模板,为所述用户生成合同。

可选地,在本公开任一实施例的方法中,所述根据所述用户针对所述引导问题节点图中的至少一当前引导问题节点所对应的题目的选项的选择信息,利用所述合同模板,为所述用户生成合同,包括:响应于所述用户针对当前引导问题节点所对应的题目的选项的选择信息,根据所述用户针对该当前引导问题节点所对应的题目的选项的选择信息,形成该当前引导问题节点所对应的合同内容,将所述合同内容添加在所述合同模板中,形成当前合同;输出包括有所述当前合同的页面。

本公开实施例的又一个方面,提供一种用于生成合同的引导问题节点图的生成装置,包括:形成节点链集合模块,用于获取用于生成合同的多个引导问题节点链,形成节点链集合;节点后效性检测模块,用于对所述节点链集合所包含的引导问题节点进行节点后效性检测,获得具有后效性的引导问题节点;节点拆分处理模块,用于对所述具有后效性的引导问题节点进行节点拆分处理;设置函数模块,用于为包含节点拆分处理后的引导问题节点在内的多个引导问题节点分别设置用于确定下游路径的函数,获得用于生成合同的引导问题节点图。

本公开实施例的再一个方面,提供一种生成合同的装置,包括:确定合同模板模块,用于确定用户选择的合同模板;确定引导问题节点图模块,用于确定所述合同模板所对应的引导问题节点图;其中,所述引导问题节点图包括:多个引导问题节点,所述多个引导问题节点均设置有用于确定下游路径的函数,且所述多个引导问题节点包括:对具有后效性的引导问题节点进行节点拆分处理后,获得的拆分节点;确定当前引导问题节点模块,用于根据所述用户针对所述引导问题节点图中的当前引导问题节点所对应的题目的选项的选择信息以及所述当前引导问题节点的用于确定下游路径的函数,确定所述当前引导问题节点的下游节点,并将所述下游节点作为所述当前引导问题节点;生成合同模块,用于根据所述用户针对所述引导问题节点图中的至少一当前引导问题节点所对应的题目的选项的选择信息,利用所述合同模板,为所述用户生成合同。

本公开实施例的再一个方面,提供一种电子设备,该电子设备包括:存储器,用于存储计算机程序;处理器,用于执行所述存储器中存储的计算机程序,且所述计算机程序被执行时,实现上述任一方法实施例。

本公开实施例的再一个方面,提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时,实现上述任一方法实施例。

本公开实施例的再一个方面,提供一种计算机程序,包括:计算机可读代码,当所述计算机可读代码在设备上运行时,所述设备中的处理器执行用于实现上述任一方法实施例中各步骤的指令。

基于本公开上述实施例提供的获取用于生成合同的引导问题节点图的方法和装置、生成合同的方法和装置、电子设备和存储介质,通过利用节点后效性检测,获得具有后效性的引导问题节点,并对具有后效性的引导问题节点进行节点拆分处理,可以排除具有后效性的引导问题节点;由于为无后效性引导问题节点设置用于确定下游路径的函数的复杂度远小于为具有后效性的引导问题节点设置用于确定下游路径的函数的复杂度,因此,本公开可以便捷的为引导问题节点设置用于确定下游路径的函数。由此可知,本公开实施例提供的技术方案有利于降低用于生成合同的引导问题节点图的维护难度,从而有利于提高用于生成合同的引导问题节点图的维护效率,进一步的,在利用这样的引导问题节点图为用户生成合同时,由于引导问题节点图中的各引导问题节点的用于确定下游路径的函数的复杂度均较低,因此,有利于提高合同生成效率,并有利于提高合同生成技术的易用性。

下面通过附图和实施例,对本公开的技术方案做进一步的详细描述。

附图说明

构成说明书的一部分的附图描述了本公开的实施例,并且连同描述一起用于解释本公开的原理。

参照附图,根据下面的详细描述,可以更加清楚地理解本公开,其中:

图1为本公开的获取用于生成合同的引导问题节点图的方法一实施例的流程图。

图2为本公开的利用有向无环图实现节点后效性检测一实施例的流程图。

图3为本公开的由引导问题节点链形成的有向无环图一实施例的示意图。

图4为本公开的节点无效性检测一实施例的流程图。

图5为本公开的有向无环图另一实施例的示意图。

图6为本公开的生成合同的方法一实施例的流程图。

图7为本公开的用于生成合同的引导问题节点图的生成装置一实施例的结构示意图。

图8为本公开的生成合同的装置一实施例的结构示意图。

图9为本公开电子设备一个应用实施例的结构示意图。

具体实施方式

现在将参照附图来详细描述本公开的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。

本领域技术人员可以理解,本公开实施例中的“第一”、“第二”等术语仅用于区别不同步骤、设备或模块等,既不代表任何特定技术含义,也不表示它们之间的必然逻辑顺序。

还应理解,在本公开实施例中,“多个”可以指两个或两个以上,“至少一个”可以指一个、两个或两个以上。

还应理解,对于本公开实施例中提及的任一部件、数据或结构,在没有明确限定或者在前后文给出相反启示的情况下,一般可以理解为一个或多个。

另外,本公开中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本公开中字符“/”,一般表示前后关联对象是一种“或”的关系。

还应理解,本公开对各个实施例的描述着重强调各个实施例之间的不同之处,其相同或相似之处可以相互参考,为了简洁,不再一一赘述。

同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。

以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。

对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。

本公开实施例可以应用于终端设备、计算机系统、服务器等电子设备,其可与众多其它通用或专用计算系统环境或配置一起操作。适于与终端设备、计算机系统、服务器等电子设备一起使用的众所周知的终端设备、计算系统、环境和/或配置的例子包括但不限于:个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统﹑大型计算机系统和包括上述任何系统的分布式云计算技术环境,等等。

终端设备、计算机系统、服务器等电子设备可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括例程、程序、目标程序、组件、逻辑、数据结构等等,它们执行特定的任务或者实现特定的抽象数据类型。计算机系统/服务器可以在分布式云计算环境中实施,分布式云计算环境中,任务是由通过通信网络链接的远程处理设备执行的。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。

图1为本公开的获取用于生成合同的引导问题节点图的方法一个实施例的流程图。如图1所示,该实施例的获取用于生成合同的引导问题节点图的方法包括下述步骤:

s100、获取用于生成合同的多个引导问题节点链,形成节点链集合。

本公开中的引导问题节点链可以是指由多个引导问题节点以及引导问题节点间的跳转关系,形成的逻辑链路。即本公开中的引导问题节点链包括两个基本要素,分别为:引导问题节点和引导问题节点间的跳转关系,每一个引导问题节点均对应各自的题目。

在一个例子中,一个题目包括题干以及多个选项。引导问题节点间的跳转关系通常是由引导问题节点所对应的题目的选项决定的。例如,一引导问题节点所对应的题目共包括n(n为大于1的整数)个选项,这n个选项中的每一个选项均会引出不同的下一个题目(即下一个引导问题节点),从而形成上游引导问题节点和下游引导问题节点间的跳转关系。

本公开中的每一个引导问题节点可以均具有唯一标识(如节点标识等),且不同引导问题节点具有不同的标识。在通常情况下,再节点拆分处理之前,节点链集合中的不同引导问题节点各自对应的题目并不相同。当然,本公开并不排除节点链集合中的两个不同引导问题节点各自对应的题目相同的现象,然而,这两个对应相同题目的不同引导问题节点应具有不同的标识。

本公开中的一个引导问题节点链通常为没有支路的链路,例如,一个引导问题节点链为:引导问题节点1为一引导问题节点链的头端节点(也可以称为开始节点),引导问题节点1的下游节点为引导问题节点2,引导问题节点2的下游节点为引导问题节点3,引导问题节点3的下游节点为引导问题节点4,引导问题节点4为引导问题节点链的末端节点。当然,本公开也不排除一个引导问题节点链为带有支路的链路的情况,例如,引导问题节点1为一引导问题节点链的头端节点,引导问题节点1的下游节点为引导问题节点2,引导问题节点2的下游节点为引导问题节点3,引导问题节点3的下游节点为引导问题节点4和引导问题节点5,引导问题节点4和引导问题节点5均为引导问题节点链的末端节点。

在一个例子中,本公开中的节点链集合中的所有引导问题节点链通常具有相同的头端节点。也就是说,如果利用节点链集合中的所有引导问题节点链形成一棵树,则节点链集合中的所有引导问题节点链的头端节点即为该树的根节点。当然,本公开也不排除节点链集合中的所有引导问题节点链具有不同的头端节点的现象,从而在利用节点链集合中的所有引导问题节点链形成树时,可能会形成一棵树,也可能会形成多颗树。

本公开可以通过接收外部输入的引导问题节点链信息或者读取预定位置处的存储信息等方式,获取到多个引导问题节点链。多个引导问题节点链通常是根据至少一种类型的合同的具体需求预先设置的。例如,一种类型的合同所涉及到的引导问题节点及其节点间的跳转关系通常会存在多种可能性,本公开可以预先针对每一种可能性分别设置一个引导问题节点链。同样的,多种类型的合同所涉及到的引导问题节点及其节点间的跳转关系也会存在多种可能性,本公开可以预先针对每一种可能性分别设置一个引导问题节点链。

s101、对节点链集合所包含的引导问题节点进行节点后效性检测,获得具有后效性的引导问题节点。

本公开中的节点后效性可以是指:对于节点链集合中的任一引导问题节点而言,如果将该引导问题节点作为当前引导问题节点,则在确定该当前引导问题节点的下游节点时,需要考虑该当前引导问题节点的前置路径。当前引导问题节点的前置路径可以是指从引导问题节点链的头端节点到当前引导问题节点的路径。

本公开可以对节点链集合中的所有引导问题节点均进行节点后效性检测,也可以对节点链集合中的部分引导问题节点分别进行节点后效性检测。例如,本公开可以对节点链集合中的所有引导问题节点链中的除特定节点之外的其他引导问题节点,分别进行节点后效性检测,其中的特定节点可以包括:引导问题节点链的头端节点以及末端节点等。

对于节点链集合中的任一引导问题节点而言,本公开通过对该引导问题节点进行节点后效性检测,可以判断出该引导问题节点是具有后效性的引导问题节点,还是无后效性的引导问题节点(即不具有后效性的引导问题节点)。本公开可以基于节点链集合中的所有引导问题节点链中的每一个引导问题节点各自的上游节点和下游节点,所形成的引导问题节点间的逻辑关系,对节点链集合中的引导问题节点进行节点后效性检测,获得具有后效性的引导问题节点。本公开不限制节点后效性检测的具体实现方式。

s102、对具有后效性的引导问题节点进行节点拆分处理。

本公开中的节点拆分处理可以是指将一个引导问题节点拆分为两个不同的引导问题节点。例如,保留具有后效性的引导问题节点,并基于该具有后效性的引导问题节点再设置一个新的引导问题节点,从而获得两个引导问题节点。再例如,不保留具有后效性的引导问题节点,基于该具有后效性的引导问题节点设置两个新的引导问题节点,从而获得两个引导问题节点。

本公开基于一个引导问题节点拆分获得的两个引导问题节点,具有相同的题目以及相同的选项,但是,拆分获得的两个引导问题节点应具有不同的标识(如具有不同的节点标识),而且,拆分获得的两个引导问题节点的所有下游节点并不相同,例如,两个不同的引导问题节点所对应的题目的同一选项所引出的下一个引导问题节点并不相同。这意味着拆分获得的两个引导问题节点各自对应的用于确定下游路径的函数应不相同,且函数的自变量也不应相同。

本公开中的节点拆分处理可以使节点链集合中的相应的引导问题链产生变化,例如,节点链集合中的一引导问题链中的具有后效性的引导问题节点被拆分获得的新的引导问题节点所取代等。

s103、为包含节点拆分处理后的引导问题节点在内的多个引导问题节点分别设置用于确定下游路径的函数,获得用于生成合同的引导问题节点图。

在一个例子中,在利用拆分获得的新的引导问题节点对节点链集合进行更新的情况下,本公开中的包含节点拆分处理后的引导问题节点在内的多个引导问题节点可以包括:更新后的节点链集合中的所有引导问题节点链中的所有引导问题节点。

对于引导问题节点图中的任一引导问题节点而言,本公开为该引导问题节点设置的用于确定下游路径的函数可以是指:能够表示出该引导问题节点的所有下游节点的函数。

本公开中的引导问题节点图可以表现为一设置有用于确定下游路径的函数的有向无环图。本公开中的引导问题节点图可以适用于根据用户对多个引导问题节点所对应的题目的选项的选择,自动为用户生成合同的应用中。

本公开通过利用节点后效性检测,获得具有后效性的引导问题节点,通过对具有后效性的引导问题节点进行节点拆分处理,可以排除节点链集合中的至少部分具有后效性的引导问题节点;由于为无后效性引导问题节点设置用于确定下游路径的函数的复杂度,远小于为具有后效性的引导问题节点设置用于确定下游路径的函数的复杂度,因此,本公开可以便捷的为引导问题节点设置用于确定下游路径的函数。由此可知,本公开实施例提供的技术方案有利于降低用于生成合同的引导问题节点图的维护难度,从而有利于提高用于生成合同的引导问题节点图的维护效率,进一步的,在利用这样的引导问题节点图为用户生成合同时,由于引导问题节点图中的各引导问题节点的用于确定下游路径的函数的复杂度均较低,因此,有利于提高合同生成效率,并有利于提高合同生成技术的易用性。

本公开实施例提供的任一种获取用于生成合同的引导问题节点图的方法可以由任意适当的具有数据处理能力的设备执行,包括但不限于:终端设备、服务器、或者设置于终端设备和服务器之间的网络设备等。终端设备、服务器或者网络设备中的处理器通过调用存储器存储的相应指令来执行本公开实施例提及的任一种获取用于生成合同的引导问题节点图的方法。下文不再赘述。

本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。

在一个可选示例中,本公开中的节点链集合所包含的所有引导问题节点链均对应同一个合同模板,且一个合同模板通常对应一种类型的合同,例如,房屋租借类型的合同对应一合同模板,新房屋买卖类型的合同对应另一合同模板,二手房屋买卖类型的合同对应再一合同模板。即本公开在s100中获取到的多个引导问题节点链均对应同一个合同模板,即该合同模板与节点链集合中的每一个引导问题节点链相配合,均可以为用户生成相同类型的合同。也就是说,本公开可以针对一个合同模板设置一个引导问题节点图,不同合同模板对应不同的引导问题节点图。

可选的,本公开中的合同模板是预先设置的已知合同模板。合同模板可以对应有合同名称、相应的合同条款集合以及相应的文字说明等内容。另外,合同模板通常具有相应的内容排布格式。本公开不限制合同模板的具体表现形式以及合同模板对应的合同类型等。

在另一个可选示例中,本公开中的节点链集合所包含的所有引导问题节点链对应至少两个合同模板,且不同合同模板通常对应不同类型的合同。即本公开在s100中获取到的多个引导问题节点链对应多个合同模板,每一个合同模板均对应节点链集合中的部分引导问题节点链,每一个合同模板与其对应的每一个引导问题节点链相配合,均可以为用户生成相同类型的合同。基于不同合同模板生成的合同通常为不同类型的合同。在一个例子中,本公开的节点链集合包括:m条引导问题节点链,其中的第1条至第m1条引导问题节点链对应房屋租借类型的合同模板,其中的第m1+1至第m2条引导问题节点链对应新房屋买卖类型的合同模板,其中的第m2+1至第m3条引导问题节点链对应二手房屋买卖类型的合同模板,其中的m1、m2和m3均为大于等于1的整数,且m为m1、m2和m3之和,m2大于m1,m3大于m2。也就是说,本公开可以针对多个合同模板设置一个引导问题节点图,不同合同模板对应同一个引导问题节点图。

在节点链集合所包含的所有引导问题节点链均对应同一个合同模板的情况下,本公开获得的引导问题节点图更具有针对性,从而在对引导问题节点图进行增删节点以及修改节点间的跳转关系等维护操作的过程中,有利于避免对基于其他合同模板生成合同的过程的影响,即有利于限制维护操作的波及范围。

在节点链集合所包含的所有引导问题节点链对应至少两个合同模板的情况下,本公开获得的引导问题节点图更具有全面性,由于不同类型的合同可能会涉及相同的引导问题节点,因此,有利于节约引导问题节点图所消耗的存储资源。

在一个可选示例中,本公开可以利用有向无环图实现节点后效性检测。本公开利用有向无环图实现节点后效性检测的一个例子如图2所示。

s200、根据节点链集合中的各引导问题节点链所包含的所有引导问题节点以及所有引导问题节点间的跳转关系,生成一有向无环图。

可选的,本公开中的有向无环图可以是指无回路的有向图。节点链集合中的所有引导问题节点链所包含的所有引导问题节点即为该有向无环图中的所有节点,节点链集合中的所有引导问题节点链中的所有引导引导问题节点间的跳转关系即为该有向无环图中的所有节点的跳转关系。

可选的,在本公开中的节点链集合中的所有引导问题节点链具有相同的头端节点的情况下,本公开所生成的该有向无环图可以认为是:一颗以所有引导问题节点链的头端节点为根节点的树。

可选的,本公开可以通过将节点链集合中的所有引导问题节点链中的相同引导问题节点合并为图中的一个节点,而形成一有向无环图。在一个例子中,假设节点链集合包括4条引导问题节点链,且这4条引导问题节点链共涉及6个引导问题节点,分别为节点1、节点2、节点3、节点4、节点5以及节点6,且上述4条引导问题节点链分别为:

节点4-->节点3-->节点2;

节点4-->节点3-->节点6-->节点1-->节点2;

节点4-->节点6-->节点1-->节点2;

节点4-->节点6-->节点5;

由上述4条引导问题节点链所形成的有向无环图的一个例子如图3所示。图3中的有向无环图的头端节点为节点4,且节点2和节点5均为该有向无环图的末端节点。图3所示的有向无环图可以认为是一颗以节点4是根节点的树,节点2和节点5为树的叶子节点。

s201、获取上述有向无环图所包含的节点路径,获得路径集合。

可选的,本公开中的路径集合可以包括:该有向无环图所包含的所有节点路径。本公开可以通过对有向无环图进行路径遍历的方式,获得有向无环图所包含的所有节点路径。在一个例子中,本公开可以采用深度优先路径遍历算法,对该有向无环图进行路径遍历,从而获得该有向无环图所包含的所有节点路径。

可选的,路径集合所包含的每一条节点路径可以看做是一条节点链,且路径集合所包含的节点路径的数量通常会多于节点链集合所包含的引导问题节点链的数量。在一个例子中,路径集合中的部分节点路径与节点链集合中的所有引导问题节点链相同,路径集合中的另一部分节点路径是节点链集合所没有的。

续前例,对于图3而言,本公开通过路径遍历获得的路径集合所包含的所有节点路径如下:

节点4-->节点3-->节点2;

节点4-->节点3-->节点6-->节点1-->节点2;

节点4-->节点3-->节点6-->节点5;

节点4-->节点6-->节点1-->节点2;

节点4-->节点6-->节点5;

由上述描述可知,节点链集合包括4条引导问题节点链,路径集合包括5条节点路径,路径集合中有4条节点路径与节点链集合所包含的4条引导问题节点链完全相同,路径集合中的节点4-->节点3-->节点6-->节点5,这一条节点路径是节点链集合所没有的。

s202、根据上述路径集合,对节点链集合所包含的引导问题节点进行节点后效性检测,获得具有后效性的引导问题节点。

可选的,本公开可以基于有向无环图所包含的所有节点路径以及节点链集合中的引导问题节点链,对节点链集合中的至少部分引导问题节点(如所有引导问题节点)分别进行节点后效性检测,以判断至少部分引导问题节点是否具有后效性。在对所有引导问题节点均进行节点后效性检测的情况下,本公开可以区分出节点链集合中的具有后效性的所有引导问题节点和不具有后效性的所有引导问题节点(即所有无后效性引导问题节点)。

在一个例子中,对于节点链集合中的任一引导问题节点而言,本公开可以根据该引导问题节点在路径集合的所有节点路径中的下游节点情况以及该引导问题节点在节点链集合的至少部分引导问题节点链中的下游节点情况,来判断该引导问题节点是否具有后效性。例如,如果该引导问题节点在路径集合的所有节点路径中的下游节点多于该引导问题节点在节点链集合的至少部分引导问题节点链中的下游节点,则可以认为该引导问题节点具有后效性,否则,认为该引导问题节点不具有后效性。

续前例,对于图3中的节点4而言,由于节点4在路径集合的所有节点路径中的下游节点情况为:节点3和节点6,且节点4在节点链集合的其中一部分引导问题节点链中的下游节点情况为:节点3和节点6,因此,可以判断出节点4为无后效性节点。

续前例,对于图3中的节点6而言,由于节点6在路径集合的所有节点路径中的下游节点情况为:节点1和节点5,且节点6在节点链集合的其中一部分引导问题节点链中的下游节点情况为:节点5,因此,可以判断出节点6为具有后效性的引导问题节点。

由于路径集合中的节点不会受到用于确定下游路径的函数的约束,因此,路径集合所包含的节点路径可以清楚明确的表示出各节点的所有下游节点。如果一引导问题节点在路径集合中的所有下游节点与该引导问题节点在节点链集合中的相应引导问题节点链中的所有下游节点存在差异,则可以说明该引导问题节点到其下游节点的后置路径与该引导问题节点的前置路径具有相关性,因此,本公开可以认为该引导问题节点为具有后效性的引导问题节点。本公开通过利用遍历有向无环图的节点路径获得的路径集合,实现节点后效性检测,有利于使节点后效性检测易于实施。

在一个可选示例中,在对一引导问题节点进行节点后效性检测时,可以利用引导问题节点在路径集合的所有节点路径中的下游节点情况、以及该引导问题节点在节点链集合的下游节点情况,来判断该引导问题节点是否为具有后效性的引导问题节点。即本公开可以利用该引导问题节点在节点链集合中的下游节点,判断该引导问题节点在路径集合中的下游节点是否存在无效的下游节点,如果存在无效的下游节点表示该引导问题节点为具有后效性的引导问题节点。其中的引导问题节点在节点链集合中的下游节点可以是指节点链集合中的具有相同末端节点的引导问题节点链。本公开可以以节点链集合中的末端节点为单位,将节点链集合中的所有引导问题节点链划分为多个子集,每一子集中的所有引导问题节点链具有相同的末端节点,且不同子集对应不同的末端节点。

在一个例子中,本公开可以以子集为单位进行节点后效性检测,例如,对于任一子集而言,本公开可以从该子集的头端节点开始,基于广度优先搜索的方式,利用路径集合中的所有节点路径,对该子集中的所有引导问题节点链所包含的部分引导问题节点(如除去头端节点和末端节点之外的引导问题节点)或者所有引导问题节点,依次进行节点后效性检测,获得该子集中的具有后效性的引导问题节点。

由于不同子集中的引导问题节点链所包含的引导问题节点存在重复现象,因此,节点链集合中的任一引导问题节点均可能会被进行多次节点后效性检测,例如,第一子集和第二子集均包括第一引导问题节点、第二引导问题节点和第三引导问题节点,则在针对第一子集进行节点后效性检测的过程中,会分别检测第一引导问题节点、第二引导问题节点和第三引导问题节点是否具有后效性,在针对第二子集进行节点后效性检测的过程中,仍然会分别检测第一引导问题节点、第二引导问题节点和第三引导问题节点是否具有后效性。换角度而言,如果一个引导问题节点应出现在两个不同子集中,则可以认为该引导问题节点以两个不同的节点的形式出现在两个不同子集中。例如,以该引导问题节点的一副本节点和该引导问题节点的另一副本节点的形式存在于两个不同子集中。如果一引导问题节点在其中一个子集的节点后效性检测过程中被确定为具有后效性的引导问题节点,则不论该引导问题节点在其他子集的节点后效性检测过程中是否被确定为不具有后效性的引导问题节点,本公开仍会将该引导问题节点作为具有后效性的引导问题节点。另外,如果一引导问题节点在其中一个子集的节点后效性检测过程中被确定为具有后效性的引导问题节点,则本公开可以对该引导问题节点进行节点拆分处理,以便于使拆分后的子集不存在具有后效性的引导问题节点。

续前例,对于图3而言,由于节点链集合中的末端节点包括:节点2和节点5,因此,本公开可以将节点链集合中的引导问题节点链划分为两子集,其中第一子集包括:节点4-->节点3-->节点2、节点4-->节点3-->节点6-->节点1-->节点2以及节点4-->节点6-->节点1-->节点2;其中第二子集包括:节点4-->节点6-->节点5。

对于第一子集而言,本公开基于广度优先搜索的方式,对各引导问题节点进行节点后效性检测的顺序可以为:节点4、(节点3和节点6)、(节点2、节点5和节点1),其中,括号中的节点顺序可以随意变换。

对于第二子集而言,本公开基于广度优先搜索的方式,对各引导问题节点进行节点后效性检测的顺序可以为:节点4、节点6、节点5。

可选的,本公开在对一个子集中的引导问题节点进行节点后效性检测的过程中,如果其中一个引导问题节点被确定为具有后效性的引导问题节点,则由于需要对该引导问题节点进行节点拆分处理,因此,本公开可以不对该引导问题节点在该子集中的各下游节点进行节点后效性检测。

本公开通过利用末端节点对节点链集合中的引导问题节点链进行划分,形成多个子集,并基于广度优先搜索的方式,各子集中的对引导问题节点依次进行后效性检测,使节点后效性检测易于实施,有利于在确保节点后效性检测的准确性的同时,于提高后效性检测的效率。

在一个可选示例中,本公开提供的节点无效性检测的一个实施例的流程,可以如图4所示。

s400、针对一末端节点而言,获取路径集合与节点链集合中的基于该末端节点的各引导问题节点链的差异。

可选的,本公开可以从路径集合中去除节点链集合中的基于该末端节点的各引导问题节点链,例如,将路径集合所包含的所有节点路径与节点链集合中的基于该末端节点的所有引导问题节点链进行相减处理,从而获得路径集合与节点链集合中的基于该末端节点的各引导问题节点链的差异。

续前例,对于图3中的节点2而言,节点链集合中的基于节点2的各引导问题节点链包括:节点4-->节点3-->节点2、节点4-->节点3-->节点6-->节点1-->节点2以及节点4-->节点6-->节点1-->节点2;而路径集合所包括的节点路径包括:节点4-->节点3-->节点2、节点4-->节点3-->节点6-->节点1-->节点2、节点4-->节点3-->节点6-->节点5、节点4-->节点6-->节点1-->节点2、以及节点4-->节点6-->节点5;路径集合与节点链集合中的基于末端节点2的各引导问题节点链的差异为:节点4-->节点3-->节点6-->节点5以及4-->节点6-->节点5。

续前例,对于图3中的节点5而言,节点链集合中的基于节点5的各引导问题节点链包括:节点4-->节点6-->节点5;路径集合所包括的节点路径包括:节点4-->节点3-->节点2、节点4-->节点3-->节点6-->节点1-->节点2、节点4-->节点3-->节点6-->节点5、节点4-->节点6-->节点1-->节点2、以及节点4-->节点6-->节点5;路径集合与节点链集合中的基于末端节点5的各引导问题节点链的差异为:节点4-->节点3-->节点2、节点4-->节点3-->节点6-->节点1-->节点2、节点4-->节点3-->节点6-->节点5、以及节点4-->节点6-->节点1-->节点2。

s401、基于广度优先搜索的方式,将节点链集合中的基于该末端节点的各引导问题节点链中的一引导问题节点作为待检测节点。

可选的,本公开可以利用节点链集合中的基于该末端节点的各引导问题节点链形成一棵树,然后,可以先将该树的根节点(例如,图3中的节点4)作为待检测节点,其次,将该树的根节点的所有下游节点(如图3中的节点6和节点3)按照一定的顺序依次被作为待检测节点,以此类推,直到将该树的末端节点(如节点5或者节点2)作为待检测节点。在一个例子中,本公开可以不对该树的根节点以及末端节点进行节点后效性检测,即可以不必将该树的跟节点和末端节点作为待检测节点。

s402、获取待检测节点在该差异中的第一下游节点集合,并获取待检测节点在基于该末端节点的各引导问题节点链中的第二下游节点集合。

续前例,在末端节点为图3中的节点2的情况下,路径集合与节点链集合中的基于末端节点2的各引导问题节点链的差异包括:

节点4-->节点3-->节点6-->节点5;以及

节点4-->节点6-->节点5;

节点链集合中的以节点2为末端节点的各引导问题节点链包括:

节点4-->节点3-->节点2;

节点4-->节点3-->节点6-->节点1-->节点2;以及

节点4-->节点6-->节点1-->节点2;

在上述情况下,如果待检测节点为节点4,则第一下游节点集合包括:节点3和节点6,且第二下游节点集合包括:节点3和节点6;如果待检测节点为节点3,则第一下游节点集合包括:节点6,第二下游节点集合包括:节点2和节点6;如果待检测节点为节点6,则第一下游节点集合包括:节点5,第二下游节点集合包括:节点1;如果待检测节点为节点1,则第一下游节点集合为空,第二下游节点集合包括:节点2。

续前例,在末端节点为图3中的节点5的情况下,路径集合与节点链集合中的基于末端节点5的各引导问题节点链的差异包括:

节点4-->节点3-->节点2;

节点4-->节点3-->节点6-->节点1-->节点2;

节点4-->节点3-->节点6-->节点5;以及

节点4-->节点6-->节点1-->节点2;

假设节点链集合中的基于节点5的各引导问题节点链包括:

节点4-->节点6-->节点5;

在上述情况下,如果待检测节点为节点4,则第一下游节点集合包括:节点3和节点6,第二下游节点集合包括:节点6;如果待检测节点为节点6,则第一下游节点集合包括:节点1和节点5,第二下游集合包括:节点5。

s403、在确定出第一下游节点集合不属于第二下游节点集合时,将待检测节点作为具有后效性的引导问题节点。

续前例,在本公开不对根节点进行节点后效性检测,且在末端节点为图3中的节点2的情况下,在待检测节点为节点6时,由于第一下游节点集合包括:节点5,而第二下游节点集合包括:节点1;因此,本公开可以将节点6作为具有后效性的引导问题节点。

续前例,在本公开不对根节点进行节点后效性检测,且在末端节点为图3中的节点2的情况下,在待检测节点为节点6时,由于第一下游节点集合包括:节点1和节点5,而第二下游集合包括:节点5;因此,本公开可以将节点6作为具有后效性的引导问题节点。

本公开通过获得路径集合与节点链集合中的基于末端节点的引导问题节点链的差异,可以方便的利用该差异以及节点链集合中的基于末端节点的引导问题节点链,获得第一下游节点集合和第二下游节点集合,从而通过对第一下游节点集合和第二下游节点集合的比较,即可便捷的确定出具有后效性的引导问题节点,进而有利于高效准确的实现节点后效性检测。

在一个可选示例中,本公开可以针对每一个具有后效性的引导问题节点,分别形成其拆分节点,并将节点链集合中的相应引导问题链中的具有后效性的引导问题节点更新为该拆分节点。这里的相应引导问题链可以是指节点链集合中的包含有具有后效性的引导问题节点的所有引导问题链中的部分引导问题链。

续前例,由于检测出节点6为具有后效性的引导问题节点,因此,本公开可以为节点6形成节点6’,并利用节点6’替换节点4-->节点6-->节点5这一引导问题节点链中的节点6,从而形成节点4-->节点6’-->节点5。

本公开通过形成具有后效性的引导问题节点的拆分节点,并利用拆分节点替换节点链集合中的相应引导问题链中的具有后效性的引导问题节点,有利于消除节点链集合的引导问题链存在具有后效性的引导问题节点的问题,从而通过为更新后的节点链集合中的各引导问题节点分别设置用于确定下游路径的函数,即可便捷的形成引导问题节点图。

在一个可选示例中,本公开为引导问题节点(包括拆分节点)设置用于确定下游路径的函数的过程可以为:针对节点链集合中的任一引导问题节点而言,将该引导问题节点所对应的题目的各选项作为自变量,并将该引导问题节点的所有下游节点作为因变量,为该引导问题节点设置用于确定下游路径的函数。

在一个例子中,本公开中的用于确定下游路径的函数可以表示为y=f(x)的形式,对于任一引导问题节点而言,x表示该引导问题节点的信息,而不再需要表示该引导问题节点的所有前置路径的集合,y表示根据该引导问题节点计算出的该引导问题节点的可能的后置节点集合,而不再需要表示根据该引导问题节点的所有前置路径集合计算出的该引导问题节点的可能的后置节点集合。其中的前置路径即从引导问题节点图的根节点到该引导问题节点的路径,后置节点即下游节点。

由于本公开中的引导问题节点的用于确定下游路径的函数的自变量可以为节点对应的题目的各选项,而不再需要表示引导问题节点的所有前置路径的集合,因此,本公开使引导问题节点图中的各引导问题节点的用于确定下游路径的函数中的自变量得到了极大的简化,也就是说,在设置引导问题节点的用于确定下游路径的函数时,可以不必考虑引导问题节点的所有前置路径,从而极大的降低了为引导问题节点设置用于确定下游路径的函数的难度,进而有利于提高引导问题节点图的维度效率。

在一个可选示例中,本公开可以将引导问题节点图存储在数据库中。即本公开可以将引导问题节点图中的每一个引导问题节点所涉及的信息均存储在数据库中。本公开中的每一个引导问题节点所涉及的信息可以包括:本引导问题节点所对应的题目中的题干、本引导问题节点所对应的题目中的所有选项、以及本引导问题节点的用于确定下游路径的函数。

下面结合图5,对本公开的获取用于生成合同的引导问题节点图的方法的一具体实现过程进行说明。

假设本公开需要获得的引导问题节点图涉及10个引导问题节点,且分别为节点1、节点2、节点3、节点4、节点5、节点6、节点7、节点8、节点9以及节点10;

假设本公开获取到的节点链集合(即集合a)包括七个引导问题节点链,分别为:

节点1-->节点2-->节点4-->节点5;

节点1-->节点2-->节点4-->节点6-->节点7-->节点9;

节点1-->节点3-->节点6-->节点7-->节点9;

节点1-->节点3-->节点6-->节点7-->节点8-->节点9;

节点1-->节点2-->节点4-->节点8-->节点10;

节点1-->节点2-->节点4-->节点6-->节点7-->节点8-->节点10;

节点1-->节点3-->节点6-->节点7-->节点8-->节点10;

由于上述七个引导问题节点链包括三个末端节点,因此,本公开可以将集合a划分为三个子集,这三个子集分别为:子集a5、子集a9以及子集a10。其中的子集a5包括1个引导问题节点链,即节点1-->节点2-->节点4-->节点5;其中的子集a9包括3个引导问题节点链,即节点1-->节点2-->节点4-->节点6-->节点7-->节点9、节点1-->节点3-->节点6-->节点7-->节点9、以及节点1-->节点3-->节点6-->节点7-->节点8-->节点9;其中的子集a10包括3个引导问题节点链,即节点1-->节点2-->节点4-->节点8-->节点10、节点1-->节点2-->节点4-->节点6-->节点7-->节点8-->节点10、以及节点1-->节点3-->节点6-->节点7-->节点8-->节点10。在一个例子中,三个子集可以对应相同类型的合同,如对应同一个合同模板。在另一个例子中,三个子集可以对应不同类型的合同,如子集a5对应一种类型的合同,并对应一合同模板,子集a9对应另一种类型的合同,并对应另一合同模板,子集a10对应再一种类型的合同,并对应再一种合同模板。

由上述10个节点以及上述7条引导问题节点链所形成的有向无环图如图5所示。图5中的节点1可以认为是有向无环图的头端节点(即树的根节点),节点5、节点9和节点10均为有向无环图的末端节点(即树的叶子节点)。

通过对图5所示的有向无环图进行路径遍历,可以得到集合b,该集合b包括下述8条引导问题节点链:

节点1-->节点2-->节点4-->节点5;

节点1-->节点2-->节点4-->节点6-->节点7-->节点9;

节点1-->节点2-->节点4-->节点8-->节点10;

节点1-->节点2-->节点4-->节点6-->节点7-->节点8-->节点10;

节点1-->节点2-->节点4-->节点6-->节点7-->节点8-->节点9;

节点1-->节点3-->节点6-->节点7-->节点9;

节点1-->节点3-->节点6-->节点7-->节点8-->节点9;

节点1-->节点3-->节点6-->节点7-->节点8-->节点10;

针对节点5这一末端节点,本公开可以计算集合b和子集a5的差值,形成集合a'5,集合a'5包括下述引导问题节点链:

节点1-->节点2-->节点4-->节点6-->节点7-->节点9;

节点1-->节点2-->节点4-->节点8-->节点10;

节点1-->节点2-->节点4-->节点6-->节点7-->节点8-->节点10;

节点1-->节点2-->节点4-->节点6-->节点7-->节点8-->节点9;

节点1-->节点3-->节点6-->节点7-->节点9;

节点1-->节点3-->节点6-->节点7-->节点8-->节点9;

节点1-->节点3-->节点6-->节点7-->节点8-->节点10;

如果本公开不对头端节点和末端节点进行节点后效性检测,则本公开首先对节点2进行节点后效性检测,之后,对节点4进行节点后效性检测。

节点2在集合a'5中的第一下游节点集合包括:节点4,节点2在子集a5中的第二下游节点集合包括:节点4;由于第一下游节点集合所包含的所有节点均属于第二下游节点集合,因此,节点2不为具有后效性的引导问题节点。

节点4在集合a'5中的所有下游节点形成的第一下游节点集合包括:节点6和节点8,节点4在子集a5中的所有下游节点形成的第二下游节点集合包括:节点5;由于节点6和节点8均不属于第二下游节点集合,因此,节点4为具有后效性的引导问题节点,本公开可以将节点4拆分为节点4和节点4’。节点4的下游节点为节点5,节点4’的下游节点为节点6和节点8。

针对节点9这一末端节点,本公开可以计算集合b和子集a9的差值,形成集合a'9,集合a'9包括下述引导问题节点链:

节点1-->节点2-->节点4-->节点5;

节点1-->节点2-->节点4-->节点8-->节点10;

节点1-->节点2-->节点4-->节点6-->节点7-->节点8-->节点10;

节点1-->节点2-->节点4-->节点6-->节点7-->节点8-->节点9;

节点1-->节点3-->节点6-->节点7-->节点8-->节点10;

如果本公开不对头端节点和末端节点进行节点后效性检测,则本公开首先对(节点2和节点3)进行节点后效性检测,之后,对(节点4和节点6)进行节点后效性检测,再后,对节点7进行节点后效性检测,最后,对节点8进行节点后效性检测。

节点2在集合a'9中的第一下游节点集合包括:节点4,节点2在子集a9中的第二下游节点集合包括:节点4;由于第一下游节点集合所包含的所有节点均属于第二下游节点集合,因此,节点2不为具有后效性的引导问题节点。

节点3在集合a'9中的第一下游节点集合包括:节点6,节点3在子集a9中的第二下游节点集合包括:节点6;由于第一下游节点集合所包含的所有节点均属于第二下游节点集合,因此,节点3不为具有后效性的引导问题节点。

节点4在集合a'9中的第一下游节点集合包括:节点5、节点6和节点8,节点4在子集a9中的第二下游节点集合包括:节点6;由于节点5和节点8均不属于第二下游节点集合,因此,节点4为具有后效性的引导问题节点,本公开可以将节点4拆分为节点4和节点4’。节点4的下游节点为节点5,节点4’的下游节点为节点6和节点8。

由于节点6和节点8均是节点4的下游节点,且节点7是节点6的下游节点,因此,在确定出节点4为具有后效性的引导问题节点之后,本公开可以不再对节点6、节点7和节点8进行节点后效性检测。

针对节点10这一末端节点,本公开可以计算集合b和子集合a10的差值,形成集合a'10,集合a'10包括下述引导问题节点链:

节点1-->节点2-->节点4-->节点5;

节点1-->节点2-->节点4-->节点6-->节点7-->节点9;

节点1-->节点2-->节点4-->节点6-->节点7-->节点8-->节点9;

节点1-->节点3-->节点6-->节点7-->节点9;

节点1-->节点3-->节点6-->节点7-->节点8-->节点9;

如果本公开不对头端节点和末端节点进行节点后效性检测,则本公开首先对(节点2和节点3)进行节点后效性检测,之后,对(节点4和节点6)进行节点后效性检测,最后,对(节点7和节点8)进行节点后效性检测。

节点2在集合a'10中的第一下游节点集合包括:节点4,节点2在子集a10中的第二下游节点集合包括:节点4;由于第一下游节点集合所包含的所有节点均属于第二下游节点集合,因此,节点2不为具有后效性的引导问题节点。

节点3在集合a'10中的第一下游节点集合包括:节点6,节点3在子集a10中的第二下游节点集合包括:节点6;由于第一下游节点集合所包含的所有节点均属于第二下游节点集合,因此,节点3不为具有后效性的引导问题节点。

节点4在集合a'10中的第一下游节点集合包括:节点5和节点6,节点4在子集a10中的第二下游节点集合包括:节点6和节点8;由于节点5不属于第二下游节点集合,因此,节点4为具有后效性的引导问题节点,本公开可以将节点4拆分为节点4和节点4’。节点4的下游节点为节点5,节点4’的下游节点为节点6和节点8。

由于节点6和节点8均是节点4的下游节点,且节点7是节点6的下游节点,因此,在确定出节点4为具有后效性的引导问题节点之后,本公开可以不再对节点6、节点7和节点8进行节点后效性检测。

然而,在将节点4拆分为两个节点之后,本公开可以继续对节点6、节点7和节点8进行节点后效性检测。

图6为本公开的生成合同的方法一个实施例的流程图。如图6所示,该实施例的生成合同的方法包括下述步骤:

s600、确定用户选择的合同模板。

本公开预先设置有多个合同模板,多个合同模板可以形成合同模板集合。每一个合同模板均对应有合同名称、一组合同条款以及相应的文字说明等内容。合同模板通常对应有相应的内容排布格式。合同模板对应的一组合同条款中的所有合同条款不一定完全出现在最终生成的合同中。

用户可以通过鼠标、键盘或者触摸等方式输入用于选择合同模板的信息,本公开可以根据接收到的用于选择合同模板的信息从合同模板集合中确定出用户选择的合同模板。

s601、确定所述合同模板所对应的引导问题节点图。

本公开中的引导问题节点图包括:多个引导问题节点,且每一个引导问题节点均设置有用于确定下游路径的函数。引导问题节点图包括:对具有后效性的引导问题节点进行节点拆分处理后,获得的拆分节点。也就是说,本公开中的引导问题节点图为:去除了至少部分具有后效性的引导问题节点且每一个引导问题节点均设置有用于确定下游路径的函数的有向无环图。获得引导问题节点图的一个例子可以如上述方法实施例中的描述,在此不再重复说明。

本公开中的引导问题节点图可以为独立完整的引导问题节点图,也可以为用于生成多种合同模板的引导问题节点全图中的一部分,即引导问题节点全图中的一个区域图。

在s600中确定出的合同模板所对应的引导问题节点图为引导问题节点全图中的一个区域的情况下,本公开可以对接收到的用于选择合同模板的信息进行相应的计算,并根据计算结果,在引导问题节点全图中确定一引导问题节点,并将该引导问题节点作为合同模板所对应的引导问题节点图的根节点,以该根节点为路径起始节点所形成的所有路径即为s600确定出的合同模板所对应的引导问题节点图。

s602、根据用户针对引导问题节点图中的当前引导问题节点所对应的题目的选项的选择信息以及当前引导问题节点的用于确定下游路径的函数,确定当前引导问题节点的下游节点,并将下游节点作为当前引导问题节点。

本公开的引导问题节点图中的每一个引导问题节点分别对应有相应题目,一个题目通常包含有题干和多个选项。除了末端节点对应的题目之外,由于一个题目会基于其每一个选项与其他题目形成问题跳转关系,因此,本公开可以基于用户针对一个题目中的一个选项的选取而由引导问题节点图中的一个引导问题节点跳转到一个下游引导问题节点。

在用户选择一个题目中的一个选项时,可以根据该选项确定合同中所包含的一条法律条款,也可以根据该选项确定合同所包含的一项条款中的空缺内容。

在一个例子中,本公开可以首先为用户提供引导问题节点图中的根节点所对应的题目,并基于用户针对根节点所对应的题目中的选项的选择信息,确定出由根节点跳转到的一级节点,之后,本公开可以为用户提供该一级节点所对应的题目,并基于用户针对该一级节点所对应的题目中的选项的选择信息,确定出由该一级节点跳转到的二级节点,……,以此类推,直到为用户提供最后一级节点(即末端节点)所对应的题目,在接收到用户针对该最后一级节点所对应的题目中的选项的选择信息时,基于用户针对上述所有题目的选项的选择,对合同模板进行填充,从而形成为用户生成的合同。

s603、根据用户针对引导问题节点图中的至少一当前引导问题节点所对应的题目的选项的选择信息,利用合同模板,为用户生成合同。

可选的,在根据用户针对题目的选项的选择信息,从引导问题节点图的开始节点跳转到引导问题节点图的末端节点后,本公开可以根据所有的当前引导问题节点所形成的引导问题节点链,确定合同所应包含的所有内容,并将这些内容添加在合同模板的相应位置处,从而为用户形成合同。

可选的,在为用户提供当前引导问题节点所对应的题目的过程中,可以动态的为用户提供当前合同的页面,即随着用户针对当前引导问题节点所对应的题目的选项的选择,合同会逐步的被完善,本公开通过为用户不断的提供当前合同的页面,可以使用户随时了解逐步被完善的当前合同所包含的内容,从而有利于提高用户的体验。

本公开生成合同的一个例子可以为:

步骤1、将合同模板所对应的引导问题节点图中的头端节点作为当前引导问题节点,并为用户提供包含该当前引导问题节点所对应的题目的页面。

步骤2、在接收到用户针对当前引导问题节点所对应的题目的选项的选择信息时,本公开可以形成当前引导问题节点所对应的合同内容,将该合同内容添加在合同模板中,形成当前合同,并为用户提供包含有当前合同的页面;本公开还应根据该选择信息以及当前引导问题节点的用于确定下游路径的函数,确定当前引导问题节点的下游节点,并将该下游节点作为当前引导问题节点。

重复上述步骤2,直到末端节点被作为当前引导问题节点,在接收到用户针对末端节点所对应的题目的选项的选择信息时,本公开可以形成当前引导问题节点所对应的合同内容,将该合同内容添加在合同模板中,为用户生成合同的过程结束。另外,如果用户在生成合同的过程中,选择了退出合同生成过程,则本公开为用户生成合同的过程结束。

图7为本公开的用于生成合同的引导问题节点图的生成装置一个实施例的结构示意图。该实施例的用于生成合同的引导问题节点图的生成装置可用于实现本公开上述各获取用于生成合同的引导问题节点图的方法实施例。

图7所示的实施例的装置包括:形成节点链集合模块700、节点后效性检测模块701、节点拆分处理模块702以及设置函数模块703。

形成节点链集合模块700用于获取用于生成合同的多个引导问题节点链,形成节点链集合。

在一个例子中,形成节点链集合模块700可以获取用于根据同一合同模板生成同一类型的合同的多个引导问题节点链,形成节点链集合。

在另一个例子中,形成节点链集合模块700可以获取用于根据不同合同模板生成不同类型的合同的多个引导问题节点链,形成节点链集合。

节点后效性检测模块701用于对形成节点链集合模块700获取到的节点链集合所包含的引导问题节点进行节点后效性检测,获得具有后效性的引导问题节点。

可选的,节点后效性检测模块701可以包括:第一子模块7011、第二子模块7012以及第三子模块7013。其中的第一子模块7011用于根据所述节点链集合中的各引导问题节点链所包含的所有引导问题节点以及所有引导问题节点间的跳转关系,生成一有向无环图。其中的第二子模块7012用于获取所述有向无环图所包含的节点路径,获得路径集合。例如,第二子模块7012通过对所述有向无环图进行路径遍历,获得所述有向无环图所包含的所有节点路径,形成路径集合。其中的第三子模块7013用于根据所述路径集合,对所述节点链集合所包含的引导问题节点进行节点后效性检测,获得具有后效性的引导问题节点。例如,针对任一末端节点,第三子模块7013可以根据所述路径集合,基于广度优先搜索的方式,对所述节点链集合中的基于该末端节点的各引导问题节点链中的引导问题节点,依次进行节点后效性检测,获得基于该末端节点的具有后效性的引导问题节点。

在一个例子中,第三子模块7013可以包括第一单元、第二单元、第三单元和第四单元。其中的第一单元用于获取所述路径集合与所述节点链集合中的基于该末端节点的各引导问题节点链的差异。其中的第二单元用于基于广度优先搜索的方式,将所述节点链集合中的基于该末端节点的各引导问题节点链中的一引导问题节点作为待检测节点。其中的第三单元用于获取所述待检测节点在所述差异中的第一下游节点集合,并获取所述待检测节点在所述基于该末端节点的各引导问题节点链中的第二下游节点集合。其中的第四单元用于在确定出所述第一下游节点集合不属于所述第二下游节点集合时,将所述待检测节点作为具有后效性的引导问题节点。

节点拆分处理模块702用于对节点后效性检测模块701获得的具有后效性的引导问题节点进行节点拆分处理。

在一个例子中,针对任一具有后效性的引导问题节点,节点拆分处理模块702形成该具有后效性的引导问题节点的拆分节点,并将所述节点链集合中的包含该具有后效性的引导问题节点的部分引导问题链中的该具有后效性的引导问题节点更新为所述拆分节点。

设置函数模块703用于为包含节点拆分处理后的引导问题节点在内的多个引导问题节点分别设置用于确定下游路径的函数,获得用于生成合同的引导问题节点图。

在一个例子中,针对任一引导问题节点,设置函数模块703用于将该引导问题节点所对应的题目的各选项作为自变量,并将该引导问题节点的所有下游节点作为因变量,为该引导问题节点设置用于确定下游路径的函数。

图8为本公开的生成合同的装置一个实施例的结构示意图。该实施例的生成合同的装置可用于实现本公开上述各生成合同的方法实施例。

图8所示的实施例的装置包括:确定合同模板模块800、确定引导问题节点图模块801、确定当前引导问题节点模块802以及生成合同模块803。

确定合同模板模块800用于确定用户选择的合同模板。

确定引导问题节点图模块801用于确定上述合同模板所对应的引导问题节点图。其中,所述引导问题节点图包括:多个引导问题节点,所述多个引导问题节点均设置有用于确定下游路径的函数,且所述多个引导问题节点包括:对具有后效性的引导问题节点进行节点拆分处理后,获得的拆分节点。

确定当前引导问题节点模块802用于根据用户针对所述引导问题节点图中的当前引导问题节点所对应的题目的选项的选择信息以及所述当前引导问题节点的用于确定下游路径的函数,确定所述当前引导问题节点的下游节点,并将所述下游节点作为所述当前引导问题节点。

生成合同模块803用于根据用户针对所述引导问题节点图中的至少一当前引导问题节点所对应的题目的选项的选择信息,利用所述合同模板,为所述用户生成合同。

可选的,响应于所述用户针对当前引导问题节点所对应的题目的选项的选择信息,生成合同模块803可以根据所述用户针对该当前引导问题节点所对应的题目的选项的选择信息,形成该当前引导问题节点所对应的合同内容,将所述合同内容添加在所述合同模板中,形成当前合同,并输出包括有所述当前合同的页面。

另外,本公开实施例还提供了一种电子设备,包括:存储器,用于存储计算机程序;处理器,用于执行所述存储器中存储的计算机程序,且所述计算机程序被执行时,实现本公开上述任一实施例所述的获取用于生成合同的引导问题节点图的方法或者生成合同的方法。

另外,本公开实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时,实现本公开上述任一实施例所述的获取用于生成合同的引导问题节点图的方法或者生成合同的方法。

图9为本公开电子设备一个应用实施例的结构示意图。下面,参考图9来描述根据本公开实施例的电子设备。该电子设备可以是第一设备和第二设备中的任一个或两者、或与它们独立的单机设备,该单机设备可以与第一设备和第二设备进行通信,以从它们接收所采集到的输入信号。

如图9所示,电子设备包括一个或多个处理器和存储器。

处理器可以是中央处理单元(cpu)或具有数据处理能力和/或指令执行能力的其他形式的处理单元,且可以控制电子设备中的其他组件以执行期望的功能。

存储器可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(ram)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(rom)、硬盘、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器可以运行所述程序指令,以实现上文所述的本公开的各个实施例的获取用于生成合同的引导问题节点图的方法以及/或者其他期望的功能。

在一个示例中,电子设备还可以包括:输入装置和输出装置,这些组件通过总线系统和/或其他形式的连接机构(未示出)互连。此外,该输入设备还可以包括例如键盘、鼠标等等。该输出装置可以向外部输出各种信息,包括确定出的距离信息、方向信息等。该输出设备可以包括例如显示器、扬声器、打印机、以及通信网络及其所连接的远程输出设备等等。当然,为了简化,图9中仅示出了该电子设备中与本公开有关的组件中的一些,省略了诸如总线、输入/输出接口等等的组件。除此之外,根据应用情况,电子设备还可以包括任何其他适当的组件。

除了上述方法和设备以外,本公开的实施例还可以是计算机程序产品,其包括计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述部分中描述的根据本公开各种实施例的获取用于生成合同的引导问题节点图的方法中的步骤。所述计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如java、c++等,还包括常规的过程式程序设计语言,诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。

此外,本公开的实施例还可以是计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述部分中描述的根据本公开各种实施例的获取用于生成合同的引导问题节点图的方法中的步骤。

所述计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。

以上结合具体实施例描述了本公开的基本原理,但是,需要指出的是,在本公开中提及的优点、优势、效果等仅是示例而非限制,不能认为这些优点、优势、效果等是本公开的各个实施例必须具备的。另外,上述公开的具体细节仅是为了示例的作用和便于理解的作用,而非限制,上述细节并不限制本公开为必须采用上述具体的细节来实现。

本说明书中各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似的部分相互参见即可。对于系统实施例而言,由于其与方法实施例基本对应,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。本公开中涉及的器件、装置、设备、系统的方框图仅作为例示性的例子并且不意图要求或暗示必须按照方框图示出的方式进行连接、布置、配置。如本领域技术人员将认识到的,可以按任意方式连接、布置、配置这些器件、装置、设备、系统。诸如“包括”、“包含”、“具有”等等的词语是开放性词汇,指“包括但不限于”,且可与其互换使用。这里所使用的词汇“或”和“和”指词汇“和/或”,且可与其互换使用,除非上下文明确指示不是如此。这里所使用的词汇“诸如”指词组“诸如但不限于”,且可与其互换使用。

可能以许多方式来实现本公开的方法和装置。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本公开的方法和装置。用于所述方法的步骤的上述顺序仅是为了进行说明,本公开的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本公开实施为记录在记录介质中的程序,这些程序包括用于实现根据本公开的方法的机器可读指令。因而,本公开还覆盖存储用于执行根据本公开的方法的程序的记录介质。

还需要指出的是,在本公开的装置、设备和方法中,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本公开的等效方案。

提供所公开的方面的以上描述以使本领域的任何技术人员能够做出或者使用本公开。对这些方面的各种修改对于本领域技术人员而言是非常显而易见的,并且在此定义的一般原理可以应用于其他方面而不脱离本公开的范围。因此,本公开不意图被限制到在此示出的方面,而是按照与在此公开的原理和新颖的特征一致的最宽范围。

为了例示和描述的目的已经给出了以上描述。此外,此描述不意图将本公开的实施例限制到在此公开的形式。尽管以上已经讨论了多个示例方面和实施例,但是本领域技术人员将认识到其某些变型、修改、改变、添加和子组合。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1