Распознавание многоязычного документа
Языки перечисляются одним списком и работают в одном проходе: rus, kaz и eng можно включить вместе. Прогонять документ трижды, по разу на язык, нельзя — каждый следующий проход просто перезапишет предыдущий слой. Порядок в списке зафиксирован так, что кириллица идёт первой: когда глиф одинаково похож на русскую и латинскую букву, выбор делается в её пользу. Для документов на русском и казахском это правильное поведение, для англоязычной вставки — компромисс.
Коротко о цифрах
- Как задаются языки
- одним списком, один проход по документу
- Доступные языки
- rus, kaz, eng — других пакетов на сервере нет
- Порядок
- кириллица первой: спорный глиф решается в её пользу
- Одинаковые глифы
- а/a, е/e, о/o, р/p, с/c, х/x в двух алфавитах
- Цена лишнего языка
- время на каждой странице и риск неверного выбора
Почему один проход, а не несколько
Распознавание записывает результат в файл как единый текстовый слой. Второй проход по уже обработанному документу не дополняет слой, а сталкивается с ним: страницы с текстом пропускаются нетронутыми, потому что распознавать в них по правилам уже нечего. Получается, что второй язык до страниц просто не доходит.
Одновременный список работает иначе: модель для каждой строки выбирает вариант из всех включённых языков сразу. Именно поэтому смешанный русско-казахский текст — а это типичный документ в Казахстане, где заголовок на одном языке, а таблица на другом — обрабатывается корректно только при выборе обоих языков в одном запросе.
Чем платить за каждый лишний язык
- Временем: каждый добавленный язык — дополнительная работа на каждой странице, а общий потолок в 90 секунд остаётся прежним.
- Точностью: чем шире набор вариантов, тем больше шансов, что похожие глифы решатся не в ту сторону.
- Наиболее спорные пары — а и a, е и e, о и o, р и p, с и c, х и x: в кириллице и латинице они выглядят одинаково.
- Языков всего три: rus, kaz и eng. Немецкий, турецкий или китайский распознать нечем — их пакетов на сервере нет.
- Если языков в документе действительно три, включайте все три: потеря точности меньше, чем потеря целого языка.
Как выбрать набор языков
- Пролистайте документ и выпишите языки, которые встречаются в основном тексте, а не в одном штампе.
- Отдельные иностранные слова в русском тексте английский включать не заставляют — модель обычно справляется по формам букв.
- Полноценные абзацы или таблицы на втором языке — повод включить его в список.
- Отправьте документ на распознавание один раз, со всеми нужными языками сразу.
- Проверьте результат на границе языков: именно там ошибки видны раньше всего.
Частые вопросы
Можно ли прогнать файл по одному языку за раз?
Нельзя получить от этого пользу. Второй проход увидит страницы, где текст уже есть, и пропустит их нетронутыми — так устроена обработка. Включайте все нужные языки в один запрос, это единственный работающий вариант.
Что будет с французским или немецким текстом в документе?
Он будет распознан английской моделью, потому что других латинских пакетов на сервере нет. Обычные слова выйдут сносно, а буквы с диакритикой вроде ä или ç почти наверняка превратятся в свои варианты без надстрочных знаков.
Ухудшит ли лишний язык распознавание основного?
Немного ухудшит. Модель выбирает из более широкого набора символов, и спорные глифы вроде русской «с» и латинской «c» могут решиться не в ту сторону. Включайте только те языки, которые реально встречаются в тексте.
Как быть с документом, где заголовки на казахском, а текст на русском?
Это самый частый случай, и обрабатывается он ровно так, как задумано: выберите оба языка, отправьте файл один раз и проверьте результат на заголовках — там специфические казахские буквы видно лучше всего.