Python 编辑距离
今天,我们将学习Python中的编辑距离。 我们还将探讨字符串的插入、删除、替换和递归实现。
在 Python 中编辑距离
编辑距离是将一个字符串转置为另一个字符串所需的量。 这种转置是通过递归、替换、插入和删除字符串的字符来完成的。
将一个单词变成另一个单词所需的字符删除、插入和替换次数取决于两个单词编辑的紧密程度。
它在 Python 中也被称为 Levenshtein 距离,因为它不需要比较两个字符串的长度相同; Levenshtein 距离有很大的影响。
编辑距离很容易直观地理解。 单字符修改的总数决定了两者之间的距离。
输出距离表示需要多少修改才能使两个单词相同。 输出距离越小,需要的改变就越少。
让我们通过以下字符串插入、删除、替换和递归实现的示例代码来了解编辑距离。
字符串的插入
在下面的代码中,t 被插入到字机中的 i 和 n 之间。
示例代码:
w= "Machine"
w= w[:5] + "t" + w[5:]
print(w)
输出:
Machitne
字符串的删除
下面的代码中,在字机中a和h之间删除了c。
示例代码:
w= "Machine"
w = w[:2] + w[3:]
print(w)
输出:
Mahine
字符串的替换
在下面的代码中,c在字机中的a和h之间被a替换。
示例代码:
w = "Machine"
w = w[:2] + "a" + w[3:]
print(w)
输出:
Maahine
字符串的递归实现
机器和学习之间的编辑距离为 5,如下面的输出所示。
我们可以获取用户输入的任何字符串,并在以下 Python 方法中递归实现编辑距离。
这种递归技术效率低下,因为重复计算相同子串的编辑距离。
示例代码:
w1=input("Type here for word 1: ")
w2=input("Type here for word 2: ")
len1=len(w1)
len2=len(w2)
a =[[0]*(len2+1) for _ in range(len1+1)]
for m in range(0,len1+1):
a[m][0]=m
for n in range(0,len2+1):
a[0][n]=n
for m in range (1,len1+1):
for n in range(1,len2+1):
if w1[m-1]==w2[n-1]:
a[m][n] = a[m-1][n-1]
else :
a[m][n]= min(a[m][n-1],a[m-1][n],a[m-1][n-1])+1
print(a[m][n])
输出:
Type here for word 1: machine
Type here for word 2: learning
5
相关文章
type.Dict 和 Dict 之间的区别及其在 Python 中的用途
发布时间:2023/06/28 浏览次数:93 分类:Python
-
本文讨论如何将类型提示与 Typing.Dict 结合使用,并将其与通常的 dict 函数区分开来。type.Dict 和 dict 之间的区别及其在 Python 中的用途
在 Python 中解析 JSON 对象数组
发布时间:2023/06/28 浏览次数:57 分类:Python
-
由于浏览器可以快速解析 JSON 对象,因此它们有助于在客户端和服务器之间传输数据。 本文将介绍如何使用Python的JSON模块传输和接收JSON数据。
在 Python 中等待 5 秒
发布时间:2023/06/28 浏览次数:152 分类:Python
-
本篇文章将讨论如何在 Python 中等待 5 秒。在 Python 中使用 time.sleep() 函数等待 5 秒 Python 的 time 模块提供了存储和操作时间的功能和对象。
Python 中的模糊字符串匹配
发布时间:2023/06/28 浏览次数:89 分类:Python
-
今天,我们将学习如何使用 thefuzz 库,它允许我们在 python 中进行模糊字符串匹配。 此外,我们将学习如何使用 process 模块,该模块允许我们借助模糊字符串逻辑有效地匹配或提取字符串。Py
在 Python 中执行 Shell 命令并获取输出
发布时间:2023/06/28 浏览次数:81 分类:Python
-
在本文中,我们将学习如何借助 os.system() 从 Python 脚本执行 cmd 命令。 我们还将学习如何借助 Python 中的 subprocess 模块以更简单的方式从脚本执行 cmd 命令。从 Python 脚本执行 CMD 命令并使用 os
Python 中的 Monkey 补丁
发布时间:2023/06/28 浏览次数:186 分类:Python
-
本文解释了什么是Monkey补丁以及如何在 Python 中实现它。 它有两个部分; 第一个演示了函数中的Monkey修补,第二个演示了如何在文件的单元测试中实现它。
Python 中的 Mock 和 Patch 之间的区别
发布时间:2023/06/28 浏览次数:182 分类:Python
-
在 Python 中,我们有一个称为单元测试的过程,其中包含模拟和补丁函数。 本文将讨论这两个角色的用途和区别。Python 中 Mock 和 Patch 对象库的用途和区别
在 Python 中使用 SciPy、NumPy 和 Pandas 存储数据
发布时间:2023/06/28 浏览次数:184 分类:Python
-
我们将了解为什么需要数据分箱以及哪种技术最适合哪种情况。Python 中的分箱 分箱是推断不同变量关系的最强大的分析技术之一。分箱是一种非参数且高度灵活的技术,其中变量被分类为不同
在 Python 中使用 Fsolve
发布时间:2023/06/28 浏览次数:65 分类:Python
-
本文将探讨如何使用 fsolve 在 Python 中求解。 我们还将探索它的使用场景和一些示例代码,以更好地理解如何以及何时使用它来达到某种结果。让我们首先了解 fsolve 是什么以及为什么使用它。