Skip to main content

Простая библиотека на основе расстояния Левенштейна для исправления опечаток

Project description

text-corrector

Простая и эффективная Python-библиотека для автоматического поиска и исправления опечаток в тексте, использующая расстояние Левенштейна и частотный анализ слов.

Особенности

  • Ранний выход в алгоритме Левенштейна: Оптимизированный подсчет расстояния — функция не считает матрицу до конца, если длина слов отличается больше, чем на заданный порог.
  • Частотный анализ: Если под критерии подходят несколько слов-кандидатов, библиотека выберет наиболее популярное слово на основе переданного словаря.
  • Поддержка языков: Корректно работает с текстами на русском и английском языках.
  • Сохранение регистра: Автоматически сохраняет заглавную букву у исправленного слова, если оригинал начинался с большой буквы.

Установка

Вы можете установить библиотеку локально из папки проекта:

pip install .

(После публикации на PyPI установка будет доступна через pip install text-corrector)

Быстрый старт

Для работы функции исправления требуется передать текст и частотный словарь в формате {"слово": частота_встречаемости}.

from text_corrector import correct_text

# 1. Подготовим частотный словарь (слово -> частота)
dictionary = {
    "привет": 1.0,
    "мир": 0.8,
    "программирование": 0.95,
    "код": 0.7
}

# 2. Исходный текст с опечатками
bad_text = "Привед мир и кадирование"

# 3. Исправление текста (max_dist — максимальное количество правок в слове)
clean_text = correct_text(bad_text, dictionary, max_dist=2)

print(clean_text)
# Выведет: "Привет мир и кадирование" 
# (Слово "кадирование" не изменилось, так как до слова "код" больше 2 правок)

Дополнительные функции

Вы также можете использовать отдельные компоненты библиотеки независимо:

from text_corrector import tokenize, get_candidates

# Разбить текст на чистые слова (без знаков препинания)
words = tokenize("Привет, мир! Как дела?")
print(words)  # ['Привет', 'мир', 'Как', 'дела']

# Получить список всех возможных замен из словаря с их весами
candidates = get_candidates("привед", {"привет": 1.0, "привлек": 0.5}, max_dist=2)
print(candidates)  # [('привет', 1, 1.0)] -> (слово, расстояние, частота)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

text_corrector-0.1.2.tar.gz (3.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

text_corrector-0.1.2-py3-none-any.whl (4.2 kB view details)

Uploaded Python 3

File details

Details for the file text_corrector-0.1.2.tar.gz.

File metadata

  • Download URL: text_corrector-0.1.2.tar.gz
  • Upload date:
  • Size: 3.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for text_corrector-0.1.2.tar.gz
Algorithm Hash digest
SHA256 b67e473ef458e1a054fb65a621891325c59d5a5b27cf13c5237f5e8067c09c11
MD5 fb107e628ea124651f8140bc48938370
BLAKE2b-256 2deda53b74c4b48ea975529b49a56cdea0790960211a0f5a5f86a27aa427bbc1

See more details on using hashes here.

File details

Details for the file text_corrector-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: text_corrector-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 4.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for text_corrector-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 37336974035d2f5fcff2c08183619a87217a01bbbba860a276fed20363548a4b
MD5 200808dd26bbedc2c59c7e1c55e5dd53
BLAKE2b-256 85418dc7bb9640625a778fb690a3e79bd15c55be9e3b0420bf487f2d564fab73

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page