一种文档对比方法及装置与流程

文档序号:14911809发布日期:2018-07-10 23:37阅读:138来源:国知局

本发明涉及数据处理领域,尤其涉及一种文档对比方法及装置。



背景技术:

现有技术中,对于简短内容地比较,插入文字和删除文字这样的差异可以准确地标出,段落移动的情况也基本上没有问题;但是对于长篇或复杂的内容比较,段落向上(向下)移动的类型可能就不能准确判断,段落的概念也可能被破坏,从而导致插入文字和删除文字类型的判断也不够准确,另外对于段落拆分和组合、段落部分拷贝、大范围的剪切粘贴的类型尚无分析。

综上,现有的文档对比方法尚存不足,对比结果也不够准确。



技术实现要素:

本发明实施例提供一种文档对比方法及装置,用以解决现有技术中存在文档对比结果不够准确的问题。

本发明方法包括一种文档对比方法,该方法包括:将修订文档和原文档进行内容对比,确定所述修订文档和所述原文档的最长公共字符串;

根据所述最长公共字符串分别对所述修订文档和所述原文档进行段落定位,确定在所述修订文档和原文档中存在对应关系的段落;

针对所述修订文档中任意一个非对应段落,将所述非对应段落与所述原文档进行内容对比,根据对比结果确定所述非对应段落的修改类型。

基于同样的发明构思,本发明实施例进一步地提供一种文档对比装置,该装置包括:

确定单元,用于将修订文档和原文档进行内容对比,确定所述修订文档和所述原文档的最长公共字符串;

段落定位单元,用于根据所述最长公共字符串分别对所述修订文档和所述原文档进行段落定位,确定在所述修订文档和原文档中存在对应关系的段落;

对比单元,用于针对所述修订文档中任意一个非对应段落,将所述非对应段落与所述原文档进行内容对比,根据对比结果确定所述非对应段落的修改类型。

本发明实施例提出的文档对比方法首先做的是对整篇文档内容对比,然后根据最长公共字符串对原文档和修订文档的段落进行定位,确定修订文档中各段落和原文档的各段落的位置存在对应关系的段落,当段落定位完成之后,继续用段落组与原文档进行对比,确定匹配段落的移动(或剪切粘贴),两篇文档对应段落中的差异(插入或删除),段落拆分、组合,以及段落部分拷贝等,最后根据以上所提的不同类型,使用不同颜色进行标注展示比较结果,可见,本发明实施例提供的方法可以对长篇或复杂的内容进行比较,段落向上(向下)移动的类型也可以得到准确地判断。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种文档对比方法流程示意图;

图2为本发明实施例提供的一种原文档和修订文档的段落对应的示意图;

图3为本发明实施例提供的一种原文档和修订文档的段落拆分组合的示意图;

图4为本发明实施例提供的一种原文档和修订文档内容对比示意图一;

图5为本发明实施例提供的一种文字插入删除的文档对比结果示意图;

图6为本发明实施例提供的一种原文档和修订文档内容对比示意图二;

图7为本发明实施例提供的一种段落上移下移的对比结果示意图;

图8为本发明实施例提供的一种段落之间剪切粘贴的对比结果示意图;

图9为本发明实施例提供的一种文档对比装置架构示意图。

具体实施方式

为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

参见图1所示,本发明实施例提供一种文档对比方法流程示意图,具体地实现方法包括:

步骤S101,将修订文档和原文档进行内容对比,确定所述修订文档和所述原文档的最长公共字符串。

步骤S102,根据所述最长公共字符串分别对所述修订文档和所述原文档进行段落定位,确定在所述修订文档和原文档中存在对应关系的段落。

步骤S103,针对所述修订文档中任意一个非对应段落,将所述非对应段落与所述原文档进行内容对比,根据对比结果确定所述非对应段落的修改类型。

需要说明的是,最长公共字符串是针对整体文档来说的,有了最长公共字符串,可以分别与原文档和修订文档进行比对,确定最长公共字符串分别对应于两篇文档的哪些段落,分别找到两篇文档存在对应关系的段落,就可以确定存在对应关系的段落(也可以确定除去这些段落的其他段落位置关系的基准)。下面给出一个例子进行说明。

原文档:

修订文档:

通过比较得到的最长公共字符串应该是:

通过将最长公共字符串和原文档对比,可以确定出公共字符串在原文档中位于第1、第2段;与修订文档对比,可以确定出最长公共字符串在修订文档位于第3、第4段。这样,这些段落就已经确立了存在对应关系,并且这些段落作为是位置基准,就是后面使用相对位置这一概念时的基准,是相对于这些段落来说的,其中,最长公共字符串的确定方法可以利用目前最长公共子序列的快速算法来确定。

本发明实施例主要是以段落准确定位为前提,确定文档对比中存在的不同差异类型。将最长公共字符串作为字符串基准,通过确定最长公共字符串可以确定出段落。具体地,如图2所示,原文档中从上到下包含段落A、B、C、D、E、F、G、H,修订文档从上到下包括段落C、段落X(含段H的大范围内容)、段落A、段落B、段落D、段落F、段落G、段落E、段落Y(段落G的部分内容),将原文档的整体内容与修订文档的整体内容进行对比,确定出最长公共字符串为段落A、B、D、F、G中的所有字符(包含段落之间的回车符);利用确定出来的最长公共字符串对图2中原文档和修订文档进行段落定位,定位出来段落A、B、D、F、G,原文档的段落A、B、D、F、G和修订文档的段落A、B、D、F、G就构成了存在对应关系的段落,修订文档除了段落段落A、B、D、F、G之外,修订文档中非对应的段落就剩余有段落C、段落X(含段H的大范围内容)、段落E、段落Y(段落G的部分内容)。

进一步地,针对非对应的段落,可以将非对应段落中连续的段落作为段落组,将段落组中的全部字符串与原文档中的全部内容进行对比,具体地,在所述修订文档中,以段落组为单位,将每个段落组分别与所述原文档作比较,所述段落组为所述所述修订文档中除了存在对应关系的段落之外的连续的段落;

当所述段落组与所述原文档存在最长公共字符串时,且所述最长公共字符串对应的段落组的段落中存在前后连续的两个段落,且前一个段落与所述最长公共字符串相比,尾部多个一个回车符,则确定在所述原文档存在一个段落与所述最长公共字符串对应修订文档的所述前后连续的两个段落相对应,所述修订文档的前后连续的两个段落是原文档的该段落发生段落移动后再段落拆分得到的;

当所述段落组与所述原文档存在最长公共字符串时,且所述最长公共字符串对应的段落组的段落与所述最长公共字符串相比,段落内容中间少了一个回车符,则确定回车符对应的位置发生段落组合。

比如说,如图3所述,在图3中原文档和修订文档存在对应关系的段落为段落A、段落B、段落E、段落H、段落I、段落J,修订文档中非对应的段落为段落C1、段落C2、段落G(包含原文档段落D和段落F的内容),将段落C1、段落C2作为第一个段落组,段落G作为第二个段落组,将第一个段落组与原文档的全部内容进行对比,对比后发现该段落组与原文档对比后存在最长的公共字符串(即原文档段落C全部字符),然后根据该最长的公共字符串确定出原文档中的段落C,根据该最长的公共字符串确定出修订文档的段落C1、段落C2。进一步地,段落C1段落C2这两个连续的段落和最长的公共字符串相比,多了一个回车符,所以说,可以确定在回车符位置处原文档段落C的内容发生了段落拆分。进一步地,将第二个段落组与原文档的全部内容进行对比,对比后发现该段落组与原文档对比后存在最长的公共字符串(即原文档段落D和段落F的全部字符),然后根据该最长的公共字符串确定出原文档中的段落D、段落F,根据该最长的公共字符串确定出修订文档的段落G。进一步地,段落G和最长的公共字符相比,段落内容中间少了一个回车符,因此,确定出段落G在回车符的位置后发生了原文档D和原文档F的段落组合。

进一步地,在执行步骤S102之后,还包括:修订文档的任意一个存在对应关系的段落,将所述段落比原文档的对应段落缺少的字符,记为字符删除;针对所述修订文档将所述段落比原文档的对应段落新增的字符,记为文字插入。

因为在找上述对应关系的段落过程中,可以确定对应段落分别对应最长公共字符串的哪些文字,所以可以很清楚地看出对应段落相对于最长公共字符串多出的文字,在原文档中,有对应关系的段落中多出的文字,记为文字删除;在修订文档中,有对应关系的段落中多出的文字,记为文字插入。

比如,如图4所示的原文档和修订文档,按照上述方法进行对比之后,修订文档与原文档相比,在“意识形态是”后面是插入了文字“与一定社会的”,在“文学艺术、”后面删除文字“宗教(神秘特殊的意识形态)、”如图5所示。

进一步地,针对所述修订文档中的第一非对应段落,将所述第一非对应段落与所述原文档进行内容对比,其中,所述第一非对应段落为任意一个;

当对比结果中确定在所述原文档中存在最长公共字符串的第二段落,则确定第一非对应段落的第一匹配率,以及第二段落的第二匹配率,其中,所述第一匹配率和所述第二匹配率等于匹配字符串长度与段落整体字符串长度的比值;

当所述第一匹配率和第二匹配率同时不小于匹配阈值时,确定所述第一非对应段落为所述第二段落发生段落位置移动的段落。

如图6所示,原文档从上到下包含段落A、B、C、D、E、F。修订文档从上到下包含段落C、F、E、A、B、D。按照对应关系的确定方法,图6中的原文档和修订文档相比,初步确定存在对应关系的段落有段落A、段落B、段落D。剩余的非对应的段落有段落C、段落F、段落E。进一步地,将段落C、F、E组成段落组,再与原文档整体进行对比,发现段落C和段落F为存在对应关系的段落,最后再将段落E与原文档进行对比。

也就是说,在修订文档中,去除对应段落后,产生多个段落组,对于每个段落组,逐个与原文档,重复上述对比过程,找出第二层对比中它们各自的基准字符串及“对应段落”。这里讲的“对应段落”在原文档与修订文档整篇文档对比中,属于剪切粘贴的情况或段落移动的情况。另外,多层对比时,设置一个段落组设定阈值,当匹配率低于设定阈值,视为无法匹配,其中,匹配率等于匹配字符串长度与段落整体字符串长度的比值。经过第二层对比之后,对又剩余的段落,构建段落组,继续重复上述过程,直至无法匹配(或达到预设对比层数)。这里,增加加段落组的概念,采用多层对比的目的,是为了能够更好的识别段落组整体的修改类型,以及从原文档中某些段落变化过来的过程信息,比如原文档的大范围剪切粘贴的结果、原文档某一段落拆分或者组合的结果等等。

进一步地,还包括:当所述第一匹配率和第二匹配率同时不大于匹配阈值时,确定所述第一非对应段落的内容属于插入内容;

当所述第一匹配率小于所述匹配阈值,且所述第二匹配率大于所述匹配阈值时,确定所述第一非对应段落至少包含所述第二段落的大部分内容;

当所述第一匹配率大于所述匹配阈值,且所述第二匹配率小于所述匹配阈值时,那么确定所述第一非对应段落至少为所述第二段落的部分内容。

如下以图2中的原文档和修订文档为例,具体描述上述段落组中的段落的对比过程,假定段落组中的段落C,在与原文档各段落对比结果中找到存在最长的公共字符串的段落C,计算出原文档的段落C匹配率R1,修订文档的段落C匹配率R2。当R1、R2等于100%,大于匹配阈值60%时,那么修订文档的段落C属于原文档的段落C移动的情况。

假设,修订文档的段落X只含段落H的一小部分内容,当R1、R2同时小于匹配阈值60%时,那么修订文档的段落X就确定为新插入内容。

图2中修订文档的段落Y和原文档相比,段落G的匹配率为85%,但是修订文档的最长的公共字符串与整个段落的字符号相比为50%,所以确定段落Y中包含原文档的段落G的大部分内容,因为在段落定位过程,修订文档中已确定了原文档段落G的对应段落,所以该段落Y是复制粘贴了段落G的部分内容,

经过以上分析,修订文档中剩余段落的修改类型都已确定,继续查看原文档剩余段落中是否仍存在未定类型的段落,如果存在,则将它们都视为删除的段落。

比如,图7示出了段落C上移到段落X的上方,并在段落D的上方示出段落C已经上移,另外段落E下移段落到段落G和Y之间,则标记此处为段落E下移至此。段落F之前标记段落E已被下移。

再比如,对比后发现,段落X中内容匹配了段落H的大范围内容,因此,标记段落H的内容剪切粘贴到段落X。并标记段落H被移除,部分内容被剪切粘贴到段落X,同时,标记段落G的内容部分拷贝粘贴到段落Y,如图8所示。

优选地,所述以段落组为单位,将所述修订文档与所述原文档作比较之前,还包括:

预先识别出所述段落组中的超短段落和/或频繁出现的段落,并剔除所述超短段落和/或频繁出现的段落;

所述以段落组为单位,将所述修订文档与所述原文档作比较之后,还包括:

将所述超短段落和/或频繁出现的段落进行对比,生成对比结果。

也就是说,为保证对比结果更准确,在进行文档对比之前,可以对文档做一个预先处理:对于文档中出现的超短段落(如空段)、频繁出现的段落,可以预先识别出,剔除出上述的对比过程,当上述主要对比过程结束之后,以确定的段落对应位置为基准,逐个补充判断这些“特殊”段落的差异类型。

进一步地,所述将生成的比较结果分别显示在所述原文档和所述修订文档中,包括:

将生成的比较结果采用批注的方式在所述原文档和所述修订文档的对应段落处批注注明,并利用不同的颜色来显示所述原文档和所述修订文档之间的差异。

换句话说,对于比较结果,可采用批注的方式,同时根据比较结果的差异类型分配几种不同颜色来显示。段落拆分(组合),对应段落处加批注,注明是段落拆分(组合)。段落上移(下移),在段落处加批注,注明是上移(或下移)到此位置,并在此段落对应于原文档的位置处加入批注,提示上移(或下移),及移动内容。插入文字,直接使用颜色进行标注,可不加批注。删除文字,在删除位置处加批注,注明删除内容。大范围内容剪切粘贴,加批注,注明是剪切粘贴的情况,原剪切处同时加批注,注明是被剪切掉的。段落部分拷贝,加批注提示是原文档中段落内容的部分拷贝。

这样,本发明实施例以段落为基础,增加段落组的概念,准确定位两个文档的对应段落位置,采用多层对比的方法,可以更好地识别出段落拆分、段落组合、大范围的剪切粘贴、段落部分拷贝粘贴的情况。

基于相同的技术构思,本发明实施例还提供一种文档对比装置,该装置可执行上述方法实施例。本发明实施例提供的装置如图9所示,包括:确定单元301,段落定位单元302,对比单元303,其中:

确定单元301,用于将修订文档和原文档进行内容对比,确定所述修订文档和所述原文档的最长公共字符串;

段落定位单元302,用于根据所述最长公共字符串分别对所述修订文档和所述原文档进行段落定位,确定在所述修订文档和原文档中存在对应关系的段落;

对比单元303,用于针对所述修订文档中任意一个非对应段落,将所述非对应段落与所述原文档进行内容对比,根据对比结果确定所述非对应段落的修改类型。

进一步地,所述对比单元303还用于:在所述修订文档中,以段落组为单位,将每个段落组分别与所述原文档作比较,所述段落组为所述所述修订文档中除了存在对应关系的段落之外的连续的段落;

当所述段落组与所述原文档存在最长公共字符串时,且所述最长公共字符串对应的段落组的段落中存在前后连续的两个段落,且前一个段落与所述最长公共字符串相比,尾部多个一个回车符,则确定在所述原文档存在一个段落与所述最长公共字符串对应修订文档的所述前后连续的两个段落相对应,所述修订文档的前后连续的两个段落是原文档的该段落发生段落移动后再段落拆分得到的;

当所述段落组与所述原文档存在最长公共字符串时,且所述最长公共字符串对应的段落组的段落与所述最长公共字符串相比,少了一个回车符,则确定回车符对应的位置发生段落组合。

进一步地,所述对比单元303还用于:修订文档的任意一个存在对应关系的段落,将所述段落比原文档的对应段落缺少的字符,记为字符删除;针对所述修订文档将所述段落比原文档的对应段落新增的字符,记为文字插入。

进一步地,所述对比单元303具体用于:

针对所述修订文档中的第一非对应段落,将所述第一非对应段落与所述原文档进行内容对比,其中,所述第一非对应段落为任意一个;

当对比结果中确定在所述原文档中存在最长公共字符串的第二段落,则确定第一非对应段落的第一匹配率,以及第二段落的第二匹配率,其中,所述第一匹配率和所述第二匹配率等于匹配字符串长度与段落整体字符串长度的比值;

当所述第一匹配率和第二匹配率同时不小于匹配阈值时,确定所述第一非对应段落为所述第二段落发生段落位置移动的段落。

进一步地,所述对比单元303还用于:

当所述第一匹配率和第二匹配率同时不大于匹配阈值时,确定所述第一非对应段落的内容属于插入内容;

当所述第一匹配率小于所述匹配阈值,且所述第二匹配率大于所述匹配阈值时,确定所述第一非对应段落至少包含所述第二段落的大部分内容;

当所述第一匹配率大于所述匹配阈值,且所述第二匹配率小于所述匹配阈值时,那么确定所述第一非对应段落至少为所述第二段落的部分内容。

进一步地,还包括:批注单元304,用于将生成的对比结果采用批注的方式在所述原文档和所述修订文档的对应段落处增加批注注明,并利用不同的颜色来显示所述原文档和所述修订文档之间的内容差异。

综上所述,本发明实施例提出的文档对比方法首先做的是对整篇文档内容对比,然后根据最长公共字符串对原文档和修订文档的段落进行定位,确定修订文档中各段落和原文档的各段落的位置存在对应关系的段落,当段落定位完成之后,继续用段落组与原文档进行对比,确定匹配段落的移动(或剪切粘贴),两篇文档对应段落中的差异(插入或删除),段落拆分、组合,以及段落部分拷贝等,最后根据以上所提的不同类型,使用不同颜色进行标注展示比较结果,可见,本发明实施例提供的方法可以对长篇或复杂的内容进行比较,段落向上(向下)移动的类型也可以得到准确地判断。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

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