Metadata-Version: 2.4
Name: text-corrector
Version: 0.1.2
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 = {
    "привет": 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 правок)
```

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

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

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