#!/usr/bin/env python
def levenshtein(a,b):
"Calculates the Levenshtein distance between a and b."
n, m = len(a), len(b)
if n > m:
# Make sure n <= m, to use O(min(n,m)) space
a,b = b,a
n,m = m,n
current = range(n+1)
for i in range(1,m+1):
previous, current = current, [i]+[0]*n
for j in range(1,n+1):
add, delete = previous[j]+1, current[j-1]+1
change = previous[j-1]
if a[j-1] != b[i-1]:
change = change + 1
current[j] = min(add, delete, change)
return current[n]
def levenshtein_distance(first, second):
"""Find the Levenshtein distance between two strings."""
if len(first) > len(second):
first, second = second, first
if len(second) == 0:
return len(first)
first_length = len(first) + 1
second_length = len(second) + 1
distance_matrix = [range(second_length) for x in range(first_length)]
for i in range(1, first_length):
for j in range(1, second_length):
deletion = distance_matrix[i-1][j] + 1
insertion = distance_matrix[i][j-1] + 1
substitution = distance_matrix[i-1][j-1]
if first[i-1] != second[j-1]:
substitution += 1
distance_matrix[i][j] = min(insertion, deletion, substitution)
return distance_matrix[first_length-1][second_length-1]
if __name__=="__main__":
#from sys import argv
first = "abcabcaa"
second = "cbsaaecaa"
print levenshtein(first,second)
print levenshtein_distance(first,second)
分享到:
相关推荐
字符串相似度算法 字符串相似度算法是一种衡量两个字符串之间相似度的方法,广泛应用于自然语言处理、数据挖掘、机器学习等领域。在本文中,我们将讨论一种常用的字符串相似度算法:Levenshtein Distance。 什么是...
python字符串相似度 下载 概述 归一化、度量、相似性和距离 (归一化)相似度和距离 公制距离 基于带状疱疹(n-gram)的相似性和距离 文史丹 规范化的文史丹 加权文体 Damerau-Levenshtein 最佳字符串对齐 雅罗-...
Levenshtein库提供了高效的算法来计算这个距离,并且可以用来评估字符串之间的相似度。在Python中,你可以通过以下方式导入并使用这个库: ```python from Levenshtein import distance ``` 然后,你可以用`...
在这个"LD的两字符串相似度计算.zip"压缩包中,可能包含了一个名为"readme.txt"的文件,它可能解释了如何使用这个算法或者给出了一个示例。另外,"com"可能是程序代码的组成部分,可能是一个Python、Java或其他编程...
在IT领域,字符串相似度计算是许多应用的基础,如搜索引擎、拼写检查、文本分类等。其中,Levenshtein Distance(编辑距离)是一种衡量两个字符串之间差异的度量方式,由俄国科学家Vladimir Levenshtein在1965年提出...
python字符串相似度 tdebatty likeity的Python3.x实现 一个实现不同字符串相似度和距离度量的库。 当前实现了十二种算法(包括Levenshtein编辑距离和同级,Jaro-Winkler,最长公共子序列,余弦相似性等)。 查看...
在IT领域,字符串相似度计算是一项重要的技术,广泛应用于文本分析、信息检索、自然语言处理等多个方面。本项目提供了一个简单易用的demo,支持中英文字符串的相似度比较,采用了编辑距离算法和余弦相似度这两种经典...
总结来说,LCS算法是一种计算字符串相似度的有效方法,基于动态规划的思想。在实际应用中,它可以用于文本比较、版本控制、序列比对等多种场景。理解并掌握这种算法对于提升IT专业人士在相关领域的技能是十分重要的...
这个压缩包“luozhouyang-python-string-similarity-b688fd7”可能包含了一些用于计算字符串相似度的Python库,如`fuzzywuzzy`、`jellyfish`、`difflib`等。这些库提供了多种算法,帮助开发者快速评估两个字符串之间...
这个仓库提供了一种高效的方法来计算Python中的字符串相似度,这对于我们理解和实现各种算法非常有帮助。 字符串相似度的计算通常涉及以下几个方面: 1. **编辑距离(Levenshtein Distance)**:这是衡量两个字符...
在`Bioinformatics algorithm.py`这个文件中,很可能是书中某个算法的Python实现,可能是上述提到的序列比对算法或者是基因组组装算法的一部分。而`E-coli.txt`文件很可能包含了大肠杆菌的基因序列数据,供算法进行...
它主要基于Levenshtein距离算法,这是一种衡量两个字符串相似度的方法。在文本解析和操作的场景中,`fuzzywuzzy`能帮助我们处理不完全匹配、拼写错误或者格式各异的数据。 Levenshtein距离算法计算的是两个字符串...
计算字符串变换相等的最小操作代价 2020远景智能计算字符串相似度计算字符串变换相等的最小操作代价题目描述:输入描述:输出描述:示例:思路:算法介绍示例代码:代码输出:2020远景智能在线笔试 计算字符串的相似度...
在提供的压缩包"sim.rar_mycbr_python 相似性_字符串相似性"中,我们可以看到一个用于实现字符串相似度比较的Python代码片段。myCBR的外部相似度方法是这个代码的核心部分,它专注于根据两个字符串中特定字符出现的...
kmp算法 KMP算法是三位学者在 Brute-Force算法的基础上同时提出的模式匹配的改进算法。Brute- Force算法在模式...常用的衡量字符串相似度的方法是根据一个串转换成另一个串所需的基本操作数目来确定。基本操作由字符串
- 在实际应用中,通常设定一个相似度阈值,当两个字符串的相似度超过这个值时,认为它们是匹配的。 7. **Similar.exe程序**: 提到的"Similar.exe"可能是一个用于执行字符串对比的小型应用程序,它可以接受输入的...
7. **Jaro-Winkler距离**:这是一种衡量两个字符串相似度的算法,特别适用于人名或地址的匹配。它考虑了字符的匹配、排列和前缀相似性。`textdistance`库提供了`jaro_winkler`函数。 在实现这些算法时,纯Python...
首先,介绍的库是fuzzywuzzy,它是一个基于Python的简单字符串相似度算法库,专门用于字符串的匹配和比较。通过fuzzywuzzy库中的函数,我们可以计算两个字符串的相似度,并得到一个介于0到100之间的数字分数,这个...
汉明距离计算两个二进制字符串不同位置的数量,余弦相似度则考虑了两个向量的方向和角度。 5. **设置阈值**:为了过滤掉微小的差异,如噪声或轻微旋转,我们可以设定一个相似度阈值。如果两个图像的哈希值的相似度...
K-shingle算法是一种在文本处理和信息检索领域中常见的字符串相似度计算方法。它主要用于构建文档的表示形式,以便于比较文档之间的相似性。在文本挖掘、数据挖掘以及搜索引擎优化等场景中,K-shingle算法有着广泛的...