CN104090865B - 文本相似度计算方法及装置 - Google Patents
文本相似度计算方法及装置 Download PDFInfo
- Publication number
- CN104090865B CN104090865B CN201410323334.2A CN201410323334A CN104090865B CN 104090865 B CN104090865 B CN 104090865B CN 201410323334 A CN201410323334 A CN 201410323334A CN 104090865 B CN104090865 B CN 104090865B
- Authority
- CN
- China
- Prior art keywords
- text
- texts
- node
- distance
- dis2
- 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
- 238000004364 calculation method Methods 0.000 title claims abstract description 32
- 238000012217 deletion Methods 0.000 claims description 91
- 230000037430 deletion Effects 0.000 claims description 91
- 238000007792 addition Methods 0.000 claims description 90
- 229910002056 binary alloy Inorganic materials 0.000 claims description 2
- 238000006243 chemical reaction Methods 0.000 claims description 2
- 238000012549 training Methods 0.000 abstract description 4
- 230000011218 segmentation Effects 0.000 abstract 1
- 238000000034 method Methods 0.000 description 17
- 230000009286 beneficial effect Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000011524 similarity measure Methods 0.000 description 3
- 238000000205 computational method Methods 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 238000007418 data mining Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000009412 basement excavation Methods 0.000 description 1
- 230000000052 comparative effect Effects 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例公开了文本相似度计算方法及装置。该文本相似度计算方法包括:通过比较两个文本的节点,计算两个文本的增删距离与替换距离,其中所述增删距离与所述替换距离的和为所述两个文本的编辑距离;根据增删距离与替换距离,计算两个文本的相似度。本发明实施例提供的技术方案,能够采用一种不依赖于词典、切词以及模型训练的算法,来实现文本之间的相似度的计算,从而可以提高相似度的计算速度。
Description
技术领域
本发明实施例涉及计算机技术领域,尤其涉及一种文本相似度计算方法及装置。
背景技术
目前,由多个字符所组成的文本已成为一种十分重要的信息载体。其文本间相似度的计算,作为一种文档处理中所经常使用的方法,通常被应用于文本聚类、文本检索、数据挖掘、***自动问答等诸多应用场合。
在现有技术中,一种文本相似度的计算方式是:先分别对两个长文本基于词典进行切词,并计算每个文本中切词得到的各个分词的词频,然后根据词典确定两文本中各分词间的相似度,进而根据所得到的相似度以及词频计算两文本的整体相似度;另一种文本相似度的计算方式是:预先通过机器学习方式,训练得到一文本相似度计算模型,然后根据该模型确定文本间的相似度。
然而,上述现有技术所存在的技术缺陷在于:对于第一种文本相似度的计算方式而言,其依赖于词典,需要对文本进行切词,其实现算法比较复杂且不利于改进;对于第二种文本相似度的计算方式而言,其需要预先训练得到一文本相似度计算模型,其实现算法也比较复杂。因此,这两种方式均会导致文本相似度的计算速度很低。
发明内容
本发明实施例提供一种文本相似度计算方法及装置,以采用一种不依赖于词典、切词以及模型训练的算法,来实现文本之间的相似度的计算,从而提高相似度的计算速度。
第一方面,本发明实施例提供了一种文本相似度计算方法,该方法包括:
通过比较两个文本的节点,计算所述两个文本的增删距离与替换距离,其中所述增删距离与所述替换距离的和为所述两个文本的编辑距离;
根据所述增删距离与替换距离,计算所述两个文本的相似度。
第二方面,本发明实施例还提供了一种文本相似度计算装置,该装置包括:
文本距离计算单元,用于通过比较两个文本的节点,计算所述两个文本的增删距离与替换距离,其中所述增删距离与所述替换距离的和为所述两个文本的编辑距离;
文本相似度计算单元,用于根据所述增删距离与替换距离,计算所述两个文本的相似度。
本发明实施例提出的技术方案,是根据两个文本的增删距离和替换距离,来计算文本之间的相似度,该计算过程不依赖于词典、切词,也无需预先构造文本相似度计算模型,且实现算法简单,因而能够很好的提高文本相似度的计算速度。
附图说明
图1是本发明实施例一提供的一种文本相似度计算方法的流程示意图;
图2是本发明实施例二提供的一种文本相似度计算方法的流程示意图;
图3是本发明实施例三提供的一种文本相似度计算方法的流程示意图;
图4是本发明实施例四提供的一种文本相似度计算装置的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
图1是本发明实施例一提供的一种文本相似度计算方法的流程示意图。本实施例可适用于对获取到的任意两文本进行相似度计算的情况。该方法可以由文本相似度计算装置来执行,所述装置可由软件和/或硬件执行,例如所述装置配置于具有存储器、处理器以及通信接口的终端设备或服务器。其中,存储器用于存储该文本相似度计算方法的程序指令,处理器用于执行存储器存储的程序指令,通信接口用于与外界其他设备进行数据通信。参见图1,该方法具体包括如下操作:
110、通过比较两个文本的节点,计算两个文本的增删距离与替换距离,其中增删距离与替换距离的和为两个文本的编辑距离;
120、根据所述增删距离与替换距离,计算两个文本的相似度。
在本实施例中,所述文本是用来计算相似度的两个文本,可由多个字符组成。每个字符可以是中文字符、英文字符或者其他特殊字符(例如“?”、“+”、“@”等)。这两个文本可以是根据不同用户输入指令生成的,也可以是从其他装置获取得到的。例如,用来计算相似度的第一文本为:第一用户A针对微博平台发布的主题Q所输入的回复信息;用来计算相似度的第二文本为:第二用户B针对微博平台发布的主题Q所输入的回复信息。
所谓节点,指的是对组成两文本的内容进行比较的比较单位。在本实施例中,可设定每个字符为一个节点;也可先按照设定的编码格式,预先将两个文本中的每个字符转换为相应的二进制序列,该二进制序列以字节为容量单位,在此种情况下,可设定每个字符对应的一个字节长度的二进制序列为一个节点。
所谓两个文本的编辑距离,指的是:由两个文本中的一个文本转换成另一个文本所需的最少编辑操作次数。其中,编辑操作包括将一个节点替换成另一个节点,***一个节点,删除一个节点。两个文本的增删距离,指的是:所需的最少编辑操作次数中的***次数和删除次数之和。两个文本的替换距离,指的是:所需的最少编辑操作次数中的替换次数。两个文本的增删距离与替换距离之和为编辑距离。
在本实施例的一个优选的实施方式中,可基于动态规划算法求解编辑距离的思想,通过比较两个文本的节点,计算两个文本的增删距离与替换距离。该过程具体包括:
如果Min(i,j)=0,则Dis1(Ai,Bj)=Max(i,j),Dis2(Ai,Bj)=0;如果Min(i,j)!=0,则
Xi,j=Dis1(Ai-1,Bj)+Dis2(Ai-1,Bj)+1,
Yi,j=Dis1(Ai,Bj-1)+Dis2(Ai,Bj-1)+1,
Zi,j=Dis1(Ai-1,Bj-1)+Dis2(Ai-1,Bj-1)+const,
如果F(Xi,j,Yi,j,Zi,j)=Xi,j,则
Dis1(Ai,Bj)=Dis1(Ai-1,Bj)+1,
Dis2(Ai,Bj)=Dis2(Ai-1,Bj);
如果F(Xi,j,Yi,j,Zi,j)=Yi,j,则
Dis1(Ai,Bj)=Dis1(Ai,Bj-1)+1,
Dis2(Ai,Bj)=Dis2(Ai,Bj-1);
如果F(Xi,j,Yi,j,Zi,j)=Zi,j,则
Dis1(Ai,Bj)=Dis1(Ai-1,Bj-1),
Dis2(Ai,Bj)=Dis2(Ai-1,Bj-1)+const;
其中,0≤i≤I,0≤j≤J,I为两个文本中第一文本的节点个数,J为两个文本中第二文本的节点个数;
Dis1(Ai,Bj)为两个文本中第一文本的前i个节点与第二文本的前j个节点的增删距离,Dis2(Ai,Bj)为两个文本中第一文本的前i个节点与第二文本的前j个节点的替换距离;
Dis1(Ai-1,Bj)为两个文本中第一文本的前(i-1)个节点与第二文本的前j个节点的增删距离,Dis2(Ai-1,Bj)为两个文本中第一文本的前(i-1)个节点与第二文本的前j个节点的替换距离;
Dis1(Ai,Bj-1)为两个文本中第一文本的前i个节点与第二文本的前(j-1)个节点的增删距离,Dis2(Ai,Bj-1)为两个文本中第一文本的前i个节点与第二文本的前(j-1)个节点的替换距离;
Dis1(Ai-1,Bj-1)为两个文本中第一文本的前(i-1)个节点与第二文本的前(j-1)个节点的增删距离,Dis2(Ai-1,Bj-1)为两个文本中第一文本的前(i-1)个节点与第二文本的前(j-1)个节点的替换距离;
如果第一文本的第i个节点与第二文本的第j个节点不相同,则const=1,否则const=0;
Xi,j为两个文本中第一文本的前i个节点与第二文本的前j个节点的第一编辑距离,Yi,j为两个文本中第一文本的前i个节点与第二文本的前j个节点的第二编辑距离,Zi,j为两个文本中第一文本的前i个节点与第二文本的前j个节点的第三编辑距离,F(Xi,j,Yi,j,Zi,j)为根据设定规则从Xi,j、Yi,j和Zi,j中选取的值最小的一个。
Dis1(AI,BJ)为两个文本的增删距离,Dis2(AI,BJ)为两个文本的替换距离。
进一步的,设定规则为:
如果在Xi,j、Yi,j和Zi,j各自对应的值中至少有两个值相等,且相等值为Xi,j、Yi,j和Zi,j各自对应的值中的最小值,则F(Xi,j,Yi,j,Zi,j)为Xi,j、Yi,j和Zi,j中值为最小的且所对应的增删距离最大的一个,否则F(Xi,j,Yi,j,Zi,j)=Min(Xi,j,Yi,j,Zi,j);或者
如果在Xi,j、Yi,j和Zi,j各自对应的值中至少有两个值相等,且相等值为Xi,j、Yi,j和Zi,j各自对应的值中的最小值,则F(Xi,j,Yi,j,Zi,j)为Xi,j、Yi,j和Zi,j中值为最小的且所对应的替换距离最大的一个,否则F(Xi,j,Yi,j,Zi,j)=Min(Xi,j,Yi,j,Zi,j)。
在本发明实施例中,Min(i,j)为i与j的最小值,Max(i,j)为i与j的最大值,Min(Xi,j,Yi,j,Zi,j)为Xi,j,Yi,j,Zi,j中的最小值。
本领域的普通技术人员应理解,设定规则还可以是:随机选取Xi,j、Yi,j和Zi,j中值为最小的一个作为F(Xi,j,Yi,j,Zi,j)。
由此可见,对于第一文本的前i个节点与第二文本的前j个节点的第一编辑距离、第二编辑距离和第三编辑距离,如果其中有至少两个编辑距离的值相等,并且相等值是Xi,j、Yi,j和Zi,j中的最小值时,则会有一个路径选择规则(即上述设定规则),以从值相等的至少两个编辑距离中确定一个编辑距离,将所确定的编辑距离所对应的增删距离和替换距离,作为第一文本的前i个节点与第二文本的前j个节点之间的增删距离和替换距离。可根据具体的应用场景来设定路径选择规则。
如果增删操作对文本相似度的影响比较大,则可将路径选择规则设定为最大代价原则,即以对应的增删距离最大为选择原则确定值相等的至少两个编辑距离中的编辑距离。例如,第一文本的前i个节点与第二文本的前j个节点的第一编辑距离为5,其对应的增删距离Dis1(Ai,Bj)=Dis1(Ai-1,Bj)+1=2,Dis2(Ai,Bj)=Dis2(Ai-1,Bj)=3;第二编辑距离为5,其对应的增删距离Dis1(Ai,Bj)=Dis1(Ai,Bj-1)+1=4,Dis2(Ai,Bj)=Dis2(Ai,Bj-1)=1;第三编辑距离为7,其对应的增删距离Dis1(Ai,Bj)=Dis1(Ai-1,Bj-1)=4,Dis2(Ai,Bj)=Dis2(Ai-1,Bj-1)+const=3。最终确定的编辑距离为第二编辑距离,因为第二编辑距离与第一编辑距离相等,均小于第三编辑距离,并且第二编辑距离对应的增删距离4大于第一编辑距离对应的增删距离2。此时,第一文本的前i个节点与第二文本的前j个节点之间的增删距离和替换距离分别为4和1。
如果替换操作对文本相似度的影响比较大,则可将路径选择规则设定为最小代价原则,即以对应的替换距离最大为选择原则确定值相等的至少两个编辑距离中的编辑距离。
为更清楚的阐述基于动态规划算法求解编辑距离的思想来计算两个文本的增删距离与替换距离,现进行举例说明。例如,两个文本中的第一文本由四个节点组成:第一个节点x1为“a”,第二个节点x2为“b”,第三个节点x3为“c”,第四个节点x4为“d”,x0为默认的空节点;第二文本由两个节点组成:第一个节点y1为“d”,第二个节点y2为“e”,y0为默认的空节点;所采用的设定规则为:如果在X,Y,Z各自对应的值中至少有两个值相等,且相等值为X,Y,Z各自对应的值中的最小值,则F(X,Y,Z)为X,Y,Z中所对应的增删距离最大的一个。两个文本之间的增删距离与替换距离如下表1所示:
参见表1,第一文本的前一个节点和第二文本的前一个节点的增删距离与替换距离分别为0和1,第一文本的前两个节点和第二文本的前两个节点的增删距离与替换距离分别为0和2,......,第一文本的前三个节点和第二文本的前两个节点的增删距离与替换距离分别为1和2,等等。
在得到两个文本的增删距离与替换距离之后,可根据增删距离与替换距离,计算两个文本的相似度。具体的,两文本的增删距离与替换距离越大,其相似度也就越小。
在本实施例的一个具体实施方式中,可以将两个文本的增删距离与替换距离组成一个二维坐标(D1,D2),然后计算所述二维坐标与(0,0)之间的欧式距离、余弦夹角或者范数作为两个文本之间的相似度。其中,D1为两个文本的增删距离,D2为两个文本的替换距离。本领域普通技术人员应理解,还可通过其它方式来计算两个文本相似度。例如,首先分别为两个文本的增删距离与替换距离配置不同的权重W1和W2,然后计算二维坐标(W1×D1,W2×D2)与(0,0)之间的欧式距离、余弦夹角或者范数作为两个文本之间的相似度。当然,还可结合两个文本的节点个数,来计算两个文本的相似度。本实施例对此不作限定。
本实施例提出的技术方案,是根据两个文本的增删距离和替换距离,来计算文本之间的相似度,该计算过程不依赖于词典、切词,也无需预先构造文本相似度计算模型,且实现算法简单,因而能够很好的提高文本相似度的计算速度。并且,本实施例并不是将编辑距离直接作为两个文本的相似度,而是根据编辑距离中的增删距离与替换距离来确定两文本的相似度,这样能够细化编辑距离,区分并突出增删和替换两种操作对文本相似度的影响,便于后续基于相似度的文本处理。
实施例二
图2是本发明实施例二提供的一种文本相似度计算方法的流程示意图。本实施例在上述实施例的基础上,对“根据所述增删距离与替换距离,计算两个文本的相似度”这一操作120作进一步优化,以得到一种较为准确的,且利于后续文本聚类、文本检索、数据挖掘或***自动问答等处理的文本相似度。参见图2,该方法包括如下操作:
210、通过比较两个文本的节点,计算两个文本的增删距离与替换距离,其中增删距离与替换距离的和为两个文本的编辑距离;
220、按照公式计算两个文本的相似度。
其中,S为两个文本的相似度,L1为两个文本中第一文本的节点个数,L2为两个文本中第二文本的节点个数,D1为两个文本的增删距离,D2为两个文本的替换距离,N为设定的第一权重,M为设定的第二权重。
在本实施例的一个优选的实施方式中,如果两个文本中的每个文本均是由中文字符组成,则第一权重N大于第二权重M;如果两个文本中的每个文本均是由英文字符组成,则第一权重N小于第二权重M。
当然,也可根据后续基于相似度的文档处理需求,来确定第一权重和第二权重。例如,如果增删距离对后续基于相似度的文档处理的影响较大时,可设第一权重大于第二权重,反之替换距离对后续基于相似度的文档处理的影响较大时,可设第一权重小于第二权重。
在第一权重大于第二权重的情况下:如果计算两个文本的增删距离与替换距离时所采用的设定规则为最大代价原则,则计算得到的相似度会较采用最小代价原则得到的相似度小,在后续基于相似度的文本聚类这一文档处理中被聚类的点会比较分散;如果计算两个文本的增删距离与替换距离时所采用的设定规则为最小代价原则,则后续计算得到的相似度会较采用最大代价原则得到的相似度大,在后续基于相似度的文本聚类这一文档处理中被聚类的点会比较分散,适合于合并差异很小的类。
对于第一权重小于第二权重的情况,与上述第一权重大于第二权重的情况相反,在此不再赘述。
本实施例的技术方案,为两个文本的增删距离与替换距离赋予不同的权重,然后根据权重值、两个文本的增删距离与替换距离及其两文本的节点个数,来计算两个文本的相似度,这样可以使得用户能够根据后续文本处理需求对文本相似度的计算方法进行自适应调整,从而能够得到一种较为准确的,且利于后续文本聚类、文本检索、数据挖掘或***自动问答等处理的文本相似度。
实施例三
图3是本发明实施例三提供的一种文本相似度计算方法的流程示意图。本实施例在上述各实施例的基础上,针对待比较的两个文本中的每个文本均是由至少两个字符组成的这一应用场景,在上述操作“通过比较两个文本的节点,计算两个文本的增删距离与替换距离”之前,增加了对字符进行编码以得到相应的以字节为节点单位的二进制序列的操作。参见图3,该方法包括如下操作:
310、按照设定的编码方式,将两个文本中的字符转换为以字节为节点单位的二进制序列;
320、通过比较两个文本的节点,计算两个文本的增删距离与替换距离,其中增删距离与替换距离的和为两个文本的编辑距离;
330、按照公式计算两个文本的相似度。
其中,S为两个文本的相似度,L1为两个文本中第一文本的节点个数,L2为两个文本中第二文本的节点个数,D1为两个文本的增删距离,D2为两个文本的替换距离,N为设定的第一权重,M为设定的第二权重。
在本实施例中,编码格式可以为UTF-8(8-bit Unicode Transformation Format,8位单一码转换格式)或GBK(汉字内码扩展规范)。其中,UTF-8可以根据不同的字符自动选择编码的长短,比如对于英文字母这一字符只将其转换为1个字节的二进制序列,为1个节点;对于汉字这一字符会将其转换为3个字节(即为3个节点)的二进制序列。GBK为一种汉字标准编码,不管字符是中文字符还是英文字母,均会将其转换为2个字节(即为2个节点)的二进制序列。当然,还可采用其他编码方式将两个文本中的字符转换为以字节为节点单位的二进制序列,本实施例对此不作限定。
举例而言,两个文本中第一文本包括“业精于勤”4个字符,其GBK编码依次分别为:“1101001010110101、1011111010101011、1101001111011010、1100011111011010”,共8个节点,依次分别为:11010010、10110101、10111110、10101011、10111110、10101011、11000111、11011010;
第二文本包括“学业精深需勤奋”7个字符,其GBK编码依次分别为:“1101000110100111、1101001010110101、1011111010101011、1100100111101110、1101000011101000、1100011111011010、1011011111010111”,共14个节点,依次分别为:11010001、10100111、11010010、10110101、10111110、10101011、11001001、11101110、11010000、11101000、11000111、11011010、10110111、11010111。在比较两个文本中的节点时,只要待比较的两个节点的8位二进制序列中有1个对应位不相同,便可判断待比较这两个节点不同。
本实施例提供的技术方案,针对待比较的两个文本中的每个文本均是由至少两个字符组成的这一应用场景,预先对字符进行编码以得到相应的以字节为节点单位的二进制序列的操作,然后通过逐个比较两个文本的8位二进制序列,而非逐个比较两文本的字符,来计算两个文本的增删距离与替换距离,并根据所述增删距离与替换距离和两个文本的节点个数,计算两个文本的相似度,这样可使得在不便于直接比较两个文本中的字符,或者比较字符难度大、耗费资源较多的情况下,能够提供一种基于二进制序列比较的文本相似度计算方案。
在上述任意实施例的基础上,考虑到相似度的计算速度,优选的,两个文本中至少一个文本的字符长度小于1024。其中,字符长度指的是文本所包含的字符个数。如果待比较文本的字符长度远大于1024,可预先对其进行切分,得到多个字符长度小于等于1024的子文本,然后利用本发明实施例提供的技术方案对待比较的不同文本间相应的各个子文本进行相似度的计算,最后根据所得到的多个子文本的相似度得到一个总的相似度,例如可以求取多个子文本的相似度的平均值作为最终的两文本的相似度。
举例而言,两文本中的第一文本依次包括第一子文本、第二子文本、第三子文本和第四子文本,第二文本依次包括第五子文本、第六子文本和第七子文本,在此情况下可分别计算两文本中对应子文本的相似度,即分别计算第一子文本与第五子文本、第二子文本与第六子文本、第三子文本与第七子文本之间的相似度,进而计算各个相似度的平均值。由于在第二文本中不存在与第一文本中的第四子文本对应的子文本,此时可根据第四子文本的字符长度在两文本的总字符长度中所占的比例,来确定是否对所得的平均值进行调整。如果所述比例大于设定阈值,可将所述平均值的0.5倍作为最终的两文本的相似度,否则直接将所述平均值作为最终的两文本的相似度。
实施例四
图4是本发明实施例四提供的一种文本相似度计算装置的结构示意图。本实施例可适用于对获取到的任意两文本进行相似度计算的情况。参见图4,该装置的具体结构包括:
文本距离计算单元410,用于通过比较两个文本的节点,计算所述两个文本的增删距离与替换距离,其中所述增删距离与所述替换距离的和为所述两个文本的编辑距离;
文本相似度计算单元420,用于根据所述增删距离与替换距离,计算所述两个文本的相似度。
进一步的,所述文本相似度计算单元420,具体用于:
按照公式计算所述两个文本的相似度;
其中,所述S为所述两个文本的相似度,L1为所述两个文本中第一文本的节点个数,L2为所述两个文本中第二文本的节点个数,D1为所述增删距离,D2为所述替换距离,N为设定的第一权重,M为设定的第二权重。
进一步的,如果所述两个文本中的每个文本均是由中文字符组成,则所述第一权重N大于所述第二权重M;
如果所述两个文本中的每个文本均是由英文字符组成,则所述第一权重N小于所述第二权重M。
进一步的,所述两个文本中的每个文本由至少两个字符组成,则所述装置还包括:
字符转换单元400,用于在所述文本距离计算单元410计算所述两个文本的增删距离与替换距离之前,按照设定的编码方式,将所述两个文本中的字符转换为以字节为节点单位的二进制序列。
进一步的,所述两个文本中至少一个文本的字符长度小于1024。
进一步的,所述文本距离计算单元410,具体用于:
如果Min(i,j)=0,则Dis1(Ai,Bj)=Max(i,j),Dis2(Ai,Bj)=0;如果Min(i,j)!=0,则
Xi,j=Dis1(Ai-1,Bj)+Dis2(Ai-1,Bj)+1,
Yi,j=Dis1(Ai,Bj-1)+Dis2(Ai,Bj-1)+1,
Zi,j=Dis1(Ai-1,Bj-1)+Dis2(Ai-1,Bj-1)+const,
如果F(Xi,j,Yi,j,Zi,j)=Xi,j,则
Dis1(Ai,Bj)=Dis1(Ai-1,Bj)+1,
Dis2(Ai,Bj)=Dis2(Ai-1,Bj);
如果F(Xi,j,Yi,j,Zi,j)=Yi,j,则
Dis1(Ai,Bj)=Dis1(Ai,Bj-1)+1,
Dis2(Ai,Bj)=Dis2(Ai,Bj-1);
如果F(Xi,j,Yi,j,Zi,j)=Zi,j,则
Dis1(Ai,Bj)=Dis1(Ai-1,Bj-1),
Dis2(Ai,Bj)=Dis2(Ai-1,Bj-1)+const;
其中,0≤i≤I,0≤j≤J,I为所述两个文本中第一文本的节点个数,J为所述两个文本中第二文本的节点个数;
Dis1(Ai,Bj)为所述两个文本中第一文本的前i个节点与第二文本的前j个节点的增删距离,Dis2(Ai,Bj)为所述两个文本中第一文本的前i个节点与第二文本的前j个节点的替换距离;
Dis1(Ai-1,Bj)为所述两个文本中第一文本的前(i-1)个节点与第二文本的前j个节点的增删距离,Dis2(Ai-1,Bj)为所述两个文本中第一文本的前(i-1)个节点与第二文本的前j个节点的替换距离;
Dis1(Ai,Bj-1)为所述两个文本中第一文本的前i个节点与第二文本的前(j-1)个节点的增删距离,Dis2(Ai,Bj-1)为所述两个文本中第一文本的前i个节点与第二文本的前(j-1)个节点的替换距离;
Dis1(Ai-1,Bj-1)为所述两个文本中第一文本的前(i-1)个节点与第二文本的前(j-1)个节点的增删距离,Dis2(Ai-1,Bj-1)为所述两个文本中第一文本的前(i-1)个节点与第二文本的前(j-1)个节点的替换距离;
如果所述第一文本的第i个节点与所述第二文本的第j个节点不相同,则const=1,否则const=0;
Xi,j为所述两个文本中第一文本的前i个节点与第二文本的前j个节点的第一编辑距离,Yi,j为所述两个文本中第一文本的前i个节点与第二文本的前j个节点的第二编辑距离,Zi,j为所述两个文本中第一文本的前i个节点与第二文本的前j个节点的第三编辑距离,F(Xi,j,Yi,j,Zi,j)为根据设定规则从Xi,j、Yi,j和Zi,j中选取的值最小的一个。
进一步的,所述设定规则为:
如果在Xi,j、Yi,j和Zi,j各自对应的值中至少有两个值相等,且相等值为Xi,j、Yi,j和Zi,j各自对应的值中的最小值,则F(Xi,j,Yi,j,Zi,j)为Xi,j、Yi,j和Zi,j中值为最小的且所对应的增删距离最大的一个,否则F(Xi,j,Yi,j,Zi,j)=Min(Xi,j,Yi,j,Zi,j);或者
如果在Xi,j、Yi,j和Zi,j各自对应的值中至少有两个值相等,且相等值为Xi,j、Yi,j和Zi,j各自对应的值中的最小值,则F(Xi,j,Yi,j,Zi,j)为Xi,j、Yi,j和Zi,j中值为最小的且所对应的替换距离最大的一个,否则F(Xi,j,Yi,j,Zi,j)=Min(Xi,j,Yi,j,Zi,j)。
上述文本相似度计算装置这一产品可执行本发明任意实施例所提供的文本相似度计算方法,具备执行文本相似度计算方法相应的功能模块和有益效果。
本领域的普通技术人员应理解:本实施例提供的文本相似度计算装置在执行文本相似度计算操作时,仅是以上述各功能单元的划分进行举例说明;在实际应用当中,可以根据需要而将上述功能分配由不同的单元完成,即将文本相似度计算装置的内部结构划分成不同的功能单元,以完成以上描述的全部或者部分功能。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (10)
1.一种文本相似度计算方法,其特征在于,包括:
通过比较两个文本的节点,计算所述两个文本的增删距离与替换距离,其中所述增删距离与所述替换距离的和为所述两个文本的编辑距离;
根据所述增删距离与替换距离,计算所述两个文本的相似度;
根据所述增删距离与替换距离,计算所述两个文本的相似度,包括:
按照公式计算所述两个文本的相似度;
其中,所述S为所述两个文本的相似度,L1为所述两个文本中第一文本的节点个数,L2为所述两个文本中第二文本的节点个数,D1为所述增删距离,D2为所述替换距离,N为设定的第一权重,M为设定的第二权重;
如果所述两个文本中的每个文本均是由中文字符组成,则所述第一权重N大于所述第二权重M;
如果所述两个文本中的每个文本均是由英文字符组成,则所述第一权重N小于所述第二权重M。
2.根据权利要求1所述的文本相似度计算方法,其特征在于,所述两个文本中的每个文本由至少两个字符组成,则在计算所述两个文本的增删距离与替换距离之前,还包括:
按照设定的编码方式,将所述两个文本中的字符转换为以字节为节点单位的二进制序列。
3.根据权利要求1所述的文本相似度计算方法,其特征在于,所述两个文本中至少一个文本的字符长度小于1024。
4.根据权利要求1所述的文本相似度计算方法,其特征在于,通过比较两个文本的节点,计算所述两个文本的增删距离与替换距离,包括:
如果Min(i,j)=0,则Dis1(Ai,Bj)=Max(i,j),Dis2(Ai,Bj)=0;
如果Min(i,j)!=0,则
Xi,j=Dis1(Ai-1,Bj)+Dis2(Ai-1,Bj)+1,
Yi,j=Dis1(Ai,Bj-1)+Dis2(Ai,Bj-1)+1,
Zi,j=Dis1(Ai-1,Bj-1)+Dis2(Ai-1,Bj-1)+const,
如果F(Xi,j,Yi,j,Zi,j)=Xi,j,则
Dis1(Ai,Bj)=Dis1(Ai-1,Bj)+1,
Dis2(Ai,Bj)=Dis2(Ai-1,Bj);
如果F(Xi,j,Yi,j,Zi,j)=Yi,j,则
Dis1(Ai,Bj)=Dis1(Ai,Bj-1)+1,
Dis2(Ai,Bj)=Dis2(Ai,Bj-1);
如果F(Xi,j,Yi,j,Zi,j)=Zi,j,则
Dis1(Ai,Bj)=Dis1(Ai-1,Bj-1),
Dis2(Ai,Bj)=Dis2(Ai-1,Bj-1)+const;
其中,0≤i≤I,0≤j≤J,I为所述两个文本中第一文本的节点个数,J为所述两个文本中第二文本的节点个数;
Dis1(Ai,Bj)为所述两个文本中第一文本的前i个节点与第二文本的前j个节点的增删距离,Dis2(Ai,Bj)为所述两个文本中第一文本的前i个节点与第二文本的前j个节点的替换距离;
Dis1(Ai-1,Bj)为所述两个文本中第一文本的前(i-1)个节点与第二文本的前j个节点的增删距离,Dis2(Ai-1,Bj)为所述两个文本中第一文本的前(i-1)个节点与第二文本的前j个节点的替换距离;
Dis1(Ai,Bj-1)为所述两个文本中第一文本的前i个节点与第二文本的前(j-1)个节点的增删距离,Dis2(Ai,Bj-1)为所述两个文本中第一文本的前i个节点与第二文本的前(j-1)个节点的替换距离;
Dis1(Ai-1,Bj-1)为所述两个文本中第一文本的前(i-1)个节点与第二文本的前(j-1)个节点的增删距离,Dis2(Ai-1,Bj-1)为所述两个文本中第一文本的前(i-1)个节点与第二文本的前(j-1)个节点的替换距离;
如果所述第一文本的第i个节点与所述第二文本的第j个节点不相同,则const=1,否则const=0;
Xi,j为所述两个文本中第一文本的前i个节点与第二文本的前j个节点的第一编辑距离,Yi,j为所述两个文本中第一文本的前i个节点与第二文本的前j个节点的第二编辑距离,Zi,j为所述两个文本中第一文本的前i个节点与第二文本的前j个节点的第三编辑距离,F(Xi,j,Yi,j,Zi,j)为根据设定规则从Xi,j、Yi,j和Zi,j中选取的值最小的一个。
5.根据权利要求4所述的文本相似度计算方法,其特征在于,所述设定规则为:
如果在Xi,j、Yi,j和Zi,j各自对应的值中至少有两个值相等,且相等值为Xi,j、Yi,j和Zi,j各自对应的值中的最小值,则F(Xi,j,Yi,j,Zi,j)为Xi,j、Yi,j和Zi,j中值为最小的且所对应的增删距离最大的一个,否则F(Xi,j,Yi,j,Zi,j)=Min(Xi,j,Yi,j,Zi,j);或者
如果在Xi,j、Yi,j和Zi,j各自对应的值中至少有两个值相等,且相等值为Xi,j、Yi,j和Zi,j各自对应的值中的最小值,则F(Xi,j,Yi,j,Zi,j)为Xi,j、Yi,j和Zi,j中值为最小的且所对应的替换距离最大的一个,否则F(Xi,j,Yi,j,Zi,j)=Min(Xi,j,Yi,j,Zi,j)。
6.一种文本相似度计算装置,其特征在于,包括:
文本距离计算单元,用于通过比较两个文本的节点,计算所述两个文本的增删距离与替换距离,其中所述增删距离与所述替换距离的和为所述两个文本的编辑距离;
文本相似度计算单元,用于根据所述增删距离与替换距离,计算所述两个文本的相似度;
所述文本相似度计算单元,具体用于:
按照公式计算所述两个文本的相似度;
其中,所述S为所述两个文本的相似度,L1为所述两个文本中第一文本的节点个数,L2为所述两个文本中第二文本的节点个数,D1为所述增删距离,D2为所述替换距离,N为设定的第一权重,M为设定的第二权重;
如果所述两个文本中的每个文本均是由中文字符组成,则所述第一权重N大于所述第二权重M;
如果所述两个文本中的每个文本均是由英文字符组成,则所述第一权重N小于所述第二权重M。
7.根据权利要求6所述的文本相似度计算装置,其特征在于,所述两个文本中的每个文本由至少两个字符组成,则所述装置还包括:
字符转换单元,用于在所述文本距离计算单元计算所述两个文本的增删距离与替换距离之前,按照设定的编码方式,将所述两个文本中的字符转换为以字节为节点单位的二进制序列。
8.根据权利要求6所述的文本相似度计算装置,其特征在于,所述两个文本中至少一个文本的字符长度小于1024。
9.根据权利要求6所述的文本相似度计算装置,其特征在于,所述文本距离计算单元,具体用于:
如果Min(i,j)=0,则Dis1(Ai,Bj)=Max(i,j),Dis2(Ai,Bj)=0;
如果Min(i,j)!=0,则
Xi,j=Dis1(Ai-1,Bj)+Dis2(Ai-1,Bj)+1,
Yi,j=Dis1(Ai,Bj-1)+Dis2(Ai,Bj-1)+1,
Zi,j=Dis1(Ai-1,Bj-1)+Dis2(Ai-1,Bj-1)+const,
如果F(Xi,j,Yi,j,Zi,j)=Xi,j,则
Dis1(Ai,Bj)=Dis1(Ai-1,Bj)+1,
Dis2(Ai,Bj)=Dis2(Ai-1,Bj);
如果F(Xi,j,Yi,j,Zi,j)=Yi,j,则
Dis1(Ai,Bj)=Dis1(Ai,Bj-1)+1,
Dis2(Ai,Bj)=Dis2(Ai,Bj-1);
如果F(Xi,j,Yi,j,Zi,j)=Zi,j,则
Dis1(Ai,Bj)=Dis1(Ai-1,Bj-1),
Dis2(Ai,Bj)=Dis2(Ai-1,Bj-1)+const;
其中,0≤i≤I,0≤j≤J,I为所述两个文本中第一文本的节点个数,J为所述两个文本中第二文本的节点个数;
Dis1(Ai,Bj)为所述两个文本中第一文本的前i个节点与第二文本的前j个节点的增删距离,Dis2(Ai,Bj)为所述两个文本中第一文本的前i个节点与第二文本的前j个节点的替换距离;
Dis1(Ai-1,Bj)为所述两个文本中第一文本的前(i-1)个节点与第二文本的前j个节点的增删距离,Dis2(Ai-1,Bj)为所述两个文本中第一文本的前(i-1)个节点与第二文本的前j个节点的替换距离;
Dis1(Ai,Bj-1)为所述两个文本中第一文本的前i个节点与第二文本的前(j-1)个节点的增删距离,Dis2(Ai,Bj-1)为所述两个文本中第一文本的前i个节点与第二文本的前(j-1)个节点的替换距离;
Dis1(Ai-1,Bj-1)为所述两个文本中第一文本的前(i-1)个节点与第二文本的前(j-1)个节点的增删距离,Dis2(Ai-1,Bj-1)为所述两个文本中第一文本的前(i-1)个节点与第二文本的前(j-1)个节点的替换距离;
如果所述第一文本的第i个节点与所述第二文本的第j个节点不相同,则const=1,否则const=0;
Xi,j为所述两个文本中第一文本的前i个节点与第二文本的前j个节点的第一编辑距离,Yi,j为所述两个文本中第一文本的前i个节点与第二文本的前j个节点的第二编辑距离,Zi,j为所述两个文本中第一文本的前i个节点与第二文本的前j个节点的第三编辑距离,F(Xi,j,Yi,j,Zi,j)为根据设定规则从Xi,j、Yi,j和Zi,j中选取的值最小的一个。
10.根据权利要求9所述的文本相似度计算装置,其特征在于,所述设定规则为:
如果在Xi,j、Yi,j和Zi,j各自对应的值中至少有两个值相等,且相等值为Xi,j、Yi,j和Zi,j各自对应的值中的最小值,则F(Xi,j,Yi,j,Zi,j)为Xi,j、Yi,j和Zi,j中值为最小的且所对应的增删距离最大的一个,否则F(Xi,j,Yi,j,Zi,j)=Min(Xi,j,Yi,j,Zi,j);或者
如果在Xi,j、Yi,j和Zi,j各自对应的值中至少有两个值相等,且相等值为Xi,j、Yi,j和Zi,j各自对应的值中的最小值,则F(Xi,j,Yi,j,Zi,j)为Xi,j、Yi,j和Zi,j中值为最小的且所对应的替换距离最大的一个,否则F(Xi,j,Yi,j,Zi,j)=Min(Xi,j,Yi,j,Zi,j)。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410323334.2A CN104090865B (zh) | 2014-07-08 | 2014-07-08 | 文本相似度计算方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410323334.2A CN104090865B (zh) | 2014-07-08 | 2014-07-08 | 文本相似度计算方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104090865A CN104090865A (zh) | 2014-10-08 |
CN104090865B true CN104090865B (zh) | 2017-11-03 |
Family
ID=51638581
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410323334.2A Active CN104090865B (zh) | 2014-07-08 | 2014-07-08 | 文本相似度计算方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104090865B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106878632B (zh) * | 2017-02-28 | 2020-07-10 | 北京知慧教育科技有限公司 | 一种视频数据的处理方法和装置 |
WO2020061910A1 (zh) * | 2018-09-27 | 2020-04-02 | 北京字节跳动网络技术有限公司 | 用于生成信息的方法和装置 |
CN110197197B (zh) * | 2019-04-15 | 2022-08-30 | 贵州电网有限责任公司 | 一种基于文本相似度改进的电网档案相似度计算方法 |
CN110705247B (zh) * | 2019-08-30 | 2020-08-04 | 山东科技大学 | 基于χ2-C的文本相似度计算方法 |
CN112395851A (zh) * | 2020-11-18 | 2021-02-23 | 北京北大英华科技有限公司 | 一种文本比对方法、装置、计算机设备及可读存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101079026A (zh) * | 2007-07-02 | 2007-11-28 | 北京百问百答网络技术有限公司 | 文本相似度、词义相似度计算方法和***及应用*** |
CN101241514A (zh) * | 2008-03-21 | 2008-08-13 | 北京搜狗科技发展有限公司 | 一种生成纠错数据库的方法、自动纠错的方法和*** |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070288452A1 (en) * | 2006-06-12 | 2007-12-13 | D&S Consultants, Inc. | System and Method for Rapidly Searching a Database |
-
2014
- 2014-07-08 CN CN201410323334.2A patent/CN104090865B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101079026A (zh) * | 2007-07-02 | 2007-11-28 | 北京百问百答网络技术有限公司 | 文本相似度、词义相似度计算方法和***及应用*** |
CN101241514A (zh) * | 2008-03-21 | 2008-08-13 | 北京搜狗科技发展有限公司 | 一种生成纠错数据库的方法、自动纠错的方法和*** |
Non-Patent Citations (2)
Title |
---|
Levenshtein距离在编程题自动评阅中的应用研究;周汉平;《计算机应用与软件》;20110531;第28卷(第5期);第2部分 * |
中文问答***中问句理解和相似度计算的研究与实现;李旭锋;《中国优秀硕士学位论文全文数据库 信息科技辑》;20110315(第3期);5.2.3部分 * |
Also Published As
Publication number | Publication date |
---|---|
CN104090865A (zh) | 2014-10-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2021217935A1 (zh) | 问题生成模型的训练方法、问题生成方法及其相关设备 | |
KR102204971B1 (ko) | 검색어를 위한 오류 정정 방법 및 기기 | |
WO2021135444A1 (zh) | 一种基于人工智能的文本纠错方法、装置、计算机设备及存储介质 | |
CN104090865B (zh) | 文本相似度计算方法及装置 | |
CN111460083B (zh) | 文档标题树的构建方法、装置、电子设备及存储介质 | |
AU2017408800B2 (en) | Method and system of mining information, electronic device and readable storable medium | |
CN111428474A (zh) | 基于语言模型的纠错方法、装置、设备及存储介质 | |
JP2010518534A (ja) | 文脈上の入力方法 | |
CN102135814A (zh) | 一种字词输入方法及*** | |
CN112633003A (zh) | 一种地址识别方法、装置、计算机设备及存储介质 | |
CN108959388B (zh) | 信息生成方法及装置 | |
CN110348012B (zh) | 确定目标字符的方法、装置、存储介质及电子装置 | |
EP4390725A1 (en) | Video retrieval method and apparatus, device, and storage medium | |
CN111209740A (zh) | 文本模型训练方法、文本纠错方法、电子设备及存储介质 | |
CN106980620A (zh) | 一种对中文字串进行匹配的方法及装置 | |
CN112395425A (zh) | 一种数据处理方法、装置、计算机设备以及可读存储介质 | |
CN113553847A (zh) | 用于对地址文本进行解析的方法、装置、***和存储介质 | |
CN112800737A (zh) | 自然语言文本生成方法和装置以及对话*** | |
CN103927176A (zh) | 一种基于层次主题模型的程序特征树的生成方法 | |
CN110442843B (zh) | 字符替换方法、***、计算机设备及计算机可读存储介质 | |
CN104933030A (zh) | 一种维吾尔语拼写检查方法及装置 | |
WO2023103914A1 (zh) | 文本情感分析方法、装置及计算机可读存储介质 | |
CN111680146A (zh) | 确定新词的方法、装置、电子设备及可读存储介质 | |
CN108536693A (zh) | 一种敏感词过滤方法、装置、电子设备、存储介质 | |
CN111695350B (zh) | 一种文本的分词方法及分词装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20190812 Address after: 100085 Beijing, Haidian District, No. ten on the ground floor, No. 10 Baidu building, layer 2 Patentee after: BEIJING BAIDU NETCOM SCIENCE AND TECHNOLOGY Co.,Ltd. Address before: 100091 Beijing, Haidian District, northeast Wang West Road, No. 4, Zhongguancun Software Park, building C, block, 1-03 Patentee before: Pacify a Heng Tong (Beijing) Science and Technology Ltd. |
|
TR01 | Transfer of patent right |