`
ijavagos
  • 浏览: 1248055 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

求两个字符串的相似度(或距离)

 
阅读更多

http://hi.baidu.com/erennetwork/blog/item/abe65068b92a81c980cb4a58.html

两个字符串距离和相似度的定义:

通过修改、增加和删除操作,使两个字符串变的相等,所做的操作次数为两个字符串的距离,距离加1的倒数为相似度。

例如:

A = "abeg";

B = "cdeg";

通过更改A中的ab=>cd使两个字符串相等,两个操作,距离为2。

求距离的代码如下:

int calDistance(char *A, char *B)
{
if(*A == '\0')//如果A结束了,则可以通过给A增加strlen(B)个字符使其相等。
{
return strlen(B);
}
if(*B == '\0')//如果B结束了,则可以通过给A增加strlen(A)个字符使其相等。
{
return strlen(A);
}
if(*A == *B)//如果这两个字符相等,则考虑后面的。
{
return calDistance(A+1,B+1);
}
else//如果这两个字符不相等,则可有三种操作使其相等,取所需操作最少的那个。
{
int temp1 = calDistance(A+1, B);//操作1:给B增加一个字符
int temp2 = calDistance(A, B+1);//操作2:给A增加一个字符
int temp3 = calDistance(A+1,B+1);//操作3:更改一个字符
if(temp1 > temp2)
temp1 = temp2;
if(temp1 > temp3)
temp1 = temp3;
return temp1+1;//因为这一步有一个操作,所以+1
}
}

分享到:
评论

相关推荐

    字符串相似度比较算法

    在计算机科学领域,字符串相似度比较算法是一种用于评估两个字符串之间相似程度的技术。这些算法广泛应用于文本处理、信息检索、生物信息学等多个领域。当我们要判断两个字符串是否含有相同或相近的信息时,这类算法...

    delphi计算两个字符串相似度源码 Levenshtein算法版

    Levenshtein算法,也称为编辑距离算法,就是用于衡量两个字符串之间差异程度的一种方法。本文将深入探讨如何使用Delphi编程语言来实现这一算法,并分析其原理和应用。 Levenshtein算法的核心思想是通过计算将一个...

    比较两个字符串之间相似度

    用途:可用于论文抄袭检测、DNA等。...算法实现思路:通过对一个字符串插入、删除、替换转变成另一个字符串所需要的步骤称为距离,计算两个字符串之间的距离,从而可以得到两个字符串之间的相似度。

    两个字符串相似度匹配

    本主题将深入探讨“两个字符串相似度匹配”的概念、方法及其实现。 字符串相似度匹配旨在量化两个字符串之间的相似程度,通常以百分比的形式表示。它考虑了字符的顺序、重复以及缺失等因素,旨在找出字符串间的共同...

    mysql 计算字符串相似度

    在许多应用场景中,我们需要对两个字符串进行相似度比较,比如搜索引擎中的关键词匹配、文本分析中的近义词识别等。MySQL 提供了多种方法来实现字符串相似度的计算,其中一种较为常见的做法是通过自定义函数来实现。...

    LD的两字符串相似度计算.zip

    Levenshtein Distance(简称LD),又称编辑距离,是衡量两个字符串相似度的一种方法。这个概念由俄国科学家Vladimir Levenshtein在1965年提出,因此得名。 编辑距离定义了将一个字符串转换成另一个字符串所需的最少...

    使用最短编辑距离算法判断两个字符串的相似度

    这个算法主要用于衡量两个字符串之间的差异,即需要进行多少次单字符操作(插入、删除或替换)才能将一个字符串转换为另一个字符串。在文本处理、信息检索、生物信息学等领域有着广泛的应用。 字符串相似度是评估两...

    Delphi计算字符串的相似度

    字符串相似度计算通常用于找出两个字符串之间的相似程度,这在许多场景下都非常有用,例如拼写检查、搜索引擎排名、推荐系统等。有多种算法可以用来衡量字符串的相似性,包括但不限于: 1. **Levenshtein距离**:也...

    DELPHI Levenshtein算法 字符串相似度计算(附源码)

    Levenshtein算法,也称为编辑距离算法,是由俄国数学家Vladimir Levenshtein在1965年提出的一种衡量两个字符串相似度的方法。这个算法基于动态规划原理,可以计算出将一个字符串转换成另一个字符串所需要的最少单...

    字符串相似度算法

    1. **Levenshtein距离**:由俄国科学家Levenshtein提出,它定义了两个字符串之间的最小编辑距离,即最少需要多少次插入、删除或替换操作才能将一个字符串转换为另一个。这种算法适用于拼写纠错和查找近似匹配。 2. ...

    字符串相似度算法 levenshtein distance 编辑距离算法

    我们可以用一个二维矩阵来表示两个字符串的编辑距离,其中矩阵的行和列分别对应两个字符串的字符,矩阵中的每个元素表示到当前位置为止,由一个字符串转换到另一个字符串所需的最小编辑距离。 假设我们有两个字符串...

    字符串相似度比较

    1. **Levenshtein距离**:衡量两个字符串之间转换成彼此所需的最少单字符编辑(插入、删除或替换)的数量。距离越小,相似度越高。 2. **Jaccard相似度**:基于集合论,计算两个字符串的公共子串占总子串集合的比例...

    字符串相似度比较T-2021-7-1.rar

    本资料“字符串相似度比较T-2021-7-1.rar”显然聚焦于探讨如何衡量两个字符串之间的相似程度,以及在特定情境下,如站名对比,如何应用这些方法。 字符串相似度比较的目标是量化两个字符串之间的相似性,这通常通过...

    Python-Levenshtein快速计算编辑距离以及字符串的相似度

    除了编辑距离外,Levenshtein库还提供了其他有用的功能,如`ratio`函数,它能计算两个字符串的相似度,返回值范围在0到1之间,值越接近1表示相似度越高: ```python from Levenshtein import ratio ratio('kitten',...

    Oracle字符相似度函数

    Oracle字符相似度函数是Oracle数据库系统提供的一种功能,用于评估两个字符串之间的相似性。这个功能在数据清洗、信息检索、文本分析等领域具有广泛的应用。在SQL查询中,我们可以直接使用这些函数来比较不同字符串...

    两个字符串的相似度算法实现——编辑距离之Levenshtein距离

    两个字符串的相似度算法实现——编辑距离之Levenshtein距离

    c#字符串相似度源码 编辑距离 余弦相似性 SimHash

    首先,编辑距离是一种衡量两个字符串之间差异的度量,它表示由一个字符串转换为另一个字符串最少的单字符编辑操作次数。编辑操作包括插入、删除和替换。在C#中,我们可以创建一个二维动态规划数组来计算两字符串的...

    java字符串相似度算法

    Java字符串相似度算法是用于衡量两个字符串之间相似程度的一种计算方法。在文本处理、信息检索、数据清洗等领域中,这种算法具有重要的应用价值。这里主要介绍了一种基于Levenshtein距离的Java实现。 Levenshtein...

    用 Levenshtein 距离算法最快的 JS 实现来测量两个字符串之间的差异_JavaScript_代码_相关文件_下载

    Levenshtein距离算法是一种衡量两个字符串相似度的数学方法,由俄国科学家Vladimir Levenshtein在1965年提出。这个算法通过计算将一个字符串转换成另一个字符串所需的最少单字符编辑(插入、删除或替换)次数来评估...

    如何确定中文字符串的相似度

    为了描述两个字符串之间的距离,我们需要采用专门的方法。 在计算字符串相似度时,我们可以将字符串视为二元变量,每个独立的单词作为二元变量的一个属性。我们可以利用分词技术将字符串分成若干个单词,每个单词...

Global site tag (gtag.js) - Google Analytics