我有两个内容跨越多行的文件。我想找到编辑距离;即,假设只有插入和删除是可能的,将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
说+
和-
的总数给我编辑距离是否准确?
答案 0 :(得分:2)
根据您对编辑距离的定义(类似于"Longest common subsequence problem"),您首先需要定义单个更改的内容。
最常见的子序列问题是经典的计算机科学 问题,数据比较程序的基础,如
diff
实用,并在生物信息学中有应用。它也很广泛 由诸如Git的修订控制系统用于协调多个 对修订控制的文件集合所做的更改。
假设您希望行定义更改(基于您的示例),那么是,使用+
的{{1}}和-
的总数命令就足够了。这是因为更新/替换将同时显示为删除(diff
)和插入(-
)。