algorithm - Levenshtein 的编辑距离算法如何工作?

标签 algorithm levenshtein-distance

我正在经历Levenshtein distance algorithm在其中我掌握了它的一些初始步骤,但在后续步骤中,当它开始计算“成本”时,我很难理解它。我不明白计算成本的目的以及它如何帮助算法实现其目标。请帮助我理解这个算法。

最佳答案

有很多不同的方法可以通过插入/删除/替换来编辑第一个字符串以获得第二个字符串(实际上是无限多个)。每个都有特定数量的基本编辑操作。

编辑距离定义为所需的最少操作次数,即最短序列的长度。这个数字是明确定义的,尽管它可以通过几个不同的编辑序列来实现。

这与欧几里德距离的情况非常相似:您可以沿着各种轨迹从一个点到达另一个点,但只有直线才能达到最小路径长度。

更新:

需要补充的是,为不同的操作分配不同的成本可以提供更大的灵活性,并允许偏向其中一个或另一个。更重要的是,您可以为每个字符分配单独的权重,例如,将“O”换成“0”被认为比插入空格更“严重”。

成本最小化原则仍然存在。

关于algorithm - Levenshtein 的编辑距离算法如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28025861/

相关文章:

algorithm - 使用 levenshtein 距离和 Euristics 匹配字符串

linux - linux有没有基于多列做模糊匹配的命令

c# - 列出字符串/整数的所有排列

java - 在骰子值上找到可能的节点

java - 如何在扫描线算法中检测正确的端点

algorithm - 是否有稀疏编辑距离算法?

Python:使用 scikit-learn 的 dbscan 进行字符串聚类,使用 Levenshtein 距离作为度量:

Python、嵌套循环、匹配和性能

java - 如何在服务器端为端口编写重试策略以监听客户端请求?

python - 这些数据包使用什么校验和算法?