HTR · 03
Przykład praktyczny: tworzenie modelu HTR dla jednej księgi archiwalnej
Wyobraźmy sobie, że mamy zdigitalizowany 300-stronicowy rejestr gruntów. Księga powstawała przez kilkadziesiąt lat i zawiera wpisy kilku skrybów. Celem nie jest stworzenie dyplomatycznego wydania całego źródła, ale uzyskanie odpowiednio wysokiej jakości automatycznej transkrypcji, w której możliwe będzie wyszukiwanie nazwisk osób, nazw miejscowości, numerów gospodarstw i innych danych.
Ten przykład pokazuje praktyczną procedurę tworzenia własnego modelu HTR.
1. Nie zaczynaj od przepisania pierwszych pięćdziesięciu stron
Pierwsza intuicyjna procedura jest zwykle prosta: otwórz książkę na początku i stopniowo przepisz strony, aż będzie wystarczająca ilość Ground Truth.
Jednakże taki wybór może skutkować niereprezentatywnym zbiorem treningowym. Na przykład, jeśli pierwsze 80 stron zostało napisane przez jednego skrybę, a resztę księgi przez innych skrybów, model bardzo dobrze nauczy się pierwszej ręki skryby, ale z resztą księgi może sobie poradzić znacznie gorzej.
Na początek zaleca się zatem przejrzeć cały dokument bez szczegółowej transkrypcji i poznać jego podstawową strukturę.
W przypadku każdej części książki monitorujemy głównie:
- zmiana ręki skryby,
- istotne zmiany okresowe,
- zmiany języka lub pisowni,
- różne typy wpisów,
- zmiany układu strony,
- tabele i części formularzy,
- uszkodzone lub słabo zeskanowane strony.
Może to na przykład skutkować odkryciem, że strony 1–90 zostały napisane głównie przez skrybę A, strony 91–210 przez skrybę B, a ostatnia sekcja zawiera mieszankę wpisów skrybów B, C i D.
Ta prosta analiza jest ważniejsza dla dalszej pracy niż mechaniczne dotarcie do określonej liczby przepisanych stron.
2. Wybierz pierwszy zestaw Ground Truth
Z 300-stronicowej książki możemy wybrać np. 40 do 50 stron do pierwszego eksperymentu. Nie jest to jednak uniwersalna zalecana liczba; rzeczywista potrzeba zależy od ilości tekstu na stronie i zmienności pisma ręcznego.
Wybieramy strony z całej książki.
Przykładowy wybór może wyglądać następująco:
| Część książki | Charakter | Strony dla Ground Truth |
|---|---|---|
| s. 1–90 | pisarz A | 15 |
| s. 91–210 | pisarz B | 15 |
| s. 211–260 | skrybowie B i C | 10 |
| s. 261–300 | skrybowie C i D | 10 |
| Razem | 50 |
Nawet ten stosunek może nie być idealny w każdych okolicznościach. Na przykład, jeśli pisarz D ma tylko kilka krótkich wpisów w księdze, poświęcenie mu takiej samej liczby stron szkoleniowych, jak głównemu skrybowi, może nie być praktyczne.
Celem jest stworzenie reprezentatywnej próbki materiału, który model faktycznie przeczyta później.
3. Ustal zasady transkrypcji przed utworzeniem Ground Truth
Zanim przystąpimy do transkrypcji kilkudziesięciu stron, warto przygotować krótki dokument zawierający zasady transkrypcji.
Dla księgi wieczystej ustalamy np.:
- zachowujemy oryginalną pisownię;
- nie modernizujemy historycznych form wyrazów;
- zachowujemy wielkie i małe litery zgodnie z oryginałem, jeśli można je wiarygodnie rozpoznać;
- znaki interpunkcyjne piszemy tylko tam, gdzie faktycznie występują w dokumencie;
- skróty nie są przepisywane w nowoczesnej formie;
- stosujemy jednolity sposób zapisu historycznych znaków pisma;
- zawsze w ten sam sposób zaznaczamy miejsca nieczytelne;
- nie przepisujemy tekstu według tego, co według nas „powinno zostać napisane” na podstawie kontekstu, ale według tego, co faktycznie można przeczytać.
Szczegółowe zasady mogą się różnić w zależności od projektu. Istotne jest, aby reguły nie uległy arbitralnej zmianie podczas tworzenia Ground Truth.
Na przykład, jeśli jedna osoba dosłownie przepisuje skrót historyczny, a druga automatycznie go rozszerza, model otrzymuje dwie różne reakcje na to samo zjawisko wizualne.
4. Wykonaj segmentację i sprawdź linie
Na wybranych 50 stronach przeprowadzimy analizę układu.
Automatyczna segmentacja zwykle znacznie przyspiesza pracę, ale jej wynik sprawdzimy. W szczególności skupimy się na:
- brakujące linie,
- dwie połączone linie,
- jedna linia błędnie podzielona na kilka części,
- notatki na marginesach,
- nagłówki,
- tekst sięgający do oprawy,
- wpisy przekreślone i dodatkowo wstawione.
Dopiero wtedy tworzymy lub poprawiamy samą transkrypcję.
5. Utwórz pierwszy plik Ground Truth
Jeśli mamy odpowiedni ogólny model HTR dla odpowiedniego języka, okresu i pisma ręcznego, możemy najpierw uruchomić go na wybranych stronach i ręcznie poprawić jego wynik.
Jeżeli odpowiedni model nie istnieje lub jego wyniki są bardzo słabe, transkrypcję tworzymy ręcznie.
Wynikiem musi być para:
obraz linii → zweryfikowana transkrypcja linii
To właśnie te dane stanowią prawdziwą podstawę przyszłego modelu.
Na tym etapie nie warto oszczędzać czasu kosztem jakości. Jeśli utworzymy 50 stron niedokładnego Ground Truth, nie otrzymamy lepszego materiału szkoleniowego, niż gdybyśmy utworzyli mniejszy, ale dokładnie sprawdzony zbiór danych.
6. Odłóż część danych do walidacji
Z przygotowanego Ground Truth wydzielimy część stron, na których będziemy monitorować jakość modelu podczas szkolenia.
Na przykład na 50 stronach moglibyśmy użyć:
45 stron na zestaw szkoleniowy
5 stron na zestaw walidacyjny
Jednakże podział nie powinien być czysto losowy, jeżeli w rezultacie otrzymalibyśmy niereprezentatywny zbiór walidacyjny. Na przykład pięć stron weryfikacyjnych powinno pochodzić nie tylko od Skryby A.
Jeżeli celem jest poważniejsza ocena, warto na początku przeznaczyć jeszcze kilka stron jako zestaw testowy. Nie będziemy ich używać ani do własnego szkolenia, ani do ciągłego podejmowania decyzji podczas opracowywania modelu.
7. Wytrenuj pierwszy model
Można teraz rozpocząć szkolenie niestandardowe.
Jeśli istnieje model jakości stworzony na podobnym materiale historycznym, zazwyczaj zaleca się najpierw spróbować użyć go jako modelu podstawowego i po dalszym szkoleniu stworzyć specjalistyczny wariant.
Dodatkowo, w zależności od możliwości zastosowanego systemu, można eksperymentalnie stworzyć model bez odpowiedniej, wytrenowanej bazy i porównać wyniki.
Celem pierwszego szkolenia może nie być jeszcze stworzenie ostatecznego modelu. Chodzi głównie o to, żeby dowiedzieć się czego model nauczył się z przygotowanych danych i gdzie ma problemy.
8. Nie oceniaj modelu tylko po jednym CER
Po ukończeniu szkolenia na danych walidacyjnych otrzymujemy wartość Character Error Rate. Załóżmy na przykład, że model osiąga:
CER = 7,2%
Już sama liczba wygląda obiecująco, ale nie mówi, czy model nadaje się na całą książkę.
Należy zatem dowiedzieć się, które błędy stanowią te 7,2%.
Jeśli model myli głównie znaki interpunkcyjne lub niektóre warianty wielkich liter, może być już bardzo przydatny w przypadku wyszukiwania pełnotekstowego.
Jeśli jednak systematycznie zniekształca:
- nazwiska,
- nazwy miejscowości,
- takty muzyczne,
- daty,
- sumy pieniędzy,
może to być problematyczne dla zamierzonych badań historycznych nawet przy stosunkowo dobrym ogólnym CER.
9. Testuj poszczególnych skrybów
Teraz zajmiemy się kilkoma stronami, których model w ogóle nie widział podczas treningu.
Na przykład wynik może wyglądać następująco:
| Pisarz | Orientacyjny CER na stronach testowych |
|---|---|
| A | 3,8 % |
| B | 5,1 % |
| C | 8,7 % |
| D | 15,4 % |
Średni wynik całego modelu mógłby wydawać się zadowalający. Jednakże tabela pokazuje coś bardziej istotnego: model radzi sobie bardzo dobrze z pisakami A i B, słabo z pisakami C i znacząco zawodzi ze skryptem D.
Dlatego dodanie większej liczby losowych stron z całej książki może nie być rozwiązaniem.
O wiele bardziej przydatne będzie utworzenie kolejnego Ground Truth, głównie z pisma skryby D i ewentualnie C.
10. Skorzystaj z pierwszego modelu, aby utworzyć dodatkowe dane
Teraz stosujemy pierwszy niestandardowy model do innych reprezentatywnych stron.
Na przykład pierwotnie spędziliśmy 20 minut na ręcznej transkrypcji jednej strony. Pierwszy model pozwala już na utworzenie transkrypcji, której ręczna korekta zajmuje znacznie mniej czasu.
Poprawione strony staną się nowymi Ground Truth.
Tworzy to cykl pracy:
instrukcja Ground Truth → model 1 → automatyczna transkrypcja → poprawka → rozszerzona Ground Truth → model 2
Drugi model można trenować np. na oryginalnych 45 stronach szkoleniowych uzupełnionych dodatkowymi 20 stronami skupiającymi się głównie na skrybach, dla których pierwszy model się nie sprawdził.
11. Powtórz test na tych samych niezależnych danych
Po stworzeniu drugiej wersji modelu powtarzamy ocenę.
Na przykład możemy uzyskać:
| Pisarz | Model 1 | Model 2 |
|---|---|---|
| A | 3,8 % | 3,6 % |
| B | 5,1 % | 4,5 % |
| C | 8,7 % | 5,9 % |
| D | 15,4 % | 7,8 % |
Taki wynik pokazałby, że docelowe rozszerzenie Ground Truth naprawdę pomogło.
Podane liczby stanowią jedynie przykład modelowy, a nie oczekiwane wartości dla rzeczywistego dokumentu archiwalnego.
12. Kiedy zakończyć trening
Nie ma limitu CER, przy którym model jest automatycznie „ukończony”.
Decyduje cel.
Jeśli chcemy stworzyć edycję krytyczną źródła historycznego, prawdopodobnie i tak będziemy potrzebowali przeglądu przez człowieka praktycznie całego tekstu.
Jeśli jednak będziemy musieli udostępnić 300 stron do przeszukiwania pełnotekstowego i późniejszych prac badawczych, korzyść z dalszego zmniejszenia CER z 5% do 3% może być mniejsza niż ilość pracy wymagana do utworzenia dodatkowych danych Ground Truth.
W pewnym momencie pojawia się zatem praktyczne pytanie:
Czy warto nadal inwestować pracę w dalsze szkolenia, czy bardziej opłaca się uruchamiać model na pozostałych dokumentach?
Odpowiedź zależy od zamierzonego wykorzystania uzyskanych danych.
13. Uruchom model na całej książce
Gdy model osiągnie akceptowalną jakość na reprezentatywnych stronach testowych, możemy go użyć na pozostałych około 230-250 stronach książki.
Jednak na tym praca nie musi się kończyć.
Automatyczna transkrypcja może być dalej:
- zostać skorygowany ręcznie,
- być indeksowane,
- wyszukiwać w pełnym tekście,
- zostać wyeksportowany do formatu XML lub innego ustrukturyzowanego formatu,
- służyć do wyszukiwania osób i miejsc,
- być powiązane z rekordami bazy danych,
- zostać wykorzystane jako podstawa do dalszego automatycznego przetwarzania.
W przypadku projektu opartego na danych archiwalnych ważne jest, aby oprócz tekstu wynikowego zachować związek między transkrypcją a oryginalnym obrazem dokumentu. Badacz może dzięki temu w każdej chwili wrócić do oryginału i zweryfikować automatycznie rozpoznane dane.
Co wynieść z przykładu
Najważniejszą zasadą jest, aby nie „przepisywać jak największej liczby stron”. Celem jest stworzenie jak najmniejszego, ale wystarczająco reprezentatywnego i wysokiej jakości Ground Truth, który odpowiada rzeczywistej zmienności przetwarzanego materiału.
W przypadku pierwszego projektu całą procedurę można uprościć do:
1. Zobacz cały dokument.
2. Zidentyfikuj głównych skrybów i rodzaje wpisów.
3. Wybierz reprezentatywne strony.
4. Ustal jednolite zasady transkrypcji.
5. Sprawdź segmentację.
6. Utwórz jakość Ground Truth.
7. Oddzielne dane treningowe, walidacyjne i ewentualnie testowe.
8. Wytrenuj pierwszy model.
9. Przetestuj go na wcześniej nieużywanych stronach i poszczególnych skrybach.
10. Uzupełnij Ground Truth szczególnie w przypadku awarii modelu.
11. Ponownie przeszkol model.
12. Gdy jakość będzie zgodna z celem projektu, zastosuj ją w pozostałej części dokumentu.
To iteracyjne podejście ma jeszcze jedną ważną zaletę. Efektem projektu jest nie tylko wytrenowany model HTR. Tworzy również zweryfikowany korpus Ground Truth, który można zachować, opublikować, wykorzystać do uczenia przyszłych modeli lub połączyć z innymi zbiorami danych. Dlatego w dłuższej perspektywie dobrze wykonany Ground Truth może mieć większą wartość niż konkretna wersja modelu HTR, który później może zostać zastąpiony bardziej zaawansowanym technicznie rozwiązaniem.