====== Brillův tagger ====== Stáhněte z internetu (např. z http://sourceforge.net/projects/gposttl/) 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é - to se týká zejména těch, které přímo nevolají Brillův software. V případě potřeby ale můžete využít externí programy běžně dostupné v Linuxu, které nelze snadno nahradit příkazy Perlu (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í. Poznámka k poznámce (1.10.2009): staré stránky Erika Brilla na Johns Hopkins University, odkud bylo dříve možné si tagger stáhnout, již nefungují a výše uvedený odkaz na Sourceforge vede na //novou implementaci// Brillova taggeru. Uvedené postřehy se na tuto implementaci pochopitelně nemusí vztahovat. ===== 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".") - Změní se výsledek značkování, když Brillovi nepředhodíme text v UTF-8, ale převedeme ho nejdřív do nějakého osmibitového kódování? - Brillův tagger funguje tak, že nejdřív udělá pro každé slovo jakýsi první nástřel značky a pak se učí pravidla, jak značku nahradit lepší značkou. Defaultní první nástřel používá značky běžné v anglickém Penn Treebanku, tj. pro jiné korpusy a jazyky tyto značky musí být špatně. Změní se úspěšnost, když algoritmus prvního nástřelu upravíte pro svou sadu značek? Nebo se změní jen čas potřebný ke konvergenci algoritmu? ===== 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. ===== Data ===== Označkovaná data v tzv. Brillově formátu. Každá věta leží na samostatném řádku. Tokeny na řádku jsou oddělené mezerou. Token je ve formátu "slovo/značka", přičemž ani slovo, ani značka neobsahuje ani lomítko, ani mezeru. ==== Čeština ==== Pro přístup k datům je potřeba souhlasit s licenční smlouvou a odeslat registraci na http://ufal.mff.cuni.cz/corp-lic/pdt20-reg.html; do kolonky //Optional information// vyplňte "NPFL007". O registraci bych se měl dozvědět a poslat vám odkaz na data. ==== Švédština ==== Data pocházejí ze švédského korpusu Talbanken05, který je volně dostupný na webu. {{user:zeman:ukoly:sv.tag.zip|stáhnout}} ==== Dánština ==== Data pocházejí z korpusu DDT (Danish Dependency Treebank), který je volně dostupný na webu. {{user:zeman:ukoly:da.tag.zip|stáhnout}} ===== Další informace ===== Tento úkol (včetně zadání konkrétního jazyka) si můžete zarezervovat vyplněním formuláře na http://quest.ms.mff.cuni.cz/cgi-bin/zeman/zapoctaky/rezervace_ukolu.pl (pokud ještě není rozebrán). Termín odevzdání e-mailem je konec listopadu, prezentace programu proběhne v prosinci.