Я хочу вычислить расстояние Левенштейна между предложениями в одном документе.и я нашел код, который вычисляет расстояние на уровне символов, но я хочу, чтобы он был на уровне слов.например, выход этого уровня персонажа равен 6 ,, но я хочу, чтобы он был равен 1, что означает, что нужно удалить только одно слово, если мы хотим изменить b на a или a на b:
a = "The patient tolerated this ."
b = "The patient tolerated ."
def levenshtein_distance(a, b):
if a == b:
return 0
if len(a) < len(b):
a, b = b, a
if not a:
return len(b)
previous_row = range(len(b) + 1)
for i, column1 in enumerate(a):
current_row = [i + 1]
for j, column2 in enumerate(b):
insertions = previous_row[j + 1] + 1
deletions = current_row[j] + 1
substitutions = previous_row[j] + (column1 != column2)
current_row.append(min(insertions, deletions, substitutions))
previous_row = current_row
print (previous_row[-1])
return previous_row[-1]
result = levenshtein_distance(a, b)