文档比较的差异输出方法、装置、存储介质及电子设备与流程

文档序号:17643282发布日期:2019-05-11 00:49阅读:183来源:国知局
文档比较的差异输出方法、装置、存储介质及电子设备与流程

本公开涉及文字比较领域,具体地,涉及一种文档比较的差异输出方法、装置、存储介质及电子设备。



背景技术:

在文字处理领域,文字比较功能会经常使用到,例如获取两篇文档之间的存在差异的数据块。为了便于用户查阅两篇文档的差异信息,通常对这些数据块进行统计。

现有技术中,通常需要通过人工统计两篇文档的差异数据块,该方式的效率和准确度较低。



技术实现要素:

为了克服现有技术中存在的问题,本公开的主要目的是提供一种文档比较的差异输出方法、装置、存储介质及电子设备。

为了实现上述目的,本公开实施例第一方面提供一种文档比较的差异输出方法,包括:

获取第一文档和第二文档中的数据块的位置信息以及所述第二文档相对于所述第一文档的差异数据块的差异类型,所述差异类型用于表征所述差异数据块是所述第二文档相对于所述第一文档的修改数据块,增加数据块或者删除数据块;

根据所述位置信息,生成所述第二文档相对于所述第一文档的修改数据块和相同数据块的有序序列,并将所述第二文档相对于所述第一文档的增加数据块和删除数据块,插入到所述有序序列中,得到目标有序序列;

根据所述第二文档相对所述第一文档的每一所述差异数据块在所述目标有序序列中的次序,输出显示每一所述差异数据块的差异描述信息。

可选地,所述根据所述位置信息,生成所述第二文档相对于所述第一文档的修改数据块和相同数据块的有序序列,并将所述第二文档相对于所述第一文档的增加数据块和的删除数据块,插入到所述有序序列中,包括:

对于所述第二文档相对于所述第一文档的每一增加数据块,根据将该增加数据块在所述第二文档中的位置信息,将该增加数据块插入到所述有序序列中的首个在所述第二文档中的位置大于该增加数据块的数据块之前;

对于所述第二文档相对于所述第一文档的每一删除数据块,根据将该删除数据块在所述第一文档中的位置信息,将该删除数据块插入到所述有序序列中的首个在所述第一文档中的位置大于该删除数据块的数据块之前。

可选地,在所述根据所述位置信息,生成所述第二文档相对于所述第一文档的修改数据块和相同数据块的有序序列之前,所述方法还包括:

对所述第二文档相对于所述第一文档的差异数据块进行整合;

获取整合得到的新的数据块的位置信息;

所述根据所述位置信息,生成所述第二文档相对于所述第一文档的修改数据块和相同数据块的有序序列,包括:

根据整合后的所述第二文档中的每一数据块的位置信息,生成所述第二文档相对于所述第一文档的修改数据块和相同数据块的有序序列。

可选地,所述对所述第二文档相对于所述第一文档的差异数据块进行整合,包括:

确定差异类型相同且位置相邻的文本数据块组;

将所述文本数据块组整合为新的文本数据块。

本公开实施例第二方面提供一种文档比较的差异输出装置,包括:

第一获取模块,用于获取第一文档和第二文档中的数据块的位置信息以及所述第二文档相对于所述第一文档的差异数据块的差异类型,所述差异类型用于表征所述差异数据块是所述第二文档相对于所述第一文档的修改数据块,增加数据块或者删除数据块;

插入模块,用于根据所述位置信息,生成所述第二文档相对于所述第一文档的修改数据块和相同数据块的有序序列,并将所述第二文档相对于所述第一文档的增加数据块和删除数据块,插入到所述有序序列中,得到目标有序序列;

输出模块,用于根据所述第二文档相对所述第一文档的每一所述差异数据块在所述目标有序序列中次序,输出显示每一所述差异数据块的差异描述信息。

可选地,所述插入模块包括:

第一插入子模块,用于对于所述第二文档相对于所述第一文档的每一增加数据块,将该增加数据块在所述第二文档中的位置信息,将该增加数据块插入到所述有序序列中的首个在所述第二文档中的位置大于该增加数据块的数据块之前;

第二插入子模块,用于对于所述第二文档相对于所述第一文档的每一删除数据块,将该删除数据块在所述第一文档中的位置信息,将该删除数据块插入到所述有序序列中的首个在所述第一文档中的位置大于该删除数据块的数据块之前。

可选地,所述装置还包括:

整合模块,用于在根据所述位置信息,生成所述第二文档相对于所述第一文档的修改数据块和相同数据块的有序序列之前,对所述第二文档相对于所述第一文档的差异数据块进行整合;

第二获取模块,用于获取整合得到的新的数据块的位置信息;

所述插入模块包括:

生成子模块,用于根据整合后的所述第二文档中的每一数据块的位置信息,生成所述第二文档相对于所述第一文档的修改数据块和相同数据块的有序序列。

所述整合模块包括:

确定子模块,用于确定差异类型相同且位置相邻的文本数据块组;

组合子模块,用于将所述文本数据块组整合为新的文本数据块。

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

本公开实施例第四方面提供一种电子设备,包括:

存储器,其上存储有计算机程序;

处理器,用于执行所述存储器中的所述计算机程序,以实现本公开实施例第一方面所述方法的步骤。

采用本公开提供的技术方案,至少能够达到如下技术效果:

获取第一文档和第二文档中的数据块的位置信息以及第二文档相对于第一文档的差异数据块的差异类型,由于第二文档相对于第一文档的修改数据块和相同数据块在第一文档中存在对应的数据块,因而这些数据块具有逻辑上的先后顺序,这样,在根据所述位置信息,生成第二文档相对于第一文档的修改数据块和相同数据块的有序序列后,将第二文档相对于第一文档的增加数据块和删除数据块,插入到所述有序序列中,即可得到包括所有差异类型的差异数据块的目标有序序列,因此,根据差异数据块在该目标序列中的次序,可以输出显示每一种差异类型的差异数据块的差异描述信息,从而实现对两篇文档的差异数据块的自动统计,并且基于差异描述信息中的差异类型,可以直观地展示两篇文档的各种差异类型的差异数据块的数量以及位置相比于现有技术中人工统计数据块的方式,提高了效率和准确率、节省了人力成本。

本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。

附图说明

附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:

图1是本公开实施例提供的一种文档比较的差异输出方法的流程图;

图2至图4是本公开实施例提供的一种数据块分类整合结果的示意图;

图5是本公开实施例提供的一种生成目标有序序列的示意图;

图6是本公开实施例提供的一种文档比较的差异输出装置的框图;

图7是本公开实施例提供的另一种文档比较的差异输出装置的框图;

图8是本公开实施例提供的一种电子设备的结构示意图。

具体实施方式

以下结合附图对本公开的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本公开,并不用于限制本公开。

值得说明的是,本公开实施例中的术语“第一”、“第二”等是用于区别类似的对象,不必理解为特定的顺序或先后次序。

在对本公开实施例提供的文档比较的差异输出方法之前,首先对本公开实施例涉及的实施环境进行说明。

本公开实施例涉及将两篇文档进行分块,得到多个数据块,以数据块为单位,通过将两篇文档中的数据块组成数据块对进行比较,得到两篇文档中存在差异的数据块。

其中,在对每篇文档进行分块时,可以根据预先设定的分块策略进行分块。例如,对于文档中的文本部分,以单个字符为单位,将相互邻近且距离较小的字符划分为一个数据块,或者以单词(汉语情况下一个字符为一个单词)为单位进行分块,又或者以行或列为单位进行分块;对于文档中的非文本部分,将一张图片、一个视频或者一个音频划分为一个数据块等等,本公开对此不做限定。

根据数据块在两篇文档中是否存在差异,两篇文档中的数据块可以分为第二文档相对第一文档的相同数据块和第二文档相对于第一文档的差异数据块。其中,所述差异数据块包括第二文档相对于第一文档的增加数据块,删除数据块或者修改数据块。其中,修改数据块包括第二文档相对于第一文档的更新数据块和更改数据块,更新数据块是指数据块的颜色、字号、大小等属性更新,更改数据块是指数据块的字符内容等更改。

按照信息类型的不同,两篇文档中的数据块又可以分为文本数据块、图片数据块、视频数据块以及音频数据块等等。

基于上述实施环境,本公开实施例提供一种文档比较的差异输出方法,如图1所示,该方法包括:

在步骤s11中,获取第一文档和第二文档中的数据块的位置信息以及第二文档相对于第一文档的差异数据块的差异类型。

其中,差异类型用于表征所述差异数据块是第二文档相对于第一文档的修改数据块,增加数据块或者删除数据块。

每个数据块在文档中都有相应的位置,数据块在文档中的位置信息可以包括数据块在页面中的中心坐标,还可以包括数据块在文档中的页码等。其中,数据块的中心坐标是指数据块的最小外接矩形框的中心点坐标。

对于第二文档相对于第一文档的修改数据块和相同数据块,其在第一文档中存在相对应的数据块,则所述数据块的位置信息可以包括该数据块在第一文档中的位置信息和在第二文档中的位置信息。其中,所述数据块在第一文档中的位置信息为所述数据块在第一文档中对应的数据块在在第一文档中的位置信息。

对于第二文档相对于第一文档的增加数据块,其在文档中的位置信息为该数据块在第二文档中的位置信息。

对于第二文档相对于第一文档的删除数据块,其在文档中的位置信息为该数据块在第一文档中的位置信息。

在步骤s12中,根据位置信息,生成第二文档相对于第一文档的修改数据块和相同数据块的有序序列,并将第二文档相对于第一文档的增加数据块和删除数据块,插入到有序序列中,得到目标有序序列。

由于第二文档相对于第一文档的修改数据块和相同数据块在第一文档中具有对应的数据块,因而这些数据块存在逻辑上的先后顺序;而第二文档相对于第一文档的增加数据块和删除数据块仅存在于一个文档中,没有逻辑上的先后顺序。因此,可以根据第二文档相对于第一文档的修改数据块和相同数据块在第二文档中的位置信息,对这些数据块按照位置先后顺序进行排序,得到有序序列,并将第二文档相对于第一文档的增加数据块和删除数据块插入到该有序序列中,得到目标有序序列。这样,两篇文档中的数据块在逻辑上就有了先后顺序。

在步骤s13中,根据第二文档相对第一文档的每一所述差异数据块在目标有序序列中的次序,输出显示每一所述差异数据块的差异描述信息。

示例地,每一所述差异数据块的差异描述信息可以包括用于描述该差异数据块的次序、差异类型等文本、图像类型信息,基于每一所述差异数据块的差异描述信息中的差异类型,可以直观地展示各种差异类型的差异数据块的数量以及位置等相关信息;基于每一所述差异数据块的差异描述信息中的次序,可以直观地展示各个差异数据块的逻辑顺序。

采用上述方法,获取第一文档和第二文档中的数据块的位置信息以及第二文档相对于第一文档的差异数据块的差异类型,由于第二文档相对于第一文档的修改数据块和相同数据块在第一文档中存在对应的数据块,因而这些数据块具有逻辑上的先后顺序,这样,在根据所述位置信息,生成第二文档相对于第一文档的修改数据块和相同数据块的有序序列后,将第二文档相对于第一文档的增加数据块和删除数据块,插入到所述有序序列中,即可得到包括所有差异类型的差异数据块的目标有序序列,因此,根据差异数据块在该目标有序序列中的次序,可以输出显示每一种差异类型的差异数据块的差异描述信息,从而实现对两篇文档的差异数据块的自动统计,并且基于差异描述信息中的差异类型,可以直观地展示两篇文档的各种差异类型的差异数据块的数量以及位置,相比于现有技术中人工统计数据块的方式,提高了效率和准确率、节省了人力成本。

在本公开的另一个实施例中,上述方法还包括:在根据各个数据块的位置信息生成第二文档相对于第一文档的修改数据块和相同数据块的有序序列之前,对第二文档相对于第一文档的差异数据块进行整合,并获取整合得到的新的数据块的位置信息。相应地,上述步骤s12包括:根据整合后的第二文档中的每一数据块的位置信息生成第二文档相对于第一文档的修改数据块和相同数据块的有序序列。

在具体实施对所述差异数据块的整合时,本公开实施例可确定差异类型相同且位置相邻的文本数据块组,并将所述文本数据块组整合为新的文本数据块。

值得说明的是,在对文本数据块进行整合时,针对差异类型为第二文档相对于第一文档的新增数据块,则根据这些文本数据块在第二文档中的位置信息进行整合,得到整合后的数据块在第二文档中的位置信息;针对差异类型为第二文档相对于第一文档的删除数据块,则根据这些文本数据块在第一文档中的位置信息进行整合,得到整合后的数据块在第一文档中的位置信息;针对差异类型为第二文档相对于第一文档的修改文字块,则根据这些文本数据块在第二文档中的位置信息进行整合,得到在第二文档中的新的文本数据块,与此同时,也会对这些文本数据块在第一文档中对应的文本数据块,根据这些对应的文本数据块在第一文档中的位置信息对这些对应的文本数据块进行整合,得到在第一文档中的新的文本数据块。进一步地,可获取整合后的新的文本数据块分别在第一文档和第二文档中的位置信息。

另外,对于非文本数据块(包括图片数据块、视频数据块以及音频数据块等),即便这些非文本数据块的差异类型相同且位置相邻,也不对这些非文本数据块进行整合。

示例地,如图2所示,第二文档相对于第一文档增加多行文字,增加的每一行文字为第二文档相对于第一文档的一个增加数据块(如图中的虚线框部分11所示),这些文本数据块相邻且差异类型相同。因此,可将这些数据块作为一个文本数据块组,并将所述数据块组整合为一个数据块(如图中的实线框部分10所示),并将该组合得到的数据块10在第二文档中的中心坐标(如图中的标记o1)和页码作为该组合后的数据块10的位置信息。

如图3所示,第二文档相对于第一文档的修改数据块包括“里”、“长的函数式”和“禁止使用,宏”文本数据块(如图中的虚线框部分所示),这些文本数据块位置相邻且差异类型相同,因而可将这些文本数据块作为一文本数据块组。因此,将所述文本数据块组整合为一个数据块(如图中的实线框部分20所示),并将该整合后的数据块20分别在第一文档和第二文档中的中心坐标(如图中的标记o2)和页码作为该整合后的数据块20的位置信息。

如图4所示,第一文档中的图片1和第二文档中的图片2仅大小不同,一张图片为一个非文本数据块,该分文本数据块的差异类型为第二文档相对于第一文档的修改数据块。因此,将该非文本数据块分别在第一文档中的中心坐标(如图中的标记o3)、页码以及第二文档中的中心坐标(如图中的标记o4)、页码作为该数据块的位置信息。

下面说明根据位置信息,如何生成第二文档相对于第一文档的修改数据块和相同数据块的有序序列,以及如何将第二文档相对于第一文档的增加数据块和删除数据块插入到有序序列中。

可选地,本公开实施例针对第二文档相对于第一文档的修改数据块和相同数据块,根据这些数据块在第二文档中的位置信息,将这些数据块按照位置先后顺序排列,得到有序序列。接着,以所述有序序列为基准,将第二文档相对于第一文档的每一增加数据块作为一个目标数据块,根据各个数据块在第二文档中的位置信息,将该目标数据块插入到所述有序序列中;以及,将第二文档相对于第一文档的每一删除数据块作为一个目标数据块,根据各个数据块在第一文档中的位置信息,将该目标数据块插入到所述有序序列中。在所有目标数据块均插入到所述有序序列后,即得到目标有序序列。

在具体实施时,对于第二文档相对于第一文档的每一增加标数据块,根据将该增加数据块在第二文档中的位置信息,将该增加数据块插入到有序序列中的首个在第二文档中的位置大于该增加数据块的数据块之前。

对于第二文档相对于第一文档的每一删除标数据块,根据将该删除数据块在第一文档中的位置信息,将该删除数据块插入到有序序列中的首个在第一文档中的位置大于该删除数据块的数据块之前。

示例地,如图5所示,文档1的数据块包括{共通1,更改1,更新1,删除1,更改2,共通2},文档2的数据块包括{共通1’,更改1’,增加1’,增加2’,更新1’,更改2’,共通2’}。其中,共通1和共通1’、共通2和共通2’为两篇文档中的相同数据块,文档2相对于文档1的差异数据块包括:文档2相对于文档1的修改数据块更改1’和更改2’,文档2相对于文档1的增加数据块增加1’和增加2’,以及文档2相对于文档1的删除数据块删除1。并且,图中的虚线连接的两数据块表示在第一文档和第二文档中对应的数据块。

根据文档2中的共通1’、更改1’、更新1’、更改2’以及共通2’在文档2中的位置先后顺序,得到有序序列为{共通1’,更改1’,更新1’,更改2’,共通2’}。以该有序序列为基准,将增加1’、增加2’和删除1作为目标数据块插入到该有序序列中。具体地,对于文档2中的增加1’,根据该数据块在文档2中的位置信息,可将该数据块插入到有序序列中首个在文档2中的位置大于该数据块的数据块更改1’之前;同样地,可将文档2中的数据块增加2’插入到有序序列中的数据块更新1’之前。对于数据块删除1,根据该数据块在文档1中的位置信息,可将该数据块插入到有序序列中首个在文档1中的对应位置大于该数据块的数据块更改2’之前。由此,得到目标有序序列{共通1’,增加1’,更改1’,增加2’,更新1’,删除1,更改2’,共通2’}。根据文档2相对于文档1的差异数据块在目标有序序列中的次序,可输出显示各个差异数据块的编号、差异类型等差异描述信息。

本公开实施例还提供一种文档比较的差异输出装置,用于实施上述方法实施例提供的一种文档比较的差异输出方法,如图6所示,该装置600包括:

第一获取模块601,用于获取第一文档和第二文档中的数据块的位置信息以及所述第二文档相对于所述第一文档的差异数据块的差异类型,所述差异类型用于表征所述差异数据块是所述第二文档相对于所述第一文档的修改数据块,增加数据块或者删除数据块;

插入模块602,用于根据所述位置信息,生成所述第二文档相对于所述第一文档的修改数据块和相同数据块的有序序列,并将所述第二文档相对于所述第一文档的增加数据块和删除数据块,插入到所述有序序列中,得到目标有序序列;

输出模块603,用于根据所述第二文档相对所述第一文档的每一差异数据块在所述目标有序序列中的次序,输出显示每一所述差异数据块的差异描述信息。

采用上述装置,获取第一文档和第二文档中的数据块的位置信息以及第二文档相对于第一文档的差异数据块的差异类型,,由于第二文档相对于第一文档的修改数据块和相同数据块在第一文档中存在对应的数据块,因而这些数据块具有逻辑上的先后顺序,这样,在根据所述位置信息,生成第二文档相对于第一文档的修改数据块和相同数据块的有序序列,并将第二文档相对于第一文档的增加数据块和删除数据块,插入到所述有序序列中,即可得到包括所有差异类型的差异数据块的目标有序序列,因此,根据差异数据块在该目标有序序列中的次序,可以输出显示每一种差异类型的差异数据块的差异描述信息,从而实现对两篇文档的差异数据块的自动统计,并且基于差异描述信息中的差异类型,可以直观地展示两篇文档的各种差异类型的差异数据块的数量以及位置,相比于现有技术中人工统计数据块的方式,提高了效率和准确率、节省了人力成本。

可选地,如图7所示,所述插入模块602包括:

第一插入子模块621,用于对于所述第二文档相对于所述第一文档的每一增加数据块,根据将该增加数据块在所述第二文档中的位置信息,将该增加数据块插入到所述有序序列中的首个在所述第二文档中的位置大于该增加数据块的数据块之前;

第二插入子模块622,用于对于所述第二文档相对于所述第一文档的每一删除数据块,根据将该删除数据块在所述第一文档中的位置信息,将该删除数据块插入到所述有序序列中的首个在所述第一文档中的位置大于该删除数据块的数据块之前。

可选地,如图7所示,所述装置还包括:

整合模块604,用于在根据所述位置信息,生成所述第二文档相对于所述第一文档的修改数据块和相同数据块的有序序列之前,对所述第二文档相对于所述第一文档的差异数据块进行整合;

第二获取模块605,用于获取整合得到的新的数据块的位置信息;

所述插入模块602包括:

生成子模块623,用于根据整合后的所述第二文档中的每一数据块的位置信息,生成所述第二文档相对于所述第一文档的修改数据块和相同数据块的有序序列。

可选地,如图7所示,所述整合模块604包括:

确定子模块641,用于确定差异类型相同且位置相邻的文本数据块组;

组合子模块642,用于将所述文本数据块组整合为新的文本数据块。

本领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述功能模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

本公开实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述方法实施例提供的一种文档比较的差异输出方法的步骤。

本公开实施例还提供一种电子设备,该电子设备可以被提供作为一种服务器,该电子设备包括:

存储器,其上存储有计算机程序;

处理器,用于执行所述存储器中的所述计算机程序,以实现上述方法实施例提供的一种文档比较的差异输出方法的步骤。

图8是根据一示例性实施例示出的一种电子设备800的框图。例如,电子设备800可以被提供为一服务器。参照图8,电子设备800包括处理器822,其数量可以为一个或多个,以及存储器832,用于存储可由处理器822执行的计算机程序。存储器832中存储的计算机程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理器822可以被配置为执行该计算机程序,以执行上述的文档比较的差异输出方法。

另外,电子设备800还可以包括电源组件826和通信组件850,该电源组件826可以被配置为执行电子设备800的电源管理,该通信组件850可以被配置为实现电子设备800的通信,例如,有线或无线通信。此外,该电子设备800还可以包括输入/输出(i/o)接口858。电子设备800可以操作基于存储在存储器832的操作系统,例如windowsservertm,macosxtm,unixtm,linuxtm等等。

在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的文档比较的差异输出方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器832,上述程序指令可由电子设备800的处理器822执行以完成上述的文档比较的差异输出方法。

以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,可以对本公开的技术方案进行多种简单变型,这些简单变型均属于本公开的保护范围。

另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合。为了避免不必要的重复,本公开对各种可能的组合方式不再另行说明。

此外,本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本公开所公开的内容。

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