利索能及
我要发布
收藏
专利号: 2014107666831
申请人: 北京国双科技有限公司
专利类型:发明专利
专利状态:已下证
更新日期:2025-11-19
缴费截止日期: 暂无
联系人

摘要:

权利要求书:

1.一种字符串相似度的计算方法,其特征在于,包括:

切割第一字符串和第二字符串,得到所述第一字符串的第一子串和所述第二字符串的第二子串;

对比所述第二子串和所述第一字符串以删除所述第一字符串中与所述第二子串相同的部分,得到第一差异串,并对比所述第一子串和所述第二字符串以删除所述第二字符串中与所述第一子串相同的部分,得到第二差异串;以及根据所述第一字符串的长度、所述第二字符串的长度、所述第一差异串的长度和所述第二差异串的长度计算所述第一字符串和所述第二字符串的相似度。

2.根据权利要求1所述的计算方法,其特征在于,所述第一子串的数量为m,所述第二子串的数量为n,m和n均为2以上的自然数,其中:对比所述第二子串和所述第一字符串以删除所述第一字符串中与所述第二子串相同的部分,得到第一差异串包括重复执行第一判断步骤和第一删除步骤,直至i=n,得到所述第一差异串,其中,i的初始值为1:所述第一判断步骤:判断所述第一字符串是否包含第二子串S2i;以及

所述第一删除步骤:在判断出所述第一字符串包括所述第二子串S2i的情况下,从所述第一字符串中删除与所述第二子串S2i相同的部分,并设置i=i+1,对比所述第一子串和所述第二字符串以删除所述第二字符串中与所述第一子串相同的部分,得到第二差异串包括重复执行第二判断步骤和第二删除步骤,直至j=m,得到所述第二差异串,其中,j的初始值为1:所述第二判断步骤:判断所述第二字符串是否包含第一子串S1j;以及

所述第二删除步骤:在判断出所述第二字符串包括所述第一子串S1j的情况下,从所述第二字符串中删除与所述第一子串S1j相同的部分,并设置j=j+1。

3.根据权利要求2所述的计算方法,其特征在于,在对比所述第二子串和所述第一字符串以删除所述第一字符串中与所述第二子串相同的部分,得到第一差异串,并对比所述第一子串和所述第二字符串以删除所述第二字符串中与所述第一子串相同的部分,得到第二差异串之前,所述计算方法还包括:获取每个所述第一子串的长度,并获取每个所述第二子串的长度;以及

按照长度由高到低的顺序分别对m个所述第一子串排序,得到第一子串S11至第一子串S1m,并按照长度由高到低的顺序分别对n个所述第二子串排序,得到第二子串S21至第二子串S2n。

4.根据权利要求1所述的计算方法,其特征在于,根据所述第一字符串的长度、所述第二字符串的长度、所述第一差异串的长度和所述第二差异串的长度计算所述第一字符串和所述第二字符串的相似度包括:按照公式 计算所述相似度,其中,L(S1)为所述第一字符串的

长度,L(S2)为所述第二字符串的长度,L(DS1)为所述第一差异串的长度,L(DS2)为所述第二差异串的长度,A为所述相似度。

5.一种字符串相似度的计算装置,其特征在于,包括:

切割单元,用于切割第一字符串和第二字符串,得到所述第一字符串的第一子串和所述第二字符串的第二子串;

处理单元,用于对比所述第二子串和所述第一字符串以删除所述第一字符串中与所述第二子串相同的部分,得到第一差异串,并对比所述第一子串和所述第二字符串以删除所述第二字符串中与所述第一子串相同的部分,得到第二差异串;以及计算单元,用于根据所述第一字符串的长度、所述第二字符串的长度、所述第一差异串的长度和所述第二差异串的长度计算所述第一字符串和所述第二字符串的相似度。

6.根据权利要求5所述的计算装置,其特征在于,所述第一子串的数量为m,所述第二子串的数量为n,m和n均为2以上的自然数,其中:所述处理单元包括被重复调用的第一判断模块和第一删除模块,其中,所述第一判断模块和所述第一删除模块被重复调用至i=n,得到所述第一差异串,i的初始值为1:所述第一判断模块,用于判断所述第一字符串是否包含第二子串S2i;

所述第一删除模块,用于在所述第一判断模块判断出所述第一字符串包括所述第二子串S2i的情况下,从所述第一字符串中删除与所述第二子串S2i相同的部分,并设置i=i+1,所述处理单元还包括被重复调用的第二判断模块和第二删除模块,其中,所述第二判断模块和所述第二删除模块被重复调用至j=m,得到所述第二差异串,j的初始值为1:所述第二判断模块,用于判断所述第二字符串是否包含第一子串S1j;以及所述第二删除模块,用于在所述第二判断模块判断出所述第二字符串包括所述第一子串S1j的情况下,从所述第二字符串中删除与所述第一子串S1j相同的部分,并设置j=j+1。

7.根据权利要求6所述的计算装置,其特征在于,所述计算装置还包括:

获取单元,用于获取每个所述第一子串的长度,并获取每个所述第二子串的长度;以及排序单元,用于按照长度由高到低的顺序分别对m个所述第一子串排序,得到第一子串S11至第一子串S1m,并按照长度由高到低的顺序分别对n个所述第二子串排序,得到第二子串S21至第二子串S2n。

8.根据权利要求5所述的计算装置,其特征在于,所述计算单元包括:

计算模块,用于按照公式 计算所述相似度,其中,L(S1)为所述

第一字符串的长度,L(S2)为所述第二字符串的长度,L(DS1)为所述第一差异串的长度,L(DS2)为所述第二差异串的长度,A为所述相似度。