у меня есть следующие две строки:вычисления отношения Python-Левенштейна
a = 'bjork gudmundsdottir'
b = 'b. gudmundsson gunnar'
Левенштейна расстояние между этими двумя 12
. Когда я использую следующую формулу для расстояния Левенштейна, я получаю несоответствие 0.01
с python-Levenshtein
библиотеки:
>>> Ldist/max(len(a), len(b))
>>> float(12)/21
0.5714285714285714
# python-Levenshtein
Levenshtein.ratio(a,b)
0.5853658536585366
# difflib
>>> seq=difflib.SequenceMatcher(a=a,b=b)
>>> seq.ratio()
0.5853658536585366
Чем объясняется эта разница? Что я делаю неправильно в своих расчетах. Обратите внимание, что я рассмотрел этот вопрос How python-Levenshtein.ratio is computed, и он не совсем отвечает на то, что я прошу.
Может кто-нибудь объяснить формулу, которая используется для расчета приведенного выше отношения?
Так почему же вы не обновлять свой [первоначальный вопрос от 12мин назад] (http://stackoverflow.com/questions/29401904/how-is-levenshtein-distance-related-to -ratio) с деталями до того, что до сих пор неясно? –
Возможно, вы хотите посмотреть: http://stackoverflow.com/questions/6690739/fuzzy-string-comparison-in-python-confused-with-which-library-to-use – felipsmartins
@felipsmartins - I ' ve также добавил вывод из 'difflib'. – David542