OCR tekstu w frakturze: zachowaj oryginał przed jego modernizacją
Wykorzystaj prosty, powtarzalny eksperyment z OCR fraktury, aby odróżnić błędy rozpoznawania od normalizacji długiego s przed przeszukiwaniem lub tłumaczeniem starej książki.

Aby przeprowadzić OCR drukowanej fraktury, wybierz model obsługujący to pismo, przetestuj krótki fragment na tle strony i zdecyduj, czy transkrypcja ma zachować długie s, ſ, czy znormalizować je do s. Przechowuj sprawdzoną transkrypcję źródłową oddzielnie od wszelkich modernizacji czy tłumaczeń. Słowo wyglądające bardziej znajomo wcale nie musi oznaczać wierniejszego odczytania druku.
Przetestowaliśmy dwa krótkie, przygotowane fragmenty w języku niemieckim złożone frakturą oraz próbkę kontrolną we współczesnym kroju pisma. Nawet na tak czystych obrazach model do fraktury zamienił iſt na ift w jednym fragmencie oraz na if w drugim. Najbardziej przydatnym wnioskiem nie był wcale ranking narzędzi: chodziło o wykazanie, że rozpoznawanie znaków, wybór konwencji transkrypcji i modernizacja języka to trzy zupełnie różne zadania.
Ten poradnik dotyczy stron drukowanych. Nie opisuje procesu pracy z odręczną kurrentą lub sütterlinem, zniszczonymi rękopisami ani całymi kolekcjami historycznymi.
Zdecyduj, co uznajesz za poprawne, zanim uruchomisz OCR
Sformułuj jednozdaniową zasadę transkrypcji przed porównaniem narzędzi. Na przykład: „Zachowaj oryginalną pisownię i długie s; oznacz słowa, których nie da się zweryfikować”. W przeciwnym razie możesz potraktować zamierzoną normalizację jako błąd — lub zaakceptować niepożądane przekształcenie tekstu tylko dlatego, że brzmi naturalnie.
Projekt OCR-D dostarcza konkretnego przykładu tego rozróżnienia. Jego wytyczne dla poziomu 1 reprezentują zarówno długie s, jak i okrągłe s jako s; poziomy 2 i 3 już je rozróżniają. Są to przyjęte konwencje transkrypcji, a nie polecenie, by zastępować każdą dawną pisownię jej współczesnym odpowiednikiem. Zobacz oficjalne zasady dotyczące litery s dla poziomu 1 oraz zasady dotyczące litery s dla poziomów 2 i 3.
W przypadku prywatnego projektu czytelniczego warto rozdzielić następujące wersje:
| Wersja wyjściowa | Przykład z naszego autorskiego tekstu szkoleniowego | Zastosowanie |
|---|---|---|
| Transkrypcja wierna źródłu | Die rothe Blume ſteht hier. | Weryfikacja rozpoznanych znaków z obrazem |
| Wersja pochodna ze znormalizowanym długim s | Die rothe Blume steht hier. | Wyszukiwanie lub czytanie bez rozróżniania długiego s |
| Wersja zmodernizowana | Die rote Blume steht hier. | Odrębne opracowanie redakcyjne ze zmianami pisowni |
Drugi wiersz zmienia jedynie ſ na s; nie wdraża wszystkich reguł OCR-D Poziomu 1. Trzeci wiersz modyfikuje również oryginalną pisownię. Żadna z wersji pochodnych nie powinna po cichu zastępować transkrypcji wiernej źródłu.
W szczególności nie należy globalnie zamieniać litery f na s. W naszym błędnym wyniku OCR pojawia się ift, ale autentyczne f może również występować w tekście źródłowym. Poprawiaj słowo na podstawie obrazu, a nie ogólnej reguły podstawiania.
Przebieg naszego eksperymentu z ośmioma wywołaniami
11 września 2026 r. wyrenderowaliśmy dwa oryginalne, trzywierszowe fragmenty dydaktyczne w krojach UnifrakturMaguntia oraz Noto Sans. Każdy obraz został rozpoznany za pomocą dwóch stałych modeli Tesseract: modelu pisma frakturowego tessdata_best oraz modelu dla języka angielskiego. Konfiguracja angielska służy jedynie jako kontrast, a nie współczesny niemiecki punkt odniesienia.
Wszystkie osiem wywołań korzystało z Tesseract 5.5.3, trybu LSTM (--oem 1), pojedynczego bloku tekstu (--psm 6) oraz rozdzielczości 300 dpi. Nie zmienialiśmy ustawień, nie odrzucaliśmy wyników ani nie ponawialiśmy rozpoznawania w ramach pierwotnego eksperymentu. Ponowne uruchomienie zestawu z 12 września na tych samych ośmiu obrazach odtworzyło dokładnie zapisane bajty wyjściowe.
Obrazy zostały prawidłowo uformowane za pomocą Apple CoreText z włączonymi ligaturami, a nie narysowane jako niesformatowane ramki pojedynczych znaków. Użyto w nich tekstu o wysokości 64 pikseli na białym płótnie o wymiarach 2200 × 460. Obrazy, weryfikacje liczby glifów, licencje fontów, hasze modeli oraz surowe dane wyjściowe są dostępne w instrukcjach pakietu eksperymentu.

Wyspecjalizowany model nadal wymagał poprawek
Pierwszy wiersz źródłowy brzmiał:
Das Waſſer iſt klar.
Na obrazie z czcionką frakturową model do fraktury zwrócił:
Das Waſſer ift klar.
Większość wiersza pozostała nienaruszona, ale ſ w słowie iſt zamieniło się w f. W drugim fragmencie Das Thal iſt weit. zmieniło się w Das Thal if weit.: rozpoznawanie zmieniło jeden znak, a inny pominęło. Uznanie tekstu wyjściowego za prawdopodobny język niemiecki nie zastąpi porównania go z oryginałem.
W próbie kontrolnej ze współczesnym fontem wystąpił inny błąd. Model do fraktury zachował słowa w pierwszym fragmencie, ale zamienił dwa średniki w Buch 12; Seite 27; Nummer 105. na dwukropki. Sprawdzanie wyłącznie długiego s doprowadziłoby do przeoczenia tych zmian w interpunkcji.
Tekst docelowy wpływa na wynik
Każdy surowy wynik porównaliśmy z dwoma tekstami referencyjnymi ustalonymi przed rozpoznawaniem: z dokładnym tekstem źródłowym oraz z tekstem źródłowym, w którym wyłącznie ſ → s. W obu porównaniach znormalizowano standard Unicode do NFC i zredukowano białe znaki; zachowano wielkość liter oraz interpunkcję. Nie modyfikujemy surowego tekstu wyjściowego przed jego oceną.
Poniższe liczby to odległość edycyjna na poziomie znaków — wstawienia, usunięcia i podstawienia — a nie procentowa dokładność.
| Fragment | Wyrenderowany font | Model OCR | Edycje względem dokładnego tekstu źródłowego | Edycje względem tekstu docelowego znormalizowanego tylko pod kątem długiego s |
|---|---|---|---|---|
| Długie s i cyfry | Fraktura | Fraktura | 1 | 6 |
| Długie s i cyfry | Fraktura | Angielski | 8 | 8 |
| Długie s i cyfry | Noto Sans | Fraktura | 2 | 8 |
| Długie s i cyfry | Noto Sans | Angielski | 7 | 7 |
| Pisownia stylizowana na historyczną | Fraktura | Fraktura | 2 | 4 |
| Pisownia stylizowana na historyczną | Fraktura | Angielski | 7 | 7 |
| Pisownia stylizowana na historyczną | Noto Sans | Fraktura | 0 | 3 |
| Pisownia o charakterze historycznym | Noto Sans | Angielski | 4 | 4 |
Zero w danym wierszu oznacza idealną zgodność wyłącznie dla tego jednego krótkiego fragmentu. Nie mówi ono nic o kolejnej stronie prawdziwej książki. Z kolei model, który poprawnie zachowuje ſ , otrzymuje dodatkowe różnice w porównaniu z tekstem docelowym wymagającym s. Różnice te wynikają z rozbieżności w przyjętych regułach, a niekoniecznie z błędu rozpoznawania tekstu.
Zobacz wszystkie oryginalne wyniki i oceny, ustalone teksty źródłowe i zasady ocenylub skrypt weryfikacyjny. Pakiet zawiera skróty SHA-256, dzięki czemu model, obraz i uzyskany tekst można przypisać do każdego z wyników.
Czego ten eksperyment nie jest w stanie wykazać
Są to dwa przejrzyste, syntetyczne fragmenty złożone dużą czcionką — a nie skany starego wydania. Nie testowaliśmy wyblakłego tuszu, drobnego druku, marginesów wewnętrznych, układu wielokolumnowego, zniszczonego papieru, pisma odręcznego ani niezależnych transkrypcji wykonanych przez człowieka. Nie testowaliśmy również modelu dla współczesnego języka niemieckiego, komercyjnych narzędzi OCR ani modułu OCR i tłumaczeń w BookTranslator.
Powyższe przykłady należy traktować jako powód do dokładnego zbadania własnych materiałów, a nie jako miarodajne oszacowanie poziomu błędów dla całej książki. Na podstawie tej tabeli nie wybralibyśmy usługi OCR do digitalizacji zbiorów historycznych.
Przeprowadź ograniczony test na stronach, których rzeczywiście potrzebujesz
Jeśli korzystasz z Tesseracta lokalnie, przed porównaniem wyników zanotuj wersję silnika i dokładny plik modelu. Sama nazwa modelu nie pozwala jednoznacznie zidentyfikować pobranego pliku. Nasz rejestr pochodzenia danych zawiera odnośniki do konkretnych wersji publicznych modeli i źródeł czcionek; duże pliki modeli nie są dołączone do artykułu.
W przypadku naszego przykładowego obrazu z pojedynczym blokiem tekstu, przy modelu pisma neogotyckiego zapisanym lokalnie jako models/Fraktur.traineddata, polecenie miało postać:
tesseract samples/long-s-fraktur.png stdout --tessdata-dir ./models -l Fraktur --oem 1 --psm 6 --dpi 300
Dokumentacja wiersza poleceń Tesseracta wyjaśnia działanie trybu LSTM oraz założenie PSM 6 dotyczące pojedynczego, jednolitego bloku tekstu. To założenie sprawdza się przy naszym trzywierszowym obrazie. Nie jest to jednak zalecenie, aby każdą wielokolumnową stronę książki przetwarzać za pomocą PSM 6.
W przypadku własnej książki zacznij od fragmentu, który potrafisz bez trudu przepisać, oraz jednej trudniejszej strony reprezentatywnej dla całego materiału. Uwzględnij nazwisko lub nieznany termin, liczbę oraz wszelkie zmiany krojów pisma. Jeśli w książce przeplatają się różne alfabety lub języki, skorzystaj z osobnego przewodnika po OCR wielojęzycznych plików PDF , zamiast zakładać, że jeden czytelny akapit fraktury jest reprezentatywny dla całego dokumentu.
Pozostaw skan w nienaruszonym stanie. Zapisz surowy tekst OCR oddzielnie od poprawek i odnotuj identyfikator strony lub obrazu dla każdego sprawdzonego fragmentu. Jeśli wynik jest nieczytelny, przejrzyj ponownie obraz strony i jej segmentację, zanim zlecisz przetwarzanie setek stron.
Poprawiaj transkrypcję bez wymyślania brakujących słów
Prowadź prosty rejestr poprawek z czterema kolumnami: lokalizacja źródłowa, surowy OCR, sprawdzony odczyt i powód zmiany. Powód powinien jasno odróżniać widoczny błąd rozpoznania znaku od ingerencji redakcyjnej.
| Obserwacja | Zalecane działanie | Działanie niewskazane |
|---|---|---|
Obraz wyraźnie przedstawia iſt; OCR zwraca ift | Popraw to wystąpienie na podstawie obrazu | Zastąpienie każdego f w całym dokumencie |
OCR zachowuje formę rothe, ale wolisz wersję rote do czytania | Zachowaj formę źródłową i utwórz oznaczoną, zmodernizowaną wersję pochodną | Traktowanie modernizacji jako poprawki błędu OCR |
| Różni się cyfra lub znak interpunkcyjny | Zweryfikuj to miejsce, nawet jeśli całe zdanie brzmi płynnie | Sprawdzaj tylko nietypowe kształty liter |
| Obraz jest rzeczywiście nieczytelny | Oznacz niepewność w roboczej transkrypcji i zachowaj odniesienie do obrazu | Przyjmij prawdopodobne wygenerowane słowo jako odzyskany materiał dowodowy |
Jeśli tekst w pobranym pliku PDF daje się już zaznaczyć, porównaj wklejony tekst z obrazem przed rozpoczęciem pracy od zera. Diagnoza kopiowania i wklejania z PDF wyjaśnia, dlaczego widoczna strona może wyglądać poprawnie, podczas gdy ukryty lub zmapowany tekst zawiera błędy. To zupełnie inny problem niż wybór modelu do rozpoznawania fraktury.
Zatrzymaj się po uzyskaniu wiarygodnego tekstu źródłowego, jeśli Twoim jedynym celem było przeszukiwanie, weryfikacja cytatów lub czytanie po niemiecku. Tłumaczenie nie jest wymaganym etapem czyszczenia tekstu.
Tłumacz tylko wtedy, gdy bariera językowa nadal stanowi przeszkodę
Dla czytelników potrzebujących innego języka zweryfikowane źródło jest momentem, w którym tłumaczenie staje się przydatne. Zadbaj o wyraźne rozróżnienie między skanem, przejrzaną transkrypcją a tłumaczeniem, aby w razie spornego fragmentu móc ustalić, czy błąd powstał na etapie rozpoznawania, czy przekładu. Przebieg pracy z tłumaczeniem zeskanowanych plików PDF przedstawia szerszy kontekst tego procesu.
Jeśli zdecydujesz się na Tłumacz PDF od BookTranslator, przetestuj reprezentatywny fragment własnego dokumentu, zanim zaufasz pełnemu wynikowi. Nasz eksperyment nie weryfikuje radzenia sobie BookTranslator z historyczną frakturą. Jego Tryb OCR rekonstruuje czysty dokument i może zmienić pierwotny układ strony, kroje oraz rozmiary czcionek; nie traktuj tego wyniku jako faksymile ani nie zakładaj, że oryginalna numeracja stron i odniesienia pozostaną bez zmian.
Praktyczna kolejność jest prosta: ustal brzmienie tekstu źródłowego, oznacz wszelką normalizację, a następnie przetłumacz, jeśli to konieczne. Płynność językowa powinna być zwieńczeniem tego procesu — a nie zastępować materiał dowodowy na samym początku.
Powiązane wpisy





