Napište 2 programy v Perlu, trénovací a testovací. Trénovací program přečte rozsáhlý český text, ze kterého získá slovník: pro každé slovo bez háčků a čárek seznam slov s háčky a čárkami, která mu odpovídají. Testovací program tento slovník načte, načte také text bez diakritiky a diakritiku podle slovníku doplní.
Pokud lze nějaké slovo oháčkovat více způsoby (jedním z legitimních způsobů může být nechání slova neoháčkovaného), v první verzi mu vyberte nejčastější protějšek. Až to budete mít, rozšiřte slovník o kontexty. Cílem je poznat kontext, ve kterém je pravděpodobnější nějaký jiný protějšek než ten absolutně nejčastější. Varování: Nepomůže vám, když za kontext budete považovat celé sousední slovo, protože se jen zřídka stane, že tutéž dvojici jste viděli i v trénovacích datech. Vyzkoušejte však, zda pomůže, když za kontext budete považovat pouze 4písmenné koncovky okolních slov (nesou informace o rodě, čísle, pádě, osobě apod., takže by mohly pomoct).
Třetí verze (tato část je volitelná): pokuste se oháčkovat i slova, která vůbec nemáte ve slovníku, protože nebyla v trénovacích datech. Možnosti: 1) Neznámé slovo má známou koncovku (např. „-ych“), přidejte diakritiku aspoň do koncovky. 2) Obecněji: v neznámém slově se vyskytuje skupina znaků, jejíž výskyt je mnohem pravděpodobnější s diakritikou než bez ní (např. „pře-“ místo „pre“). Tato heuristika možná nebude prakticky použitelná, protože zjistíte, že vnáší příliš mnoho chyb („přesumpce neviny“ apod.) 3) Neznámé slovo obsahuje nějaké známé slovo (např. znáte slovo „přeřaď“, máte oháčkovat „neprerad“).
Trénovací data si stáhněte z http://ufal.mff.cuni.cz/~zeman/vyuka/ukoly/data/hack-train.utf.txt.gz. Při jejich používání se musíte řídit podmínkami uvedenými na adrese http://ufal.mff.cuni.cz/corp-lic/pdt10-reg.html.