Metadata-Version: 2.4
Name: text-corrector
Version: 0.1.1
Summary: Простая библиотека на основе расстояния Левенштейна для исправления опечаток
License: MIT
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Requires-Python: >=3.8
Description-Content-Type: text/markdown

\# text-corrector



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



\## Особенности



\* \*\*Ранний выход в алгоритме Левенштейна:\*\* Оптимизированный подсчет расстояния — функция не считает матрицу до конца, если длина слов отличается больше, чем на заданный порог.

\* \*\*Частотный анализ:\*\* Если под критерии подходят несколько слов-кандидатов, библиотека выберет наиболее популярное слово на основе переданного словаря.

\* \*\*Поддержка языков:\*\* Корректно работает с текстами на русском (включая букву Ё) и английском языках.

\* \*\*Сохранение регистра:\*\* Автоматически сохраняет заглавную букву у исправленного слова, если оригинал начинался с большой буквы.



\## Установка



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



```bash

pip install .

```



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



\## Быстрый старт



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



```python

from text\_corrector import correct\_text



\# 1. Подготовим частотный словарь (слово -> частота)

dictionary = {

&#x20;   "привет": 1.0,

&#x20;   "мир": 0.8,

&#x20;   "программирование": 0.95,

&#x20;   "код": 0.7

}



\# 2. Исходный текст с опечатками

bad\_text = "Привед мир и кадирование"



\# 3. Исправление текста (max\_dist — максимальное количество правок в слове)

clean\_text = correct\_text(bad\_text, dictionary, max\_dist=2)



print(clean\_text)

\# Выведет: "Привет мир и кадирование" 

\# (Слово "кадирование" не изменилось, так как до слова "код" больше 2 правок)

```



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



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



```python

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)] -> (слово, расстояние, частота)

```

