迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Python >

Python 编辑距离

作者:迹忆客 最近更新:2023/06/29 浏览次数:

今天,我们将学习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

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

在 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 是什么以及为什么使用它。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便