Tips & Tricks

Как правильно распознавать PDF-файлы с письмом справа налево

Механизмы OCR PDF построены на принципе направления текста слева направо. Когда вы передаете им документ, написанный письмом справа налево, например арабским, ивритом, персидским или урду, механизм должен определить направление письма, распознать символы в правильном визуальном и логическом порядке и вывести текст, который естественно читается на целевом языке. Неправильное выполнение одного из этих шагов приводит к созданию текста, который технически распознается, но функционально непригоден для использования: слова, написанные задом наперед, предложения, начинающиеся в конце, и числа, которые появляются на неправильной стороне окружающего текста.

Правильное распознавание текста для языков с письмом справа налево требует выбора механизма распознавания текста, который явно поддерживает целевой сценарий, настройки его с правильным языковым параметром и проверки вывода с помощью инструментов двунаправленного распознавания текста. Этот процесс не существенно сложнее, чем распознавание текста для языков с письмом слева направо, но шаг настройки, который многие пользователи пропускают, сообщая движку, какой язык ожидать, не является обязательным для сценариев с письмом справа налево. Движок, оставленный с настройками по умолчанию (обычно на английском языке), будет выдавать бессмысленный вывод из документа на арабском или иврите.

Инструменты оптического распознавания символов Scanned PDF WukongPDF поддерживают несколько языков, включая сценарии с письмом справа налево. Выбор правильного языка перед запуском OCR — это разница между извлечением полезного текста и генерацией символьного шума.

How to OCR a Right-to-Left Language PDF Correctly

Почему распознавание текста справа налево не работает без явной конфигурации

Механизмы OCR анализируют формы и сопоставляют их с символами в наборе символов указанного языка. Когда движок ожидает английского языка, он интерпретирует фигуры как латинские буквы. Арабская буква B во многих шрифтах чем-то похожа на латинскую букву B, но арабская буква Ayn не имеет латинского эквивалента. Движок в английском режиме, встречающий Айн, выводит случайный знак препинания или полностью пропускает символ. Во всем документе это посимвольное неправильное распознавание приводит к выводу, не имеющему отношения к исходному тексту.

Даже если выбран правильный сценарий, направление текста создает второй уровень сложности. Механизмы OCR по умолчанию обрабатывают изображения слева направо, перемещаясь по каждому ряду пикселей от левого края к правому. Документ с письмом справа налево должен обрабатываться справа налево, чтобы движок читал символы в том порядке, в котором они были написаны. Если движок не меняет направление обработки для сценариев с письмом справа налево, распознанные символы в каждом слове будут находиться в обратном порядке. Некоторые движки автоматически меняют направление, когда установлен параметр языка. Другие требуют явного флага направления текста.

WukongPDF

Попробуйте распознавание PDF-файлов

Никакой установки не требуется. Работает прямо в вашем браузере.

Начать →

Настройка Tesseract для распознавания текста справа налево

Tesseract, механизм оптического распознавания символов с открытым исходным кодом, поддерживает арабский, иврит, персидский, урду и некоторые другие сценарии с письмом справа налево через файлы данных для конкретного языка. Установите языковые данные для целевого скрипта. В Linux пакет обычно называется tesseract-ocr-ara на арабском языке или tesseract-ocr-heb на иврите. В Windows загрузите обученный файл данных из репозитория Tesseract GitHub и поместите его в каталог tessdata.

Запустите Tesseract с языковым флагом, установленным для правильного сценария: вывод tesseract input.pdf -l ara для арабского языка, -l heb для иврита или -l ara+eng для двуязычного арабско-английского документа. Tesseract автоматически обрабатывает направление текста, если параметр языка указывает направление письма справа налево. Распознанный текстовый вывод сохраняет правильный порядок чтения. Для проверки откройте выходной текстовый файл и убедитесь, что слова читаются в ожидаемом направлении, а предложения располагаются справа налево.

Для документов со смешанным алфавитом, таких как исследовательская работа на арабском языке, содержащая технические термины на английском языке, укажите оба языка, разделенные знаком плюс: -l ara+eng. Tesseract переключается между языковыми моделями для каждого слова, применяя арабскую модель к словам с арабским алфавитом и английскую модель к словам с латинским алфавитом. Пословное переключение не является идеальным, особенно для коротких слов, которые могут принадлежать любому алфавиту, но оно адекватно обрабатывает большинство документов со смешанным алфавитом.

Использование Google Cloud Vision для автоматического обнаружения

Возможности оптического распознавания символов Google Cloud Vision включают автоматическое определение языка, что особенно полезно для сценариев с письмом справа налево, когда вы не уверены в точном языке или когда документ содержит несколько языков с письмом справа налево. API принимает изображение документа и возвращает распознанный текст с ограничивающими рамками для каждого слова, обнаруженным языком для каждого текстового блока и направлением текста. Для сценариев с письмом справа налево возвращаемый текст уже находится в правильном порядке чтения.

Качество распознавания арабского языка и иврита в Cloud Vision обычно выше, чем в Tesseract, поскольку базовые модели были обучены на более крупных и разнообразных наборах данных. Компромисс заключается в том, что изображение документа необходимо загрузить на серверы Google для обработки, что может быть неприемлемо для чувствительных или конфиденциальных документов. Для общедоступных документов или внутренних документов, для которых одобрена облачная обработка, Cloud Vision обеспечивает наиболее точное распознавание текста справа налево, доступное без приобретения специального программного обеспечения для оптического распознавания текста на настольном компьютере.

ЯзыкПоддержка механизма OCRПримечания по точности
арабскийТессеракт, Google Cloud Vision, ABBYYДиакритические знаки могут быть опущены, обращение с лигатурой может быть разным.
ивритТессеракт, Google Cloud Vision, ABBYYОчки гласных Никуда часто теряются во время OCR
Персидский/урдуТессеракт, Google Cloud VisionВарианты сценария Nastaliq бросают вызов большинству движков

Проверка вывода OCR для текста, написанного справа налево

После OCR откройте распознанный текст в текстовом редакторе, поддерживающем двунаправленную отрисовку текста, например Notepad++ с включенным плагином двунаправленной печати или Visual Studio Code с установленным языковым пакетом RTL. Стандартные текстовые редакторы, предполагающие направление текста слева направо, могут корректно отображать текст с направлением справа налево, если реализован двунаправленный алгоритм Unicode, но знаки препинания на концах строк и относительный порядок чисел в тексте являются распространенными точками сбоя. Текстовый редактор с явной поддержкой двунаправленного письма отображает текст так, как его ожидал бы прочитать носитель языка.

Выборочная проверка вывода по сравнению с исходным отсканированным документом на трех уровнях: отдельные слова, особенно те, которые содержат диакритические знаки или лигатуры; полные предложения, подтверждающие, что порядок слов читается естественно на целевом языке; а также числа и даты, подтверждая, что они появляются на правильной стороне окружающего текста. Документ, в котором каждое слово распознается правильно, но порядок слов в каждом предложении обратный, так же непригоден для перевода или поиска, как и документ, в котором слова вообще не распознаются.

OCR для языков с письмом справа налево — это решаемая техническая проблема, если установлен правильный параметр языка. Самый важный шаг — сообщить движку, какой сценарий ожидать. Все, что следует за этим решением, от точности распознавания до порядка чтения и обработки смешанного алфавита, зависит от правильной настройки языка. Если настроен параметр языка и открыт для проверки двунаправленный текстовый редактор, распознавание документов на языке с письмом справа налево требует не больше времени и усилий, чем распознавание текста на любом другом языке.

Перевод языкового текста с написанием справа налево после OCR

Как только текст будет точно распознан, для перевода языкового контента с письмом справа налево потребуется механизм перевода, который правильно обрабатывает двунаправленный текст. Google Translate и DeepL поддерживают арабский, иврит и персидский языки. Вставьте распознанный текст в интерфейс перевода и убедитесь, что исходный язык определен правильно. Механизм перевода определяет направление сценария и сохраняет его в выходных данных. Для документов, перевод которых будет проверять носитель языка, экспортируйте как исходный распознанный текст, так и переведенный текст рядом в таблице из двух столбцов для эффективного сравнения.

Машинный перевод языков с письмом справа налево, как правило, менее точен, чем перевод между европейскими языками с письмом слева направо, поскольку обучающие данные для многих языковых пар с письмом справа налево меньше. В случае важных документов попросите носителя языка просмотреть перевод, прежде чем действовать по его содержанию. Шаг OCR создает точный исходный текст. Этап перевода добавляет уровень интерпретации. Относитесь к выводам OCR как к истинной истине о том, что говорится в документе, а к машинному переводу как к руководству по его значению, подлежащему проверке.

Пакетная обработка PDF-файлов с письмом справа налево

Если у вас есть папка PDF-файлов с написанием справа налево для распознавания текста, интерфейс командной строки Tesseract принимает пакетный ввод. Каждый PDF-файл обрабатывается одной командой оболочки: для f в *.pdf; сделать тессеракт $f ${f%.pdf} -l ara; сделанный. Команда просматривает все PDF-файлы, запускает распознавание текста по арабской модели и сохраняет распознанный текст рядом с каждым PDF-файлом с соответствующими базовыми именами файлов.

Для пакетов на разных языках перед распознаванием текста используйте этап определения языка. Сценарий Python с библиотекой langdetect производит выборку первой страницы текста для прогнозирования языка. На основе прогноза сценарий выбирает соответствующий параметр языка Tesseract и запускает распознавание текста. Автоматическое определение языка исключает ручную сортировку PDF-файлов по языку перед пакетной обработкой. Пакетное распознавание текста для языков с письмом справа налево превращает утомительный процесс обработки каждого документа в одну команду, которая выполняется за считанные минуты, независимо от того, сколько документов находится во входной папке.

OCR для языков с письмом справа налево — не особый случай, требующий экзотических инструментов. Для этого требуются те же инструменты, что и для оптического распознавания символов слева направо, настроенные с правильным языковым параметром. Шаг настройки, который многие пользователи пропускают, поскольку предполагают, что настройки OCR по умолчанию будут работать, представляет собой всю разницу между пригодным для использования извлеченным текстом и полным шумом символов. Установите флаг языка, запустите OCR, проверьте вывод в двунаправленном текстовом редакторе, и процесс завершен. OCR для сценариев с письмом справа налево вознаграждает пользователя, который тратит время на правильную настройку параметра языка и проверяет вывод в двунаправленном текстовом редакторе, создавая точный, пригодный для использования текст из документов, который в противном случае остался бы недоступным для тех, кто не читает исходный язык.

WukongPDF

Попробуйте распознавание PDF-файлов

Никакой установки не требуется. Работает прямо в вашем браузере.

Начать →