У меня есть много строк, которые я хочу сопоставить на предмет сходства (каждая строка в среднем состоит из 30 символов). Я нашел difflib
SequenceMatcher
, который отлично подходит для этой задачи, так как он прост и дает хорошие результаты. Но если я сравню хеллбой
и адский мальчик
вот так
>>> sm=SequenceMatcher(lambda x:x=='-','hellboy','hell-boy')
>>> sm.ratio()
0: 0.93333333333333335
, я хочу, чтобы такие слова давали 100-процентное совпадение, то есть отношение 1,0
. Я понимаю, что ненужный символ, указанный в приведенной выше функции, используется не для сравнения, а для поиска самой длинной непрерывной совпадающей подпоследовательности. Можно ли как-то заставить SequenceMatcher
игнорировать некоторые «мусорные» символы для целей сравнения?