短文本之间的文本匹配度计算方法与流程

文档序号:11678130阅读:3841来源:国知局
短文本之间的文本匹配度计算方法与流程

本发明涉及文本匹配技术领域,更具体地说,涉及一种短文本之间的文本匹配度计算方法。



背景技术:

目前主流的文本相似度计算方法包括以下几种,但都与存在不同程度的缺点。

一、普通jaro-winkler计算方法适合短字符,字符前缀相同有加分,但是没有考虑相似字符之间间隔,因此反例拒绝匹配(待匹配短文本相似度计算高,但实际不是相似的短文本)效果较差。

二、最长公共字串计算方法对字符保证相对有序,反例拒绝匹配效果较好,但对长度和间隔敏感,正例匹配(待匹配短文本间字符相似度高,并且实际上的确是相似的短文本)效果较差。

三、基于编辑距离的相似度计算方法对字符长度和位序敏感,差异大的反例子拒绝匹配效果较好,但对有差异的正例和相似的反例的拒绝匹配效果较差。

四、余弦相似度方法对长度和间隔敏感,对某些反例拒绝匹配效果较好,但是没有考虑位序,位序有差异的反例拒绝匹配效果较差。

五、短语相似度方法考虑了相同字符的间隔,某些反例匹配效果较好,但没有考虑位序,位序有差异的反例拒绝匹配效果较差。



技术实现要素:

本发明的一个目的在于提供一种具有能够一定程度上克服上述缺陷的、短文本之间的文本匹配度计算方法。

为实现上述目的,本发明提供一种技术方案如下:

一种短文本之间的文本匹配度计算方法,包括如下步骤:a)、对第一文本、第二文本进行分词,以分别获得第一、第二文本的分词序列;b)、基于第一、第二文本的分词序列分别确定第一文本、第二文本的匹配序列;其中,第一文本的匹配序列表示在第一文本中的、与第二文本中的某一字符相同的字符所组成的、并按字符在第一文本中的先后顺序而排列的序列,第二文本的匹配序列表示在第二文本中的、与第一文本中的某一字符相同的字符所组成的、并按字符在第二文本中的先后顺序而排列的序列;c)、浏览第一文本的匹配序列,确定第一文本的匹配序列中的第i+1个字符与第i个字符在第二文本中的位置间隔;d)、基于各位置间隔、利用短语相似度计算方法来计算第一、第二文本之间的相同字符匹配度;e)、计算第一文本的匹配序列与第二文本的匹配序列之间的编辑距离;以及f)、基于第一、第二文本之间的相同字符匹配度、编辑距离、以及第一、第二文本各自的字符串长度,计算第一、第二文本之间的文本匹配度。

优选地,该方法还包括文本匹配度修正步骤:定义文本相似度阈值;确定在第一文本的匹配序列中、与第二文本的匹配序列相同的起始部分的字符长度;以及基于文本相似度阈值、相同的起始部分的字符长度对文本匹配度进行修正。

优选地,在步骤b)中:针对第一文本中的每一字符,分别仅与第二文本中未完成匹配的字符进行匹配,并以第二文本中完成匹配的、顺序最先的字符记录于第二文本的匹配序列中。

本发明的另一目的在于提供一种匹配准确率更高的短文本匹配方法。

为实现上述目的,本发明提供另一技术方案如下:

一种短文本匹配方法,用于从一短文本集合中找出与待匹配文本相匹配的一个或多个短文本,匹配方法包括:利用上述方法来分别计算待匹配文本与短文本集合中的各短文本之间的文本匹配度;将短文本集合中的、与待匹配文本之间的文本匹配度最高的短文本确定为相匹配的短文本。

本发明所提供的短文本之间的文本匹配度计算方法,能够更准确地计算短文本之间的匹配度,应用这种方法不仅对文本的匹配准确率更高,而且鲁棒性良好,也具有更高的敏感性和特异性。本发明所提供的短文本匹配方法,正例匹配以及反例拒绝匹配都具有良好效果,从而相比于现有技术具有更高的匹配准确率。

附图说明

图1示出本发明第一实施例提供的短文本之间的文本匹配度计算方法的流程图。

图2示出根据本发明的文本相似度计算方法与现有技术中的文本相似度计算方法的技术指标对比。

具体实施方式

如图1所示,本发明第一实施例提供一种短文本之间的文本匹配度计算方法,其包括如下各步骤。

步骤s10、对第一文本、第二文本进行分词,以分别获得第一、第二文本的分词序列。

作为一个示例,对于要匹配的两个文本a(第一文本)和b(第二文本)分别进行分词,由于是针对短文本,可以使用全切分和基于词的频度统计的分词方法。分词后获得分词序列a="a0a1...am-1",b="b0b1...bn-1",其中m≤n,a代表较短的字符串文本,b代表较长的字符串文本。

步骤s11、基于第一、第二文本的分词序列分别确定第一文本、第二文本的匹配序列。

其中,第一文本的匹配序列表示在第一文本中的、与第二文本中的某一字符相同的字符所组成的、并按字符在第一文本中的先后顺序而排列的序列,第二文本的匹配序列表示在第二文本中的、与第一文本中的某一字符相同的字符所组成的、并按字符在第二文本中的先后顺序而排列的序列。

继续上述示例,如果文本a中第i个字符ai在文本b中有相同字符bk与之匹配,则计算该字符在文本b中的位置:

c(a,i,b)={k|bk=ai,k=0,1,...,n-1},其中i=0,1,…,m-1。

优选情况下,针对所述第一文本中的每一字符,分别仅与第二文本中未完成匹配的字符进行匹配,并以第二文本中完成匹配的、顺序最先的字符记录于第二文本的匹配序列中,进而形成第二文本的整个匹配序列。

步骤s12、浏览第一文本的匹配序列,确定第一文本的匹配序列中的第i+1个字符与第i个字符在第二文本中的位置间隔。

步骤s13、基于各位置间隔、利用短语相似度计算方法来计算第一、第二文本之间的相同字符匹配度。

继续上述示例,如果文本a中存在第i个字符和第i+1个字符分别与文本b中对应字符相匹配,则计算匹配成功的第i个字符和第i+1个字符在文本b中对应字符之间的位置间隔:

δ(a,i+1,i,b)=c(a,i+1,b)-c(a,i,b)

进而,第一、第二文本之间的相同字符匹配度可采用如下计算公式:

其中,n表示文本a和文本b之间匹配成功的字符总个数,δ(a,i+1,i,b)表示第一文本的匹配序列中的第i+1个字符与第i个字符在第二文本中对应字符之间的位置间隔。

本领域技术人员理解,计及字符之间的位置间隔,可以提高反例拒绝匹配的效果。

步骤s14、计算第一文本的匹配序列与第二文本的匹配序列之间的编辑距离。

具体地,针对文本a和文本b中所有匹配成功的字符集合,按照每个字符在a中的先后顺序,构成字符串ms1;同时,按照每个字符在b中的先后顺序,构成字符串ms2。

进而,字符串ms1和字符串ms2之间的编辑距离(levenshtein距离)可以表示为:

t=d(ms1,ms2),其中,d表示求取字符串之间的编辑距离。

本领域技术人员可以理解,将编辑距离作为文本匹配度的计算因子,可以确保字符长度和位序敏感性,使得某些差异大的反例拒绝匹配效果较好。

步骤s15、基于第一、第二文本之间的相同字符匹配度、编辑距离、以及第一、第二文本各自的字符串长度,计算第一、第二文本之间的文本匹配度。

作为示例,第一、第二文本之间的文本匹配度的计算公式为:

其中,m为第一、第二文本之间的相同字符匹配度,t为第一文本的匹配序列与第二文本的匹配序列之间的编辑距离,|sa|、|sb|分别为第一、第二文本的字符串长度。

根据该第一实施例的改进实施方式,该方法还包括一文本匹配度修正步骤:

定义文本相似度阈值;

确定在第一文本的匹配序列中、与第二文本的匹配序列相同的起始部分的字符长度;以及

基于文本相似度阈值、相同的起始部分的字符长度对文本匹配度进行修正。

本领域技术人员可以理解,当文本a和文本b的相似度比较高,并且起始位置部分相同的长度较大时,则文本a与文本b相似的几率会更高。上述修正步骤即将该因素考虑在内。

具体地,文本匹配度可采用如下修正公式:

其中,dab为第一、第二文本之间的文本匹配度,l为在上述修正步骤中确定的、相同的起始部分的字符长度,p为修正因子,通常取值为0至0.25,优选为0.1。

本发明第二实施例提供一种短文本匹配方法,用于从一短文本集合中找出与待匹配文本相匹配的一个或多个短文本,该匹配方法包括:

一、利用上述第一实施例提供的短文本之间的文本匹配度计算方法,分别计算待匹配文本与短文本集合中的各短文本之间的文本匹配度。

二、将短文本集合中的、与待匹配文本之间的文本匹配度最高的短文本确定为与待匹配文本相匹配的短文本。

图2示出根据本发明的文本相似度计算方法(基于其的短文本匹配方法)与现有技术中的5种文本相似度计算方法(基于它们的短文本匹配方法)的技术指标对比。

具体地,为了刻画6种计算方法的准确性,绘制了6种不同计算方法的roc曲线,其中roc曲线以负正类率(fpr)为横坐标、以真正类率(tpr)为纵坐标进行绘制。

从图2中可以看出,这6种计算方法的auc都超过了0.9,说明采用该6种方法都会有比较好的文本匹配效果和/或文本分类效果。就auc的指标来看,本发明提供的计算方法技术指标最好,jaro-winkler计算方法次之,编辑距离计算方法的技术指标最差,lcs(最长公共字串)、余弦相似度计算方法和短语相似度计算方法的效果位于中间水平。从曲线的走势来说,也是本发明提供的计算方法更接近坐标轴的左上角,说明该方法在这些位置具有更高的敏感性和特异性。

应用本发明提供的文本相似度计算方法,在特定的f1阈值下有更好的精确率和召回率;而在召回率达到60%时,相比现有技术中的各种方法,短文本匹配的准确率表现更好,可以高达87.1%;此外,从auc标准差来说,本发明提供的文本相似度计算方法在整体上优于其他方法。

上述说明仅针对于本发明的优选实施例,并不在于限制本发明的保护范围。本领域技术人员可作出各种变形设计,而不脱离本发明的思想及附随的权利要求。

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