HTR · 03

Praktický příklad: vytvoření HTR modelu pro jednu archivní knihu

Vydáno: Aktualizováno: Vydavatel: Vestigia Scriptorium

Představme si, že máme digitalizovanou pozemkovou knihu o rozsahu 300 stran. Kniha vznikala během několika desetiletí a obsahuje zápisy několika písařů. Cílem není vytvořit diplomatickou edici celého pramene, ale získat dostatečně kvalitní automatický přepis, v němž bude možné vyhledávat jména osob, místní názvy, čísla usedlostí a další údaje.

Na tomto příkladu lze ukázat praktický postup vytvoření vlastního HTR modelu.

1. Nezačínejte přepisováním prvních padesáti stran

První intuitivní postup bývá jednoduchý: otevřít knihu na začátku a postupně přepisovat stránky, dokud nevznikne dostatek Ground Truth.

Takový výběr však může vytvořit nereprezentativní trénovací soubor. Jestliže například prvních 80 stran napsal jeden písař a další části knihy jiní písaři, model se velmi dobře naučí první rukopis, ale na zbytku knihy může pracovat podstatně hůře.

Nejprve je proto vhodné projít celý dokument bez podrobného přepisování a zjistit jeho základní strukturu.

U každé části knihy sledujeme zejména:

  • změny písařské ruky,
  • výrazné změny období,
  • změny jazyka nebo pravopisu,
  • odlišné typy zápisů,
  • změny uspořádání stránky,
  • tabulky a formulářové části,
  • poškozené nebo špatně nasnímané stránky.

Výsledkem může být například zjištění, že stránky 1–90 psal převážně písař A, stránky 91–210 písař B a poslední část obsahuje směs zápisů písařů B, C a D.

Tato jednoduchá analýza je pro další práci důležitější než mechanické dosažení určitého počtu přepsaných stran.

2. Vyberte první soubor Ground Truth

Z 300stránkové knihy můžeme pro první experiment vybrat například 40 až 50 stran. Nejde však o univerzální doporučený počet; skutečná potřeba závisí na množství textu na stránce a variabilitě rukopisu.

Stránky vybíráme napříč celou knihou.

Modelový výběr může vypadat například takto:

Část knihyCharakterStrany pro Ground Truth
s. 1–90písař A15
s. 91–210písař B15
s. 211–260písaři B a C10
s. 261–300písaři C a D10
Celkem50

Ani tento poměr nemusí být ideální za všech okolností. Má-li například písař D v knize pouze několik krátkých zápisů, nemusí být účelné věnovat mu stejný počet trénovacích stran jako hlavnímu písaři.

Cílem je vytvořit reprezentativní vzorek materiálu, který bude model později skutečně číst.

3. Stanovte pravidla přepisu ještě před vytvořením Ground Truth

Než začneme přepisovat desítky stran, je vhodné vytvořit krátký dokument s transkripčními pravidly.

U pozemkové knihy si například stanovíme:

  • zachováváme původní pravopis;
  • nemodernizujeme historické tvary slov;
  • zachováváme velká a malá písmena podle předlohy, pokud je lze spolehlivě určit;
  • interpunkci zapisujeme pouze tam, kde je skutečně v dokumentu;
  • zkratky nerozepisujeme do moderní podoby;
  • používáme jednotný způsob zápisu historických znaků;
  • nečitelná místa označujeme vždy stejným způsobem;
  • text nepřepisujeme podle toho, co podle kontextu „mělo být napsáno“, ale podle toho, co lze skutečně přečíst.

Konkrétní pravidla se mohou projekt od projektu lišit. Podstatné je, aby se během vytváření Ground Truth neměnila nahodile.

Pokud například jeden člověk přepisuje historickou zkratku doslovně a druhý ji automaticky rozepisuje, dostává model dvě rozdílné odpovědi na stejný obrazový jev.

4. Proveďte segmentaci a zkontrolujte řádky

Na vybraných 50 stranách provedeme analýzu layoutu.

Automatická segmentace obvykle výrazně urychlí práci, její výsledek však zkontrolujeme. Zaměříme se zejména na:

  • chybějící řádky,
  • dva spojené řádky,
  • jeden řádek chybně rozdělený na několik částí,
  • marginální poznámky,
  • nadpisy,
  • text zasahující do vazby,
  • přeškrtnuté a dodatečně vložené zápisy.

Teprve poté vytváříme nebo opravujeme samotnou transkripci.

5. Vytvořte první Ground Truth

Máme-li k dispozici vhodný obecný HTR model pro příslušný jazyk, období a typ písma, můžeme jej nejprve spustit na vybraných stránkách a jeho výstup ručně opravit.

Pokud vhodný model neexistuje nebo jsou jeho výsledky velmi špatné, vytvoříme přepis ručně.

Výsledkem musí být dvojice:

obraz řádku → ověřená transkripce řádku

Právě tato data představují skutečný základ budoucího modelu.

V této fázi se nevyplatí šetřit čas na úkor kvality. Jestliže vytvoříme 50 stran nepřesného Ground Truth, nezískáváme kvalitnější trénovací materiál než při vytvoření menšího, ale pečlivě zkontrolovaného souboru.

6. Oddělte část dat pro validaci

Z připraveného Ground Truth vyčleníme část stran, na kterých budeme během trénování sledovat kvalitu modelu.

Při 50 stranách bychom například mohli použít:

45 stran pro training set
5 stran pro validation set

Dělení však nemá být čistě náhodné, pokud by tím vznikla nereprezentativní validační sada. Pět validačních stran by například nemělo pocházet pouze od písaře A.

Pokud je cílem serióznější vyhodnocení, je vhodné již na začátku vyčlenit ještě několik dalších stran jako testovací soubor. Ty nepoužijeme ani pro vlastní trénování, ani pro průběžné rozhodování během vývoje modelu.

7. Natrénujte první model

Nyní lze spustit vlastní trénování.

Pokud existuje kvalitní model vytvořený na podobném historickém materiálu, je zpravidla vhodné nejprve vyzkoušet jeho použití jako base modelu a vytvořit specializovanou variantu pomocí dalšího trénování.

Vedle toho lze podle možností použitého systému experimentálně vytvořit také model bez vhodného předtrénovaného základu a výsledky porovnat.

Cílem prvního trénování ještě nemusí být vytvoření definitivního modelu. Jde především o zjištění, co se model z připravených dat dokázal naučit a kde má problémy.

8. Nehodnoťte model pouze podle jednoho CER

Po dokončení trénování získáme hodnotu Character Error Rate na validačních datech. Řekněme například, že model dosáhne:

CER = 7,2 %

Číslo samo o sobě vypadá slibně, ale ještě neříká, zda je model vhodný pro celou knihu.

Je proto nutné zjistit, jaké chyby těchto 7,2 % tvoří.

Pokud model zaměňuje zejména interpunkci nebo některé varianty velkých písmen, může být pro fulltextové vyhledávání již velmi dobře použitelný.

Jestliže však systematicky komolí:

  • příjmení,
  • místní názvy,
  • čísla,
  • letopočty,
  • peněžní částky,

může být pro zamýšlený historický výzkum problematický i při relativně dobrém celkovém CER.

9. Otestujte jednotlivé písaře

Nyní vezmeme několik stran, které model během trénování vůbec neviděl.

Výsledek může například vypadat následovně:

PísařOrientační CER na testovacích stranách
A3,8 %
B5,1 %
C8,7 %
D15,4 %

Průměrný výsledek celého modelu by mohl působit uspokojivě. Tabulka však ukazuje něco podstatnějšího: model velmi dobře zvládá písaře A a B, hůře písaře C a výrazně selhává u písaře D.

Řešením tedy nemusí být přidávání dalších náhodných stran z celé knihy.

Mnohem užitečnější bude vytvořit další Ground Truth především z rukopisu písaře D a případně C.

10. Využijte první model k vytvoření dalších dat

Na další reprezentativní stránky nyní aplikujeme první vlastní model.

Původně jsme například jednu stránku přepisovali ručně 20 minut. První model již může vytvořit přepis, jehož ruční oprava zabere podstatně kratší dobu.

Opravené stránky se stanou novým Ground Truth.

Vzniká tak pracovní cyklus:

ruční Ground Truth → model 1 → automatický přepis → oprava → rozšířený Ground Truth → model 2

Druhý model může být trénován například na původních 45 trénovacích stranách doplněných o dalších 20 stran zaměřených především na písaře, u nichž první model selhával.

11. Opakujte test na stejných nezávislých datech

Po vytvoření druhé verze modelu opakujeme hodnocení.

Můžeme například získat:

PísařModel 1Model 2
A3,8 %3,6 %
B5,1 %4,5 %
C8,7 %5,9 %
D15,4 %7,8 %

Takový výsledek by ukazoval, že cílené rozšíření Ground Truth skutečně pomohlo.

Uvedená čísla jsou pouze modelovým příkladem, nikoli očekávanými hodnotami pro skutečný archivní dokument.

12. Kdy přestat trénovat

Neexistuje hranice CER, při jejímž dosažení je model automaticky „hotový“.

Rozhoduje účel.

Pokud chceme vytvořit kritickou edici historického pramene, budeme pravděpodobně stejně požadovat lidskou kontrolu prakticky celého textu.

Jestliže však potřebujeme zpřístupnit 300 stran pro fulltextové vyhledávání a následnou badatelskou práci, může být přínos dalšího snižování CER z 5 % na 3 % menší než množství práce potřebné k vytvoření dalších Ground Truth.

V určitém okamžiku proto nastává praktická otázka:

Vyplatí se ještě investovat práci do dalšího trénování, nebo je již výhodnější spustit model na zbývajících dokumentech?

Odpověď závisí na zamýšleném využití výsledných dat.

13. Spusťte model na celé knize

Jakmile model dosahuje přijatelné kvality na reprezentativních testovacích stranách, můžeme jej použít na zbývajících přibližně 230–250 stranách knihy.

Tím však práce nemusí skončit.

Automatický přepis lze dále:

  • ručně opravovat,
  • indexovat,
  • fulltextově prohledávat,
  • exportovat do XML nebo jiného strukturovaného formátu,
  • využít k vyhledávání osob a míst,
  • propojit s databázovými záznamy,
  • použít jako podklad pro další automatické zpracování.

Pro archivní datový projekt je důležité uchovat vedle výsledného textu také vztah mezi transkripcí a původním obrazem dokumentu. Badatel se tak může kdykoliv vrátit k originálu a automaticky rozpoznaný údaj ověřit.

Co si z příkladu odnést

Nejdůležitější zásadou není „přepsat co nejvíce stran“. Cílem je vytvořit co nejmenší, ale dostatečně reprezentativní a kvalitní Ground Truth, který odpovídá skutečné variabilitě zpracovávaného materiálu.

Pro první projekt lze celý postup zjednodušit na:

1. Prohlédnout celý dokument.
2. Identifikovat hlavní písaře a typy zápisů.
3. Vybrat reprezentativní stránky.
4. Stanovit jednotná pravidla transkripce.
5. Zkontrolovat segmentaci.
6. Vytvořit kvalitní Ground Truth.
7. Oddělit training, validation a případně test data.
8. Natrénovat první model.
9. Otestovat jej na dosud nepoužitých stránkách a jednotlivých písařích.
10. Doplnit Ground Truth především tam, kde model selhává.
11. Model znovu natrénovat.
12. Jakmile kvalita odpovídá účelu projektu, použít jej na zbytek dokumentu.

Tento iterativní přístup má ještě jednu důležitou výhodu. Výsledkem projektu není pouze natrénovaný HTR model. Vzniká také ověřený Ground Truth korpus, který lze uchovat, publikovat, použít k trénování budoucích modelů nebo kombinovat s dalšími datovými soubory. Z dlouhodobého hlediska proto může mít kvalitně vytvořený Ground Truth větší hodnotu než konkrétní verze HTR modelu, která může být později nahrazena technicky dokonalejším řešením.