文本比对方法和设备技术

技术编号:13492085 阅读:88 留言:0更新日期:2016-08-07 04:01
本申请公开了一种文本比对方法,包括:将第一文本与第二文本进行比对,从而获得所述第一文本与所述第二文本之间的一个或多个差异;确定所述一个或多个差异在差异库中存在;以及基于所述差异库,将所述一个或多个差异中的部分或全部差异过滤,其中,所述差异库为预先建立的数据库,其配置成存储可接受的差异。本申请还公开了一种文本比对设备。

【技术实现步骤摘要】
【专利摘要】本申请公开了一种文本比对方法,包括:将第一文本与第二文本进行比对,从而获得所述第一文本与所述第二文本之间的一个或多个差异;确定所述一个或多个差异在差异库中存在;以及基于所述差异库,将所述一个或多个差异中的部分或全部差异过滤,其中,所述差异库为预先建立的数据库,其配置成存储可接受的差异。本申请还公开了一种文本比对设备。【专利说明】文本比对方法和设备
本专利技术涉及文本比对方法和设备。
技术介绍
目前在文本比对领域,已经提出并公示的算法和软件很多。大多数文本比对工具都使用谷歌google-diff-match-patch开源类库来实现核心的比对功能,包括但不限于Beyong Compare、TextDiff等。谷歌diff-match-patch开源库是一个相当优秀的文本比对、匹配和更改方法集,能提供较高的易用性及准确性,其关键数据结构由一个包含删除、插入、相等三种操作方式(DELETE, INSERT, EQUAL)的枚举类型以及一个〈OPERAT1N,TEXT〉形式的差异对象(Diff Object)组成。其差异表达采用含有差异对象的链表实现, 但随着业务的不断发展、技术的不断更新,企业均都面临着海量的应用配置文件需要管理。当文件出现差异时,如何快速准确地定位差异所在,有效地管理差异,成为各企业面临并急需并解决的问题。特别地,当需要对差异进行监控,对非预期的差异进行预警时,由于谷歌google-diff-match-patch开源类库没有对单个差异进行区分,即没有考虑可接受差异和非预期差异,因此无法有效地管理差异。
技术实现思路
为解决上述问题,根据本专利技术的一个方面,提供了一种文本比对方法,包括:将第一文本与第二文本进行比对,从而获得所述第一文本与所述第二文本之间的一个或多个差异;确定所述一个或多个差异在差异库中存在;以及基于所述差异库,将所述一个或多个差异中的部分或全部差异过滤,其中,所述差异库为预先建立的数据库,其配置成存储可接受的差异。在上述方法中,通过如下方式来预先建立所述差异库:对文本之间可能存在的差异进行人为分类,划分出可接受的差异;以及将可接受的差异以特定的数据结构进行存储,从而形成差异库。上述方法还可包括:向用户展示经过滤之后的一个或多个差异,该经过滤之后的一个或多个差异为非预期的。在上述方法中,所述特定的数据结构包括5个枚举类的变量,分别为DELETE、INSERT、EQUAL、eDELETE以及eINSERT,其中,所述DELETE表示“不被接受的删除”,所述INSERT表示“不被接受的插入”,所述EQUAL表示“保持不变”,所述eDELETE表示“可接受的删除”以及所述eINSERT表示“可接受的插入”。在上述方法中,确定所述一个或多个差异在差异库中存在包括:判断所述第一文本与所述第二文本的路径和文件名与所述差异库中的文件的路径和文件名一致。在上述方法中,基于所述差异库,将所述一个或多个差异中的部分或全部差异过滤包括:从所述差异库中取出所有存储的差异集合DiffList;将所述差异集合DiffList中的eDELETE以及eINSERT分别替换为DELETE以及INSERT;分别读取所述第一文本与所述第二文本之间的一个或多个差异、替换后的差异集合,并将其中不重复的操作步骤分别用不重复字串进行表示而将相同的操作步骤用相同的字串表示,得到第一字串和第二字串;以及使用Google-Diff算法,将所述第一字串与所述第二字串进行对比。根据本申请的另一个方面,提供了一种文本比对设备,包括:第一单元,用于将第一文本与第二文本进行比对,从而获得所述第一文本与所述第二文本之间的一个或多个差异;第二单元,用于确定所述一个或多个差异在差异库中存在;以及第三单元,用于基于所述差异库,将所述一个或多个差异中的部分或全部差异过滤,其中,所述差异库为预先建立的数据库,其配置成存储可接受的差异。本申请着眼于现有技术中存在的问题,创造性地提出差异库的概念,并在此基础上构建出适用于差异库的差异模型,同时结合谷歌开源类库google-diff-match-patch,实现了一种具有广泛使用价值的应用配置文件比对方法。该方法可以高效地对所有差异进行识别,并快速区分可接受差异与非预期差异,很好地满足文件管理的各项需求(文件快速比对、文件智能修改、文件差异监控及预警、文件自动生成等功能),最大程度地减少人为误差,增强了文件管理的可靠性。通过对差异库的实时获取、更新及调用,并以此为据可以迅速定位和管理不同环境特征下的文件差异,有效降低了重复劳动量,节约了人力及时间成本。【附图说明】在参照附图阅读了本专利技术的【具体实施方式】以后,本领域技术人员将会更清楚地了解本专利技术的各个方面。本领域技术人员应当理解的是:这些附图仅仅用于配合【具体实施方式】说明本专利技术的技术方案,而并非意在对本专利技术的保护范围构成限制。图1是根据本申请的一个实施例的文本对比方法的示意图。【具体实施方式】下面介绍的是本专利技术的多个可能实施例中的一些,旨在提供对本专利技术的基本了解,并不旨在确认本专利技术的关键或决定性的要素或限定所要保护的范围。容易理解,根据本专利技术的技术方案,在不变更本专利技术的实质精神下,本领域的一般技术人员可以提出可相互替换的其它实现方式。因此,以下【具体实施方式】以及附图仅是对本专利技术的技术方案的示例性说明,而不应当视为本专利技术的全部或者视为对本专利技术技术方案的限定或限制。图1是根据本申请的一个实施例的文本对比方法的示意图。在执行图1所示的文本对比方法之前,需要由用户建立差异库。具体来说,由用户发起比对,该比对例如可通过现有的比对软件或开源库、如谷歌google-diff-match-patch开源类库来实现。在比对后,将这些差异以一定的数据模型进行存储,通过用户对比对后的差异进行确认后,差异可以分为可接受的差异和非预期差异两种类型,并进入差异库。在如图1所示,两个文件再次触发比对时,本申请的方法会先去差异库中查找是否存在记录,如果存在则结合差异库“过滤”差异,最终展现给用户的将是用户需要关心的差升。在一个实施例中,本申请的文本比对方法包括:将第一文本与第二文本进行比对,从而获得所述第一文本与所述第二文本之间的一个或多个差异;确定所述一个或多个差异在差异库中存在;以及基于所述差异库,将所述一个或多个差异中的部分或全部差异过滤,其中,所述差异库为预先建立的数据库,其配置成存储可接受的差异。上述文本比对方法还可包括:向用户展示经过滤之后的一个或多个差异,该经过滤之后的一个或多个差异为非预期的。在一个实施例中,两段文本的比对可以规约为两组字符串的比较,定义文本差异为从第一组字符串变成第二组字符串所需要的最少的步骤,每个步骤只能做“保持不变”、“插入”或者“删除”操作,倘若用的是替换操作,则采用先“删除”后“插入”的方式处理。定义如下数据结构(以JAVA代码为例): //包含三种操作方式的枚举类型 public enum Operat1n { DELETE, INSERT, EQUAL } //Diff对象构造函数 / / @参数operat1n:三种操作方式的一种; //@参数text:实际比对的文本; publi本文档来自技高网...
文本比对方法和设备

【技术保护点】
一种文本比对方法,所述方法包括:将第一文本与第二文本进行比对,从而获得所述第一文本与所述第二文本之间的一个或多个差异;确定所述一个或多个差异在差异库中存在;以及基于所述差异库,将所述一个或多个差异中的部分或全部差异过滤,其中,所述差异库为预先建立的数据库,其配置成存储可接受的差异。

【技术特征摘要】

【专利技术属性】
技术研发人员:韩光明刘金杰马耿朱邵辉倪翠萍
申请(专利权)人:中国银联股份有限公司
类型:发明
国别省市:上海;31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1