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

时间:2018-06-15 08:30:10

标签: python linux levenshtein-distance

是否有标准的linux命令?如果没有,任何人都可以描述一个python脚本来做同样的事情吗?

2 个答案:

答案 0 :(得分:1)

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

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

代码就像那样:

form Levenshtein import *

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

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

答案 1 :(得分:0)

这取决于。当ocr输出相似且有一些差异可以预期时,你可以做一个"分裂"并比较每个单词/行等 当线的数量相同时,只有使用levenshtein距离才能发生差异。例如:

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")

将创建输出:

  

第2行:4的距离

     

Lv距离之和:4