Работа методов set_seq1 и set_seq2, difflib python

Я проверил документы difflib, и я запутался в том, как difflib.SequenceMatcher.ratio()на самом деле работает. Учти это:

s = difflib.SequenceMatcher(None, "hey here" , "hey there").ratio()
print s 

даетs = 0.9411764705882353
Я хотел знать, как именно это вычисляется. 2 строки сравниваются, фактически просматривая отклонение одной строки относительно другой. Для 2 строк a и b Документы говорят:

Различия вычисляются как "что нам нужно сделать, чтобы" а "превратил его в" б "?"

И есть что-то вроде:

для x в b, b2j[x] - список индексов (в b), в которых появляется x;нежелательные элементы не отображаются

Пожалуйста, объясните в приведенном выше примере с.

1 ответ

Решение

Из документов:

Где T - общее количество элементов в обеих последовательностях, а M - количество совпадений, это 2,0*M / T.

В этом случае T равно 17, потому что первая строка имеет 8 символов, а вторая строка - 9. M равно 8, потому что восемь символов из первой строки соответствуют символам из второй. 2 * 8 / 17 равно 0,9411764705882353.

Другие вопросы по тегам