This is an old revision of the document!
Table of Contents
Brillův tagger
Stáhněte z internetu (např. z http://www.cs.jhu.edu/~brill/RBT1_14.tar.Z) tagger Erika Brilla, nainstalujte ho a rozchoďte ho. Dostanete k dispozici anotovaný korpus, který si rozdělíte na trénovací a testovací data. Natrénujte tagger na trénovacích datech, označkujte testovací data a zjistěte, jaké úspěšnosti tagger dosahuje.
Výsledky své práce budete prezentovat ostatním na některé prosincové přednášce. Níže najdete otázky, na které byste při experimentech měli hledat odpověď; do prezentace však zahrňte i další zajímavosti, na které při pokusech narazíte, ať už se týkají technických aspektů práce s taggerem, zajímavostí v datech, se kterými jste pracovali, nebo námětů, jak zlepšit úspěšnost taggeru.
Odevzdávat budete kromě prezentace také podpůrné skripty, které při experimentech potřebujete. Měly by být spíše v Perlu než v shellu a spíše platformově nezávislé, i když v případě potřeby můžete využít externí programy běžně dostupné v Linuxu (např. gzip). Skripty by neměly záviset na konkrétním rozmístění souborů na vašem disku. Samozřejmě budou muset vědět, kde máte vybalený tagger s příslušenstvím, k tomu použijte proměnnou prostředí BRILL
. (V Perlu dostupná jako $ENV{BRILL}
.) Dokumentace ke skriptům stačí uživatelská, tj. seznam skriptů, ke každému způsob volání a jednou dvěma větami popsáno, k čemu slouží.
Poznámky k architektuře
Brillův software je napsán dílem v C, dílem v Perlu. Testován byl na Sun Sparc 10, takže doporučené prostředí je Unix, i když není zatím vyloučeno, že ho půjde přeložit i ve Windows. Vznikl už v roce 1994 takže na dnešním hardwaru by měl být rychlejší a nemusel by mít problémy s pamětí. Tehdy ale trénování na půl miliónu anglických slov trvalo několik dní.
Otázky
Poznámka: Mluvíme-li o počtu slov, máme na mysli buď slovní výskyty, nebo slovní typy. Velikost korpusu udává počet slovních výskytů. Počet typů udává velikost slovníku, který můžeme z korpusu vytáhnout. Jeden typ může mít několik výskytů.
- Jaká je míra nejednoznačnosti trénovacích dat? Tj. kolik možných značek v průměru připadá na každý slovní výskyt?
- Jaké procento slovních výskytů je jednoznačné, tj. z trénovacích dat pro ně známe právě jednu značku?
- Jaký je nejvyšší počet značek na slovní typ a které slovo a značky to jsou?
- Jaké je pokrytí testovacích dat trénovacími? Tj. jaké procento testovacích slov jsme alespoň jednou potkali v trénovacích datech? Zajímavé jak pro počet testovacích výskytů, tak typů.
- Jaká je úspěšnost naivního taggeru, který každému slovu přiřadí nejpravděpodobnější značku? (Pro každé trénovací slovo si musíme zapamatovat vítěznou značku, neznámým slovům dáváme nejčastější značku vůbec.)
- Jak dlouho trvá trénování Brillova taggeru na přiložených datech (a na jakém hardwaru)?
- Jaké úspěšnosti tagger dosahuje na přiložených testovacích datech? Tj. pro jaké procento slov určil správnou značku?
- Jaké jsou nejčastější druhy chyb naivního a Brillova taggeru? (Např. “25 % všech chyb byl případ, kdy správná je značka N4 (podstatné jméno ve 4. pádě), ale tagger přiřadil značku N1 (podstatné jméno v 1. pádě). Tato chyba se nejčastěji týkala slova “předpis”.”)
Skripty
Následuje přehled některých skriptů, které byste měli vytvořit. Nejde o vyčerpávající seznam, výše navržené experimenty budou vyžadovat i další funkce.
- Jednoduchý trénovací skript, kterému se předají trénovací data a vypadne nějaký soubor, třeba zagzipovaný, s natrénovaným modelem pro tagger. Brillovo README popisuje trénování rozložené do řady kroků, tento skript by měl celý proces usnadnit.
- Obdobně skript pro pouštění taggeru, předá se mu soubor vypadlý z trénovacího skriptu a text k označkování, vypadne označkovaný text.
- Naivní trénovač a tagger, který se volá stejně jako výše popsané rozhraní na Brillův tagger, ale chová se zcela naivně (nejpravděpodobnější značka, viz výše).
- Skript, kterému se předá ručně označkovaný text (tzv. gold standard) a tentýž text označkovaný taggerem. Skript vypíše úspěšnost značkování taggeru (tj. procento správně označkovaných slov) a případný další rozbor chyb.