CN110516206A - 文件比对方法、装置、计算机设备和存储介质 - Google Patents
文件比对方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN110516206A CN110516206A CN201910665968.9A CN201910665968A CN110516206A CN 110516206 A CN110516206 A CN 110516206A CN 201910665968 A CN201910665968 A CN 201910665968A CN 110516206 A CN110516206 A CN 110516206A
- Authority
- CN
- China
- Prior art keywords
- node
- specified
- tree structure
- multiway tree
- information file
- 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.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请揭示了一种文件比对方法、装置、计算机设备和存储介质,其中方法包括:获取第一信息文件;提取出第一信息文件内的各级指定数据,并将各级指定数据分别对应输入到预设的第一原始多叉树结构的多层结点内,形成与第一信息文件对应的第一多叉树结构;按照预设规则将第一多叉树结构与预存储的指定信息文件对应的指定多叉树结构进行比对,得到第一信息文件与指定信息文件之间的差异数据,本申请通过将第一信息文件转换成对应的第一多叉树结构,再将第一多叉树结构与指定信息文件对应的指定多叉树结构进行比对,从而智能并快速的得到两者之间的差异数据,有效的提高了不同的信息文件之间比对的速率与准确率。
Description
技术领域
本申请涉及数据分析领域,具体涉及一种文件比对方法、装置、计算机设备和存储介质。
背景技术
在签订信息文件的过程中,由于信息文件需要在不同利益的交易双方之间进行反复沟通、修改,因此在生成最终的信息文件之前,会存在对信息文件经过不同修改而产生的多个不同版本的修订信息文件。在信息文件管理过程中,用户需要经常查看不同版本的修订信息文件,并且对不同版本的信息文件进行比较,从而通过对比来得出两个不同版本的信息文件之间的差异数据,进而根据该差异数据来发现信息文件谈判中出现的变化,以及了解信息文件谈判的实际过程。但是,现有的信息文件比对方式是通过人工对两个不同版本的信息文件进行比较来得出两者之间的差异数据,耗费时间长且容易出错。
发明内容
本申请的主要目的为提供一种文件比对方法、装置、计算机设备和存储介质,旨在解决现有的信息文件比对方式是通过人工对两个不同版本的信息文件进行比较来得出两者之间的差异数据,耗费时间长且容易出错的技术问题。
本申请提出一种文件比对方法,所述方法包括步骤:
获取第一信息文件;
提取出所述第一信息文件内的各级指定数据,并将各级所述指定数据分别对应输入到预设的第一原始多叉树结构的多层结点内,形成与所述第一信息文件对应的第一多叉树结构;
按照预设规则将所述第一多叉树结构与预存储的指定信息文件对应的指定多叉树结构进行比对,得到所述第一信息文件与所述指定信息文件之间的差异数据,其中所述指定信息文件与所述第一信息文件之间具有相同的文件结构,且所述指定多叉树结构为将所述指定信息文件内的各级数据分别对应输入到预设的第二原始多叉树结构的多层结点内形成的。
可选地,所述提取所述第一信息文件内的各级指定数据,并将各级所述指定数据分别对应输入到预设的原始多叉树结构的多层结点内,形成与所述第一信息文件对应的第一多叉树结构的步骤之前,包括:
获取所述指定数据的级数对应的第一数量,以及每一级所述指定数据分别对应的第二数量;
对各所述第二数量进行求和计算,得到第三数量;
创建包含与所述第一数量相同的层数,以及与所述第三数量相同的结点数量的所述第一原始多叉树结构,其中所述第一原始多叉树结构内每一层的结点的数量分别与对应的每一级所述指定数据的数量相同。
可选地,所述按照预设规则将所述第一多叉树结构与预存储的指定信息文件对应的指定多叉树结构进行比对,得到所述第一信息文件与所述指定信息文件之间的差异数据的步骤,包括:
通过哈希算法分别计算出所述第一多叉树结构内各结点的第一哈希值,以及计算出所述指定多叉树结构内各结点的第二哈希值;
按照预设顺序,将所述第一多叉树结构内各结点的第一哈希值,分别与所述指定多叉树结构内对应的各结点的第二哈希值进行一一比对,查找出所述第一多叉树结构内的第一指定结点,其中所述第一指定结点的数量包括一个或多个,且所述第一指定结点的第一哈希值与所述指定多叉树结构内位置相同的第一原始结点的第二哈希值不相同;
获取与所述第一指定结点对应的所述第一原始结点内包含的第一数据;
根据所述第一数据,从所述第一指定结点内提取出与所述第一数据存在差异的所述差异数据。
可选地,所述按照预设规则将所述第一多叉树结构与预存储的指定信息文件对应的指定多叉树结构进行比对,得到所述第一信息文件与所述指定信息文件之间的差异数据的步骤,包括:
通过哈希算法计算出所述第一多叉树结构内各结点的第三哈希值,以及计算出所述指定多叉树结构内各结点的第四哈希值,其中,所述第一多叉树结构内的父结点的第三哈希值根据对应的子结点的第三哈希值计算得到,且所述第一多叉树结构的最后一层的子结点的第三哈希值是通过对本身数据进行哈希计算得到的;
判断所述第一多叉树结构内的第一层的根结点的第三哈希值与所述指定多叉树结构内的第一层的根结点的第四哈希值是否相同;
若否,则将第一多叉树结构内的第二层的各结点的第三哈希值,分别与所述指定多叉树结构内对应的第二层的各结点的第四哈希值进行一一比对,查找出所述第一多叉树结构内的第二层的第二指定结点,其中所述第二指定结点的数量为一个或多个,且所述第二指定结点的第三哈希值与所述指定多叉树结构内位置相同的第二原始结点的第四哈希值不相同;
将所述第二指定结点对应的所述第一多叉树结构内的第三层的各第一特定结点的第三哈希值,分别与所述指定多叉树结构内对应的第三层的各结点的第四哈希值进行一一比对,查找出所述第一多叉树结构内的第三层的第三指定结点,其中所述第三指定结点的数量为一个或多个,且所述第三指定结点的第三哈希值与所述指定多叉树结构内位置相同的第三原始结点的第四哈希值不相同;
依次类推,将所述第一多叉树结构内最后一层的各第二特定结点的第三哈希值,分别与所述指定多叉树结构内对应的各结点的第四哈希值进行一一比对,查找出所述第一多叉树结构内的最后一层的第四指定结点,其中所述第二特定结点根据与所述最后一层相邻的上一层内对应的第三特定结点得到,所述第三特定结点的第三哈希值与所述指定多叉树结构内位置相同的第四原始结点的第四哈希值不相同,且所述第四指定结点的数量为一个或多个,所述第四指定结点的第三哈希值与所述指定多叉树结构内位置相同的第五原始结点的第四哈希值不相同;
获取与所述第四指定结点对应的所述第五原始结点内包含的第二数据;
根据所述第二数据,从所述第四指定结点内提取出与所述第二数据存在差异的所述差异数据。
可选地,所述按照预设规则将所述第一多叉树结构与预存储的指定信息文件对应的指定多叉树结构进行比对,得到所述第一信息文件与所述指定信息文件之间的差异数据的步骤之后,包括:
按照预设方式对所述差异数据进行处理,得到处理后的差异数据;
展示所述处理后的差异数据。
可选地,所述按照预设规则将所述第一多叉树结构与预存储的指定信息文件对应的指定多叉树结构进行比对,得到所述第一信息文件与所述指定信息文件之间的差异数据的步骤之后,包括:
判断是否接收到用户发送的操作指令,其中所述操作指令至少包括修改操作指令、***操作指令以及删除操作指令;
若是,根据所述操作指令对所述第一多叉树结构进行相应的处理。
可选地,所述按照预设规则将所述第一多叉树结构与预存储的指定信息文件对应的指定多叉树结构进行比对,得到所述第一信息文件与所述指定信息文件之间的差异数据的步骤之后,包括:
获取所述指定信息文件与其它的修订信息文件经过分别比对后得到的各指定差异数据;
获取各所述指定差异数据对应的各修订信息文件的修订时间;
按照所述修订时间从前到后的顺序,展示各所述指定差异数据。
本申请还提供一种文件比对装置,包括:
第一获取模块,用于获取第一信息文件;
形成模块,用于提取所述第一信息文件内的各级指定数据,并将各级所述指定数据分别对应输入到预设的第一原始多叉树结构的多层结点内,形成与所述第一信息文件对应的第一多叉树结构;
比对模块,用于按照预设规则将所述第一多叉树结构与预存储的指定信息文件对应的指定多叉树结构进行比对,得到所述第一信息文件与所述指定信息文件之间的差异数据,其中所述指定信息文件与所述第一信息文件之间具有相同的文件结构,且所述指定多叉树结构为将所述指定信息文件内的各级数据分别对应输入到预设的第二原始多叉树结构的多层结点内形成的。
本申请还提供一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序时实现上述方法的步骤。
本申请还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述方法的步骤。
本申请中提供的文件比对方法、装置、计算机设备和存储介质,具有以下
有益效果:
本申请中提供的文件比对方法、装置、计算机设备和存储介质,通过将第一信息文件转换成对应的第一多叉树结构,再将第一多叉树结构与指定信息文件对应的指定多叉树结构进行比对,从而根据两者的比较来快速的得到第一信息文件与所述指定信息文件的差异数据,避免出现通过人工对第一信息文件与所述指定信息文件进行比对而需要耗费很多时间且出错率高的情形,有效的提高了不同的信息文件之间比对的速率与准确率,简化了信息文件管理的流程。
附图说明
图1是本申请一实施例的文件比对方法的流程示意图;
图2是本申请一实施例的文件比对装置的结构示意图;
图3是本申请一实施例的计算机设备的结构示意图。
本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用于解释本申请,并不用于限定本申请。
参照图1,本申请一实施例的文件比对方法,包括:
S1:获取第一信息文件;
S2:提取出所述第一信息文件内的各级指定数据,并将各级所述指定数据分别对应输入到预设的第一原始多叉树结构的多层结点内,形成与所述第一信息文件对应的第一多叉树结构;
S3:按照预设规则将所述第一多叉树结构与预存储的指定信息文件对应的指定多叉树结构进行比对,得到所述第一信息文件与所述指定信息文件之间的差异数据,其中所述指定信息文件与所述第一信息文件之间具有相同的文件结构,且所述指定多叉树结构为将所述指定信息文件内的各级数据分别对应输入到预设的第二原始多叉树结构的多层结点内形成的。
如上述步骤S1和S2所述,本申请实施例的执行主体可以为配置在智能设备中用于进行文件比对的文件比对装置,并以上述第一信息文件为第一合同,以上述指定信息文件为指定合同作为例子来对本实施例以及其他的实施例进行说明。具体地,上述第一合同为待比对的电子合同,该第一合同可以为任一类型的合同,也可以为任一语言的合同,例如第一合同可以为中文版的借款合同、英文版的买卖合同等。另外,上述获取第一合同的方式可为人工输入、扫描合同文件、自动读取电子版合同等方式,本发明实施例对此不做具体限定。上述指定合同为与上述第一合同进行比对的合同,以指定合同作为标准,上述第一合同可为对指定合同的某些内容进行修改后得到的合同。在获取到输入的第一合同后,首先会将该第一合同转换成对应的多叉树的结构,即提取上述第一合同内的各级指定数据,并将各级上述指定数据分别对应输入到预设的第一原始多叉树结构的多层结点内,从而形成与上述第一合同对应的第一多叉树结构。举例地,合同的内容可包括合同名称、条款、次级条款以及具体的条款内容,且对于多叉树结构,多叉树中的根结点为第一层,根结点的孩子,即根结点的子结点为第二层,第二层子结点的孩子为第三层,依此类推。当第一合同包括四级的指定数据时,上述形成第一多叉树结构的步骤,具体可包括:首先获取上述第一合同的合同名称、上述第一合同所有条款的条款名称、各上述条款对应的次级条款的名称以及各上述次级条款对应的条款内容;然后将上述第一合同的合同名称输入到上述第一原始多叉树结构内的第一层的根结点,以及将各上述条款的条款名称分别输入到上述第一原始多叉树结构内的第二层的各结点,以及将各上述条款的次级条款的名称分别输入到与各上述条款名称对应的上述第一原始多叉树结构内的第三层的各结点,以及将各上述次级条款对应的条款内容分别输入到与各上述次级条款名称对应的上述第一原始多叉树结构内的第四层的各结点,以完成上述第一多叉树结构的构建。其中,上述用于与第一合同进行比对指定合同对应的指定多叉树结构的构建过程与第一多叉树结构的构建过程相同。
如上述步骤S3所述,在形成了上述第一多叉树结构后,以上述指定信息文件作为标准,按照预设轨迹将第一多叉树结构与预存储的指定合同对应的指定多叉树结构进行比对,进而得到第一合同与指定合同之间的差异数据,其中,上述指定合同与第一合同之间具有相同的文件结构,且该指定多叉树结构为将指定信息文件内的各级数据分别对应输入到预设的第二原始多叉树结构的多层结点内形成的,上述差异数据为第一合同相对于指定合同所作出的修改内容。本申请通过将第一合同转换成对应的第一多叉树结构,以及预先将指定合同转化为指定多叉树结构,再将第一多叉树结构与指定合同对应的指定多叉树结构进行比对,从而根据两者的比较来快速的得到第一合同与指定合同之间的差异数据,有效的实现了对第一合同与指定合同之间的智能比对,为合同比对提供了一种新颖便捷的比对形式,避免出现通过人工对第一合同与所述指定合同进行比对而需要耗费很多时间且出错率高的情形,有效的提高了合同比对的速率与准确率,简化了合同管理的流程。
进一步地,本申请一实施例中,上述步骤S2之前,包括:
S200:获取所述指定数据的级数对应的第一数量,以及每一级所述指定数据分别对应的第二数量;
S201:对各所述第二数量进行求和计算,得到第三数量;
S202:创建包含与所述第一数量相同的层数,以及与所述第三数量相同的结点数量的所述第一原始多叉树结构,其中所述第一原始多叉树结构内每一层的结点的数量分别与对应的每一级所述指定数据的数量相同。
如上述步骤S200至S202所述,在将上述第一信息文件内的各级指定数据分别对应输入到预设的第一原始多叉树结构的多层结点内,以形成与第一信息文件对应的第一多叉树结构的步骤之前,还包括创建上述第一原始多叉树结构的过程。具体地,首先获取与上述指定数据的级数对应的第一数量,以及每一级所述指定数据分别对应的第二数量,然后对各上述第二数量进行求和计算,得到第三数量,最后创建包含与上述第一数量相同的层数,以及与上述第三数量相同的结点数量的第一原始多叉树结构,其中第一原始多叉树结构内每一层的结点的数量分别与对应的每一级所述指定数据的数量相同。举例地,以第一信息文件为第一合同进行阐述,第一合同包括4级指定数据,即第一数量为4;第一合同的第一级指定数据为合同名称,合同名称对应的第二数量为1;第二级指定数据为第一合同所有条款的条款名称,条款名称对应的第二数量为2;第三级指定数据为各上述条款对应的次级条款的名称,次级条款的名称对应的第二数量为4;第四级指定数据为各上述次级条款对应的条款内容,各条款内容对应的第二数量为10,则第三数量为1+2+4+10=17,创建的第一原始多叉树结构为四层且包含17个结点的结构,且第一层结点为1个,第二层结点为2个,第三层结点为4个,第一层结点为10个。本实施例根据第一信息文件内的各级指定数据构建对应的第一原始多叉树结构,进而将该指定数据输入到第一原始多叉树结构内,以完成第一信息文件与第一多叉树结构的转换,使得后续可以将第一多叉树结构与上述指定多叉树结构进行比对,进而快速的得到第一合同与指定合同之间的差异数据,有效的实现了对第一合同与指定合同之间的智能比对,为合同比对提供了一种新颖便捷的比对形式。
进一步地,本申请一实施例中,上述步骤S3,包括:
S300:通过哈希算法分别计算出所述第一多叉树结构内各结点的第一哈希值,以及计算出所述指定多叉树结构内各结点的第二哈希值;
S301:按照预设顺序,将所述第一多叉树结构内各结点的第一哈希值,分别与所述指定多叉树结构内对应的各结点的第二哈希值进行一一比对,查找出所述第一多叉树结构内的第一指定结点,其中所述第一指定结点的数量包括一个或多个,且所述第一指定结点的第一哈希值与所述指定多叉树结构内位置相同的第一原始结点的第二哈希值不相同;
S302:获取与所述第一指定结点对应的所述第一原始结点内包含的第一数据;
S303:根据所述第一数据,从所述第一指定结点内提取出与所述第一数据存在差异的所述差异数据。
如上述步骤S300和S301所述,上述第一合同为对指定合同进行修订后生成的合同,在根据第一合同以及指定合同分别构建出对应的第一多叉树结构和指定多叉树结构后,相比于指定合同,第一合同中对应于指定合同所作出的修改可以体现为第一多叉树结构中,对应于指定多叉树结构中任意结点的内容而作出的修改。当第一多叉树结构内每一层的结点数量分别与指定多叉树结构内对应的每一层的结点数量相同时,在本实施例,上述按照预设规则获取差异数据的过程,具体可包括:首先通过哈希算法分别计算出上述第一多叉树结构内各结点的第一哈希值,以及计算出上述指定多叉树结构内各结点的第二哈希值,其中,上述哈希算法,即Hash算法,简称散列算法,是将一个大文件映射成一个小串字符,简单点说,哈希算法就是将任意长度的消息压缩成某一固定长度的消息摘要的函数,与指纹一样,就是以较短的信息来保证文件的唯一性的标志,这种标志与文件的每一个字节都相关,而且难以找到逆向规律,且通过哈希算法来计算哈希值是一种常见的现有技术,在此不再赘述。然后按照预设顺序,将上述第一多叉树结构内各结点的第一哈希值分别与上述指定多叉树结构内对应的各结点的第二哈希值进行一一比对,来查找出所述第一多叉树结构内的第一指定结点,其中上述第一指定结点的数量包括一个或多个,且该第一指定结点的第一哈希值与上述指定多叉树结构内位置相同的第一原始结点的第二哈希值不相同。另外,上述预设顺序可包括多种顺序,例如前序顺序、中序顺序、后序顺序等。具体地,前序顺序是指:先访问根结点,再访问左结点,然后访问右结点;中序顺序是指:先访问左结点,再访问根结点,然后访问右结点;后序顺序是指:先访问左结点,再访问右结点,然后访问根结点。进一步地,在一个特殊的实施例中,当第一多叉树结构内任意一层的结点数量与指定多叉树结构内位置相同的一层的结点数量不相同时,上述按照预设顺序,将所述第一多叉树结构内各结点的第一哈希值,分别与所述指定多叉树结构内对应的各结点的第二哈希值进行一一比对,查找出所述第一多叉树结构内的第一指定结点的步骤之前,还包括:将第一多叉树结构内每一层的结点数量分别与指定多叉树结构内对应的每一层的结点数量进行比较,判断第一多叉树结构内是否存在第一指定层,其中所述第一指定层的结点数量与指定多叉树结构内位置相同的层的结点数量不相同;若存在所述第一指定层,从所述第一多叉树结构内提取出第一特殊结点,其中所述指定多叉树结构内不存在与所述第一特殊结点位置相同的结点;提取出所述第一特殊结点内的第三数据,将所述第三数据确定为所述差异数据,之后再进入查找出所述第一多叉树结构内的第一指定结点的步骤;而如果不存在所述第一指定层,则直接进入查找出所述第一多叉树结构内的第一指定结点的步骤。
如上述步骤S302和S303所述,在查找出上述第一指定结点后,通过获取与上述第一指定结点对应的上述指定多叉树结构内的第一原始结点的第一数据,再根据上述第一数据,从上述第一指定结点提取出与上述第一数据存在差异的上述差异数据,具体地,通过将第一指定结点内的第一数据与指定多叉树结构内与上述指定结点对应的特定结点的数据进行比对,例如进行文本比对来找出两者之间的区别内容,进而来得到第一指定结点与上述特定结点之间存在差异的数据,即上述差异数据。本实施例通过将第一多叉树结构内各结点的第一哈希值分别与上述指定多叉树结构内对应的各结点的第二哈希值进行一一比对,可以快速的筛选出第一哈希值与第二哈希值的数值不相同的第一指定结点,从而有效快捷的从该第一指定结点中提取出第一合同中与上述指定合同相应的差异数据。
进一步地,本申请一实施例中,上述步骤S3,包括:
S310:通过哈希算法计算出所述第一多叉树结构内各结点的第三哈希值,以及计算出所述指定多叉树结构内各结点的第四哈希值,其中,所述第一多叉树结构内的父结点的第三哈希值根据对应的子结点的第三哈希值计算得到,且所述第一多叉树结构的最后一层的子结点的第三哈希值是通过对本身数据进行哈希计算得到的;
S311:判断所述第一多叉树结构内的第一层的根结点的第三哈希值与所述指定多叉树结构内的第一层的根结点的第四哈希值是否相同;
S312:若否,则将第一多叉树结构内的第二层的各结点的第三哈希值,分别与所述指定多叉树结构内对应的第二层的各结点的第四哈希值进行一一比对,查找出所述第一多叉树结构内的第二层的第二指定结点,其中所述第二指定结点的数量为一个或多个,且所述第二指定结点的第三哈希值与所述指定多叉树结构内位置相同的第二原始结点的第四哈希值不相同;
S313:将所述第二指定结点对应的所述第一多叉树结构内的第三层的各第一特定结点的第三哈希值,分别与所述指定多叉树结构内对应的第三层的各结点的第四哈希值进行一一比对,查找出所述第一多叉树结构内的第三层的第三指定结点,其中所述第三指定结点的数量为一个或多个,且所述第三指定结点的第三哈希值与所述指定多叉树结构内位置相同的第三原始结点的第四哈希值不相同;
S314:依次类推,将所述第一多叉树结构内最后一层的各第二特定结点的第三哈希值,分别与所述指定多叉树结构内对应的各结点的第四哈希值进行一一比对,查找出所述第一多叉树结构内的最后一层的第四指定结点,其中所述第二特定结点根据与所述最后一层相邻的上一层内对应的第三特定结点得到,所述第三特定结点的第三哈希值与所述指定多叉树结构内位置相同的第四原始结点的第四哈希值不相同,且所述第四指定结点的数量为一个或多个,所述第四指定结点的第三哈希值与所述指定多叉树结构内位置相同的第五原始结点的第四哈希值不相同;
S315:获取与所述第四指定结点对应的所述第五原始结点内包含的第二数据;
S316:根据所述第二数据,从所述第四指定结点内提取出与所述第二数据存在差异的所述差异数据。
如上述步骤S310至S312所述,当出现上述第一多叉树结构内的父结点的第三哈希值是根据对应的子结点的第三哈希值计算得到的情形时,除了上述通过将上述第一多叉树结构内所有结点的第一哈希值分别与上述指定多叉树结构内位置对应的所有结点的第二哈希值进行一一比对来获得第一信息文件与指定信息文件的差异数据的方式,还可包括其它的得到上述差异数据的方式,具体可包括:首先通过哈希算法计算出上述第一多叉树结构内各结点的第三哈希值,以及计算出上述指定多叉树结构内各结点的第四哈希值;其中,由于上述第一多叉树结构内的父结点的第三哈希值根据对应的子结点计算得到,且第一多叉树结构内的最后一层的子结点的第三哈希值是通过对本身数据进行哈希计算得到的,从而使得子结点的第三哈希值改变会导致对应的父结点的第三哈希值发生改变。举例地,第一多叉树结构内的上一层的父结点的哈希值为第一多叉树结构内相邻的下一层对应的所有子结点的哈希值之和,那么当任意的一个或多个子结点的数据发生改变时,会导致其哈希值以及对应的父结点的哈希值发生改变。之后判断上述第一多叉树结构内的第一层的根结点的第三哈希值与上述指定多叉树结构内的第一层的根结点的第四哈希值是否相同,若不相同,则表明第一信息文件与指定信息文件存在差异数据,则再进一步将第一多叉树结构内的第二层的各结点的第三哈希值,分别与上述指定多叉树结构内对应的第二层的各结点的第四哈希值进行一一比对,查找出第一多叉树结构内的第二层的第二指定结点,其中上述第二指定结点的数量为一个或多个,且该第二指定结点的第三哈希值与上述指定多叉树结构内位置相同的第二原始结点的第四哈希值不相同。在一个特殊的实施例中,当第一多叉树结构内任意一层的结点数量与指定多叉树结构内位置相同的一层的结点数量不相同时,上述判断所述第一多叉树结构内的第一层的根结点的第三哈希值与所述指定多叉树结构内的第一层的根结点的第四哈希值是否相同的步骤之前,还包括:将第一多叉树结构内每一层的结点数量分别与指定多叉树结构内对应的每一层的结点数量进行比较,判断第一多叉树结构内是否存在第二指定层,其中所述第二指定层的结点数量与指定多叉树结构内位置相同的层的结点数量不相同;若存在所述第二指定层,从所述第一多叉树结构内提取出第二特殊结点,其中所述指定多叉树结构内不存在与所述第二特殊结点位置相同的结点;提取出所述第二特殊结点内的第四数据,并将所述第四数据确定为所述差异数据,之后再进入判断所述第一多叉树结构内的第一层的根结点的第三哈希值与所述指定多叉树结构内的第一层的根结点的第四哈希值是否相同的步骤;而如果不存在所述第二指定层,则直接进入判断所述第一多叉树结构内的第一层的根结点的第三哈希值与所述指定多叉树结构内的第一层的根结点的第四哈希值是否相同的步骤。
如上述步骤S313至S316所述,在获得上述第二指定结点后,再将上述第一指定结点对应的上述第一多叉树结构内的第三层的各结点的第三哈希值,分别与上述指定多叉树结构内对应的第三层的各结点的第四哈希值进行一一比对,找出上述第一多叉树结构内的第三层的第三指定结点,其中上述第三指定结点的数量为一个或多个,且上述第三指定结点的第三哈希值与上述指定多叉树结构内位置相同的第三原始结点的第四哈希值不相同。进一步地,依次类推,将第一多叉树结构内最后一层的各第二特定结点的第三哈希值,分别与指定多叉树结构内对应的各结点的第四哈希值进行一一比对,查找出上述第一多叉树结构内的最后一层的第四指定结点,其中上述第二特定结点根据与上述最后一层相邻的上一层内对应的第三特定结点得到,上述第三特定结点的第三哈希值与指定多叉树结构内位置相同的第四原始结点的第四哈希值不相同,且第四指定结点的数量为一个或多个,第四指定结点的第三哈希值与上述指定多叉树结构内位置相同的第五原始结点的第四哈希值不相同。最后获取与第四指定结点对应的第五原始结点内包含的第二数据,并根据上述第二数据,从第四指定结点提取出与第二数据存在差异的差异数据,即通过将第二原始结点的第二数据与第四指定结点的数据进行比对,例如进行文本比对来找出两者之间的区别内容,进而从该第四指定结点内提取出与上述第五原始结点的第二数据之间存在差异的差异数据。通过本实施例,不需要将第一多叉树结构内所有的结点与指定多叉树结构内对应的所有的结点进行一一比对,简化了结点比对的处理流程,有效地提高了获得第一信息文件与指定信息文件之间的差异数据的速率。
进一步地,本申请一实施例中,上述步骤S3之后,包括:
S320:按照预设方式对所述差异数据进行处理,得到处理后的差异数据;
S321:展示所述处理后的差异数据。
如上述步骤S320至S321所述,在通过将第一多叉树结构与指定多叉树结构进行比对,并得到上述第一信息文件与上述指定信息文件之间的差异数据后,可以进一步按照预设方式对上述差异数据进行处理,其中上述按照预设方式对上述差异数据进行处理可包括多种处理方式,例如可为对差异数据进行高亮处理,或者可为差异数据添加颜色标记等等,本实施例对此不做具体的限定。之后,在完成对上述差异数据的处理,并得到处理后的差异数据后,可向用户展示上述处理后的差异数据。本实施例通过对第一信息文件与上述指定信息文件之间的差异数据进行指定处理,可以有效的帮助用户快速定位到该差异数据,并可清楚的了解到第一信息文件相对于上述指定信息文件的修改内容。
进一步地,本申请一实施例中,上述步骤S3之后,包括:
S330:判断是否接收到用户发送的操作指令,其中所述操作指令至少包括修改操作指令、***操作指令以及删除操作指令;
S331:若是,根据所述操作指令对所述第一多叉树结构进行相应的处理。
如上述步骤S330和S331所述,在得到了第一信息文件与上述指定信息文件之间的差异数据,并在用户查阅到该差异数据后,可能会出现用户发现第一信息文件相对于上述指定信息文件所作出的修改存在错误的情况。本实施例可进一步判断是否接收到用户发送的操作指令,其中上述操作指令可包括多种操作指令,例如包括修改操作指令、***操作指令以及删除操作指令等等,本实施例对此不做具体的限定。如果接收到了用户发送的操作指令,则会根据所述操作指令对上述第一多叉树结构进行相应的处理。举例地,如果用户发送的操作指令为修改操作指令,则用户可向信息文件比对装置输入对应的修改内容,从而文件比对装置会根据用户输入的修改内容来对第一多叉树结构内的差异数据所对应的结点内容进行相应的修改。本实施例在向用户展示上述第一多叉树结构内的差异数据后,当获取到用户发送的操作指令,便会智能的根据该操作指令对第一多叉树结构进行相应的处理,以实现根据用户的操作意图来对第一多叉树结构的内容进行对应的处理,从而有效的完成对于第一多叉树结构的准确性维护。
进一步地,本申请一实施例中,上述步骤S3之后,包括:
S340:获取所述指定信息文件与其它的修订信息文件经过分别比对后得到的各指定差异数据;
S341:获取各所述指定差异数据对应的各修订信息文件的修订时间;
S342:按照所述修订时间从前到后的顺序,展示各所述指定差异数据。
如上述步骤S340至S342所述,上述指定信息文件具体可以为指定合同,由于在合同的生成过程中,合同需要在不同利益的交易双方之间进行反复沟通、修改,因此在生成最终的合同之前,可能存在对合同经过不同修改而产生的多个修订合同,对应的,上述指定信息文件与会存在对应的多个修订信息文件。在本实施例,可通过向文件比对装置输入上述其它的修订信息文件,来实现将指定信息文件分别与上述其它的修订信息文件进行比对,并可获取得到指定信息文件与多个其它的修订信息文件经过分别比对后得到的各指定差异数据,然后获取各上述指定差异数据对应的各修订信息文件的修订时间,其中,上述其它的修订信息文件为经过对该指定信息文件进行修改后生成的,且修订信息文件内会携带有对应的时间戳记录,即上述的修订时间,以通过该时间戳记录来记录下修订合同经过修改后完成的最终生成时间。最后按照上述修订时间从前到后的顺序,来展示各上述指定差异数据,以使得用户既可以清楚的了解该指定信息文件根据时间顺序作出修改的修改过程,也可以清楚的看到指定信息文件经历的每次修改所对应的具体修改内容。
参照图2,本申请一实施例中还提供了一种文件比对装置,包括:
第一获取模块1,用于获取第一信息文件;
形成模块2,用于提取出所述第一信息文件内的各级指定数据,并将各级所述指定数据分别对应输入到预设的第一原始多叉树结构的多层结点内,形成与所述第一信息文件对应的第一多叉树结构;
比对模块3,用于按照预设规则将所述第一多叉树结构与预存储的指定信息文件对应的指定多叉树结构进行比对,得到所述第一信息文件与所述指定信息文件之间的差异数据,其中所述指定信息文件与所述第一信息文件之间具有相同的文件结构,且所述指定多叉树结构为将所述指定信息文件内的各级数据分别对应输入到预设的第二原始多叉树结构的多层结点内形成的。
在上述第一获取模块和形成模块中,本申请实施例的执行主体可以为配置在智能设备中用于进行文件比对的文件比对装置,并以上述第一信息文件为第一合同,以上述指定信息文件为指定合同作为例子来对本实施例以及其他的实施例进行说明。具体地,上述第一合同为待比对的电子合同,该第一合同可以为任一类型的合同,也可以为任一语言的合同,例如第一合同可以为中文版的借款合同、英文版的买卖合同等。另外,上述获取第一合同的方式可为人工输入、扫描合同文件、自动读取电子版合同等方式,本发明实施例对此不做具体限定。上述指定合同为与上述第一合同进行比对的合同,以指定合同作为标准,上述第一合同可为对指定合同的某些内容进行修改后得到的合同。在获取到输入的第一合同后,首先会将该第一合同转换成对应的多叉树的结构,即提取上述第一合同内的各级指定数据,并将各级上述指定数据分别对应输入到预设的第一原始多叉树结构的多层结点内,从而形成与上述第一合同对应的第一多叉树结构。举例地,合同的内容可包括合同名称、条款、次级条款以及具体的条款内容,且对于多叉树结构,多叉树中的根结点为第一层,根结点的孩子,即根结点的子结点为第二层,第二层子结点的孩子为第三层,依此类推。当第一合同包括四级的指定数据时,上述形成第一多叉树结构的步骤,具体可包括:首先获取上述第一合同的合同名称、上述第一合同所有条款的条款名称、各上述条款对应的次级条款的名称以及各上述次级条款对应的条款内容;然后将上述第一合同的合同名称输入到上述第一原始多叉树结构内的第一层的根结点,以及将各上述条款的条款名称分别输入到上述第一原始多叉树结构内的第二层的各结点,以及将各上述条款的次级条款的名称分别输入到与各上述条款名称对应的上述第一原始多叉树结构内的第三层的各结点,以及将各上述次级条款对应的条款内容分别输入到与各上述次级条款名称对应的上述第一原始多叉树结构内的第四层的各结点,以完成上述第一多叉树结构的构建。其中,上述用于与第一合同进行比对指定合同对应的指定多叉树结构的构建过程与第一多叉树结构的构建过程相同。
在上述比对模块中,在形成了上述第一多叉树结构后,以上述指定信息文件作为标准,按照预设轨迹将第一多叉树结构与预存储的指定合同对应的指定多叉树结构进行比对,进而得到第一合同与指定合同之间的差异数据,其中,上述指定合同与第一合同之间具有相同的文件结构,且该指定多叉树结构为将指定信息文件内的各级数据分别对应输入到预设的第二原始多叉树结构的多层结点内形成的,上述差异数据为第一合同相对于指定合同所作出的修改内容。本申请通过将第一合同转换成对应的第一多叉树结构,以及预先将指定合同转化为指定多叉树结构,再将第一多叉树结构与指定合同对应的指定多叉树结构进行比对,从而根据两者的比较来快速的得到第一合同与指定合同之间的差异数据,有效的实现了对第一合同与指定合同之间的智能比对,为合同比对提供了一种新颖便捷的比对形式,避免出现通过人工对第一合同与所述指定合同进行比对而需要耗费很多时间且出错率高的情形,有效的提高了合同比对的速率与准确率,简化了合同管理的流程。
进一步地,本申请一实施例中,上述文件比对装置,包括:
第二获取模块,用于获取所述指定数据的级数对应的第一数量,以及每一级所述指定数据分别对应的第二数量;
计算模块,用于对各所述第二数量进行求和计算,得到第三数量;
创建模块,用于创建包含与所述第一数量相同的层数,以及与所述第三数量相同的结点数量的所述第一原始多叉树结构,其中所述第一原始多叉树结构内每一层的结点的数量分别与对应的每一级所述指定数据的数量相同。
本实施例中,在将上述第一信息文件内的各级指定数据分别对应输入到预设的第一原始多叉树结构的多层结点内,以形成与第一信息文件对应的第一多叉树结构的步骤之前,还包括创建上述第一原始多叉树结构的过程。具体地,首先获取与上述指定数据的级数对应的第一数量,以及每一级所述指定数据分别对应的第二数量,然后对各上述第二数量进行求和计算,得到第三数量,最后创建包含与上述第一数量相同的层数,以及与上述第三数量相同的结点数量的第一原始多叉树结构,其中第一原始多叉树结构内每一层的结点的数量分别与对应的每一级所述指定数据的数量相同。举例地,以第一信息文件为第一合同进行阐述,第一合同包括4级指定数据,即第一数量为4;第一合同的第一级指定数据为合同名称,合同名称对应的第二数量为1;第二级指定数据为第一合同所有条款的条款名称,条款名称对应的第二数量为2;第三级指定数据为各上述条款对应的次级条款的名称,次级条款的名称对应的第二数量为4;第四级指定数据为各上述次级条款对应的条款内容,各条款内容对应的第二数量为10,则第三数量为1+2+4+10=17,创建的第一原始多叉树结构为四层且包含17个结点的结构,且第一层结点为1个,第二层结点为2个,第三层结点为4个,第一层结点为10个。本实施例根据第一信息文件内的各级指定数据构建对应的第一原始多叉树结构,进而将该指定数据输入到第一原始多叉树结构内,以完成第一信息文件与第一多叉树结构的转换,使得后续可以将第一多叉树结构与上述指定多叉树结构进行比对,进而快速的得到第一合同与指定合同之间的差异数据,有效的实现了对第一合同与指定合同之间的智能比对,为合同比对提供了一种新颖便捷的比对形式。
进一步地,本申请一实施例中,上述比对模块,包括:
第一计算单元,用于通过哈希算法分别计算出所述第一多叉树结构内各结点的第一哈希值,以及计算出所述指定多叉树结构内各结点的第二哈希值;
第一查找单元,用于按照预设顺序,将所述第一多叉树结构内各结点的第一哈希值,分别与所述指定多叉树结构内对应的各结点的第二哈希值进行一一比对,查找出所述第一多叉树结构内的第一指定结点,其中所述第一指定结点的数量包括一个或多个,且所述第一指定结点的第一哈希值与所述指定多叉树结构内位置相同的第一原始结点的第二哈希值不相同;
第一获取单元,用于获取与所述第一指定结点对应的所述第一原始结点内包含的第一数据;
第一提取单元,用于根据所述第一数据,从所述第一指定结点内提取出与所述第一数据存在差异的所述差异数据。
在上述第一计算单元和第一查找单元中,上述第一合同为对指定合同进行修订后生成的合同,在根据第一合同以及指定合同分别构建出对应的第一多叉树结构和指定多叉树结构后,相比于指定合同,第一合同中对应于指定合同所作出的修改可以体现为第一多叉树结构中,对应于指定多叉树结构中结点的内容而作出的修改。当第一多叉树结构内每一层的结点数量分别与指定多叉树结构内对应的每一层的结点数量相同时,在本实施例,上述按照预设规则获取差异数据的过程,具体可包括:首先通过哈希算法分别计算出上述第一多叉树结构内各结点的第一哈希值,以及计算出上述指定多叉树结构内各结点的第二哈希值,其中,上述哈希算法,即Hash算法,简称散列算法,是将一个大文件映射成一个小串字符,简单点说,哈希算法就是将任意长度的消息压缩成某一固定长度的消息摘要的函数,与指纹一样,就是以较短的信息来保证文件的唯一性的标志,这种标志与文件的每一个字节都相关,而且难以找到逆向规律,且通过哈希算法来计算哈希值是一种常见的现有技术,在此不再赘述。然后按照预设顺序,将上述第一多叉树结构内各结点的第一哈希值分别与上述指定多叉树结构内对应的各结点的第二哈希值进行一一比对,来查找出所述第一多叉树结构内的第一指定结点,其中上述第一指定结点的数量包括一个或多个,且该第一指定结点的第一哈希值与上述指定多叉树结构内位置相同的第一原始结点的第二哈希值不相同。另外,上述预设顺序可包括多种顺序,例如前序顺序、中序顺序、后序顺序等。具体地,前序顺序是指:先访问根结点,再访问左结点,然后访问右结点;中序顺序是指:先访问左结点,再访问根结点,然后访问右结点;后序顺序是指:先访问左结点,再访问右结点,然后访问根结点。进一步地,在一个特殊的实施例中,当第一多叉树结构内任意一层的结点数量与指定多叉树结构内位置相同的一层的结点数量不相同时,上述按照预设顺序,将所述第一多叉树结构内各结点的第一哈希值,分别与所述指定多叉树结构内对应的各结点的第二哈希值进行一一比对,查找出所述第一多叉树结构内的第一指定结点的步骤之前,还包括:将第一多叉树结构内每一层的结点数量分别与指定多叉树结构内对应的每一层的结点数量进行比较,判断第一多叉树结构内是否存在第一指定层,其中所述第一指定层的结点数量与指定多叉树结构内位置相同的层的结点数量不相同;若存在所述第一指定层,从所述第一多叉树结构内提取出第一特殊结点,其中所述指定多叉树结构内不存在与所述第一特殊结点位置相同的结点;提取出所述第一特殊结点内的第三数据,将所述第三数据确定为所述差异数据,之后再进入查找出所述第一多叉树结构内的第一指定结点的步骤;而如果不存在所述第一指定层,则直接进入查找出所述第一多叉树结构内的第一指定结点的步骤。
在上述第一获取单元和第一提取单元中,在查找出上述第一指定结点后,通过获取与上述第一指定结点对应的上述指定多叉树结构内的第一原始结点的第一数据,再根据上述第一数据,从上述第一指定结点提取出与上述第一数据存在差异的上述差异数据,具体地,通过将第一指定结点内的第一数据与指定多叉树结构内与上述指定结点对应的特定结点的数据进行比对,例如进行文本比对来找出两者之间的区别内容,进而来得到第一指定结点与上述特定结点之间存在差异的数据,即上述差异数据。本实施例通过将第一多叉树结构内各结点的第一哈希值分别与上述指定多叉树结构内对应的各结点的第二哈希值进行一一比对,可以快速的筛选出第一哈希值与第二哈希值的数值不相同的第一指定结点,从而有效快捷的从该第一指定结点中提取出第一合同中与上述指定合同相应的差异数据。
进一步地,本申请一实施例中,上述比对模块,包括:
第二计算单元,用于通过哈希算法计算出所述第一多叉树结构内各结点的第三哈希值,以及计算出所述指定多叉树结构内各结点的第四哈希值,其中,所述第一多叉树结构内的父结点的第三哈希值根据对应的子结点的第三哈希值计算得到,且所述第一多叉树结构的最后一层的子结点的第三哈希值是通过对本身数据进行哈希计算得到的;
第一判断单元,用于判断所述第一多叉树结构内的第一层的根结点的第三哈希值与所述指定多叉树结构内的第一层的根结点的第四哈希值是否相同;
第一比对单元,用于若否,则将第一多叉树结构内的第二层的各结点的第三哈希值,分别与所述指定多叉树结构内对应的第二层的各结点的第四哈希值进行一一比对,查找出所述第一多叉树结构内的第二层的第二指定结点,其中所述第二指定结点的数量为一个或多个,且所述第二指定结点的第三哈希值与所述指定多叉树结构内位置相同的第二原始结点的第四哈希值不相同;
第二比对单元,用于将所述第二指定结点对应的所述第一多叉树结构内的第三层的各第一特定结点的第三哈希值,分别与所述指定多叉树结构内对应的第三层的各结点的第四哈希值进行一一比对,查找出所述第一多叉树结构内的第三层的第三指定结点,其中所述第三指定结点的数量为一个或多个,且所述第三指定结点的第三哈希值与所述指定多叉树结构内位置相同的第三原始结点的第四哈希值不相同;
第三比对单元,用于依次类推,将所述第一多叉树结构内最后一层的各第二特定结点的第三哈希值,分别与所述指定多叉树结构内对应的各结点的第四哈希值进行一一比对,查找出所述第一多叉树结构内的最后一层的第四指定结点,其中所述第二特定结点根据与所述最后一层相邻的上一层内对应的第三特定结点得到,所述第三特定结点的第三哈希值与所述指定多叉树结构内位置相同的第四原始结点的第四哈希值不相同,且所述第四指定结点的数量为一个或多个,所述第四指定结点的第三哈希值与所述指定多叉树结构内位置相同的第五原始结点的第四哈希值不相同;
第二获取单元,用于获取与所述第四指定结点对应的所述第五原始结点内包含的第二数据;
第二提取单元,用于根据所述第二数据,从所述第四指定结点内提取出与所述第二数据存在差异的所述差异数据。
在上述第二计算单元、第一判断单元以及第一比对单元中,当出现上述第一多叉树结构内的父结点的第三哈希值是根据对应的子结点的第三哈希值计算得到的情形时,除了上述通过将上述第一多叉树结构内所有结点的第一哈希值分别与上述指定多叉树结构内位置对应的所有结点的第二哈希值进行一一比对来获得第一信息文件与指定信息文件的差异数据的方式,还可包括其它的得到上述差异数据的方式,具体可包括:首先通过哈希算法计算出上述第一多叉树结构内各结点的第三哈希值,以及计算出上述指定多叉树结构内各结点的第四哈希值;其中,由于上述第一多叉树结构内的父结点的第三哈希值根据对应的子结点计算得到,且第一多叉树结构内的最后一层的子结点的第三哈希值是通过对本身数据进行哈希计算得到的,从而使得子结点的第三哈希值改变会导致对应的父结点的第三哈希值发生改变。举例地,第一多叉树结构内的上一层的父结点的哈希值为第一多叉树结构内相邻的下一层对应的所有子结点的哈希值之和,那么当任意的一个或多个子结点的数据发生改变时,会导致其哈希值以及对应的父结点的哈希值发生改变。之后判断上述第一多叉树结构内的第一层的根结点的第三哈希值与上述指定多叉树结构内的第一层的根结点的第四哈希值是否相同,若不相同,则表明第一信息文件与指定信息文件存在差异数据,则再进一步将第一多叉树结构内的第二层的各结点的第三哈希值,分别与上述指定多叉树结构内对应的第二层的各结点的第四哈希值进行一一比对,查找出第一多叉树结构内的第二层的第二指定结点,其中上述第二指定结点的数量为一个或多个,且该第二指定结点的第三哈希值与上述指定多叉树结构内位置相同的第二原始结点的第四哈希值不相同。在一个特殊的实施例中,当第一多叉树结构内任意一层的结点数量与指定多叉树结构内位置相同的一层的结点数量不相同时,上述判断所述第一多叉树结构内的第一层的根结点的第三哈希值与所述指定多叉树结构内的第一层的根结点的第四哈希值是否相同的步骤之前,还包括:将第一多叉树结构内每一层的结点数量分别与指定多叉树结构内对应的每一层的结点数量进行比较,判断第一多叉树结构内是否存在第二指定层,其中所述第二指定层的结点数量与指定多叉树结构内位置相同的层的结点数量不相同;若存在所述第二指定层,从所述第一多叉树结构内提取出第二特殊结点,其中所述指定多叉树结构内不存在与所述第二特殊结点位置相同的结点;提取出所述第二特殊结点内的第四数据,并将所述第四数据确定为所述差异数据,之后再进入判断所述第一多叉树结构内的第一层的根结点的第三哈希值与所述指定多叉树结构内的第一层的根结点的第四哈希值是否相同的步骤;而如果不存在所述第二指定层,则直接进入判断所述第一多叉树结构内的第一层的根结点的第三哈希值与所述指定多叉树结构内的第一层的根结点的第四哈希值是否相同的步骤。
在上述第二比对单元、第三比对单元、第二获取单元以及第二提取单元中,在获得上述第二指定结点后,再将上述第一指定结点对应的上述第一多叉树结构内的第三层的各结点的第三哈希值,分别与上述指定多叉树结构内对应的第三层的各结点的第四哈希值进行一一比对,找出上述第一多叉树结构内的第三层的第三指定结点,其中上述第三指定结点的数量为一个或多个,且上述第三指定结点的第三哈希值与上述指定多叉树结构内位置相同的第三原始结点的第四哈希值不相同。进一步地,依次类推,将第一多叉树结构内最后一层的各第二特定结点的第三哈希值,分别与指定多叉树结构内对应的各结点的第四哈希值进行一一比对,查找出上述第一多叉树结构内的最后一层的第四指定结点,其中上述第二特定结点根据与上述最后一层相邻的上一层内对应的第三特定结点得到,上述第三特定结点的第三哈希值与指定多叉树结构内位置相同的第四原始结点的第四哈希值不相同,且第四指定结点的数量为一个或多个,第四指定结点的第三哈希值与上述指定多叉树结构内位置相同的第五原始结点的第四哈希值不相同。最后获取与第四指定结点对应的第五原始结点内包含的第二数据,并根据上述第二数据,从第四指定结点提取出与第二数据存在差异的差异数据,即通过将第二原始结点的第二数据与第四指定结点的数据进行比对,例如进行文本比对来找出两者之间的区别内容,进而从该第四指定结点内提取出与上述第五原始结点的第二数据之间存在差异的差异数据。通过本实施例,不需要将第一多叉树结构内所有的结点与指定多叉树结构内对应的所有的结点进行一一比对,简化了结点比对的处理流程,有效地提高了获得第一信息文件与指定信息文件之间的差异数据的速率。
进一步地,本申请一实施例中,上述文件比对装置,包括:
第一处理模块,用于按照预设方式对所述差异数据进行处理,得到处理后的差异数据;
第一展示模块,用于展示所述处理后的差异数据。
本实施例中,在通过将第一多叉树结构与指定多叉树结构进行比对,并得到上述第一信息文件与上述指定信息文件之间的差异数据后,可以进一步按照预设方式对上述差异数据进行处理,其中上述按照预设方式对上述差异数据进行处理可包括多种处理方式,例如可为对差异数据进行高亮处理,或者可为差异数据添加颜色标记等等,本实施例对此不做具体的限定。之后,在完成对上述差异数据的处理,并得到处理后的差异数据后,可向用户展示上述处理后的差异数据。本实施例通过对第一信息文件与上述指定信息文件之间的差异数据进行指定处理,可以有效的帮助用户快速定位到该差异数据,并可清楚的了解到第一信息文件相对于上述指定信息文件的修改内容。
进一步地,本申请一实施例中,上述文件比对装置,包括:
判断模块,用于判断是否接收到用户发送的操作指令,其中所述操作指令至少包括修改操作指令、***操作指令以及删除操作指令;
第二处理模块,用于若是,根据所述操作指令对所述第一多叉树结构进行相应的处理。
本实施例中,在得到了第一信息文件与上述指定信息文件之间的差异数据,并在用户查阅到该差异数据后,可能会出现用户发现第一信息文件相对于上述指定信息文件所作出的修改存在错误的情况。本实施例可进一步判断是否接收到用户发送的操作指令,其中上述操作指令可包括多种操作指令,例如包括修改操作指令、***操作指令以及删除操作指令等等,本实施例对此不做具体的限定。如果接收到了用户发送的操作指令,则会根据所述操作指令对上述第一多叉树结构进行相应的处理。举例地,如果用户发送的操作指令为修改操作指令,则用户可向信息文件比对装置输入对应的修改内容,从而文件比对装置会根据用户输入的修改内容来对第一多叉树结构内的差异数据所对应的结点内容进行相应的修改。本实施例在向用户展示上述第一多叉树结构内的差异数据后,当获取到用户发送的操作指令,便会智能的根据该操作指令对第一多叉树结构进行相应的处理,以实现根据用户的操作意图来对第一多叉树结构的内容进行对应的处理,从而有效的完成对于第一多叉树结构的准确性维护。
进一步地,本申请一实施例中,上述文件比对装置,包括:
第三获取模块,用于获取所述指定信息文件与其它的修订信息文件经过分别比对后得到的各指定差异数据;
第四获取模块,用于获取各所述指定差异数据对应的各修订信息文件的修订时间;
第二展示模块,用于按照所述修订时间从前到后的顺序,展示各所述指定差异数据。
本实施例中,上述指定信息文件具体可以为指定合同,由于在合同的生成过程中,合同需要在不同利益的交易双方之间进行反复沟通、修改,因此在生成最终的合同之前,可能存在对合同经过不同修改而产生的多个修订合同,对应的,上述指定信息文件与会存在对应的多个修订信息文件。在本实施例,可通过向文件比对装置输入上述其它的修订信息文件,来实现将指定信息文件分别与上述其它的修订信息文件进行比对,并可获取得到指定信息文件与多个其它的修订信息文件经过分别比对后得到的各指定差异数据,然后获取各上述指定差异数据对应的各修订信息文件的修订时间,其中,上述其它的修订信息文件为经过对该指定信息文件进行修改后生成的,且修订信息文件内会携带有对应的时间戳记录,即上述的修订时间,以通过该时间戳记录来记录下修订合同经过修改后完成的最终生成时间。最后按照上述修订时间从前到后的顺序,来展示各上述指定差异数据,以使得用户既可以清楚的了解该指定信息文件根据时间顺序作出修改的修改过程,也可以清楚的看到指定信息文件经历的每次修改所对应的具体修改内容。
参照图3,本申请实施例中还提供一种计算机设备,该计算机设备可以是服务器,其内部结构可以如图3所示。该计算机设备包括通过***总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备设计的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作***、计算机程序和数据库。该内存储器为非易失性存储介质中的操作***和计算机程序的运行提供环境。该计算机设备的数据库用于存储第一信息文件、第一多叉树结构以及指定多叉树结构等数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种文件比对方法。
上述处理器执行上述文件比对方法的步骤:获取第一信息文件;提取出所述第一信息文件内的各级指定数据,并将各级所述指定数据分别对应输入到预设的第一原始多叉树结构的多层结点内,形成与所述第一信息文件对应的第一多叉树结构;按照预设规则将所述第一多叉树结构与预存储的指定信息文件对应的指定多叉树结构进行比对,得到所述第一信息文件与所述指定信息文件之间的差异数据,其中所述指定信息文件与所述第一信息文件之间具有相同的文件结构,且所述指定多叉树结构为将所述指定信息文件内的各级数据分别对应输入到预设的第二原始多叉树结构的多层结点内形成的。
本领域技术人员可以理解,图3中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的装置、计算机设备的限定。
本申请一实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现一种文件比对方法,具体为:获取第一信息文件;提取出所述第一信息文件内的各级指定数据,并将各级所述指定数据分别对应输入到预设的第一原始多叉树结构的多层结点内,形成与所述第一信息文件对应的第一多叉树结构;按照预设规则将所述第一多叉树结构与预存储的指定信息文件对应的指定多叉树结构进行比对,得到所述第一信息文件与所述指定信息文件之间的差异数据,其中所述指定信息文件与所述第一信息文件之间具有相同的文件结构,且所述指定多叉树结构为将所述指定信息文件内的各级数据分别对应输入到预设的第二原始多叉树结构的多层结点内形成的。
综上所述,本申请实施例中提供的文件比对方法、装置、计算机设备和存储介质,获取第一信息文件;提取出所述第一信息文件内的各级指定数据,并将各级所述指定数据分别对应输入到预设的第一原始多叉树结构的多层结点内,形成与所述第一信息文件对应的第一多叉树结构;按照预设规则将所述第一多叉树结构与预存储的指定信息文件对应的指定多叉树结构进行比对,得到所述第一信息文件与所述指定信息文件之间的差异数据。本申请通过将第一信息文件转换成对应的第一多叉树结构,再将第一多叉树结构与指定信息文件对应的指定多叉树结构进行比对,从而根据两者的比较来快速的得到第一信息文件与所述指定信息文件的差异数据,避免出现通过人工对第一信息文件与所述指定信息文件进行比对而需要耗费很多时间且出错率高的情形,有效的提高了不同的信息文件之间比对的速率与准确率,简化了信息文件管理的流程。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储与一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的和实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM通过多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双速据率SDRAM(SSRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上所述仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。
Claims (10)
1.一种文件比对方法,其特征在于,包括:
获取第一信息文件;
提取所述第一信息文件内的各级指定数据,并将各级所述指定数据分别对应输入到预设的第一原始多叉树结构的多层结点内,形成与所述第一信息文件对应的第一多叉树结构;
按照预设规则将所述第一多叉树结构与预存储的指定信息文件对应的指定多叉树结构进行比对,得到所述第一信息文件与所述指定信息文件之间的差异数据,其中所述指定信息文件与所述第一信息文件之间具有相同的文件结构,且所述指定多叉树结构为将所述指定信息文件内的各级数据分别对应输入到预设的第二原始多叉树结构的多层结点内形成的。
2.根据权利要求1所述的文件比对方法,其特征在于,所述提取所述第一信息文件内的各级指定数据,并将各级所述指定数据分别对应输入到预设的原始多叉树结构的多层结点内,形成与所述第一信息文件对应的第一多叉树结构的步骤之前,包括:
获取所述指定数据的级数对应的第一数量,以及每一级所述指定数据分别对应的第二数量;
对各所述第二数量进行求和计算,得到第三数量;
创建包含与所述第一数量相同的层数,以及与所述第三数量相同的结点数量的所述第一原始多叉树结构,其中所述第一原始多叉树结构内每一层的结点的数量分别与对应的每一级所述指定数据的数量相同。
3.根据权利要求1所述的文件比对方法,其特征在于,所述按照预设规则将所述第一多叉树结构与预存储的指定信息文件对应的指定多叉树结构进行比对,得到所述第一信息文件与所述指定信息文件之间的差异数据的步骤,包括:
通过哈希算法分别计算出所述第一多叉树结构内各结点的第一哈希值,以及计算出所述指定多叉树结构内各结点的第二哈希值;
按照预设顺序,将所述第一多叉树结构内各结点的第一哈希值,分别与所述指定多叉树结构内对应的各结点的第二哈希值进行一一比对,查找出所述第一多叉树结构内的第一指定结点,其中所述第一指定结点的数量包括一个或多个,且所述第一指定结点的第一哈希值与所述指定多叉树结构内位置相同的第一原始结点的第二哈希值不相同;
获取与所述第一指定结点对应的所述第一原始结点内包含的第一数据;
根据所述第一数据,从所述第一指定结点内提取出与所述第一数据存在差异的所述差异数据。
4.根据权利要求1所述的文件比对方法,其特征在于,所述按照预设规则将所述第一多叉树结构与预存储的指定信息文件对应的指定多叉树结构进行比对,得到所述第一信息文件与所述指定信息文件之间的差异数据的步骤,包括:
通过哈希算法计算出所述第一多叉树结构内各结点的第三哈希值,以及计算出所述指定多叉树结构内各结点的第四哈希值,其中,所述第一多叉树结构内的父结点的第三哈希值根据对应的子结点的第三哈希值计算得到,且所述第一多叉树结构的最后一层的子结点的第三哈希值是通过对本身数据进行哈希计算得到的;
判断所述第一多叉树结构内的第一层的根结点的第三哈希值与所述指定多叉树结构内的第一层的根结点的第四哈希值是否相同;
若否,则将第一多叉树结构内的第二层的各结点的第三哈希值,分别与所述指定多叉树结构内对应的第二层的各结点的第四哈希值进行一一比对,查找出所述第一多叉树结构内的第二层的第二指定结点,其中所述第二指定结点的数量为一个或多个,且所述第二指定结点的第三哈希值与所述指定多叉树结构内位置相同的第二原始结点的第四哈希值不相同;
将所述第二指定结点对应的所述第一多叉树结构内的第三层的各第一特定结点的第三哈希值,分别与所述指定多叉树结构内对应的第三层的各结点的第四哈希值进行一一比对,查找出所述第一多叉树结构内的第三层的第三指定结点,其中所述第三指定结点的数量为一个或多个,且所述第三指定结点的第三哈希值与所述指定多叉树结构内位置相同的第三原始结点的第四哈希值不相同;
依次类推,将所述第一多叉树结构内最后一层的各第二特定结点的第三哈希值,分别与所述指定多叉树结构内对应的各结点的第四哈希值进行一一比对,查找出所述第一多叉树结构内的最后一层的第四指定结点,其中所述第二特定结点根据与所述最后一层相邻的上一层内对应的第三特定结点得到,所述第三特定结点的第三哈希值与所述指定多叉树结构内位置相同的第四原始结点的第四哈希值不相同,且所述第四指定结点的数量为一个或多个,所述第四指定结点的第三哈希值与所述指定多叉树结构内位置相同的第五原始结点的第四哈希值不相同;
获取与所述第四指定结点对应的所述第五原始结点内包含的第二数据;
根据所述第二数据,从所述第四指定结点内提取出与所述第二数据存在差异的所述差异数据。
5.根据权利要求1所述的文件比对方法,其特征在于,所述按照预设规则将所述第一多叉树结构与预存储的指定信息文件对应的指定多叉树结构进行比对,得到所述第一信息文件与所述指定信息文件之间的差异数据的步骤之后,包括:
按照预设方式对所述差异数据进行处理,得到处理后的差异数据;
展示所述处理后的差异数据。
6.根据权利要求1所述的文件比对方法,其特征在于,所述按照预设规则将所述第一多叉树结构与预存储的指定信息文件对应的指定多叉树结构进行比对,得到所述第一信息文件与所述指定信息文件之间的差异数据的步骤之后,包括:
判断是否接收到用户发送的操作指令,其中所述操作指令至少包括修改操作指令、***操作指令以及删除操作指令;
若是,根据所述操作指令对所述第一多叉树结构进行相应的处理。
7.根据权利要求1所述的文件比对方法,其特征在于,所述按照预设规则将所述第一多叉树结构与预存储的指定信息文件对应的指定多叉树结构进行比对,得到所述第一信息文件与所述指定信息文件之间的差异数据的步骤之后,包括:
获取所述指定信息文件与其它的修订信息文件经过分别比对后得到的各指定差异数据;
获取各所述指定差异数据对应的各修订信息文件的修订时间;
按照所述修订时间从前到后的顺序,展示各所述指定差异数据。
8.一种文件比对装置,其特征在于,包括:
第一获取模块,用于获取第一信息文件;
形成模块,用于提取所述第一信息文件内的各级指定数据,并将各级所述指定数据分别对应输入到预设的第一原始多叉树结构的多层结点内,形成与所述第一信息文件对应的第一多叉树结构;
比对模块,用于按照预设规则将所述第一多叉树结构与预存储的指定信息文件对应的指定多叉树结构进行比对,得到所述第一信息文件与所述指定信息文件之间的差异数据,其中所述指定信息文件与所述第一信息文件之间具有相同的文件结构,且所述指定多叉树结构为将所述指定信息文件内的各级数据分别对应输入到预设的第二原始多叉树结构的多层结点内形成的。
9.一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。
10.一种存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910665968.9A CN110516206A (zh) | 2019-07-23 | 2019-07-23 | 文件比对方法、装置、计算机设备和存储介质 |
PCT/CN2019/117210 WO2021012499A1 (zh) | 2019-07-23 | 2019-11-11 | 文件比对方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910665968.9A CN110516206A (zh) | 2019-07-23 | 2019-07-23 | 文件比对方法、装置、计算机设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110516206A true CN110516206A (zh) | 2019-11-29 |
Family
ID=68622877
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910665968.9A Withdrawn CN110516206A (zh) | 2019-07-23 | 2019-07-23 | 文件比对方法、装置、计算机设备和存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN110516206A (zh) |
WO (1) | WO2021012499A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111258899A (zh) * | 2020-01-16 | 2020-06-09 | 北京奇艺世纪科技有限公司 | 用例生成方法、装置、电子设备和计算机可读存储介质 |
CN111984616A (zh) * | 2020-08-04 | 2020-11-24 | 中国人民银行数字货币研究所 | 一种更新共享文件的方法、装置和*** |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060218160A1 (en) * | 2005-03-24 | 2006-09-28 | Computer Associates Think, Inc. | Change control management of XML documents |
US20110252310A1 (en) * | 2010-04-09 | 2011-10-13 | Sap Ag | Comparing Documents Having Structured Data |
CN105302803A (zh) * | 2014-05-28 | 2016-02-03 | 中国科学院沈阳自动化研究所 | 一种产品bom差异分析与同步更新方法 |
CN108170772A (zh) * | 2017-12-26 | 2018-06-15 | 泰康保险集团股份有限公司 | 一种数据处理方法及装置 |
CN108733689A (zh) * | 2017-04-18 | 2018-11-02 | 北京京东尚科信息技术有限公司 | 一种json文本的比对方法和装置 |
CN109635591A (zh) * | 2018-10-31 | 2019-04-16 | 平安科技(深圳)有限公司 | 合同文本的检验方法、装置、设备及计算机可读存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6904430B1 (en) * | 2002-04-26 | 2005-06-07 | Microsoft Corporation | Method and system for efficiently identifying differences between large files |
CN100483420C (zh) * | 2007-11-09 | 2009-04-29 | 清华大学 | 基于快照的细粒度文件与目录版本管理方法 |
CN108921552B (zh) * | 2018-06-15 | 2021-08-27 | 中金金融认证中心有限公司 | 一种验证证据的方法及装置 |
-
2019
- 2019-07-23 CN CN201910665968.9A patent/CN110516206A/zh not_active Withdrawn
- 2019-11-11 WO PCT/CN2019/117210 patent/WO2021012499A1/zh active Application Filing
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060218160A1 (en) * | 2005-03-24 | 2006-09-28 | Computer Associates Think, Inc. | Change control management of XML documents |
US20110252310A1 (en) * | 2010-04-09 | 2011-10-13 | Sap Ag | Comparing Documents Having Structured Data |
CN105302803A (zh) * | 2014-05-28 | 2016-02-03 | 中国科学院沈阳自动化研究所 | 一种产品bom差异分析与同步更新方法 |
CN108733689A (zh) * | 2017-04-18 | 2018-11-02 | 北京京东尚科信息技术有限公司 | 一种json文本的比对方法和装置 |
CN108170772A (zh) * | 2017-12-26 | 2018-06-15 | 泰康保险集团股份有限公司 | 一种数据处理方法及装置 |
CN109635591A (zh) * | 2018-10-31 | 2019-04-16 | 平安科技(深圳)有限公司 | 合同文本的检验方法、装置、设备及计算机可读存储介质 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111258899A (zh) * | 2020-01-16 | 2020-06-09 | 北京奇艺世纪科技有限公司 | 用例生成方法、装置、电子设备和计算机可读存储介质 |
CN111984616A (zh) * | 2020-08-04 | 2020-11-24 | 中国人民银行数字货币研究所 | 一种更新共享文件的方法、装置和*** |
CN111984616B (zh) * | 2020-08-04 | 2023-08-01 | 中国人民银行数字货币研究所 | 一种更新共享文件的方法、装置和*** |
Also Published As
Publication number | Publication date |
---|---|
WO2021012499A1 (zh) | 2021-01-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110333850A (zh) | 接口文档的生成方法、装置、计算机设备和存储介质 | |
KR101999409B1 (ko) | 예시에 의한 데이터 포매팅 기법 | |
US20110161916A1 (en) | Transformation of data between hierarchical data formats | |
CN104317624B (zh) | 基于插件处理的数据装配方法 | |
CN108132957A (zh) | 一种数据库处理方法及装置 | |
EP3864504B1 (en) | Changeset conflict rebasing | |
CN110471694A (zh) | 注释信息处理方法、装置、计算机设备及存储介质 | |
CN101535946A (zh) | 素数网数据管理*** | |
CN109542664A (zh) | 基于人工智能的文件校验方法、装置及计算机设备 | |
CN110516206A (zh) | 文件比对方法、装置、计算机设备和存储介质 | |
CN109614371A (zh) | 存储信息的方法、装置、计算机设备及存储介质 | |
CN104520880A (zh) | 创新专家***ies及其ptr数据结构ptr-ds | |
US8812552B2 (en) | Computer database with adaptive storage space architecture | |
CN110737432B (zh) | 一种基于词根表的脚本辅助设计方法及装置 | |
CN110399704A (zh) | 更改账号密码的方法、装置、计算机设备和存储介质 | |
US20090049060A1 (en) | Method and Apparatus for Managing Database Records Rejected Due to Referential Constraints | |
JP5467482B1 (ja) | 画面自動生成装置、画面自動生成プログラムおよび画面自動生成方法 | |
Abdessalem et al. | A probabilistic XML merging tool | |
CN114254617A (zh) | 一种修订条款的方法、装置、计算设备及存储介质 | |
US7904431B1 (en) | Method and system for automated request modelling | |
CN115130431A (zh) | 一种基于医学疾病和药品的编码方法和编码装置 | |
CN108197107A (zh) | 数据处理方法 | |
JP2006209521A (ja) | テスト項目自動生成装置 | |
JP4874670B2 (ja) | ポリシー管理装置、ポリシー管理プログラムおよびポリシー管理方法 | |
Moser et al. | The real-time graphical interval logic toolset |
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 | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20191129 |