Модуль difflib
Для приблизительного сравнения двух строк в стандартной библиотеке предусмотрен модуль difflib.
Функция difflib.get_close_matches() позволяет выделить n близких строк к заданной строке:
get_close_matches(word, possibilities, n=3, cutoff=0.6)
где
word
Строка, к которой ищутся близкие строки.
possibilities
Список возможных вариантов.
n
Требуемое количество ближайших строк.
cutoff
Коэффициент (из диапазона [0, 1]) необходимого уровня совпадения строк. Строки, которые при сравнении с word дают меньшее значение, игнорируются.
Следующий пример показывает функцию difflib.get_close_matches() в действии:
>>> import unicodedata >>> names = [unicodedata.name(unicode(chr(i))) for i in range(40, 127)] >>> print difflib.get_close_matches("LEFT BRACKET", names) ['LEFT CURLY BRACKET', 'LEFT SQUARE BRACKET']
В списке names - названия Unicode-символов с ASCII-кодами от 40 до 127.