TGViewer
Python Заметки Python Заметки @pythonotes · 2.2K subscribers
Post #186 1.34K
­ В стандартных библиотеках Python есть средства для текстового процессинга. Например difflib, fnmatch или тотже re. Но в реальной работе они оказываются "многословны" при при поиске нечётких совпадений строк.
Например, если вы пишете голосовой помощник и вам требуется определить произнесённые ключевые слова. Или в вашем телеграм-боте пользователь вводит определённые слова и возможны ошибки или сокращения.

Вместо того чтобы писать большой список вариантов каждого слова следует применять нечёткое совпадение в тексте.

Для этого хорошо подойдёт библиотека fuzzywuzzy. Она может посчитать на сколько один текст похож на другой или найти из списка строк самое похожее на заданный текст.

Пример поиска имени месяца по введённому юзером тексту. Список месяцев берём из примера прошлого поста.

>>> from fuzzywuzzy import process
>>> import calendar
>>> months = list(calendar.month_name)[1:]
# достаём все совпадения. Функция возвращает само слово и степень похожести
>>> process.extract('январ', months, limit=3)
[('Январь', 91), ('Март', 44), ('Сентябрь', 40)]
# можно сразу взять самое похожее совпадение
>>> process.extractOne('фев', months)
('Февраль', 90)

Конечно, на этом возможности не ограничены. Можно искать в текстах плагиат, анализировать текст на статистику похожих слов, создать автокомплиты с исправлениями в текстовых редакторах и тд.

#libs
PyPI fuzzywuzzy Fuzzy string matching in python
More from @pythonotes
  1. Sep 21, 2026­ WebAssembly это мощная технология позволяющая загружать практически любое приложение в б…
  2. Aug 17, 2026Не так давно столкнулся с API который в ответе с ошибкой присылал только статус-код. Без п…
  3. Jul 20, 2026У меня основная ОС это Linux. Но нередко требуется делать сборку клиента под Windows. Соби…
  4. Jul 13, 2026В прошлый раз был пример с понижением привелегий процесса. Проблема в том, что обратно под…
  5. Jul 6, 2026Модуль pwd может использоваться для считывания информации о пользователях из базы данных п…
  6. Jun 22, 2026Недавно я реализовал Multi Tenancy систему на FastAPI + SQLAlchemy и пересобрал её в небол…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →