CN109684437B - 用于文件比较的内容对齐方法、装置、存储介质和设备 - Google Patents
用于文件比较的内容对齐方法、装置、存储介质和设备 Download PDFInfo
- Publication number
- CN109684437B CN109684437B CN201811368186.0A CN201811368186A CN109684437B CN 109684437 B CN109684437 B CN 109684437B CN 201811368186 A CN201811368186 A CN 201811368186A CN 109684437 B CN109684437 B CN 109684437B
- Authority
- CN
- China
- Prior art keywords
- file
- common
- elements
- gap
- empty
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/194—Calculation of difference between files
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开涉及一种用于文件比较的内容对齐方法、装置、存储介质和设备,该方法包括:在第一文件和第二文件中以每个预设单位的内容作为一个元素,对第一文件和第二文件进行对比,以获取第一文件与第二文件的第一最大公共子序列;根据第一最大公共子序列,确定第一文件中的共通元素和删除元素,以及第二文件中的共通元素和添加元素;通过将第一文件中的共通元素与第二文件中的共通元素建立索引对应关系进行对齐;根据删除元素所在的共通元素间隙与添加元素所在的共通元素间隙的位置对应关系,对第一文件中的删除元素与第二文件中的添加元素进行标记处理。能够不依赖于复杂算法实现文件之间的对比和内容对齐,能够降低实现难度,易于实现。
Description
技术领域
本公开涉及文本处理技术领域,具体地,涉及一种用于文件比较的内容对齐方法、装置、存储介质和设备。
背景技术
在日常应用中,文件/文本的比较在很多领域都是一个比较常见的需求。例如对比两个文件中的两篇文章(例如对比两个word文件),或者对比两个文件中的代码(例如两个脚本中的代码差异)等等。进行文件比对的目的通常是为了实现两个文件的行或段落的对齐,从而找到内容相关性和差异。
由于通过文件对比能够帮助用户快速地找到两个文件中的相关性和差异,因此无论是对于个人还是多人协作,文件对比都是日常应用中的一个重要功能,能够提高用户的工作效率。例如在目前的软件开发中,基本都是由多人协作开发完成,因此对于其他人修改的文件,通过文件比较可以快速地找到相同的内容,并定位差异的位置,从而方便协作人员进行后续处理,降低开发人员的工作量。
目前,现有的通过进行文件对比将文件中的行或段落对齐的实现方法通常是基于比较复杂的算法实现,实现难度大。
发明内容
本公开的目的是提供一种用于文件比较的内容对齐方法、装置、存储介质和设备,用于解决现有的文件内容对齐方法的算法复杂,实现难度大的问题。
为了实现上述目的,本公开的第一方面,提供一种用于文件比较的内容对齐方法,所述方法包括:
在第一文件和第二文件中以每个预设单位的内容作为一个元素,对所述第一文件和所述第二文件进行对比,以获取第一文件与第二文件的第一最大公共子序列,所述第一最大公共子序列为所述第一文件和所述第二文件中的元素排列顺序一致的最大公共部分;
根据所述第一最大公共子序列,确定所述第一文件中的共通元素和删除元素,以及所述第二文件中的共通元素和添加元素,所述删除元素为所述第一文件中除所述共通元素之外的其他元素,所述添加元素为所述第二文件中除所述共通元素之外的其他元素;
通过将所述第一文件中的共通元素与所述第二文件中的共通元素建立索引对应关系,将所述第一文件中的共通元素与所述第二文件中的共通元素进行对齐;
根据所述第一文件中的删除元素所在的共通元素间隙与所述第二文件中的添加元素所在的共通元素间隙的位置对应关系,对所述第一文件中的删除元素与所述第二文件中的添加元素进行标记处理。
可选地,所述通过将所述第一文件中的共通元素与所述第二文件中的共通元素建立索引对应关系,将所述第一文件中的共通元素与所述第二文件中的共通元素进行对齐,包括:
获取所述第一文件中的共通元素中的每个元素的索引号,以及所述第二文件中的共通元素中的每个元素的索引号;
依次将所述第一文件中的共通元素中的每个元素的索引号与所述第二文件中的共通元素中的对应元素的索引号进行关联,以建立所述索引对应关系,以将所述第一文件中的共通元素与所述第二文件中的共通元素进行对齐。
可选地,所述根据所述第一文件中的删除元素所在的共通元素间隙与所述第二文件中的添加元素所在的共通元素间隙的位置对应关系,对所述第一文件中的删除元素与所述第二文件中的添加元素进行标记处理,包括:
当在所述第一文件中的共通元素的第一间隙处存在至少一个删除元素,在所述第二文件中的共通元素的第二间隙处不存在添加元素时,对所述至少一个删除元素不进行处理;所述第一间隙是所述第一文件中的共通元素中的任意两个元素之间的缝隙,所述第二间隙是与所述第一间隙位置对应的间隙;
当在所述第一间隙处不存在删除元素,在所述第二间隙处存在至少一个添加元素时,对所述至少一个添加元素不进行处理;
当在所述第一间隙处存在n个删除元素,且在所述第二间隙处存在m个添加元素时,将所述n个删除元素和m个添加元素标记为更新。
可选地,当所述第一文件和所述第二文件中包含空行时,在所述在第一文件和第二文件中以每个预设单位的内容作为一个元素,对所述第一文件和所述第二文件进行对比,以获取第一文件与第二文件的最大公共子序列之前,所述方法还包括:
在所述第一文件和所述第二文件中忽略空行,并记录所述第一文件中的每个空行的索引号,以及所述第二文件中的每个空行的索引号;
在将所述第一文件中的共通元素与所述第二文件中的共通元素进行对齐之后,所述方法还包括:
根据所述第一文件中的每个空行的索引号,以及所述第二文件中的每个空行的索引号,在已完成共通元素对齐后的所述第一文件和所述第二文件中插入空行,以进行空行复位;
在完成空行复位后,根据所述第一文件中的空行所在的共通元素间隙与所述第二文件中的空行所在的共通元素间隙的位置对应关系,将所述第一文件中的空行与所述第二文件中的空行进行对齐。
可选地,所述根据所述第一文件中的空行所在的共通元素间隙与所述第二文件中的空行所在的共通元素间隙的位置对应关系,将所述第一文件中的空行与所述第二文件中的空行进行对齐,包括:
当在所述第一文件中的共通元素的第三间隙处存在至少一个空行,在所述第二文件中的共通元素的第四间隙处不存在空行时,对所述至少一个空行不进行处理;所述第三间隙是所述第一文件中的共通元素中的任意两个元素之间的缝隙,所述第四间隙是与所述第一间隙位置对应的间隙;
当在所述第三间隙处不存在空行,在所述第四间隙处存在至少一个空行时,对所述至少一个空行不进行处理;
当在所述第一间隙处存在n个空行,且在所述第二间隙处存在m个空行时,分别将n个空行中的每个空行的索引号与所述m个空行中位置对应的空行的索引号进行关联。
第二方面,提供一种用于文件比较的内容对齐装置,所述装置包括:
对比模块,用于在第一文件和第二文件中以每个预设单位的内容作为一个元素,对所述第一文件和所述第二文件进行对比,以获取第一文件与第二文件的第一最大公共子序列,所述第一最大公共子序列为所述第一文件和所述第二文件中的元素排列顺序一致的最大公共部分;
确定模块,用于根据所述第一最大公共子序列,确定所述第一文件中的共通元素和删除元素,以及所述第二文件中的共通元素和添加元素,所述删除元素为所述第一文件中除所述共通元素之外的其他元素,所述添加元素为所述第二文件中除所述共通元素之外的其他元素;
第一对齐模块,用于通过将所述第一文件中的共通元素与所述第二文件中的共通元素建立索引对应关系,将所述第一文件中的共通元素与所述第二文件中的共通元素进行对齐;
标记模块,用于根据所述第一文件中的删除元素所在的共通元素间隙与所述第二文件中的添加元素所在的共通元素间隙的位置对应关系,对所述第一文件中的删除元素与所述第二文件中的添加元素进行标记处理。
可选地,所述第一对齐模块,包括:
索引获取子模块,用于获取所述第一文件中的共通元素中的每个元素的索引号,以及所述第二文件中的共通元素中的每个元素的索引号;
对齐子模块,用于依次将所述第一文件中的共通元素中的每个元素的索引号与所述第二文件中的共通元素中的对应元素的索引号进行关联,以建立所述索引对应关系,以将所述第一文件中的共通元素与所述第二文件中的共通元素进行对齐。
可选地,所述标记模块,用于:
当在所述第一文件中的共通元素的第一间隙处存在至少一个删除元素,在所述第二文件中的共通元素的第二间隙处不存在添加元素时,对所述至少一个删除元素不进行处理;所述第一间隙是所述第一文件中的共通元素中的任意两个元素之间的缝隙,所述第二间隙是与所述第一间隙位置对应的间隙;
当在所述第一间隙处不存在删除元素,在所述第二间隙处存在至少一个添加元素时,对所述至少一个添加元素不进行处理;
当在所述第一间隙处存在n个删除元素,且在所述第二间隙处存在m个添加元素时,将所述n个删除元素和m个添加元素标记为更新。
可选地,当所述第一文件和所述第二文件中包含空行时,所述装置还包括:
空行处理模块,用于在所述在第一文件和第二文件中以每个预设单位的内容作为一个元素,对所述第一文件和所述第二文件进行对比,以获取第一文件与第二文件的最大公共子序列之前,在所述第一文件和所述第二文件中忽略空行,并记录所述第一文件中的每个空行的索引号,以及所述第二文件中的每个空行的索引号;
空行复位模块,用于在将所述第一文件中的共通元素与所述第二文件中的共通元素进行对齐之后,根据所述第一文件中的每个空行的索引号,以及所述第二文件中的每个空行的索引号,在已完成共通元素对齐后的所述第一文件和所述第二文件中插入空行,以进行空行复位;
第二对齐模块,用于在完成空行复位后,根据所述第一文件中的空行所在的共通元素间隙与所述第二文件中的空行所在的共通元素间隙的位置对应关系,将所述第一文件中的空行与所述第二文件中的空行进行对齐。
可选地,所述第二对齐模块,用于:
当在所述第一文件中的共通元素的第三间隙处存在至少一个空行,在所述第二文件中的共通元素的第四间隙处不存在空行时,对所述至少一个空行不进行处理;所述第三间隙是所述第一文件中的共通元素中的任意两个元素之间的缝隙,所述第四间隙是与所述第一间隙位置对应的间隙;
当在所述第三间隙处不存在空行,在所述第四间隙处存在至少一个空行时,对所述至少一个空行不进行处理;
当在所述第一间隙处存在n个空行,且在所述第二间隙处存在m个空行时,分别将n个空行中的每个空行的索引号与所述m个空行中位置对应的空行的索引号进行关联。
第三方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面所述方法的步骤。
第四方面,提供一种电子设备,包括:
存储器,其上存储有计算机程序;
处理器,用于执行所述存储器中的所述计算机程序,以实现上述第二方面所述方法的步骤。
在上述技术方案中,在第一文件和第二文件中以每个预设单位的内容作为一个元素,对第一文件和第二文件进行对比,以获取第一文件与第二文件的第一最大公共子序列,该第一最大公共子序列为第一文件和第二文件中的元素排列顺序一致的最大公共部分;根据该第一最大公共子序列,确定第一文件中的共通元素和删除元素,以及第二文件中的共通元素和添加元素,该删除元素为第一文件中除共通元素之外的其他元素,添加元素为第二文件中除共通元素之外的其他元素;通过将第一文件中的共通元素与第二文件中的共通元素建立索引对应关系,将第一文件中的共通元素与第二文件中的共通元素进行对齐;根据第一文件中的删除元素所在的共通元素间隙与第二文件中的添加元素所在的共通元素间隙的位置对应关系,对第一文件中的删除元素与第二文件中的添加元素进行标记处理。能够不依赖于复杂算法实现文件之间的对比和内容对齐,能够降低实现难度,易于实现。
本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:
图1是根据一示例性实施例示出的一种用于文件比较的内容对齐方法的流程示意图;
图2a是根据本公开一示例性实施例示出的一种元素对齐方法的流程示意图;
图2b是根据本公开一示例性实施例示出的一种共通行对齐的示意图;
图3a是根据本公开一示例性实施例示出的另一种元素对齐方法的流程示意图;
图3b是根据本公开一示例性实施例示出的一种删除行和添加行对齐的示意图;
图4a是根据一示例性实施例示出的另一种用于文件比较的内容对齐方法的流程示意图;
图4b是根据本公开一示例性实施例示出的一种带空行的文件的示意图;
图4c是根据本公开一示例性实施例示出的一种空行对齐方法的流程示意图;
图4d是根据本公开一示例性实施例示出的一种带空行的文件对齐的示意图;
图5是根据本公开一示例性实施例示出的一种用于文件比较的内容对齐装置的框图;
图6是根据本公开一示例性实施例示出的第一对齐模块的框图;
图7是根据本公开一示例性实施例示出的另一种用于文件比较的内容对齐装置的框图;
图8是根据一示例性实施例示出的一种电子设备的框图;
图9是根据一示例性实施例示出的另一种电子设备的框图。
具体实施方式
以下结合附图对本公开的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本公开,并不用于限制本公开。
图1是根据一示例性实施例示出的一种用于文件比较的内容对齐方法的流程示意图,如图1所示,该方法包括:
步骤101,在第一文件和第二文件中以每个预设单位的内容作为一个元素,对该第一文件和该第二文件进行对比,以获取第一文件与第二文件的第一最大公共子序列。
在进行第一文件和第二文件的对比之前,首先需要将第一文件和第二文件进行序列化,序列化可以理解为是在文件中以每个预设单位的内容作为一个元素,从而一个文件就可以看作是由多个上述元素按顺序组成的一个元素序列。
示例的,上述第一文件和第二文件可以是记录有文字或者代码的文件,该预设单位内容可以是词语、句子、行或段落等等,其可以根据需要来设置,即可以将一个词、一句话、一行或一段作为一个整体看待,当作一个元素。因此,该第一文件和第二文件以每个预设单位的内容作为一个元素,则可以得到第一文件对应的元素序列,以及第二文件对应的元素序列。然后按照第一文件对应的元素序列,以及第二文件对应的元素序列,对该第一文件和该第二文件进行对比可以确定第一文件与第二文件的第一最大公共子序列。其中,该第一最大公共子序列为该第一文件和该第二文件中的元素排列顺序一致的最大公共部分。
举例来说,假设以行作为该预设单位,则第一文件和第二文件中的每行就是上述的一个元素,如果用一个字母表示一行,则假设完成序列化的第一文件和第二文件可以分别表示为以下的序列:
第一文件=AAACCGTGAFTTATTCGTTCTAGA
第二文件=CACCCCTAAGGTACCTTTGGTT
其中,上述第一文件和第二文件中的每个字母均表示文件中的一行,字母在序列中的顺序就表示了该字母所表示的行在文件中的顺序。通过对比第一文件的序列和第二文件的序列即可确定,第一文件和第二文件的最大公共子序列。该最大公共子序列,即第一文件和第二文件中所拥有的行内容相同,且排列顺序一致的最长共有序列,因此可以确定该最大公共子序列,也即第一文件与第二文件的第一最大公共子序列为:S=ACCTAGTACTTTG。
步骤102,根据该第一最大公共子序列,确定该第一文件中的共通元素和删除元素,以及该第二文件中的共通元素和添加元素。
其中,该第一文件中的共通元素和第二文件中的共通元素就是该第一最大公共子序列,该删除元素为该第一文件中除该共通元素之外的其他元素,该添加元素为该第二文件中除该共通元素之外的其他元素。
还是以行作为上述的预设单位为例,则这里的共通元素为共通行,删除元素为删除行,添加元素为添加行,则以步骤101中的第一文件的序列和第二文件的序列为例,第一文件和第二文件的共通行是:ACCTAGTACTTTG,则第一文件中的删除行是第一文件中的除了共通行之外的其他行,则删除行=AAGGTTTGCAA,第二文件中的添加行是第二文件中的除了共通行之外的其他行,则添加行=CCCAGCGTT。
步骤103,通过将该第一文件中的共通元素与该第二文件中的共通元素建立索引对应关系,将该第一文件中的共通元素与该第二文件中的共通元素进行对齐。
示例的,可以预先为第一文件和第二文件中的每个元素按照其在文件中的出现顺序设置索引号。例如,以行为上述预设单位为例,在第一文件中的为每行设置索引号(即行号),在第二文件中也为每行设置索引号。从而,在第一文件和第二文件中,每行都具备唯一的索引号。因此经过步骤101-102确定了第一文件和第二文件中的共通行后,通过将第一文件的共通行和第二文件中的共通行中的对应行(对应行可以理解为第一文件和第二文件的共通行中,出现顺序一致的行,例如第一文件的共通行ACCTAGTACTTTG中的第一个A对应第二文件的共通行ACCTAGTACTTTG中的第一个A)的索引号建立对应关系,即可实现第一文件与第二文件中的共通行的对齐(或者称为拉手)。上述的上述预设单位也可以是段落,从而可以按照每个段落在文件中的出现顺序设置各个段落的索引号,从而第一文件和第二文件中的共通元素即为共通段落,基于各个段落的索引号,为第一文件和第二文件的共通段落进行对齐的方法,与上述进行共通行的对齐的方法相同,不再赘述。
步骤104,根据该第一文件中的删除元素所在的共通元素间隙与该第二文件中的添加元素所在的共通元素间隙的位置对应关系,对第一文件中的删除元素与第二文件中的添加元素进行标记处理。
其中,共通元素间隙可以包括共通元素中任意两个元素之间的位置,共通元素的首个元素之前的位置,共通元素的最后一个元素之后的位置。共通元素间隙的位置对应关系可以理解为:如果在第一文件中的某个共通元素间隙的位置与如果在第一文件中的某个共通元素间隙的位置是一致,就认为这两个间隙是对应的。因此,在确定第一文件中的删除元素,以及第二文件中的添加元素后,可以记录删除元素与相邻的共通元素之间的对应关系,以便记录删除元素所在的共通元素间隙,对于添加元素也是同理,可以以此记录添加元素所在的共通元素间隙。以行为上述预设单位为例,则共通元素间隙为共通行间隙。例如,第一文件的共通行ACCTAGTACTTTG中的第一个A之前的位置与第二文件的共通行ACCTAGTACTTTG中的第一个A之前的位置对应,第一文件的共通行ACCTAGTACTTTG中的第一个A和第一个C之间的位置,与第二文件的共通行ACCTAGTACTTTG中的第一个A和第一个C之间的位置对应。
因此,根据第一文件=AAACCGTGAFTTATTCGTTCTAGA,和第二文件=CACCCCTAAGGTACCTTTGGTT来看,第一文件的共通行中的第一个A之前的位置中的删除行AA,与第二文件的共通行中的第一个A之前的位置中的添加行C在位置上是对应的,即删除行AA和添加行C处于位置对应的共通行间隙中。在第一文件的共通行中的第一个A和第一个C之间的位置中不存在删除行,第二文件的共通行中的第一个A和第一个C之间的位置中存在添加行CC,从而在共通行中的第一个A和第一个C之间的这个间隙中,不存在删除行,只存在添加行。以此类推,可以得到第一文件和第二文件的所有删除行和添加行在各个共通行间隙中之间的位置对应关系。
其中,对于位置对应的共通行间隙上,如果只存在删除行不存在添加行,或者不存在删除行只存在添加行,那么是无法对齐的,对于这样的共通行间隙中的删除行或添加行不进行处理。如果位置对应的共通行间隙中既存在删除行,又存在添加行,那么可以标记为更新。如果是以段落、词语、句子为上述预设单位,则实现方法相同,不再赘述。
由此可见,通过上述技术方案,将第一文件和第二文件均以每个预设单位的内容作为一个元素,看作两个元素序列,从而能够利用文字对比技术中计算最大子序列的方式实现两个文件的对比,以实现两个文件之间的共通元素的对齐,以及删除元素和添加元素的对齐。从而无需利用复杂算法即可实现文件对比,实现文件中内容的对齐,能够降低文件对比的实现难度,更易于实现。
图2a是根据本公开一示例性实施例示出的一种元素对齐方法的流程示意图,如图2a所示,步骤103所述的通过将所述第一文件中的共通元素与所述第二文件中的共通元素建立索引对应关系,将所述第一文件中的共通元素与所述第二文件中的共通元素进行对齐,包括:
步骤1031,获取第一文件中的共通元素中的每个元素的索引号,以及第二文件中的共通元素中的每个元素的索引号。
步骤1032,依次将第一文件中的共通元素中的每个元素的索引号与第二文件中的共通元素中的对应元素的索引号进行关联,以建立该索引对应关系,以将第一文件中的共通元素与第二文件中的共通元素进行对齐。
其中,同一共通元素在第一文件中的索引号和在第二文件中的索引号可能不同(也可能相同),因此可以理解一个共通元素对应有两个索引号。下面以行为上述预设单位为例进行说明。
图2b是根据本公开一示例性实施例示出的一种共通行对齐的示意图,如图2b所示,图中示出了第一文件的序列和第二文件的序列中的各行的索引号,其中在第一文件:AAACCGTGAFTTATTCGTTCTAGA中的各行的索引号依次为A1-A24,在第二文件:CACCCCTAAGGTACCTTTGGTT中的各行的索引号依次为B1-B22(这里采用的索引号形式是示例性的,包括但不限于此形式,也可以采用纯数字或纯字母的形式,在此不一一列举)。另外,第一文件和第二文件的最大公共子序列,也即第一文件和第二文件中的共通行为图中表示第一文件和第二文件的各行字母中的具有下划线的部分,如图2b中所示,为:ACCTAGTACTTTG。因此第一文件中的共通行ACCTAGTACTTTG的索引号分别为A3、A4、A5、A7、A9、A10、A12、A13、A16、A18、A19、A21、A23,第一文件中的共通行ACCTAGTACTTTG的索引号分别为B2、B5、B6、B7、B8、B11、B12、B13、B14、B16、B17、B18、B19。然后可以将第一文件中的共通行和第一文件中的共通行的索引号建立关联关系,即将A3和B2、A4和B5、A5和B6、A7和B7、A9和B8、A10和B11、A12和B12、A13和B13、A16和B14、A18和B16、A19和B17、A21和B18、A23和B19建立关联关系,从而就将第一文件中的共通行和第一文件中的共通行完成了拉手,实现了第一文件和第二文件共通行的对齐。如果是以段落、词语、句子为上述预设单位,则实现方法相同,不再赘述。
图3a是根据本公开一示例性实施例示出的另一种元素对齐方法的流程示意图,如图3a所示,步骤104所述的根据第一文件中的删除元素所在的共通元素间隙与第二文件中的添加元素所在的共通元素间隙的位置对应关系,对第一文件中的删除元素与第二文件中的添加元素进行标记处理,包括:
步骤1041,当在第一文件中的共通元素的第一间隙处存在至少一个删除元素,在第二文件中的共通元素的第二间隙处不存在添加元素时,对至少一个删除元素不进行处理,第一间隙是第一文件中的共通元素中的任意两个元素之间的缝隙,第二间隙是与第一间隙位置对应的间隙。
步骤1042,当在第一间隙处不存在删除元素,在第二间隙处存在至少一个添加元素时,对至少一个添加元素不进行处理。
步骤1043,当在第一间隙处存在n个删除元素,且在第二间隙处存在m个添加元素时,将该n个删除元素和m个添加元素标记为更新。
即可以理解为:对于位置对应的共通行间隙上,如果只存在删除元素不存在添加元素,或者不存在删除元素只存在添加元素,那么是无法对齐的,对于这样的共通行间隙中的删除元素或添加元素不进行处理。而位置对应的共通行间隙中既存在删除元素,又存在添加元素,那么可以标记为更新,被标记为更新的元素可以理解为用于标记第一文件和第二文件的对应的共通行间隙中均存在元素,但是是内容不同的元素。
举例来说,图3b是根据本公开一示例性实施例示出的一种删除行和添加行对齐的示意图,如图3b所示,在图中以每个字母表示一行,从而以序列的形式,分别示出了第一文件和第二文件,并且在第一文件对应的字母上方以及第二文件对应的字母下方,用“=”表示共通行“-”表示删除行,“+”表示添加行。其中对于第一文件中的删除行和第二文件中的添加行由于无法对齐,因此不进行处理。根据图3b可知,第一文件和第二文件中,在位置对应的共通行间隙中既有删除行、又有添加行的一共有三处,分别为AA和C,G和C,A和GTT这三组,因此可以将AA和C,G和C,A和GTT标记为更新,在图3b中以“?”表示。如果是以段落、词语、句子为上述预设单位,则实现方法相同,不再赘述。
在文件对比时,文件中除了文字外还可能存在空行,在很多情况下,在对比时是希望能够忽略空行的,但是在目前的忽略空行的方法通常是基于比较复杂的编码实现,算法实现的代价较高。并且目前忽略空行的方法一般是先删除空行,再进行恢复,而现有的算法存在一定缺陷,在恢复空行时有时会出现问题,例如恢复位置不准确。因此,本公开实施例中提供一种在文件对比中易于实现的空行忽略和恢复方法。
图4a是根据一示例性实施例示出的另一种用于文件比较的内容对齐方法的流程示意图,如图4a所示,第一文件和第二文件中包含空行时,在步骤101之前,该方法还包括:
步骤105,在第一文件和第二文件中忽略空行,并记录第一文件中的每个空行的索引号,以及第二文件中的每个空行的索引号。
相应的,在步骤104之后,该方法还包括:
步骤106,根据第一文件中的每个空行的索引号,以及第二文件中的每个空行的索引号,在已完成共通元素对齐后的第一文件和第二文件中插入空行,以进行空行复位。
步骤107,在完成空行复位后,根据第一文件中的空行所在的共通元素间隙与第二文件中的空行所在的共通元素间隙的位置对应关系,将第一文件中的空行与第二文件中的空行进行对齐。
举例来说,图4b是根据本公开一示例性实施例示出的一种带空行的文件的示意图,如图4b所示,在图中以每个字母表示一行,以方框表示空行,从而以序列的形式,分别示出了第一文件和第二文件。在图4b所示的第一文件和第二文件的基础上,忽略这两个文件中的空行,忽略空行后的第一文件和第二文件与图2b中所示的第一文件和第二文件相同,然后对忽略空行后的第一文件和第二文件进行步骤101-103,以实现第一文件中的共通行和第二文件中的共通行对齐,其具体方法在上文已进行描述,可参照图1、图2a以及图2b所示的方法,不再赘述。在第一文件中的共通行和第二文件中的共通行对齐后,由于每个空行都具有唯一的索引号,并且索引号是按照顺序排列的,因此根据空行的索引号可以准确定位空行在第一文件和第二文件中的原有位置,从而根据第一文件中的每个空行的索引号,以及第二文件中的每个空行的索引号,即可在已完成共通行对齐后的第一文件和第二文件中插入空行,实现空行复位。然后可以根据第一文件和第二文件的空行在共通元素间隙中的位置关系,将空行对齐。
图4c是根据本公开一示例性实施例示出的一种空行对齐方法的流程示意图,如图4c所示,步骤107所述的根据所述第一文件中的空行所在的共通元素间隙与所述第二文件中的空行所在的共通元素间隙的位置对应关系,将所述第一文件中的空行与所述第二文件中的空行进行对齐,可以包括:
步骤1071,当在第一文件中的共通元素的第三间隙处存在至少一个空行,在第二文件中的共通元素的第四间隙处不存在空行时,对该至少一个空行不进行处理;第三间隙是第一文件中的共通元素中的任意两个元素之间的缝隙,第四间隙是与第一间隙位置对应的间隙。
步骤1072,当在第三间隙处不存在空行,在第四间隙处存在至少一个空行时,对该至少一个空行不进行处理。
步骤1073,当在第一间隙处存在n个空行,且在第二间隙处存在m个空行时,分别将n个空行中的每个空行的索引号与m个空行中位置对应的空行的索引号进行关联。
举例来说,图4d是根据本公开一示例性实施例示出的一种带空行的文件对齐的示意图,如图4d所示,在图中以每个字母表示一行,以方框表示空行,从而以序列的形式,分别示出了第一文件和第二文件,在第一文件对应的字母上方以及第二文件对应的字母下方,用“=”表示共通行“-”表示删除行,“+”表示添加行,图中字母之间的连线表示连线两端的字母所代表的行进行了对齐,方框之间的连线表示连线两端的方框所代表的空行进行了对齐。因此,从图4d中可以看出,在第一文件的共通行的第一个A和第一个C之间,和第二文件的共通行的第一个A和第一个C之间,均存在一个空行,因此这两个空行可以对齐;第一文件的共通行的第二个C和第一个T之间不存在空行,而第二文件的共通行的第二个C和第一个T之间存在一个空行,因此这里的空行无法对齐。以此类推,可以将两个文件的位置对应的空行对齐。
下面以两个文本文件为例,对上述方法进行进一步说明,如表1所示为待对比的文件1和文件2中的内容。
表1
根据表1可见在文件1和文件2中的“1.4括弧的使用遵循统一风格”之后存在空行,因此在比较文件1和文件2之前,首先可以忽略文件1和文件2中的空行,并记录空行的位置用于后续空行复位(可以记录忽略的空行所在的共通行缝隙,因此可以记录空行位于“1.4括弧的使用遵循统一风格”之后)。在忽略空行后,在文件1和文件2中以行为单位,将文件1和文件2进行对比可知,文件1和文件2中的最大公共子序列(也即共通行)为:{“1.1缩进,Tab”,“自定义缩进几个字符位置(例如2个字符)”,“1.2每行只写一条语句,多个赋值语句分开写”,“1.3每行80列”,“1.4括弧的使用遵循统一风格”},因此可以确定文件1中的删除行和文件2中的添加行,如表2所示:
表2
根据表2所示的结果,可以将文件1和文件2中的共通行对齐(即将共通行的索引号进行关联)。而后,根据之前记录的空行所在的位置进行空行复位,复位后的空行可以如表3所示:
表3
然后,可以将文件1和文件2中位于“1.4括弧的使用遵循统一风格”之后的空行(即将空行的索引号进行关联)进行对齐。通过上述方法就完成了文件1和文件2的比较过程,通过上述比较,能够确定文件1和文件2相同的内容及位置,以及能够确定文件1和文件2的不同内容以及位置。
另外,值得一提的是,上述的第一文件和第二文件也可以是记录了基因片段的两个文件,在此情况下,可以以第一文件和第二文件中的每个嘌呤作为一个元素,从而能够利用上述方法实现两个文件中的基因序列的对比。
在上述技术方案中,在第一文件和第二文件中以每个预设单位的内容作为一个元素,对第一文件和第二文件进行对比,以获取第一文件与第二文件的第一最大公共子序列,该第一最大公共子序列为第一文件和第二文件中的元素排列顺序一致的最大公共部分;根据该第一最大公共子序列,确定第一文件中的共通元素和删除元素,以及第二文件中的共通元素和添加元素,该删除元素为第一文件中除共通元素之外的其他元素,添加元素为第二文件中除共通元素之外的其他元素;通过将第一文件中的共通元素与第二文件中的共通元素建立索引对应关系,将第一文件中的共通元素与第二文件中的共通元素进行对齐;根据第一文件中的删除元素所在的共通元素间隙与第二文件中的添加元素所在的共通元素间隙的位置对应关系,将第一文件中的删除元素与第二文件中的添加元素进行对齐。能够不依赖于复杂算法实现文件之间的对比和内容对齐,能够降低实现难度,易于实现。
图5是根据本公开一示例性实施例示出的一种用于文件比较的内容对齐装置的框图,如图5所示,该装置500包括:
对比模块501,用于在第一文件和第二文件中以每个预设单位的内容作为一个元素,对该第一文件和该第二文件进行对比,以获取第一文件与第二文件的第一最大公共子序列,该第一最大公共子序列为该第一文件和该第二文件中的元素排列顺序一致的最大公共部分;
确定模块502,用于根据该第一最大公共子序列,确定该第一文件中的共通元素和删除元素,以及该第二文件中的共通元素和添加元素,该删除元素为该第一文件中除该共通元素之外的其他元素,该添加元素为该第二文件中除该共通元素之外的其他元素;
第一对齐模块503,用于通过将该第一文件中的共通元素与该第二文件中的共通元素建立索引对应关系,将该第一文件中的共通元素与该第二文件中的共通元素进行对齐;
标记模块504,用于根据该第一文件中的删除元素所在的共通元素间隙与该第二文件中的添加元素所在的共通元素间隙的位置对应关系,对第一文件中的删除元素与第二文件中的添加元素进行标记处理。
可选的,图6是根据本公开一示例性实施例示出的第一对齐模块的框图,如图6所示,该第一对齐模块503,包括:
索引获取子模块5031,用于获取该第一文件中的共通元素中的每个元素的索引号,以及该第二文件中的共通元素中的每个元素的索引号;
对齐子模块5032,用于依次将该第一文件中的共通元素中的每个元素的索引号与该第二文件中的共通元素中的对应元素的索引号进行关联,以建立该索引对应关系,以将该第一文件中的共通元素与该第二文件中的共通元素进行对齐。
可选的,该标记模块504,用于:
当在该第一文件中的共通元素的第一间隙处存在至少一个删除元素,在该第二文件中的共通元素的第二间隙处不存在添加元素时,对该至少一个删除元素不进行处理;该第一间隙是该第一文件中的共通元素中的任意两个元素之间的缝隙,该第二间隙是与该第一间隙位置对应的间隙;
当在该第一间隙处不存在删除元素,在该第二间隙处存在至少一个添加元素时,对该至少一个添加元素不进行处理;
当在该第一间隙处存在n个删除元素,且在该第二间隙处存在m个添加元素时,将所述n个删除元素和m个添加元素标记为更新。
可选的,图7是根据本公开一示例性实施例示出的另一种用于文件比较的内容对齐装置的框图,如图7所示,该装置500还包括:
空行处理模块505,用于当所述第一文件和所述第二文件中包含空行时,在该在第一文件和第二文件中以每个预设单位的内容作为一个元素,对该第一文件和该第二文件进行对比,以获取第一文件与第二文件的最大公共子序列之前,在该第一文件和该第二文件中忽略空行,并记录该第一文件中的每个空行的索引号,以及该第二文件中的每个空行的索引号;
空行复位模块506,用于在将该第一文件中的共通元素与该第二文件中的共通元素进行对齐之后,根据该第一文件中的每个空行的索引号,以及该第二文件中的每个空行的索引号,在已完成共通元素对齐后的该第一文件和该第二文件中插入空行,以进行空行复位;
第二对齐模块507,用于在完成空行复位后,根据该第一文件中的空行所在的共通元素间隙与该第二文件中的空行所在的共通元素间隙的位置对应关系,将该第一文件中的空行与该第二文件中的空行进行对齐。
可选的,该第二对齐模块507,用于:
当在该第一文件中的共通元素的第三间隙处存在至少一个空行,在该第二文件中的共通元素的第四间隙处不存在空行时,对该至少一个空行不进行处理;该第三间隙是该第一文件中的共通元素中的任意两个元素之间的缝隙,该第四间隙是与该第一间隙位置对应的间隙;
当在该第三间隙处不存在空行,在该第四间隙处存在至少一个空行时,对该至少一个空行不进行处理;
当在该第一间隙处存在n个空行,且在该第二间隙处存在m个空行时,分别将n个空行中的每个空行的索引号与该m个空行中位置对应的空行的索引号进行关联。
在上述技术方案中,在第一文件和第二文件中以每个预设单位的内容作为一个元素,对第一文件和第二文件进行对比,以获取第一文件与第二文件的第一最大公共子序列,该第一最大公共子序列为第一文件和第二文件中的元素排列顺序一致的最大公共部分;根据该第一最大公共子序列,确定第一文件中的共通元素和删除元素,以及第二文件中的共通元素和添加元素,该删除元素为第一文件中除共通元素之外的其他元素,添加元素为第二文件中除共通元素之外的其他元素;通过将第一文件中的共通元素与第二文件中的共通元素建立索引对应关系,将第一文件中的共通元素与第二文件中的共通元素进行对齐;根据第一文件中的删除元素所在的共通元素间隙与第二文件中的添加元素所在的共通元素间隙的位置对应关系,将第一文件中的删除元素与第二文件中的添加元素进行对齐。能够不依赖于复杂算法实现文件之间的对比和内容对齐,能够降低实现难度,易于实现。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图8是根据一示例性实施例示出的一种电子设备的框图。如图8所示,该电子设备800可以包括:处理器801,存储器802。该电子设备800还可以包括多媒体组件803,输入/输出(I/O)接口804,以及通信组件805中的一者或多者。
其中,处理器801用于控制该电子设备800的整体操作,以完成上述的用于文件比较的内容对齐方法中的全部或部分步骤。存储器802用于存储各种类型的数据以支持在该电子设备800的操作,这些数据例如可以包括用于在该电子设备800上操作的任何应用程序或方法的指令,以及应用程序相关的数据,例如联系人数据、收发的消息、图片、音频、视频等等。该存储器802可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(Static Random Access Memory,简称SRAM),电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,简称EEPROM),可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,简称EPROM),可编程只读存储器(Programmable Read-Only Memory,简称PROM),只读存储器(Read-Only Memory,简称ROM),磁存储器,快闪存储器,磁盘或光盘。多媒体组件803可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器802或通过通信组件805发送。音频组件还包括至少一个扬声器,用于输出音频信号。I/O接口804为处理器801和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件805用于该电子设备800与其他设备之间进行有线或无线通信。无线通信,例如Wi-Fi,蓝牙,近场通信(Near FieldCommunication,简称NFC),2G、3G或4G,或它们中的一种或几种的组合,因此相应的该通信组件805可以包括:Wi-Fi模块,蓝牙模块,NFC模块。
在一示例性实施例中,电子设备800可以被一个或多个应用专用集成电路(Application Specific Integrated Circuit,简称ASIC)、数字信号处理器(DigitalSignal Processor,简称DSP)、数字信号处理设备(Digital Signal Processing Device,简称DSPD)、可编程逻辑器件(Programmable Logic Device,简称PLD)、现场可编程门阵列(Field Programmable Gate Array,简称FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述的用于文件比较的内容对齐方法。
在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的用于文件比较的内容对齐方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器802,上述程序指令可由电子设备800的处理器801执行以完成上述的用于文件比较的内容对齐方法。
图9是根据一示例性实施例示出的另一种电子设备的框图。例如,电子设备900可以被提供为一服务器。参照图9,电子设备900包括处理器922,其数量可以为一个或多个,以及存储器932,用于存储可由处理器922执行的计算机程序。存储器932中存储的计算机程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理器922可以被配置为执行该计算机程序,以执行上述的用于文件比较的内容对齐方法。
另外,电子设备900还可以包括电源组件926和通信组件950,该电源组件926可以被配置为执行电子设备900的电源管理,该通信组件950可以被配置为实现电子设备900的通信,例如,有线或无线通信。此外,该电子设备900还可以包括输入/输出(I/O)接口958。电子设备900可以操作基于存储在存储器932的操作系统,例如Windows ServerTM,Mac OSXTM,UnixTM,LinuxTM等等。
在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的用于文件比较的内容对齐方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器932,上述程序指令可由电子设备900的处理器922执行以完成上述的用于文件比较的内容对齐方法。
以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,可以对本公开的技术方案进行多种简单变型,这些简单变型均属于本公开的保护范围。
另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本公开对各种可能的组合方式不再另行说明。
此外,本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本公开所公开的内容。
Claims (10)
1.一种用于文件比较的内容对齐方法,其特征在于,所述方法包括:
在第一文件和第二文件中以每个预设单位的内容作为一个元素,对所述第一文件和所述第二文件进行对比,以获取第一文件与第二文件的第一最大公共子序列,所述第一最大公共子序列为所述第一文件和所述第二文件中的元素排列顺序一致的最大公共部分;
根据所述第一最大公共子序列,确定所述第一文件中的共通元素和删除元素,以及所述第二文件中的共通元素和添加元素,所述删除元素为所述第一文件中除所述共通元素之外的其他元素,所述添加元素为所述第二文件中除所述共通元素之外的其他元素;
通过将所述第一文件中的共通元素与所述第二文件中的共通元素建立索引对应关系,将所述第一文件中的共通元素与所述第二文件中的共通元素进行对齐;
根据所述第一文件中的删除元素所在的共通元素间隙与所述第二文件中的添加元素所在的共通元素间隙的位置对应关系,对所述第一文件中的删除元素与所述第二文件中的添加元素进行标记处理;
其中,当所述第一文件和所述第二文件中包含空行时,在所述在第一文件和第二文件中以每个预设单位的内容作为一个元素,对所述第一文件和所述第二文件进行对比,以获取第一文件与第二文件的最大公共子序列之前,所述方法还包括:
在所述第一文件和所述第二文件中忽略空行,并记录所述第一文件中的每个空行的索引号,以及所述第二文件中的每个空行的索引号;
在将所述第一文件中的共通元素与所述第二文件中的共通元素进行对齐之后,所述方法还包括:
根据所述第一文件中的每个空行的索引号,以及所述第二文件中的每个空行的索引号,在已完成共通元素对齐后的所述第一文件和所述第二文件中插入空行,以进行空行复位;
在完成空行复位后,根据所述第一文件中的空行所在的共通元素间隙与所述第二文件中的空行所在的共通元素间隙的位置对应关系,将所述第一文件中的空行与所述第二文件中的空行进行对齐。
2.根据权利要求1所述的方法,其特征在于,所述通过将所述第一文件中的共通元素与所述第二文件中的共通元素建立索引对应关系,将所述第一文件中的共通元素与所述第二文件中的共通元素进行对齐,包括:
获取所述第一文件中的共通元素中的每个元素的索引号,以及所述第二文件中的共通元素中的每个元素的索引号;
依次将所述第一文件中的共通元素中的每个元素的索引号与所述第二文件中的共通元素中的对应元素的索引号进行关联,以建立所述索引对应关系,以将所述第一文件中的共通元素与所述第二文件中的共通元素进行对齐。
3.根据权利要求1所述的方法,其特征在于,所述根据所述第一文件中的删除元素所在的共通元素间隙与所述第二文件中的添加元素所在的共通元素间隙的位置对应关系,对所述第一文件中的删除元素与所述第二文件中的添加元素进行标记处理,包括:
当在所述第一文件中的共通元素的第一间隙处存在至少一个删除元素,在所述第二文件中的共通元素的第二间隙处不存在添加元素时,对所述至少一个删除元素不进行处理;所述第一间隙是所述第一文件中的共通元素中的任意两个元素之间的缝隙,所述第二间隙是与所述第一间隙位置对应的间隙;
当在所述第一间隙处不存在删除元素,在所述第二间隙处存在至少一个添加元素时,对所述至少一个添加元素不进行处理;
当在所述第一间隙处存在n个删除元素,且在所述第二间隙处存在m个添加元素时,将所述n个删除元素和m个添加元素标记为更新。
4.根据权利要求1所述的方法,其特征在于,所述根据所述第一文件中的空行所在的共通元素间隙与所述第二文件中的空行所在的共通元素间隙的位置对应关系,将所述第一文件中的空行与所述第二文件中的空行进行对齐,包括:
当在所述第一文件中的共通元素的第三间隙处存在至少一个空行,在所述第二文件中的共通元素的第四间隙处不存在空行时,对所述至少一个空行不进行处理;所述第三间隙是所述第一文件中的共通元素中的任意两个元素之间的缝隙,所述第四间隙是与所述第三间隙位置对应的间隙;
当在所述第三间隙处不存在空行,在所述第四间隙处存在至少一个空行时,对所述至少一个空行不进行处理;
当在所述第三间隙处存在n个空行,且在所述第四间隙处存在m个空行时,分别将n个空行中的每个空行的索引号与所述m个空行中位置对应的空行的索引号进行关联。
5.一种用于文件比较的内容对齐装置,其特征在于,所述装置包括:
对比模块,用于在第一文件和第二文件中以每个预设单位的内容作为一个元素,对所述第一文件和所述第二文件进行对比,以获取第一文件与第二文件的第一最大公共子序列,所述第一最大公共子序列为所述第一文件和所述第二文件中的元素排列顺序一致的最大公共部分;
确定模块,用于根据所述第一最大公共子序列,确定所述第一文件中的共通元素和删除元素,以及所述第二文件中的共通元素和添加元素,所述删除元素为所述第一文件中除所述共通元素之外的其他元素,所述添加元素为所述第二文件中除所述共通元素之外的其他元素;
第一对齐模块,用于通过将所述第一文件中的共通元素与所述第二文件中的共通元素建立索引对应关系,将所述第一文件中的共通元素与所述第二文件中的共通元素进行对齐;
标记模块,用于根据所述第一文件中的删除元素所在的共通元素间隙与所述第二文件中的添加元素所在的共通元素间隙的位置对应关系,对所述第一文件中的删除元素与所述第二文件中的添加元素进行标记处理;
空行处理模块,用于当所述第一文件和所述第二文件中包含空行时,在所述在第一文件和第二文件中以每个预设单位的内容作为一个元素,对所述第一文件和所述第二文件进行对比,以获取第一文件与第二文件的最大公共子序列之前,在所述第一文件和所述第二文件中忽略空行,并记录所述第一文件中的每个空行的索引号,以及所述第二文件中的每个空行的索引号;
空行复位模块,用于在将所述第一文件中的共通元素与所述第二文件中的共通元素进行对齐之后,根据所述第一文件中的每个空行的索引号,以及所述第二文件中的每个空行的索引号,在已完成共通元素对齐后的所述第一文件和所述第二文件中插入空行,以进行空行复位;
第二对齐模块,用于在完成空行复位后,根据所述第一文件中的空行所在的共通元素间隙与所述第二文件中的空行所在的共通元素间隙的位置对应关系,将所述第一文件中的空行与所述第二文件中的空行进行对齐。
6.根据权利要求5所述的装置,其特征在于,所述第一对齐模块,包括:
索引获取子模块,用于获取所述第一文件中的共通元素中的每个元素的索引号,以及所述第二文件中的共通元素中的每个元素的索引号;
对齐子模块,用于依次将所述第一文件中的共通元素中的每个元素的索引号与所述第二文件中的共通元素中的对应元素的索引号进行关联,以建立所述索引对应关系,以将所述第一文件中的共通元素与所述第二文件中的共通元素进行对齐。
7.根据权利要求5所述的装置,其特征在于,所述标记模块,用于:
当在所述第一文件中的共通元素的第一间隙处存在至少一个删除元素,在所述第二文件中的共通元素的第二间隙处不存在添加元素时,对所述至少一个删除元素不进行处理;所述第一间隙是所述第一文件中的共通元素中的任意两个元素之间的缝隙,所述第二间隙是与所述第一间隙位置对应的间隙;
当在所述第一间隙处不存在删除元素,在所述第二间隙处存在至少一个添加元素时,对所述至少一个添加元素不进行处理;
当在所述第一间隙处存在n个删除元素,且在所述第二间隙处存在m个添加元素时,将所述n个删除元素和m个添加元素标记为更新。
8.根据权利要求5所述的装置,其特征在于,所述第二对齐模块,用于:
当在所述第一文件中的共通元素的第三间隙处存在至少一个空行,在所述第二文件中的共通元素的第四间隙处不存在空行时,对所述至少一个空行不进行处理;所述第三间隙是所述第一文件中的共通元素中的任意两个元素之间的缝隙,所述第四间隙是与所述第三间隙位置对应的间隙;
当在所述第三间隙处不存在空行,在所述第四间隙处存在至少一个空行时,对所述至少一个空行不进行处理;
当在所述第三间隙处存在n个空行,且在所述第四间隙处存在m个空行时,分别将n个空行中的每个空行的索引号与所述m个空行中位置对应的空行的索引号进行关联。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-4中任一项所述方法的步骤。
10.一种电子设备,其特征在于,包括:
存储器,其上存储有计算机程序;
处理器,用于执行所述存储器中的所述计算机程序,以实现权利要求1-4中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811368186.0A CN109684437B (zh) | 2018-11-16 | 2018-11-16 | 用于文件比较的内容对齐方法、装置、存储介质和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811368186.0A CN109684437B (zh) | 2018-11-16 | 2018-11-16 | 用于文件比较的内容对齐方法、装置、存储介质和设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109684437A CN109684437A (zh) | 2019-04-26 |
CN109684437B true CN109684437B (zh) | 2020-10-30 |
Family
ID=66184765
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811368186.0A Active CN109684437B (zh) | 2018-11-16 | 2018-11-16 | 用于文件比较的内容对齐方法、装置、存储介质和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109684437B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111353289B (zh) * | 2020-02-19 | 2023-07-25 | 东软集团股份有限公司 | 文档比对方法、装置、存储介质、电子设备 |
Family Cites Families (10)
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 |
JP4196824B2 (ja) * | 2003-12-25 | 2008-12-17 | 沖電気工業株式会社 | 情報区分装置、情報区分方法及び情報区分プログラム |
US20160335446A9 (en) * | 2004-12-10 | 2016-11-17 | Kendyl A. Román | Detection of Obscured Copying Using Discovered Translation Files and Other Operation Data |
CN102682127B (zh) * | 2012-05-16 | 2014-12-03 | 北京像素软件科技股份有限公司 | 一种数据版本的控制方法 |
CN103425931B (zh) * | 2012-12-27 | 2017-07-18 | 北京安天网络安全技术有限公司 | 一种网页异常脚本检测方法及系统 |
CN104598231B (zh) * | 2015-01-09 | 2018-07-20 | 山东工商学院 | Python源代码文件相似性检测方法 |
US20160307563A1 (en) * | 2015-04-15 | 2016-10-20 | Xerox Corporation | Methods and systems for detecting plagiarism in a conversation |
CN105589838B (zh) * | 2015-12-24 | 2018-06-12 | 中国电子科技集团公司第三十三研究所 | 一种基于文件比较的电子公文痕迹保留方法 |
CN106202007B (zh) * | 2016-06-28 | 2018-09-07 | 电子科技大学 | 一种matlab程序文件相似度的评估方法 |
CN106372040B (zh) * | 2016-08-24 | 2019-03-12 | 长园深瑞继保自动化有限公司 | 智能变电站配置文件差异性比较系统 |
-
2018
- 2018-11-16 CN CN201811368186.0A patent/CN109684437B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN109684437A (zh) | 2019-04-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10803241B2 (en) | System and method for text normalization in noisy channels | |
CN108536745B (zh) | 基于Shell的数据表提取方法、终端、设备及存储介质 | |
CN107832035B (zh) | 一种智能终端的语音输入方法 | |
CN111475196B (zh) | 编译告警溯源方法、装置、电子设备及计算机可读介质 | |
CN109740125B (zh) | 用于文件比较的更新查找方法、装置、存储介质和设备 | |
US8473504B2 (en) | Stabilized binary differencing | |
US10133723B2 (en) | System and method for determining document version geneology | |
CN106970758B (zh) | 电子文档操作处理方法、装置和电子设备 | |
CN111782728A (zh) | 一种数据同步方法、装置、电子设备及介质 | |
CN111602129B (zh) | 针对注释和墨迹的智能搜索 | |
CN109684437B (zh) | 用于文件比较的内容对齐方法、装置、存储介质和设备 | |
US20150363372A1 (en) | Method and device for updating user data | |
CN102902751A (zh) | 移动终端中的网页输入方法及装置、移动终端 | |
CN111324214B (zh) | 一种语句纠错方法和装置 | |
JP6568968B2 (ja) | 文書校閲装置およびプログラム | |
CN113127776A (zh) | 面包屑路径生成方法、装置及终端设备 | |
CN108196921B (zh) | 单据开发方法、装置、计算机设备和存储介质 | |
CN109815446B (zh) | 页边界处理方法、装置、存储介质和电子设备 | |
CN112711435A (zh) | 版本更新方法、版本更新装置、电子设备和存储介质 | |
KR102566899B1 (ko) | 개인별 맞춤형 자동 오타 정정을 수행할 수 있는 전자 단말 장치 및 그 동작 방법 | |
CN106126048B (zh) | 一种移动设备的联系人信息的查询方法和装置 | |
CN110874444B (zh) | 一种url转换模型的建立方法、装置及电子设备 | |
WO2024041358A1 (zh) | 配置文件更新方法、装置、电子设备及可读存储介质 | |
KR102010556B1 (ko) | 비동기 방식의 액션을 이용하는 웹 전자 문서 편집 장치 및 이의 동작 방법 | |
US20240220084A1 (en) | Information display method, device, computer apparatus and storage medium |
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 |