Корректоры
- class manuscript.correctors.CharLM(weights=None, vocab=None, lexicon=None, device=None, force_download=False, mask_threshold=0.05, apply_threshold=0.95, max_edits=2, min_word_len=4, max_len=32, correction_levels=('word',), **kwargs)[исходный код]
Базовые классы:
BaseCorrectorСимвольная языковая модель для исправления текста. Работает через ONNX Runtime.
CharLM исправляет ошибки замены символов с помощью языковой модели Transformer. Для проверки символ временно скрывается, а модель оценивает его вероятность по окружающему тексту. Значение recognition_confidence от распознавателя не используется.
- Параметры:
weights (str or Path, optional) – Путь или идентификатор весов ONNX-модели. Поддерживаются: - Локальный файл:
"path/to/model.onnx"- HTTP/HTTPS URL:"https://example.com/model.onnx"- Релиз GitHub:"github://owner/repo/tag/file.onnx"- Google Drive:"gdrive:FILE_ID"- Имя пресета:"prereform_charlm_g1"или"modern_charlm_g1"(из реестра моделей) -None: автоматически скачивается пресет по умолчанию (prereform_charlm_g1)vocab (str or Path, optional) – Путь к JSON-файлу словаря символов. Обязателен для локальных весов; пресеты из реестра предоставляют свой файл словаря.
lexicon (str, Path, or set, optional) – Список слов для проверки по словарю. Поддерживаются: - Локальный файл:
"path/to/words.txt"- Ключ реестра моделей:"prereform_charlm_g1"или"modern_charlm_g1"(загружается артефакт lexicon) - Множество Python:{"word1", "word2", ...}-None: автоматически скачивается словарь слов для пресета (prereform_words для prereform_charlm_g1, modern_words для modern_charlm_g1)device ({"cuda", "coreml", "cpu"}, optional) – Устройство для выполнения модели. При None используется CUDA, если ONNX Runtime поддерживает GPU, иначе CPU. Для CoreML задайте
device="coreml".mask_threshold (float, optional) – Символы с уверенностью ниже этого порога проверяются на ошибки. По умолчанию 0.05.
apply_threshold (float, optional) – Минимальная уверенность модели, при которой применяется исправление. По умолчанию 0.95.
max_edits (int, optional) – Максимальное количество правок на слово. По умолчанию 2.
min_word_len (int, optional) – Минимальная длина слова, которое нужно проверять. По умолчанию 4.
max_len (int, optional) – Длина контекста модели. Более длинные слова остаются без изменений. По умолчанию 32.
correction_levels (sequence of str, optional) – Уровни TextRegion для коррекции: word, line или block. По умолчанию («word»,). Текст разбивается на слова с сохранением регистра и разделителей.
**kwargs – Дополнительные параметры конфигурации.
force_download (bool)
Примеры
>>> from manuscript.correctors import CharLM >>> corrector = CharLM() >>> corrected_page = corrector.predict(page)
- predict(page, image=None)[исходный код]
Исправляет ошибки в тексте страницы Page.
- Параметры:
page (Page) – Входной объект Page с распознанным текстом.
image (np.ndarray, optional) – Исходное изображение страницы
page. Аргумент предусмотрен для совместимости с другими компонентами;CharLMего не использует.
- Результат:
Копия Page с исправленным текстом на выбранных уровнях.
- Тип результата:
- static train(words_path=None, text_path=None, pairs_path=None, charset_path=None, *, exp_dir='exp_charlm', max_words=1500000, max_pairs_edits=3, max_len=32, emb_size=192, n_layers=8, n_heads=6, ffn_size=1024, dropout=0.1, batch_size=256, accumulation_steps=2, use_amp=True, compile_model=False, epochs=50, lr=0.001, weight_decay=0.01, grad_clip=1.0, min_len=3, mask_prob=0.3, span_min=1, span_max=3, spans_min=1, spans_max=2, pairs_ratio=0.8, eval_ratio=0.01, seed=42, checkpoint=None, **extra_config)[исходный код]
Обучить символьную языковую модель CharLM.
- Параметры:
words_path (str or Path, optional) – Путь к файлу слов (одно слово на строку).
text_path (str or Path, optional) – Путь к текстовому файлу для n-граммового датасета.
pairs_path (str or Path, optional) – Путь к CSV-файлу с парами ошибочных и правильных слов.
charset_path (str or Path) – Путь к файлу с допустимыми символами.
exp_dir (str, optional) – Каталог эксперимента. По умолчанию «exp_charlm».
max_words (int, optional) – Максимальное количество слов из файла. По умолчанию 1_500_000.
max_pairs_edits (int, optional) – Максимальное количество символьных правок в парах. По умолчанию 3.
max_len (int, optional) – Максимальная длина последовательности. По умолчанию 32.
emb_size (int, optional) – Размер эмбеддингов. По умолчанию 192.
n_layers (int, optional) – Количество слоёв трансформера. По умолчанию 8.
n_heads (int, optional) – Количество голов внимания. По умолчанию 6.
ffn_size (int, optional) – Размер feed-forward сети. По умолчанию 1024.
dropout (float, optional) – Коэффициент dropout. По умолчанию 0.1.
batch_size (int, optional) – Размер батча. По умолчанию 256.
accumulation_steps (int, optional) – Шаги накопления градиента. По умолчанию 2.
use_amp (bool, optional) – Использовать автоматическую смешанную точность (AMP). По умолчанию True.
compile_model (bool, optional) – Использовать torch.compile для ускорения обучения. По умолчанию False.
epochs (int, optional) – Количество эпох. По умолчанию 50.
lr (float, optional) – Скорость обучения. По умолчанию 1e-3.
weight_decay (float, optional) – Коэффициент регуляризации весов (weight decay). По умолчанию 0.01.
grad_clip (float, optional) – Отсечение градиента. По умолчанию 1.0.
min_len (int, optional) – Минимальная длина слова. По умолчанию 3.
mask_prob (float, optional) – Вероятность маскирования фрагментов текста (span masking). По умолчанию 0.3.
span_min (int, optional) – Минимальная длина маскируемого фрагмента. По умолчанию 1.
span_max (int, optional) – Максимальная длина маскируемого фрагмента. По умолчанию 3.
spans_min (int, optional) – Минимальное число маскируемых фрагментов. По умолчанию 1.
spans_max (int, optional) – Максимальное число маскируемых фрагментов. По умолчанию 2.
pairs_ratio (float, optional) – Соотношение OCR-пар в смешанном датасете (0.8 = 80% пар, 20% n-грамм). По умолчанию 0.8.
eval_ratio (float, optional) – Доля валидационного набора. По умолчанию 0.01.
seed (int, optional) – Начальное состояние генераторов случайных чисел (seed). По умолчанию 42.
checkpoint (str, optional) – Путь к чекпоинту для продолжения обучения.
**extra_config – Дополнительные параметры конфигурации.
- Результат:
Путь к финальному чекпоинту. После обучения CharLM также пытается экспортировать финальный чекпоинт в ONNX в каталог
exp_dir.- Тип результата:
- static export(weights_path, vocab_path, output_path, max_len=32, emb_size=192, n_layers=8, n_heads=6, ffn_size=1024, opset_version=14, simplify=True)[исходный код]
Экспорт модели CharLM из PyTorch в формат ONNX.
- Параметры:
weights_path (str or Path) – Путь к чекпоинту PyTorch (.pt файл).
vocab_path (str or Path) – Путь к JSON-файлу словаря.
output_path (str or Path) – Путь для сохранения модели ONNX.
max_len (int, optional) – Максимальная длина последовательности. По умолчанию 32.
emb_size (int, optional) – Размер эмбеддингов. По умолчанию 192.
n_layers (int, optional) – Количество слоёв трансформера. По умолчанию 8.
n_heads (int, optional) – Количество голов внимания. По умолчанию 6.
ffn_size (int, optional) – Размер feed-forward сети. По умолчанию 1024.
opset_version (int, optional) – Версия opset ONNX. По умолчанию 14.
simplify (bool, optional) – Применить упрощение ONNX. По умолчанию True.
- Тип результата: