我有两个文件,内容跨越多行。我想找到编辑距离;即假设只有插入和删除是可能的,那么将a转换为b需要多少更改。
> cat > A
A
B
C
D
E
> cat > B
A
B
D
D
F
E
> diff -u A B
--- A 2015-05-12 16:09:31.000000000 +0200
+++ B 2015-05-12 16:09:42.000000000 +0200
@@ -1,5 +1,6 @@
A
B
-C
D
+D
+F
E
可以准确地说
+
和-
的总数给出了编辑距离吗? 最佳答案
根据编辑距离的定义(类似于"Longest common subsequence problem"),首先需要定义单个更改是什么。
一个角色?
一句台词?
一个文件?
最长的公共子序列问题是一个经典的计算机科学
问题,数据比较程序的基础,如diff
在生物信息学中有应用。它也很广泛
由修订控制系统(如git)用于协调多个
对修订控制的文件集合所做的更改。
假设您希望行定义一个更改(基于您的示例),那么是的,使用+
命令的-
和diff
总数就足够了这是因为更新/替换将同时显示为删除(-
)和插入(+
)。
另见http://en.wikipedia.org/wiki/Diff_utility#Unified_format
关于algorithm - 是否可以使用统一的差异来推断编辑距离?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30193484/