Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm Levenshtein和#x27;s编辑距离算法有效吗?_Algorithm_Levenshtein Distance - Fatal编程技术网

Algorithm Levenshtein和#x27;s编辑距离算法有效吗?

Algorithm Levenshtein和#x27;s编辑距离算法有效吗?,algorithm,levenshtein-distance,Algorithm,Levenshtein Distance,我正在经历的是,我掌握了它最初的一些步骤,但在随后的步骤中,当它开始计算“成本”时,我很难理解它。我不明白计算成本的目的以及它是如何帮助算法实现其目标的。请帮助我理解此算法。两个字符串a和b的成本可以使用计算,这里定义了一个表,用于存储a和b前缀对的成本。这里的成本正好是Levenshtein距离,即编辑步骤的数量。有许多不同的方法可以通过插入/删除/替换来编辑第一个字符串,以获得第二个字符串(实际上是无限多个)。每个都有一个特定的基本编辑操作计数 Levenshtein距离定义为所需操作的最小

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

两个字符串
a
b
的成本可以使用计算,这里定义了一个表,用于存储
a
b
前缀对的成本。这里的成本正好是Levenshtein距离,即编辑步骤的数量。

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

Levenshtein距离定义为所需操作的最小数量,即最短序列的长度。这个数字定义得很好,即使它可以通过几个不同的编辑序列来实现

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

更新:

需要补充的是,为不同的运营分配不同的成本提供了更大的灵活性,并允许给予一方或另一方优惠。更重要的是,您可以为每个字符指定单独的权重,因此,例如,用“O”替换“0”被认为比插入空格更“严重”


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

看看这个:这里还有一个很好的解释,以及一个演示,您可以更改每次操作的权重(即成本),并检查结果: