Простая библиотека на основе расстояния Левенштейна для исправления опечаток
Project description
text-corrector
Простая и эффективная Python-библиотека для автоматического поиска и исправления опечаток в тексте, использующая расстояние Левенштейна и частотный анализ слов.
Особенности
- Гибкая замена словаря: Возможность легкого подключения специализированных частотных словарей для адаптации под конкретные предметные области (медицина, юриспруденция, IT, сленг и т.д.).
- Встроенные базы знаний: По умолчанию внутри пакета уже зашиты базовые частотные словари для русского и английского языков, которые автоматически объединяются при работе.
- Ранний выход в алгоритме Левенштейна: Оптимизированный подсчет расстояния — функция не считает матрицу до конца, если длина слов отличается больше, чем на заданный порог.
- Частотный анализ: Если под критерии подходят несколько слов-кандидатов, библиотека выберет наиболее популярное слово на основе переданного или встроенного словаря.
- Сохранение регистра: Автоматически сохраняет заглавную букву у исправленного слова, если оригинал начинался с большой буквы.
Установка
Вы можете установить библиотеку через команду
pip install text-corrector
Быстрый старт
Вариант 1. Использование встроенных словарей
Вы можете запустить исправление текста сразу — библиотека сама подгрузит встроенные словари русского и английского языков:
from text_corrector import correct_text
bad_text = "Hrllo Wprldd"
# Аргумент dictionary можно не передавать, он подгрузится автоматически
clean_text, _ = correct_text(bad_text, max_dist=2)
print(clean_text)
# Выведет исправленный текст на основе встроенной базы (Hello World)
Вариант 2. Гибкая адаптация под предметную область (Кастомный словарь)
Если вам нужно настроить алгоритм под конкретную тематику, просто передайте свой специализированный словарь в формате {"слово": частота_встречаемости} вторым аргументом:
from text_corrector import correct_text
# Подготовим словарь медицинских терминов для конкретной предметной области
medical_dictionary = {
"аппендицит": 1.0,
"антибиотик": 0.95,
"аспирин": 0.8
}
bad_text = "врач диагностировал апендицыт"
# Передаем кастомный словарь — алгоритм мгновенно переключается на вашу терминологию
clean_text, debug_info = correct_text(bad_text, dictionary=medical_dictionary, max_dist=2)
print(clean_text)
# Выведет: "врач диагностировал аппендицит"
Дополнительные функции
Вы также можете использовать отдельные компоненты библиотеки независимо:
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file text_corrector-0.1.3.tar.gz.
File metadata
- Download URL: text_corrector-0.1.3.tar.gz
- Upload date:
- Size: 313.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6eb96c3c005bfecc762cc95d9c6c6fec7cce714bf7795c8d61531bb79082bbc2
|
|
| MD5 |
72e90cc085a4014e855d1dde659779e8
|
|
| BLAKE2b-256 |
5d93a5bd36f83127f4371d46ffa4160af562433f79e6230b8c3b47fe71973826
|
File details
Details for the file text_corrector-0.1.3-py3-none-any.whl.
File metadata
- Download URL: text_corrector-0.1.3-py3-none-any.whl
- Upload date:
- Size: 316.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f44ac9eed1678ea7a711ace7a102dd037fabe97100775d59f1e4fbf756e54623
|
|
| MD5 |
7f31e487a1cc0a240cc273efbd7e763d
|
|
| BLAKE2b-256 |
b222feea890885e96567032c8bd84e8e84c6fac1714ad3cdf81734d6c1db944d
|