Простая библиотека на основе расстояния Левенштейна для исправления опечаток
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
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.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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b67e473ef458e1a054fb65a621891325c59d5a5b27cf13c5237f5e8067c09c11
|
|
| MD5 |
fb107e628ea124651f8140bc48938370
|
|
| BLAKE2b-256 |
2deda53b74c4b48ea975529b49a56cdea0790960211a0f5a5f86a27aa427bbc1
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
37336974035d2f5fcff2c08183619a87217a01bbbba860a276fed20363548a4b
|
|
| MD5 |
200808dd26bbedc2c59c7e1c55e5dd53
|
|
| BLAKE2b-256 |
85418dc7bb9640625a778fb690a3e79bd15c55be9e3b0420bf487f2d564fab73
|