CN109815452B - 文本比较方法、装置、存储介质及电子设备 - Google Patents
文本比较方法、装置、存储介质及电子设备 Download PDFInfo
- Publication number
- CN109815452B CN109815452B CN201811592924.XA CN201811592924A CN109815452B CN 109815452 B CN109815452 B CN 109815452B CN 201811592924 A CN201811592924 A CN 201811592924A CN 109815452 B CN109815452 B CN 109815452B
- Authority
- CN
- China
- Prior art keywords
- text
- block
- character
- sub
- pair
- 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.)
- Active
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开涉及一种文本比较方法、装置、存储介质及电子设备,所述方法包括:对第一文本和第二文本进行分块;针对由所述第一文本中文字块与所述第二文本中文字块组成的文字块对,获取所述文字块对的最长公共子序列对;根据相邻两个最长公共子序列对之间的字符信息,生成差异描述信息,所述差异描述信息用于显示所述文字块对的字符差异。通过本公开的技术方案,基于文字块组成的文字块对进行文本比较,效率比以行或者单词为最小单位进行文本比较的效率和精确度更高。
Description
技术领域
本公开涉及文字比较领域,具体地,涉及一种文本比较方法、装置、存 储介质及电子设备。
背景技术
在文字处理领域下,文字比较功能会经常使用到,例如比较两篇文档之 间的差异性。
相关技术中,通常以行为单位进行比较,但是在两篇文档字号、字体、 排版不一致的情况下,同一行显示的文字的数量不一致,以行为单位进行比 较无法得到准确的结果。如果以单词(汉语情况下一个汉字为一个单词)为单位进行比较,由于某些文本无法按照阅读习惯找出各单词之间的相对次序, 使得该比较方式难以实现。
发明内容
为了克服相关技术中存在的问题,本公开提供一种文本比较方法、装置、 存储介质及电子设备。
为了实现上述目的,本公开实施例第一方面提供一种文本比较方法,包 括:
对第一文本和第二文本进行分块;
针对由所述第一文本中文字块与所述第二文本中文字块组成的文字块 对,获取所述文字块对的最长公共子序列对;
根据相邻两个最长公共子序列对之间的字符信息,生成差异描述信息, 所述差异描述信息用于显示所述文字块对的字符差异。
可选地,所述获取所述文字块对的最长公共子序列对,包括:
将所述文字块对中的第一文字块划分为多个第一子文字块,并将所述多 个第一子文字块的信息存入一数组,得到第一子文字块数组;
将所述文字块对中的第二文字块划分为多个第二子文字块,并将所述多 个第二子文字块的信息存入另一数组,得到第二子文字块数组;
根据最长公共子序列算法确定所述第一子文字块数组和所述第二子文 字块数组中的最长公共子序列对。
可选地,所述将所述文字块对中的第一文字块划分为多个第一子文字块, 包括:
删除所述第一文字块中的空格字符和空行字符,得到新的第一文字块, 并将所述新的第一文字块划分为多个第一子文字块;和/或
所述将所述文字块对中的第二文字块划分为多个第二子文字块,包括:
删除所述第二文字块中的空格字符和空行字符,得到新的第二文字块, 并将所述新的第二文字块划分为多个第二子文字块。
可选地,在所述将所述文字块对中的第一文字块划分为多个第一子文字 块之前,所述方法还包括:
分别获取所述第一文字块中各字符的索引信息,并将该索引信息存入一 数组,得到第一索引信息数组,所述第一索引信息数组用于还原所述第一文 字块;和/或
在所述将所述文字块对中的第二文字块划分为多个第二子文字块之前, 所述方法还包括:
分别获取所述第二文字块中各字符的索引信息,并将该索引信息存入一 数组,得到第二索引信息数组,所述第二索引信息数组用于还原所述第二文 字块。
可选地,所述根据相邻两个最长公共子序列对之间的字符信息,生成差 异描述信息,包括:
针对所述第一文字块中的相邻两个最长公共子序列,执行以下操作:
若第一最长公共子序列与第二最长公共子序列之间存在非空格字符,并 且所述第二文字块中与所述第一最长公共子序列对应的第三最长公共子序 列,以及与所述第二最长公共子序列对应的第四最长公共子序列之间不存在 非空格字符,则生成表征所述第一最长公共子序列与所述第二最长公共子序 列之间的非空格字符为所述第二文字块的删除内容的差异描述信息;
若所述第一最长公共子序列与所述第二最长公共子序列之间不存在非 空格字符,并且所述第三最长公共子序列与所述第四最长公共子序列之间存 在非空格字符,则生成表征所述第三最长公共子序列与所述第四最长公共子 序列之间的非空格字符为所述第二文字块的新增内容的差异描述信息;
若所述第一最长公共子序列与所述第二最长公共子序列之间以及所述 第三最长公共子序列与所述第四最长公共子序列均存在非空格字符,则生成 表征所述第三最长公共子序列与所述第四最长公共子序列之间的非空格字 符为所述第二文字块的更新内容的差异描述信息。
可选地,所述方法还包括:
分别获取所述最长公共子序列对中属于所述第一文字块的最长公共子 序列和属于所述第二文字块的最长公共子序列的显示属性信息;
若所述属于所述第一文字块的最长公共子序列和所述属于所述第二文 字块的最长公共子序列的显示属性信息不一致,则生成属性差异信息,所述 属性差异信息用于显示所述最长公共子序列对的属性差异。
本公开实施例第二方面提供一种文本比较装置,包括:
分块模块,用于对第一文本和第二文本进行分块;
第一获取模块,用于针对由所述第一文本中文字块与所述第二文本中文 字块组成的文字块对,获取所述文字块对的最长公共子序列对;
第一生成模块,用于根据相邻两个最长公共子序列对之间的字符信息, 生成差异描述信息,所述差异描述信息用于显示所述文字块对的字符差异。
可选地,所述第一获取模块包括:
第一划分子模块,用于将所述文字块对中的第一文字块划分为多个第一 子文字块,并将所述多个第一子文字块的信息存入一数组,得到第一子文字 块数组;
第二划分子模块,用于将所述文字块对中的第二文字块划分为多个第二 子文字块,并将所述多个第二子文字块的信息存入另一数组,得到第二子文 字块数组;
确定子模块,用于根据最长公共子序列算法确定所述第一子文字块数组 和所述第二子文字块数组中的最长公共子序列对。
可选地,所述第一划分子模块用于:删除所述第一文字块中的空格字符 和空行字符,得到新的第一文字块,并将所述新的第一文字块划分为多个第 一子文字块;和/或
所述第二划分子模块用于:删除所述第二文字块中的空格字符和空行字 符,得到新的第二文字块,并将所述新的第二文字块划分为多个第二子文字 块。
可选地,所述装置还包括:
第二获取模块,用于在所述第一划分子模块将所述文字块对中的第一文 字块划分为多个第一子文字块之前,分别获取所述第一文字块中各字符的索引信息,并将该索引信息存入一数组,得到第一索引信息数组,所述第一索 引信息数组用于还原所述第一文字块;和/或
第三获取模块,用于在所述第二划分子模块将所述文字块对中的第二文 字块划分为多个第二子文字块之前,分别获取所述第二文字块中各字符的索 引信息,并将该索引信息存入一数组,得到第二索引信息数组,所述第二索 引信息数组用于还原所述第二文字块。
可选地,所述第一生成模块包括:
生成子模块,用于针对所述第一文字块中的相邻两个最长公共子序列, 执行以下操作:
若第一最长公共子序列与第二最长公共子序列之间存在非空格字符,并 且所述第二文字块中与所述第一最长公共子序列对应的第三最长公共子序 列,以及与所述第二最长公共子序列对应的第四最长公共子序列之间不存在 非空格字符,则生成表征所述第一最长公共子序列与所述第二最长公共子序 列之间的非空格字符为所述第二文字块的删除内容的差异描述信息;
若所述第一最长公共子序列与所述第二最长公共子序列之间不存在非 空格字符,并且所述第三最长公共子序列与所述第四最长公共子序列之间存 在非空格字符,则生成表征所述第三最长公共子序列与所述第四最长公共子 序列之间的非空格字符为所述第二文字块的新增内容的差异描述信息;
若所述第一最长公共子序列与所述第二最长公共子序列之间以及所述 第三最长公共子序列与所述第四最长公共子序列之间均存在非空格字符,则 生成表征所述第三最长公共子序列与所述第四最长公共子序列之间的非空 格字符为所述第二文字块的更新内容的差异描述信息。
可选地,所述装置还包括:
第四获取模块,用于分别获取所述最长公共子序列对中属于所述第一文 字块的最长公共子序列与属于所述第二文字块的最长公共子序列的显示属 性信息;
第二生成模块,用于在所述属于所述第一文字块的最长公共子序列和所 述属于所述第二文字块的最长公共子序列的显示属性信息不一致时,生成属 性差异信息,所述属性差异信息用于显示所述最长公共子序列对的属性差异。
本公开实施例第三方面提供一种计算机可读存储介质,其上存储有计算 机程序,该程序被处理器执行时实现本公开实施例第一方面所述方法的步骤。
本公开实施例第四方面提供一种电子设备,包括:存储器,其上存储有 计算机程序;处理器,用于执行所述存储器中的所述计算机程序,以实现本 公开实施例第一方面所述方法的步骤。
采用本公开提供的技术方案,至少能够达到如下技术效果:
对两个文本进行分块,以两个文本中文字块组成的文字块对为单位,获 取各个文字块对的最长公共子序列对,最长公共子序列对是文字块对中相同 的字符部分,也就是说,每个文字块对中相邻两个最长公共子序列对之间的 字符可认为是两文本的差异字符,只用比较两文字块的差异字符便可生成相 应的差异描述信息,相比于现有技术中以单词为最小单位进行文本比较,本公开提供的技术方案可以快速找到两文本之间的字符差异,效率更高。并且, 在获取各个文字块对的最长公共子序列后,两个文字块的字符也相应对齐, 相比于现有技术中以行为最小单位进行文本比较,本公开提供的技术方案不 会受到两文本的排版、字体、字号等因素的影响,因而精确度更高。
本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与 下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在 附图中:
图1是本公开实施例提供的一种文本比较方法的流程图;
图2是本公开实施例提供的一种获取文字块对的最长公共子序列对的示 意图;
图3是本公开实施例提供的一种标记两个文字块中的字符差异的示意图;
图4是本公开实施例提供的另一种文本比较方法的流程图;
图5是本公开实施例提供的一种文本比较装置的框图;
图6是本公开实施例提供的另一种文本比较装置的框图;
图7是本公开实施例提供的一种电子设备的结构示意图。
具体实施方式
以下结合附图对本公开的具体实施方式进行详细说明。应当理解的是, 此处所描述的具体实施方式仅用于说明和解释本公开,并不用于限制本公开。
值得说明的是,本公开实施例中的术语“第一”、“第二”等是用于区别 类似的对象,不必理解为特定的顺序或先后次序。
本公开实施例提供一种文本比较方法,如图1所示,该方法包括:
在步骤S11中,对第一文本和第二文本进行分块。
示例地,可将文本的每N(N为大于或等于1的整数)行/列文字划分为 一个文字块,或者将文本的一个自然段划分为一个文字块,或者将文本的一 页划分为一个文字块,本公开对此不做限定。
进一步地,在对文本分块后,可以以块为单位,将两个文本进行文字比 较。
在步骤S12中,针对由第一文本中文字块与第二文本中文字块组成的文 字块对,获取文字块对的最长公共子序列对。
在具体实施时,可以将分别属于第一文本和第二本文的文字块按照文字 块的逻辑顺序组成文字块对,获取文字块对的最长公共子序列对。
其中,最长公共子序列(Longest Common Subsequence,LCS)是指两 个文字块中长度最长的相同的字符序列,相同的最长公共子序列组成一最长 公共子序列对。例如,文字块1为“abcde”,文字块2为“abgde”,则这两 个文字块的最长公共子序列对包括“ab”和“de”。
示例地,可利用最长公共子序列算法求解文字块对的最长公共子序列对。
在步骤S13中,根据相邻两个最长公共子序列对之间的字符信息,生成 差异描述信息,所述差异描述信息用于显示所述文字块对的字符差异。
例如,相邻两个最长公共子序列对之间的字符不同,则可以生成可用于 显示的差异描述信息,向用户展示两个文字块中的字符差异。
采用上述文本比较方法,对两个文本进行分块,以两个文本中文字块组 成的文字块对为单位,获取各个文字块对的最长公共子序列对,最长公共子序列对是文字块对中相同的字符部分,也就是说,每个文字块对中相邻两个 最长公共子序列对之间的字符可认为是两文本的差异字符,只用比较两文字 块的差异字符便可生成相应的差异描述信息,相比于现有技术中以单词为最 小单位进行文本比较,本公开提供的技术方案可以快速找到两文本之间的字 符差异,效率更高。并且,在获取各个文字块对的最长公共子序列后,两个文字块的字符也相应对齐,相比于现有技术中以行为最小单位进行文本比较,本公开提供的技术方案不会受到两文本的排版、字体、字号等因素的影响, 因而精确度更高。
为了使本领域技术人员更加理解本公开实施例提供的技术方案,下面对 上述步骤进行详细说明。
首先说明针对分别属于第一文本和第二文本的两个文字块组成的文字 块对,如何获取文字块对的最长公共子序列对。
可选地,本公开实施例可以针对所述文字块对中的第一文字块和第二文 字块,将第一文字块划分为多个第一子文字块,将第二文字块划分为多个第 二子文字块,并分别将多个第一子文字块和多个第二子文字块存入一数组, 分别得到第一子文字块数组和第二子文字块数组,且根据最长公共子序列算 法确定所述第一子文字块数组和所述第二子文字块数组中的最长公共子序列对。
在具体实施时,可将文字块的每个单词划分为一个子文字块,或者将文 字块的多个相邻的字符(包括字母、数字、特殊字符等)划分为一个子文字 块,本公开对此不做限定。
进一步地,在对文字块划分子文字块时,可根据需求忽略文字块中的空 格字符和空行字符。具体地,可删除文字块中的空格字符和空行字符,得到 新的文字块,并将新的文字块划分为多个子文字块。
下面以两个实际的文字块组成的文字块对为例,具体说明本公开实施例 提供的获取最长公共子序列对的方法,如图2所示,包括文字块1和文字块 2。以单词为单位分别将文字块1和文字块2划分多个子文字块并将子文字 块存入数组,可得到子文字块数组1和子文字块数组2。接着。根据最长公 共子序列算法对子文字块数组1和子文字块数组2进行分析,可确定出最长 公共子序列对包括[A,A’]、[B,B’]、[C,C’]、[D,D’]、[E,E’]等等(其余最长 公共子序列对未标号)。
此外,考虑到空格字符和空行字符被删除后,文字块中各字符的位置发 生了变化,因而在将文字块划分为子文字块之前,还可以分别获取文字块中 各字符的索引信息,并将各字符的索引信息存入一数组,得到该文字块的索 引信息数组,所述索引信息数组用于还原所述文字块。示例地,在文字块比 较结束后,可以根据该文字块的索引信息数组找出相关字符的原始位置,以将各字符组合还原为原来的文字块。
采用上述方法步骤,通过将文字块划分为多个子文字块并存入数组,可 以使文字块中的子文字块接力排成一条“线”,进而使文字块中文字行的边 界消失,基于得到的两个子文字块数组进行文字比较,不会受文本排版不一 致等因素的影响,可以进一步提高文本比较的精确度。并且,在对子文字块 数组进行文字比较时,通过获取子文字块数组的最长公共子序列对,使得两个文字块完成了内容对齐。
下面说明根据相邻两个最长公共子序列对之间的字符信息,如何生成差 异描述信息。
可选地,在获取到文字块对中的最长公共子序列对后,针对第一文字块 中的相邻两个最长公共子序列,执行以下操作:
若第一最长公共子序列与第二最长公共子序列之间存在非空格字符,并 且所述第二文字块中与所述第一最长公共子序列对应的第三最长公共子序 列,以及与所述第二最长公共子序列对应的第四最长公共子序列之间不存在 非空格字符,则生成表征所述第一最长公共子序列与所述第二最长公共子序 列之间的非空格字符为所述第二文字块的删除内容的差异描述信息;
若所述第一最长公共子序列与所述第二最长公共子序列之间不存在非 空格字符,并且所述第三最长公共子序列与所述第四最长公共子序列之间存 在非空格字符,则生成表征所述第三最长公共子序列与所述第四最长公共子 序列之间的非空格字符为所述第二文字块的新增内容的差异描述信息;
若所述第一最长公共子序列与所述第二最长公共子序列之间以及所述 第三最长公共子序列与所述第四最长公共子序列均存在非空格字符,则生成 表征所述第三最长公共子序列与所述第四最长公共子序列之间的非空格字 符为所述第二文字块的更新内容的差异描述信息。
进一步地,基于生成的差异描述信息,可直观显示两个文字块的字符差 异。具体地,可以根据差异描述信息显示标记存在差异的字符,其中,显示 标记的方式可以是对差异字符加不同颜色的边框,或者对差异字符加上不同 线型和粗细的边框,或者对差异字符加上批注等,本公开对此不做限定。
图3示出了文本上显示字符差异信息的示意图,以图2所示的最长公共 子序列对获取结果为例,第一文字块中的最长公共子序列A和最长公共子序 列B之间存在非空格字符“跟地球通信”,而第二文字块中最长公共子序列A’和最长公共子序列B’之间不存在非空格字符,因而可以确定非空格字符“跟地球通信”为第二文字块中的删除内容,进而可以对该删除内容“跟地 球通信”加上细虚线边框。
第一文字块中的最长公共子序列B和最长公共子序列C不存在非空格 字符,而第二文字块中最长公共子序列B’和最长公共子序列C’之间存在非 空格字符“含”,因而可确定非空格字符“含”为第二文字块中的新增内容, 进而可以对该新增内容“含”加上粗虚线边框。
第一文字块中的最长公共子序列D和最长公共子序列E之间存在非空 格字符“使用”,且第二文字块中第三最长公共子序列D’和第四最长公共子 序列E’之间均存在非空格字符“信号”,因而可确定非空格字符“信号”为 第二文字块的更新内容,进而可以对非空格字符“使用”和该更新内容“信号”加上粗实线边框。
采用上述方法步骤,针对第一文字块和第二文字块中的最长公共子序列 对,获取分别属于第一文字块和第二文字块的最长公共子序列的显示属性信 息,比较两个最长公共子序列的显示属性信息是否一致,并在不一致的情况 下,生成差异描述信息。这样,基于该差异描述信息,可以直观显示两个最 长公共子序列的属性差异,无需人眼分辨,提升了用户体验。
采用上述实施方式,通过相邻两个最长公共子序列对之间的字符信息生 成差异描述信息。这样,基于该差异描述信息,可以直观地向用户展示文字块的字符差异,无需人眼分辨,提升了用户体验。
在本公开的另一个实施例中,对于文字块中的最长公共子序列对,还可 以比较最长公共子序列对的显示属性,具体地,如图4所示,上述方法还包 括:
在步骤S14中,分别获取最长公共子序列对中属于第一文字块的最长公 共子序列和属于第二文字块的最长公共子序列的显示属性信息。
在具体实施时,本公开实施例可以将待比较的最长公共子序列对以单词 为最小单位获取每一单词的显示属性信息。其中,显示属性信息可以例如包 括但不限于字符的颜色、字体(例如宋体、楷体等)、字号大小、字体样式 (例如粗体、斜体等)、超链接、删除线等等。
在步骤S15中,若属于所述第一文字块的最长公共子序列和所述属于第 二文字块的最长公共子序列的显示属性信息不一致,则生成属性差异信息, 所述属性差异信息用于显示所述最长公共子序列对的属性差异。
示例地,最长公共子序列对中某一文字的字体,颜色或者字号大小等显 示属性信息不同,则可以生成用于显示的差异描述信息,向用户展示最长公 共子序列对中字符显示属性的差异。
具体地,可以根据差异描述信息显示标记存在差异的字符,其中,显示 标记的方式可以是对差异字符加不同颜色的边框,或者对差异字符加上不同 线型和粗细的边框,或者对差异字符加上批注等,本公开对此不做限定。
图3还示出了文本上显示属性差异信息的示意图,仍以图2所示的最长 公共子序列对获取结果为例,在最长公共子序列对[C,C’]中,属于第一文字 块的最长公共子序列C中的单词“3.7米”为黑体,而属于第二文字块的最 长公共子序列C’中的单词“3.7米”为斜体,进而可以对该单词“3.7米”加 上粗虚线边框,以体现最长公共子序列C中的单词“3.7米”与最长公共子 序列C’中的单词“3.7米”的显示属性差异。
采用上述方法步骤,针对第一文字块和第二文字块中的最长公共子序列 对,获取分别属于第一文字块和第二文字块的最长公共子序列的显示属性信 息,比较两个最长公共子序列的显示属性信息是否一致,并在不一致的情况 下,生成差异描述信息。这样,基于该差异描述信息,可以直观显示两个最 长公共子序列的属性差异,无需人眼分辨,提升了用户体验。
本公开实施例还提供一种文本比较装置,用于实施上述方法实施例提供 的一种文本比较方法,如图5所示,该装置500包括:
分块模块501,用于对第一文本和第二文本进行分块;
第一获取模块502,用于针对由所述第一文本中文字块与所述第二文本 中文字块组成的文字块对,获取所述文字块对的最长公共子序列对;
第一生成模块503,用于根据相邻两个最长公共子序列对之间的字符信 息,生成差异描述信息,所述差异描述信息用于显示所述文字块对的字符差 异。
采用上述装置,对两个文本进行分块,以两个文本中文字块组成的文字 块对为单位,获取各个文字块对的最长公共子序列对,最长公共子序列对是 文字块对中相同的字符部分,也就是说,每个文字块对中相邻两个最长公共 子序列对之间的字符可认为是两文本的差异字符,只用比较两文字块的差异 字符便可生成相应的差异描述信息,相比于现有技术中以单词为最小单位进行文本比较,本公开提供的技术方案可以快速找到两文本之间的字符差异, 效率更高。并且,在获取各个文字块对的最长公共子序列后,两个文字块的 字符也相应对齐,相比于现有技术中以行为最小单位进行文本比较,本公开 提供的技术方案不会受到两文本的排版、字体、字号等因素的影响,因而精 确度更高。
可选地,如图6所示,所述第一获取模块502包括:
第一划分子模块521,用于将所述文字块对中的第一文字块划分为多个 第一子文字块,并将所述多个第一子文字块的信息存入一数组,得到第一子 文字块数组;
第二划分子模块522,用于将所述文字块对中的第二文字块划分为多个 第二子文字块,并将所述多个第二子文字块的信息存入另一数组,得到第二 子文字块数组;
确定子模块523,用于根据最长公共子序列算法确定所述第一子文字块 数组和所述第二子文字块数组中的最长公共子序列对。
可选地,所述第一划分子模块521用于:删除所述第一文字块中的空格 字符和空行字符,得到新的第一文字块,并将所述新的第一文字块划分为多 个第一子文字块;和/或
所述第二划分子模块522用于:删除所述第二文字块中的空格字符和空 行字符,得到新的第二文字块,并将所述新的第二文字块划分为多个第二子 文字块。
可选地,如图6所述,所述装置500还包括:
第二获取模块504,用于在所述第一划分子模块521将所述文字块对中 的第一文字块划分为多个第一子文字块之前,分别获取所述第一文字块中各 字符的索引信息,并将该索引信息存入一数组,得到第一索引信息数组,所 述第一索引信息数组用于还原所述第一文字块;和/或
第三获取模块505,用于在所述第二划分子模块522将所述文字块对中 的第二文字块划分为多个第二子文字块之前,分别获取所述第二文字块中各 字符的索引信息,并将该索引信息存入一数组,得到第二索引信息数组,所 述第二索引信息数组用于还原所述第二文字块。
可选地,如图6所示,所述第一生成模块503包括:
生成子模块531,用于针对所述第一文字块中的相邻两个最长公共子序 列,执行以下操作:
若第一最长公共子序列与第二最长公共子序列之间存在非空格字符,并 且所述第二文字块中与所述第一最长公共子序列对应的第三最长公共子序 列,以及与所述第二最长公共子序列对应的第四最长公共子序列之间不存在 非空格字符,则生成表征所述第一最长公共子序列与所述第二最长公共子序 列之间的非空格字符为所述第二文字块的删除内容的差异描述信息;
若所述第一最长公共子序列与所述第二最长公共子序列之间不存在非 空格字符,并且所述第三最长公共子序列与所述第四最长公共子序列之间存 在非空格字符,则生成表征所述第三最长公共子序列与所述第四最长公共子 序列之间的非空格字符为所述第二文字块的新增内容的差异描述信息;
若所述第一最长公共子序列与所述第二最长公共子序列之间以及所述 第三最长公共子序列与所述第四最长公共子序列之间均存在非空格字符,则生成表征所述第三最长公共子序列与所述第四最长公共子序列之间的非空 格字符为所述第二文字块的更新内容的差异描述信息。
可选地,如图6所示,所述装置500还包括:
第四获取模块506,用于分别获取所述最长公共子序列对中属于所述第 一文字块的最长公共子序列与属于所述第二文字块的最长公共子序列的显 示属性信息;
第二生成模块507,用于在所述属于所述第一文字块的最长公共子序列 和所述属于所述第二文字块的最长公共子序列的显示属性信息不一致时,生 成属性差异信息,所述属性差异信息用于显示所述最长公共子序列对的属性 差异。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有 关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
本领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述 各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能 分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块, 以完成以上描述的全部或者部分功能。上述描述功能模块的具体工作过程, 可以参考前述方法实施例中的对应过程,在此不再赘述。
本公开实施例还提供一种计算机可读存储介质,其上存储有计算机程序, 该程序被处理器执行时实现上述方法实施例提供的一种文本比较方法的步 骤。
本公开实施例还提供一种电子设备,该电子设备可以被提供作为一种服 务器,该电子设备包括:
存储器,其上存储有计算机程序;
处理器,用于执行所述存储器中的所述计算机程序,以实现上述方法实 施例提供的一种文本比较方法的步骤。
图7是根据一示例性实施例示出的一种电子设备700的框图。例如,电 子设备700可以被提供为一服务器。参照图7,电子设备700包括处理器722, 其数量可以为一个或多个,以及存储器732,用于存储可由处理器722执行的计算机程序。存储器732中存储的计算机程序可以包括一个或一个以上的 每一个对应于一组指令的模块。此外,处理器722可以被配置为执行该计算 机程序,以执行上述的文本比较方法。
另外,电子设备700还可以包括电源组件726和通信组件750,该电源 组件726可以被配置为执行电子设备700的电源管理,该通信组件750可以 被配置为实现电子设备700的通信,例如,有线或无线通信。此外,该电子 设备700还可以包括输入/输出(I/O)接口758。电子设备700可以操作基 于存储在存储器732的操作系统,例如Windows ServerTM,Mac OSXTM, UnixTM,LinuxTM等等。
在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储 介质,该程序指令被处理器执行时实现上述的文本比较方法的步骤。例如, 该计算机可读存储介质可以为上述包括程序指令的存储器732,上述程序指 令可由电子设备700的处理器722执行以完成上述的文本比较方法。
以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限 于上述实施方式中的具体细节,在本公开的技术构思范围内,可以对本公开 的技术方案进行多种简单变型,这些简单变型均属于本公开的保护范围。
另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征, 在不矛盾的情况下,可以通过任何合适的方式进行组合。为了避免不必要的 重复,本公开对各种可能的组合方式不再另行说明。
此外,本公开的各种不同的实施方式之间也可以进行任意组合,只要其 不违背本公开的思想,其同样应当视为本公开所公开的内容。
Claims (10)
1.一种文本比较方法,其特征在于,包括:
对第一文本和第二文本进行分块;
针对由所述第一文本中文字块与所述第二文本中文字块组成的文字块对,获取所述文字块对的最长公共子序列对;
根据相邻两个最长公共子序列对之间的字符信息,生成差异描述信息,所述差异描述信息用于显示所述文字块对的字符差异;
分别获取最长公共子序列对中属于第一文字块的最长公共子序列和属于第二文字块的最长公共子序列的显示属性信息,所述文字块对包括所述第一文字块和所述第二文字块;
若属于所述第一文字块的最长公共子序列和所述属于第二文字块的最长公共子序列的显示属性信息不一致,则生成属性差异信息,所述属性差异信息用于显示所述最长公共子序列对的属性差异。
2.根据权利要求1所述的方法,其特征在于,所述获取所述文字块对的最长公共子序列对,包括:
将所述文字块对中的第一文字块划分为多个第一子文字块,并将所述多个第一子文字块的信息存入一数组,得到第一子文字块数组;
将所述文字块对中的第二文字块划分为多个第二子文字块,并将所述多个第二子文字块的信息存入另一数组,得到第二子文字块数组;
根据最长公共子序列算法确定所述第一子文字块数组和所述第二子文字块数组中的最长公共子序列对。
3.根据权利要求2所述的方法,其特征在于,所述将所述文字块对中的第一文字块划分为多个第一子文字块,包括:
删除所述第一文字块中的空格字符和空行字符,得到新的第一文字块,并将所述新的第一文字块划分为多个第一子文字块;和/或
所述将所述文字块对中的第二文字块划分为多个第二子文字块,包括:
删除所述第二文字块中的空格字符和空行字符,得到新的第二文字块,并将所述新的第二文字块划分为多个第二子文字块。
4.根据权利要求3所述的方法,其特征在于,在所述将所述文字块对中的第一文字块划分为多个第一子文字块之前,所述方法还包括:
分别获取所述第一文字块中各字符的索引信息,并将该索引信息存入一数组,得到第一索引信息数组,所述第一索引信息数组用于还原所述第一文字块;和/或
在所述将所述文字块对中的第二文字块划分为多个第二子文字块之前,所述方法还包括:
分别获取所述第二文字块中各字符的索引信息,并将该索引信息存入一数组,得到第二索引信息数组,所述第二索引信息数组用于还原所述第二文字块。
5.一种文本比较装置,其特征在于,包括:
分块模块,用于对第一文本和第二文本进行分块;
第一获取模块,用于针对由所述第一文本中文字块与所述第二文本中文字块组成的文字块对,获取所述文字块对的最长公共子序列对;
第一生成模块,用于根据相邻两个最长公共子序列对之间的字符信息,生成差异描述信息,所述差异描述信息用于显示所述文字块对的字符差异;
第四获取模块,用于分别获取所述最长公共子序列对中属于所述第一文字块的最长公共子序列与属于所述第二文字块的最长公共子序列的显示属性信息,所述文字块对包括所述第一文字块和所述第二文字块;
第二生成模块,用于在属于所述第一文字块的最长公共子序列和所述属于所述第二文字块的最长公共子序列的显示属性信息不一致时,生成属性差异信息,所述属性差异信息用于显示所述最长公共子序列对的属性差异。
6.根据权利要求5所述的装置,其特征在于,所述第一获取模块包括:
第一划分子模块,用于将所述文字块对中的第一文字块划分为多个第一子文字块,并将所述多个第一子文字块的信息存入一数组,得到第一子文字块数组;
第二划分子模块,用于将所述文字块对中的第二文字块划分为多个第二子文字块,并将所述多个第二子文字块的信息存入另一数组,得到第二子文字块数组;
确定子模块,用于根据最长公共子序列算法确定所述第一子文字块数组和所述第二子文字块数组中的最长公共子序列对。
7.根据权利要求6所述的装置,其特征在于,所述第一划分子模块用于:删除所述第一文字块中的空格字符和空行字符,得到新的第一文字块,并将所述新的第一文字块划分为多个第一子文字块;和/或
所述第二划分子模块用于:删除所述第二文字块中的空格字符和空行字符,得到新的第二文字块,并将所述新的第二文字块划分为多个第二子文字块。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括:
第二获取模块,用于在所述第一划分子模块将所述文字块对中的第一文字块划分为多个第一子文字块之前,分别获取所述第一文字块中各字符的索引信息,并将该索引信息存入一数组,得到第一索引信息数组,所述第一索引信息数组用于还原所述第一文字块;和/或
第三获取模块,用于在所述第二划分子模块将所述文字块对中的第二文字块划分为多个第二子文字块之前,分别获取所述第二文字块中各字符的索引信息,并将该索引信息存入一数组,得到第二索引信息数组,所述第二索引信息数组用于还原所述第二文字块。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1至4中任一项所述方法的步骤。
10.一种电子设备,其特征在于,包括:
存储器,其上存储有计算机程序;
处理器,用于执行所述存储器中的所述计算机程序,以实现权利要求1至4中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811592924.XA CN109815452B (zh) | 2018-12-25 | 2018-12-25 | 文本比较方法、装置、存储介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811592924.XA CN109815452B (zh) | 2018-12-25 | 2018-12-25 | 文本比较方法、装置、存储介质及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109815452A CN109815452A (zh) | 2019-05-28 |
CN109815452B true CN109815452B (zh) | 2023-04-07 |
Family
ID=66601771
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811592924.XA Active CN109815452B (zh) | 2018-12-25 | 2018-12-25 | 文本比较方法、装置、存储介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109815452B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110413960B (zh) * | 2019-06-19 | 2023-03-28 | 平安银行股份有限公司 | 文件对比方法、装置、计算机设备及计算机可读存储介质 |
CN110472205B (zh) * | 2019-08-22 | 2023-06-06 | 北京明略软件系统有限公司 | 文件差异化的比对方法及装置、存储介质和电子装置 |
CN111027304B (zh) * | 2019-11-18 | 2023-04-14 | 东软集团股份有限公司 | 文字块排序方法、装置、存储介质及电子设备 |
CN111353289B (zh) * | 2020-02-19 | 2023-07-25 | 东软集团股份有限公司 | 文档比对方法、装置、存储介质、电子设备 |
CN112149402B (zh) * | 2020-09-23 | 2023-05-23 | 创新奇智(青岛)科技有限公司 | 文档对比方法、装置、电子设备和计算机可读存储介质 |
CN112507660A (zh) * | 2020-12-07 | 2021-03-16 | 厦门美亚亿安信息科技有限公司 | 一种用于复合文档的同源判定、差异化显示方法和系统 |
CN114742029B (zh) * | 2022-04-20 | 2022-12-16 | 中国传媒大学 | 一种汉语文本比对方法、存储介质及设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104123280A (zh) * | 2013-04-24 | 2014-10-29 | 中国银联股份有限公司 | 文件比对方法和设备 |
CN104639606A (zh) * | 2014-12-29 | 2015-05-20 | 曙光信息产业(北京)有限公司 | 一种差异化对比分块的优化方法 |
CN105589838A (zh) * | 2015-12-24 | 2016-05-18 | 中国电子科技集团公司第三十三研究所 | 一种基于文件比较的电子公文痕迹保留方法 |
CN106897258A (zh) * | 2017-02-27 | 2017-06-27 | 郑州云海信息技术有限公司 | 一种文本差异性的计算方法及装置 |
CN108268884A (zh) * | 2016-12-31 | 2018-07-10 | 方正国际软件(北京)有限公司 | 一种文档对比方法及装置 |
CN108734110A (zh) * | 2018-04-24 | 2018-11-02 | 达而观信息科技(上海)有限公司 | 基于最长公共子序列的文本段落识别对比方法及系统 |
-
2018
- 2018-12-25 CN CN201811592924.XA patent/CN109815452B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104123280A (zh) * | 2013-04-24 | 2014-10-29 | 中国银联股份有限公司 | 文件比对方法和设备 |
CN104639606A (zh) * | 2014-12-29 | 2015-05-20 | 曙光信息产业(北京)有限公司 | 一种差异化对比分块的优化方法 |
CN105589838A (zh) * | 2015-12-24 | 2016-05-18 | 中国电子科技集团公司第三十三研究所 | 一种基于文件比较的电子公文痕迹保留方法 |
CN108268884A (zh) * | 2016-12-31 | 2018-07-10 | 方正国际软件(北京)有限公司 | 一种文档对比方法及装置 |
CN106897258A (zh) * | 2017-02-27 | 2017-06-27 | 郑州云海信息技术有限公司 | 一种文本差异性的计算方法及装置 |
CN108734110A (zh) * | 2018-04-24 | 2018-11-02 | 达而观信息科技(上海)有限公司 | 基于最长公共子序列的文本段落识别对比方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN109815452A (zh) | 2019-05-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109815452B (zh) | 文本比较方法、装置、存储介质及电子设备 | |
US8560558B2 (en) | Computer product, search apparatus, management apparatus, search method, and management method | |
CN111488732B (zh) | 一种变形关键词检测方法、系统及相关设备 | |
US20070195095A1 (en) | Applying effects to a merged text path | |
CN108710601A (zh) | 一种文本显示方法及其设备、存储介质、电子设备 | |
CN111930976B (zh) | 演示文稿生成方法、装置、设备及存储介质 | |
CN111062186B (zh) | 文本处理方法、装置、计算机设备和存储介质 | |
KR20150099936A (ko) | 전자문서의 레이아웃 유지를 위한 대체폰트 적용 방법 및 그 장치 | |
US9946813B2 (en) | Computer-readable recording medium, search support method, search support apparatus, and responding method | |
US20170132484A1 (en) | Two Step Mathematical Expression Search | |
US20130322759A1 (en) | Method and device for identifying font | |
CN109740125B (zh) | 用于文件比较的更新查找方法、装置、存储介质和设备 | |
WO2014178903A1 (en) | Hardware glyph cache | |
CN109710896B (zh) | 文字属性差异标记方法,装置,存储介质及电子设备 | |
CN105389112A (zh) | 一种用户终端上书写字迹的显示方法及用户终端 | |
CN110134920A (zh) | 绘文字兼容显示方法、装置、终端及计算机可读存储介质 | |
JP2017528777A (ja) | テキスト情報の入力方法及び装置 | |
EP2787448A1 (en) | Method and device for determining font | |
CN116225956A (zh) | 自动化测试方法、装置、计算机设备和存储介质 | |
CN109543174B (zh) | 文本选择方法、装置、计算机可读存储介质和计算机设备 | |
CN107145947B (zh) | 一种信息处理方法、装置及电子设备 | |
CN113688150A (zh) | 一种关键字查找方法、装置、电子设备和存储介质 | |
CN110263303B (zh) | 文本修改历史的追溯方法及装置 | |
US9075776B2 (en) | Document processing apparatus, document processing method, and program | |
KR20210050146A (ko) | 입력된 문자를 기초로 전자 문서 상의 특정 위치에 특수문자의 삽입을 가능하게 하는 전자 문서 편집 장치 및 그 동작 방법 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |