Tips & Tricks

Jak poprawnie OCR pliku PDF w języku od prawej do lewej

Silniki OCR PDF opierają się na przepływie tekstu od lewej do prawej. Kiedy podajesz im dokument napisany pismem pisanym od prawej do lewej, takim jak arabski, hebrajski, perski lub urdu, silnik musi wykryć kierunek pisma, rozpoznać znaki we właściwej kolejności wizualnej i logicznej oraz wygenerować tekst, który brzmi naturalnie w języku docelowym. Błędne wykonanie jednego z tych kroków powoduje powstanie tekstu, który jest technicznie rozpoznany, ale funkcjonalnie bezużyteczny: słowa pisane od tyłu, zdania zaczynające się od końca i liczby pojawiające się po niewłaściwej stronie otaczającego tekstu.

Poprawny OCR dla języków pisanych od prawej do lewej wymaga wybrania silnika OCR, który jawnie obsługuje skrypt docelowy, skonfigurowania go z poprawnym parametrem języka i sprawdzenia wyników za pomocą dwukierunkowych narzędzi obsługujących tekst. Proces ten nie jest zasadniczo trudniejszy niż OCR w przypadku języków pisanych od lewej do prawej, ale krok konfiguracji pomijany przez wielu użytkowników, informujący silnik, jakiego języka się spodziewać, nie jest opcjonalny w przypadku skryptów pisanych od prawej do lewej. Silnik pozostawiony z ustawieniami domyślnymi, zwykle angielskim, będzie generował bzdurne dane wyjściowe z dokumentu arabskiego lub hebrajskiego.

WukongPDF Skanowany plik PDF Narzędzia OCR obsługują wiele języków, w tym pisma pisane od prawej do lewej. Wybranie prawidłowego języka przed uruchomieniem OCR stanowi różnicę pomiędzy wyodrębnieniem użytecznego tekstu a wygenerowaniem szumu znakowego.

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

Dlaczego rozpoznawanie OCR od prawej do lewej kończy się niepowodzeniem bez jawnej konfiguracji

Silniki OCR analizują kształty i mapują je na znaki z zestawu znaków określonego języka. Gdy silnik oczekuje języka angielskiego, interpretuje kształty jako litery łacińskie. Arabska litera B wygląda nieco podobnie do łacińskiej litery B w wielu czcionkach, ale arabska litera Ayn nie ma łacińskiego odpowiednika. Silnik w trybie angielskim napotykający Ayn wyświetla losowy znak interpunkcyjny lub całkowicie pomija ten znak. W całym dokumencie to błędne rozpoznanie znak po znaku powoduje powstanie danych wyjściowych niezwiązanych z tekstem oryginalnym.

Nawet po wybraniu prawidłowego pisma kierunek tekstu wprowadza drugą warstwę złożoności. Silniki OCR domyślnie przetwarzają obrazy od lewej do prawej, przesuwając się po każdym rzędzie pikseli od lewej do prawej krawędzi. Dokument pisany od prawej do lewej powinien być przetwarzany od prawej do lewej, tak aby silnik odczytał znaki w kolejności, w jakiej zostały zapisane. Jeśli silnik nie zmieni kierunku przetwarzania dla skryptów pisanych od prawej do lewej, rozpoznawane znaki będą w każdym słowie w odwrotnej kolejności. Niektóre silniki automatycznie obsługują zmianę kierunku, gdy ustawiony jest parametr języka. Inne wymagają wyraźnej flagi kierunku tekstu.

WukongPDF

Wypróbuj PDF OCR

Nie wymaga instalacji. Działa bezpośrednio w Twojej przeglądarce.

Zacznij teraz →

Konfiguracja Tesseractu dla OCR od prawej do lewej

Tesseract, silnik OCR typu open source, obsługuje języki arabski, hebrajski, perski, urdu i kilka innych skryptów pisanych od prawej do lewej za pośrednictwem plików danych specyficznych dla języka. Zainstaluj dane języka dla skryptu docelowego. W systemie Linux pakiet nosi zazwyczaj nazwę tesseract-ocr-ara w przypadku języka arabskiego lub tesseract-ocr-heb w przypadku języka hebrajskiego. W systemie Windows pobierz przeszkolony plik danych z repozytorium Tesseract GitHub i umieść go w katalogu tessdata.

Uruchom Tesseract z flagą języka ustawioną na odpowiedni skrypt: tesseract input.pdf wynik -l ara dla języka arabskiego, -l heb dla języka hebrajskiego lub -l ara+eng dla dwujęzycznego dokumentu arabsko-angielskiego. Tesseract automatycznie obsługuje kierunek tekstu, gdy parametr języka określa pismo od prawej do lewej. Rozpoznany tekst wyjściowy zachowuje prawidłową kolejność czytania. Aby to sprawdzić, otwórz wyjściowy plik tekstowy i potwierdź, że słowa są czytane w oczekiwanym kierunku, a zdania płyną od prawej do lewej.

W przypadku dokumentów zawierających mieszane pisma, takich jak arabska praca naukowa zawierająca angielskie terminy techniczne, określ oba języki oddzielone znakiem plus: -l ara+eng. Tesseract przełącza się między modelami językowymi w zależności od słowa, stosując model arabski do słów zapisanych alfabetem arabskim, a model angielski do słów zapisanych alfabetem łacińskim. Przełączanie według słów nie jest idealne, szczególnie w przypadku krótkich słów, które mogą należeć do dowolnego pisma, ale odpowiednio radzi sobie z większością dokumentów o mieszanych pismach.

Korzystanie z Google Cloud Vision do automatycznego wykrywania

Możliwości OCR Google Cloud Vision obejmują automatyczne wykrywanie języka, co jest szczególnie przydatne w przypadku skryptów pisanych od prawej do lewej, gdy nie masz pewności co do dokładnego języka lub gdy dokument zawiera wiele języków pisanych od prawej do lewej. Interfejs API akceptuje obraz dokumentu i zwraca rozpoznany tekst z ramkami ograniczającymi dla każdego słowa, wykryty język dla każdego bloku tekstu oraz kierunek tekstu. W przypadku skryptów pisanych od prawej do lewej zwracany tekst jest już w prawidłowej kolejności czytania.

Jakość rozpoznawania języka arabskiego i hebrajskiego w Cloud Vision jest generalnie wyższa niż w przypadku Tesseract, ponieważ podstawowe modele zostały przeszkolone na większych i bardziej zróżnicowanych zbiorach danych. Wadą jest to, że obraz dokumentu musi zostać przesłany na serwery Google w celu przetworzenia, co może nie być akceptowalne w przypadku dokumentów wrażliwych lub poufnych. W przypadku dokumentów dostępnych publicznie lub dokumentów wewnętrznych, w przypadku których przetwarzanie w chmurze zostało zatwierdzone, Cloud Vision zapewnia najdokładniejszy dostępny OCR od prawej do lewej bez konieczności zakupu specjalistycznego oprogramowania OCR na komputery stacjonarne.

JęzykWsparcie silnika OCRUwagi dotyczące dokładności
arabskiTesseract, Google Cloud Vision, ABBYYZnaki diakrytyczne mogą zostać usunięte, obsługa ligatur jest różna
hebrajskiTesseract, Google Cloud Vision, ABBYYPunkty samogłoskowe Nikud często są tracone podczas OCR
perski/urduTesserakt, Google Cloud VisionWarianty skryptu Nastaliq stanowią wyzwanie dla większości silników

Weryfikacja wyniku OCR dla tekstu pisanego od prawej do lewej

Po OCR otwórz rozpoznany tekst w edytorze tekstu obsługującym dwukierunkowe renderowanie tekstu, takim jak Notepad++ z włączoną wtyczką dwukierunkową lub Visual Studio Code z zainstalowanym pakietem językowym RTL. Standardowe edytory tekstu, które zakładają, że tekst jest pisany od lewej do prawej, mogą poprawnie wyświetlać tekst od prawej do lewej, jeśli zaimplementowany jest algorytm dwukierunkowy Unicode, ale częstymi punktami awarii są znaki interpunkcyjne na końcach wierszy i względna kolejność liczb w tekście. Edytor tekstu z wyraźną obsługą dwukierunkową wyświetla tekst w taki sposób, w jaki spodziewałby się go przeczytać rodzimy użytkownik języka.

Porównaj wydruk z oryginalnym zeskanowanym dokumentem na trzech poziomach: poszczególne słowa, szczególnie te zawierające znaki diakrytyczne lub ligatury; pełne zdania, potwierdzające, że kolejność słów brzmi naturalnie w języku docelowym; oraz liczby i daty, potwierdzając, że pojawiają się po właściwej stronie otaczającego tekstu. Dokument, w którym każde słowo jest rozpoznawane poprawnie, ale kolejność słów w każdym zdaniu jest odwrócona, jest tak samo bezużyteczny do tłumaczenia lub wyszukiwania, jak dokument, w którym nie rozpoznaje się żadnych słów.

OCR dla języków pisanych od prawej do lewej to rozwiązany problem techniczny po ustawieniu prawidłowego parametru języka. Najważniejszym krokiem jest poinformowanie silnika, jakiego skryptu ma się spodziewać. Wszystko, co następuje po podjęciu tej decyzji, od dokładności rozpoznawania, przez kolejność odczytu, po obsługę skryptów mieszanych, zależy od właściwej konfiguracji języka. Po skonfigurowaniu parametru języka i otwarciu dwukierunkowego edytora tekstu do weryfikacji, rozpoznawanie OCR dokumentu w języku pisanym od prawej do lewej nie wymaga więcej czasu ani wysiłku niż rozpoznawanie OCR w przypadku jakiegokolwiek innego języka.

Tłumaczenie tekstu pisanego od prawej do lewej po wykonaniu OCR

Po dokładnym rozpoznaniu tekstu tłumaczenie treści pisanych od prawej do lewej wymaga mechanizmu tłumaczenia, który poprawnie obsługuje tekst dwukierunkowy. Zarówno Tłumacz Google, jak i DeepL obsługują język arabski, hebrajski i perski. Wklej rozpoznany tekst do interfejsu tłumaczenia i potwierdź, że język źródłowy został poprawnie zidentyfikowany. Silnik tłumaczenia wykrywa kierunek skryptu i zachowuje go w wynikach. W przypadku dokumentów, których tłumaczenie będzie sprawdzane przez native speakera, wyeksportuj zarówno rozpoznany tekst oryginalny, jak i tekst przetłumaczony obok siebie w dwukolumnowej tabeli, aby ułatwić porównanie.

Tłumaczenie maszynowe języków pisanych od prawej do lewej jest generalnie mniej dokładne niż tłumaczenie między językami europejskimi pisanymi od lewej do prawej, ponieważ dane szkoleniowe dla wielu par językowych pisanych od prawej do lewej są mniejsze. W przypadku dokumentów krytycznych poproś native speakera o sprawdzenie tłumaczenia przed podjęciem działań związanych z jego treścią. Krok OCR generuje dokładny tekst źródłowy. Etap tłumaczenia dodaje warstwę interpretacji. Traktuj wynik OCR jako podstawową prawdę o tym, co mówi dokument, a tłumaczenie maszynowe jako przewodnik po tym, co on oznacza, pod warunkiem weryfikacji.

Przetwarzanie wsadowe plików PDF w języku od prawej do lewej

Jeśli masz folder plików PDF w języku pisanym od prawej do lewej do OCR, interfejs wiersza poleceń Tesseract akceptuje wprowadzanie wsadowe. Pojedyncze polecenie powłoki przetwarza każdy plik PDF: dla f w *.pdf; wykonaj tesseract $f ${f%.pdf} -l ara; zrobione. Polecenie przegląda wszystkie pliki PDF, uruchamia OCR w modelu arabskim i zapisuje rozpoznany tekst obok każdego pliku PDF z pasującymi podstawowymi nazwami plików.

W przypadku partii obejmujących różne języki przed OCR należy wykonać krok wykrywania języka. Skrypt Pythona z biblioteką langdetect próbkuje pierwszą stronę tekstu w celu przewidzenia języka. Na podstawie przewidywań skrypt wybiera odpowiedni parametr języka Tesseract i uruchamia OCR. Automatyczne wykrywanie języka eliminuje ręczne sortowanie plików PDF według języka przed przetwarzaniem wsadowym. Wsadowy OCR dla języków pisanych od prawej do lewej przekształca żmudny proces dotyczący poszczególnych dokumentów w pojedyncze polecenie, którego wykonanie zajmuje kilka minut, niezależnie od liczby dokumentów znajdujących się w folderze wejściowym.

OCR dla języków pisanych od prawej do lewej nie jest specjalnym przypadkiem wymagającym egzotycznych narzędzi. Wymaga tych samych narzędzi, co OCR od lewej do prawej, skonfigurowanych z odpowiednim parametrem języka. Krok konfiguracji, który wielu użytkowników pomija, ponieważ zakładają, że domyślne ustawienia OCR będą działać, to cała różnica pomiędzy użytecznym wyodrębnionym tekstem a całkowitym szumem znaków. Ustaw flagę języka, uruchom OCR, sprawdź dane wyjściowe w dwukierunkowym edytorze tekstu i proces się zakończy. OCR dla skryptów pisanych od prawej do lewej nagradza użytkownika, który poświęca czas na prawidłowe skonfigurowanie parametru języka i weryfikuje dane wyjściowe w dwukierunkowym edytorze tekstu, tworząc dokładny, użyteczny tekst z dokumentów, który w innym przypadku byłby niedostępny dla każdego, kto nie czyta języka źródłowego.

WukongPDF

Wypróbuj PDF OCR

Nie wymaga instalacji. Działa bezpośrednio w Twojej przeglądarce.

Zacznij teraz →