文本比较方法、装置、计算机设备和存储介质与流程

文档序号:18475396发布日期:2019-08-20 20:58阅读:121来源:国知局
文本比较方法、装置、计算机设备和存储介质与流程

本申请涉及大数据领域,特别涉及一种文本比较方法、装置、计算机设备和存储介质。



背景技术:

在日常应用中,文本比较是一个比较常见的问题,应用场景也比较广泛,如论文比对等。文本比较的核心就是比较两个给定的文本(可以是字节流等)之间的差异。目前,主流的比较文本之间的差异主要有两大类。一类是基于编辑距离(editdistance)的,例如ld算法。一类是基于最长公共子串的(longestcommonsubsequence),例如needleman/wunsch算法等。但是以上算法都比较复杂,且耗费资源严重,效率低下。



技术实现要素:

本申请的目的在于针对现有技术的不足,提供一种文本比较方法、装置、计算机设备和存储介质,通过将待比较文本映射到二维平面,并根据最短相同字符间的最短距离找出文本之间的相同字符,提高了文本比较的效率,降低了文本比较的复杂度。

为达到上述目的,本申请的技术方案提供一种文本比较方法、装置、计算机设备和存储介质。

本申请公开了一种文本比较方法,包括以下步骤:

获取第一文本及第二文本,将所述第一文本及所述第二文本分别转换成单行文字,并将转换后的所述第一文本及所述第二文本分别映射到x轴和y轴;

对在x轴上的所述第一文本及在y轴上的所述第二文本进行遍历查询,获取所述第一文本与所述第二文本中相同文字的匹配点信息;

根据所述第一文本与所述第二文本中相同文字的匹配点信息进行统计,获取文本比较结果。

较佳地,所述将转换后的所述第一文本及所述第二文本分别映射到x轴和y轴,包括:

将转换后的所述第一文本映射到x轴的任一象限,将转换后的所述第二文本映射到y轴的与所述第一文本相同的象限;

将转换后的所述第一文本的第一个文字对应x轴所属象限上的任一个坐标点,将转换后的所述第二文本的第一个文字对应y轴所属象限上的任一个坐标点。

较佳地,所述对在x轴上的所述第一文本及在y轴上的所述第二文本进行遍历查询,获取所述第一文本与所述第二文本中相同文字的匹配点信息,包括:

对在x轴上的所述第一文本及在y轴上的所述第二文本进行遍历查询,获取第一匹配点信息;

根据所述第一匹配点信息获取遍历区域,并在所述遍历区域上对所述第一文本及所述第二文本进行遍历查询,获取其余匹配点信息。

较佳地,所述对在x轴上的所述第一文本及在y轴上的所述第二文本进行遍历查询,获取第一匹配点信息,包括:

对在x轴上的所述第一文本及在y轴上的所述第二文本进行遍历查询,获取所述第一文本与所述第二文本中相同文字对应的坐标点;

在所述相同文字对应的坐标点中查询与原点距离最近的坐标点,将所述与原点距离最近的坐标点标记为第一匹配点。

较佳地,所述根据所述第一匹配点信息获取遍历区域,并在所述遍历区域上对所述第一文本及所述第二文本进行遍历查询,获取其余匹配点信息,包括:

获取所述第一文本及所述第二文本中最后一个文字对应的坐标点,将所述坐标点与所述第一匹配点对应的坐标点之间的矩形区域作为遍历区域,在所述遍历区域上对所述第一文本及所述第二文本进行遍历查询;

当获取到新的匹配点时,更新所述遍历区域,并在所述新的遍历区域上继续进行遍历查询,直至没有下一个匹配点出现为止。

较佳地,所述当获取到新的匹配点时,更新所述遍历区域,并在所述新的遍历区域上继续进行遍历查询,直至没有下一个匹配点出现为止,包括:

当获取到新的匹配点时,将所述第一文本及所述第二文本中最后一个文字对应的坐标点与所述新的匹配点对应的坐标点之间的矩形区域作为新的遍历区域;

在所述新的遍历区域上对除所述新的匹配点之外的区域进行遍历查询,直至没有下一个匹配点出现为止。

较佳地,所述根据所述第一文本与所述第二文本中相同文字的匹配点信息进行统计,获取文本比较结果,包括:

根据所述第一文本与所述第二文本中相同文字的匹配点信息统计匹配点的数目;

获取所述第一文本及所述第二文本的文字长度,并根据所述文字长度中的较小文字长度与所述匹配点的数目获得文本比较结果。

本申请还公开了一种文本比较装置,所述装置包括:

文本映射模块:设置为获取第一文本及第二文本,将所述第一文本及所述第二文本分别转换成单行文字,并将转换后的所述第一文本及所述第二文本分别映射到x轴和y轴;

匹配点查询模块:设置为对在x轴上的所述第一文本及在y轴上的所述第二文本进行遍历查询,获取所述第一文本与所述第二文本中相同文字的匹配点信息;

文本比较模块:设置为根据所述第一文本与所述第二文本中相同文字的匹配点信息进行统计,获取文本比较结果。

本申请还公开了一种计算机设备,所述计算机设备包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被一个或多个所述处理器执行时,使得一个或多个所述处理器执行上述所述文本比较方法的步骤。

本申请还公开了一种存储介质,所述存储介质可被处理器读写,所述存储介质存储有计算机指令,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行上述所述文本比较方法的步骤。

本申请的有益效果是:本申请通过将待比较文本映射到二维平面,并根据最短相同字符间的最短距离找出文本之间的相同字符,提高了文本比较的效率,降低了文本比较的复杂度。

附图说明

图1为本申请实施例的一种文本比较方法的流程示意图;

图2为本申请实施例的一种文本比较方法的流程示意图;

图3为本申请实施例的一种文本比较方法的流程示意图;

图4为本申请实施例的一种文本比较方法的流程示意图;

图5为本申请实施例的一种文本比较方法的流程示意图;

图6为本申请实施例的一种文本比较方法的流程示意图;

图7为本申请实施例的一种文本比较方法的流程示意图

图8为本申请实施例的一种文本比较装置结构示意图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。

本申请实施例的一种文本比较方法流程如图1所示,本实施例包括以下步骤:

步骤s101,获取第一文本及第二文本,将所述第一文本及所述第二文本分别转换成单行文字,并将转换后的所述第一文本及所述第二文本分别映射到x轴和y轴;

具体的,通常获取的初始文本都是包含多行文字的文本,且由于设置的页边距不同,每行文字的数量都有可能不同,因此当获取到需要比较的两个文本之后,可以将所述需要比较的两个文本都转换成单行文字,即将多行文字都转换成一行,并在将所述文本进行转换后将所述文字分别映射到x轴和y轴上,例如将第一个文本的文字映射到x轴,第二个文本的文字映射到y轴上;其中,为了计算方便,每个文字对应的坐标可以是整数数值,并占用一个数字,例如第一个文本第一个文字的坐标可以是(1,0),那么第二个文字的坐标是(2,0),依次类推,同理第二个文本的第一个文字的坐标可以是(0,1),那么第二个文字的坐标是(0,2)。

步骤s102,对在x轴上的所述第一文本及在y轴上的所述第二文本进行遍历查询,获取所述第一文本与所述第二文本中相同文字的匹配点信息;

具体的,首先需要找出两个文本中第一个匹配点,所述匹配点为两个文本中文字相同且离起始坐标最近的点,所述起始坐标取决于两个文本在x轴和y轴的初始映射位置,例如,如果第一个文本和第二个文本的第一个文字都是对应原点,那么起始坐标可以是原点,如果第一个文本和第二个文本的第一个文字不对应原点,那么可将第一个文本和第二个文本的第一个文字对应的坐标作为起始坐标,但是在对第一个文本和第二个文本进行映射的时候,必须将所述第一个文本和第二个文本放在同一象限。

具体的,所述对第一匹配点的查找可通过将x轴上的第一个文本中的文字与y轴上的第二个文本中的文字进行遍历查询,找出两个文本中所有相同的文字,并记录下所述相同文字对应的坐标,例如,x轴上第一个文本中第a个文字与y轴上第二个文本中第b个文字相同,而x轴上第一个文本中第a个文字对应的坐标是(a,0),y轴上第二个文本中第b个文字对应的坐标是(0,b),那么两个文本中相同的文字对应的坐标是(a,b),同理可得两个文本中其余相同文字对应的坐标,这时可以在所述所有相同文字对应的坐标中查询离起始坐标最近的坐标,所述最近的坐标就是第一匹配点坐标。

具体的,当获取到第一匹配点信息后,所述可在第一个文本和第二个文本中继续通过遍历查询查找其他匹配点信息,当在第一个文本和第二个文本中获取到所有的匹配点信息后,将所述匹配点信息进行存储,所述匹配点信息包含匹配点的坐标及匹配点对应的文字。

步骤s103,根据所述第一文本与所述第二文本中相同文字的匹配点信息进行统计,获取文本比较结果。

具体的,当获取到第一个文本和第二个文本中所有的匹配点信息后,可以首先统计所有匹配点的数量,然后将第一个文本的文字长度和第二个文本的文字长度进行比较,获取两个文本长度中较小的那个文字长度,如果两个文本的文字长度一样,那么可以任意选择其中一个文本的文字长度,最后将所有匹配点的数量除以文本的文字长度就可以获得两个文本的相似度。

具体的,还可以预先设置相似度阈值,当获取到两个文本的相似度之后,可以将所述获取的相似度与预设的相似度阈值进行比较,如果所述获取的相似度不小于预设的相似度阈值,那么可以认为两个文本一致,否则可以认为两个文本不一致。

本实施例中,通过将待比较文本映射到二维平面,并根据最短相同字符间的最短距离找出文本之间的相同字符,提高了文本比较的效率,降低了文本比较的复杂度。

图2为本申请实施例的一种文本比较方法流程示意图,如图所示,所述步骤s101,将转换后的所述第一文本及所述第二文本分别映射到x轴和y轴,包括:

步骤s201,将转换后的所述第一文本映射到x轴的任一象限,将转换后的所述第二文本映射到y轴的与所述第一文本相同的象限;

具体的,在对所述文本进行映射时,可将第一个文本和第二个文本映射到任意一个象限,但是要保证第一个文本和第二个文本在同一个象限,在确定好象限之后,再将第一个文本映射到x轴,将第二个文本映射到y轴。

步骤s202,将转换后的所述第一文本的第一个文字对应x轴所属象限上的任一个坐标点,将转换后的所述第二文本的第一个文字对应y轴所属象限上的任一个坐标点。

具体的,在将第一个文本映射到x轴时,需要选择第一个文本中第一个文字对应的坐标,所述坐标需要和选择的象限对应,例如,如果选择第一象限,那么第一个文本中第一个文字对应的坐标的选择范围是[0,∞],同理,在将第二个文本映射到y轴时,可同样对第二个文本中第一个文字对应的坐标进行选择。

具体的,为了简化理解,第一个文本及第二个文本的象限可选择第一象限,当对所述文本进行二维平面映射时,可将第一个文本的第一个文字映射到原点或者离原点较近的距离,如坐标点(1,0),将第二个文本的第一个文字映射到原点或者离原点较近的距离,如坐标点(0,1)。

本实施例中,通过对文本信息进行平面映射,可以通过坐标方便找出文本的相同处,提高文本比较的效率。

图3为本申请实施例的一种文本比较方法流程示意图,如图所示,所述步骤s102,对在x轴上的所述第一文本及在y轴上的所述第二文本进行遍历查询,获取所述第一文本与所述第二文本中相同文字的匹配点信息,包括:

步骤s301,对在x轴上的所述第一文本及在y轴上的所述第二文本进行遍历查询,获取第一匹配点信息;

具体的,所述对第一匹配点的查找可通过将x轴上的第一个文本中的文字与y轴上的第二个文本中的文字进行遍历查询,找出两个文本中所有相同的文字,并记录下所述相同文字对应的坐标,例如,x轴上第一个文本中第a个文字与y轴上第二个文本中第b个文字相同,而x轴上第一个文本中第a个文字对应的坐标是(a,0),y轴上第二个文本中第b个文字对应的坐标是(0,b),那么两个文本中相同的文字对应的坐标是(a,b),同理可得两个文本中其余相同文字对应的坐标;所述遍历查询可先确定第一个文本中的第一个文字,然后根据所述第一个文字在第二个文本中从第一个文字开始进行遍历查询,找到所有与所述第一个文本中第一个文字相同的文字,记下所述文字的坐标,然后再确定第一个文本中的第二个文字,继续根据所述第二个文字在第二个文本中从第一个文字开始进行遍历查询,找到所有与所述第一个文本中第二个文字相同的文字,记下所述文字的坐标,依次类推,直到第一个文本中的所有文字做完遍历查询为止;

具体的,当在第一个文本和第二个文本中找到所有相同文字的坐标后,可根据所述坐标查询与起始坐标距离最近的坐标,所述与起始坐标最近的坐标就是第一匹配点坐标,所述起始坐标取决于两个文本在x轴和y轴的初始映射位置,例如,如果第一个文本和第二个文本的第一个文字都是对应原点,那么起始坐标可以是原点,如果第一个文本和第二个文本的第一个文字不对应原点,那么可将第一个文本和第二个文本的第一个文字对应的坐标作为起始坐标。

步骤s302,根据所述第一匹配点信息获取遍历区域,并在所述遍历区域上对所述第一文本及所述第二文本进行遍历查询,获取其余匹配点信息。

具体的,当获取到所述第一匹配点之后,可将第一个文本及第二个文本的最后一个文字对应的坐标与所述第一匹配点对应坐标之间的矩形区域作为遍历区域,并在所述遍历区域上对所述第一文本及所述第二文本进行遍历查询,获取其余匹配点信息。当在第一个文本和第二个文本中获取到所有的匹配点信息后,将所述匹配点信息进行存储,所述匹配点信息包含匹配点的坐标及匹配点对应的文字。

本实施例中,通过对第一匹配点的查询,并根据所述第一匹配点获取遍历区域,获取其余匹配点,可以有效提高文本比较效率。

图4为本申请实施例的一种文本比较方法流程示意图,如图所示,所述步骤s301,对在x轴上的所述第一文本及在y轴上的所述第二文本进行遍历查询,获取第一匹配点信息,包括:

步骤s401,对在x轴上的所述第一文本及在y轴上的所述第二文本进行遍历查询,获取所述第一文本与所述第二文本中相同文字对应的坐标点;

具体的,所述对第一匹配点的查找可通过将x轴上的第一个文本中的文字与y轴上的第二个文本中的文字进行遍历查询,找出两个文本中所有相同的文字,并记录下所述相同文字对应的坐标,例如,x轴上第一个文本中第a个文字与y轴上第二个文本中第b个文字相同,而x轴上第一个文本中第a个文字对应的坐标是(a,0),y轴上第二个文本中第b个文字对应的坐标是(0,b),那么两个文本中相同的文字对应的坐标是(a,b),同理可得两个文本中其余相同文字对应的坐标;所述遍历查询可先确定第一个文本中的第一个文字,然后根据所述第一个文字在第二个文本中从第一个文字开始进行遍历查询,找到所有与所述第一个文本中第一个文字相同的文字,记下所述文字的坐标,然后再确定第一个文本中的第二个文字,继续根据所述第二个文字在第二个文本中从第一个文字开始进行遍历查询,找到所有与所述第一个文本中第二个文字相同的文字,记下所述文字的坐标,依次类推,直到第一个文本中的所有文字做完遍历查询为止。

步骤s402,在所述相同文字对应的坐标点中查询与原点距离最近的坐标点,将所述与原点距离最近的坐标点标记为第一匹配点。

具体的,当在第一个文本和第二个文本中找到所有相同文字的坐标后,可根据所述坐标查询与起始坐标距离最近的坐标,所述最短距离可通过勾股定理计算获得,所述与起始坐标最近的坐标就是第一匹配点坐标,所述起始坐标取决于两个文本在x轴和y轴的初始映射位置,例如,如果第一个文本和第二个文本的第一个文字都是对应原点,那么起始坐标可以是原点,如果第一个文本和第二个文本的第一个文字不对应原点,那么可将第一个文本和第二个文本的第一个文字对应的坐标作为起始坐标。

本实施例中,通过对所有相同文字的坐标进行最短距离比较,可以快速获取第一匹配点,有效提高文本比较效率。

图5为本申请实施例的一种文本比较方法流程示意图,如图所示,所述步骤s302,根据所述第一匹配点信息获取遍历区域,并在所述遍历区域上对所述第一文本及所述第二文本进行遍历查询,获取其余匹配点信息,包括:

步骤s501,获取所述第一文本及所述第二文本中最后一个文字对应的坐标点,将所述坐标点与所述第一匹配点对应的坐标点之间的矩形区域作为遍历区域,在所述遍历区域上对所述第一文本及所述第二文本进行遍历查询;

具体的,可从x轴上获取第一个文本中最后一个文字对应的坐标点,也可从y轴上获取第二个文本中最后一个文字对应的坐标点,根据第一个文本中最后一个文字对应的坐标点及第二个文本中最后一个文字对应的坐标点可以获取两个文本中最后一个文字对应的坐标点,例如,第一个文本中最后一个文字对应的坐标点是(a,0),第二个文本中最后一个文字对应的坐标点是(0,b),那么两个文本中最后一个文字对应的坐标点是(a,b),将所述两个文本中最后一个文字对应的坐标点与所述第一匹配点对应的坐标点之间的矩形区域作为遍历区域,例如,如果第一匹配点的坐标点是(c,d),那么遍历区域是(c,d)到(a,b),当确定遍历区域之后,就可在所述遍历区域上对所述第一文本及所述第二文本进行遍历查询。

步骤s502,当获取到新的匹配点时,更新所述遍历区域,并在所述新的遍历区域上继续进行遍历查询,直至没有下一个匹配点出现为止。

具体的,当在所述遍历区域上进行遍历查询时,可通过计算与所述第一匹配点的最短距离获取新的匹配点,当获取到新的匹配点时,可根据步骤s501所述重新确定遍历区域,所述新的遍历区域由新的匹配点和两个文本中最后一个文字对应的坐标点确定,例如,如果新的匹配点的坐标点是(e,f),那么遍历区域是(e,f)到(a,b),在所述新的遍历区域上进行遍历查询时,可通过计算与所述新的匹配点的最短距离获取下一个匹配点,依次类推,直至没有下一个匹配点出现为止。

本实施例中,通过对遍历区域的更新,可以减少遍历查询的范围,减少计算量,提高文本比较效率。

图6为本申请实施例的一种文本比较方法流程示意图,如图所示,所述步骤s502,当获取到新的匹配点时,更新所述遍历区域,并在所述新的遍历区域上继续进行遍历查询,直至没有下一个匹配点出现为止,包括:

步骤s601,当获取到新的匹配点时,将所述第一文本及所述第二文本中最后一个文字对应的坐标点与所述新的匹配点对应的坐标点之间的矩形区域作为新的遍历区域;

具体的,当获取到新的匹配点时,可根据步骤s501所述重新确定遍历区域,所述新的遍历区域由新的匹配点和两个文本中最后一个文字对应的坐标点确定,例如,如果新的匹配点的坐标点是(e,f),那么遍历区域是(e,f)到(a,b)。

步骤s602,在所述新的遍历区域上对除所述新的匹配点之外的区域进行遍历查询,直至没有下一个匹配点出现为止。

具体的,在所述新的遍历区域上进行遍历查询时,可通过计算与所述新的匹配点的最短距离获取下一个匹配点,依次类推,直至没有下一个匹配点出现为止,其中,在所述新的遍历区域上进行遍历查询时,可将所述新的匹配点排除在遍历区域之外,即不需要对所述新的匹配点进行遍历查询。

具体的,当通过循环遍历查询之后,会不断获取新的匹配点,并根据所述新的匹配点更新遍历区域,在确定下一个匹配点时候最短距离的计算是根据相同文字坐标与上一个匹配点的最短距离,当通过遍历查询及最短距离计算之后,如果本次没有新的匹配点产生,就可结束遍历查询,本次文本比较结束。

本实施例中,通过循环遍历查询获取所有匹配点信息,可以有效提高文本比较效率,降低复杂度。

图7为本申请实施例的一种文本比较方法流程示意图,如图所示,所述步骤s103,根据所述第一文本与所述第二文本中相同文字的匹配点信息进行统计,获取文本比较结果,包括:

步骤s701,根据所述第一文本与所述第二文本中相同文字的匹配点信息统计匹配点的数目;

具体的,当获取到第一个文本和第二个文本中所有的匹配点信息后,可以首先统计所有匹配点的数量。

步骤s702,获取所述第一文本及所述第二文本的文字长度,并根据所述文字长度中的较小文字长度与所述匹配点的数目获得文本比较结果。

具体的,可将第一个文本的文字长度和第二个文本的文字长度进行比较,获取两个文本长度中较小的那个文字长度,如果两个文本的文字长度一样,那么可以任意选择其中一个文本的文字长度,最后将所有匹配点的数量除以文本的文字长度就可以获得两个文本的相似度。

本实施例中,通过匹配点的数目获取两个文本之间的相似度,可以有效降低文本比较复杂度。

本申请实施例的一种文本比较装置结构如图8所示,包括:

文本映射模块801、匹配点查询模块802及文本比较模块803;其中,文本映射模块801与匹配点查询模块802相连,匹配点查询模块802与文本比较模块803相连;文本映射模块801设置为获取第一文本及第二文本,将所述第一文本及所述第二文本分别转换成单行文字,并将转换后的所述第一文本及所述第二文本分别映射到x轴和y轴;匹配点查询模块802设置为对在x轴上的所述第一文本及在y轴上的所述第二文本进行遍历查询,获取所述第一文本与所述第二文本中相同文字的匹配点信息;文本比较模块803设置为根据所述第一文本与所述第二文本中相同文字的匹配点信息进行统计,获取文本比较结果。

本申请实施例还公开了一种计算机设备,所述计算机设备包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被一个或多个所述处理器执行时,使得一个或多个所述处理器执行上述各实施例中所述文本比较方法中的步骤。

本申请实施例还公开了一种存储介质,所述存储介质可被处理器读写,所述存储器存储有计算机可读指令,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行上述各实施例中所述文本比较方法中的步骤。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,前述的存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)等非易失性存储介质,或随机存储记忆体(randomaccessmemory,ram)等。

以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

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