如何计算两个 .txt 文件之间的 Levenshtein 距离?

How to Calculate Levenshtein distance between two .txt files?

有标准的 linux 命令吗?如果没有,谁能描述一个 python 脚本来做同样的事情?

我不建议这样做。 Levenshtein 距离函数的复杂度几乎为 O(n*m),当文本相似时,它的复杂度为 O(n²)。

但如果你愿意,你可以做到...... pip install python-Levenshtein

代码将是这样的:

from Levenshtein import *

txt1 = open("text1.txt").read()
txt2 = open("text2.txt").read()

print("distance:", distance(txt1,txt2))

视情况而定。当 ocr 输出相似并且预期存在一些差异时,您可以进行“拆分”并比较每个 word/line 等。 并且仅对行数相同时出现差异的部分使用编辑距离。例如:

def textLevi(txt1,txt2):
   lines = list(zip(txt1.split("\n"),txt2.split("\n")))
   distance = 0
   for i,ele in enumerate(lines,1):
        line1,line2 = ele
       if line1 != line2:
           actDistance = distance(line1,line2)
           print( "Distance of line %d: " %(i),actDistance)
           distance += actDistance


   print( "Sum of Lv Distances:",distance)
 
textLevi("Hello I \n like cheese","Hello I \n like cheddar")

将创建输出:

Distance of line 2: 4

Sum of Lv Distances: 4