我有两个文件,内容跨越多行。我想找到编辑距离;即假设只有插入和删除是可能的,那么将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/

10-10 17:48