====== Malt parser ====== Stáhněte z internetu (např. z http://w3.msi.vxu.se/~nivre/research/MaltParser.html) Malt parser Joakima Nivreho, nainstalujte ho a rozchoďte ho. Dostanete k dispozici anotovaný korpus, který si rozdělíte na trénovací a testovací data. Natrénujte parser na trénovacích datech, rozeberte jím testovací data a zjistěte, jaké úspěšnosti parser 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 parserem, zajímavostí v datech, se kterými jste pracovali, nebo námětů, jak zlepšit úspěšnost parseru. 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í Nivreho 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ý parser s příslušenstvím, k tomu použijte proměnnou prostředí ''MALT''. (V Perlu dostupná jako ''$ENV{MALT}''.) 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 ===== Malt parser je k dispozici bez zdrojáků, přeložený pro tyto architektury: * Linux / Intel * Solaris / Sun * Windows / Cygwin / Intel * MacOS X / MacIntosh **Poznámka:** Nová verze už je open source v Javě! ===== Otázky ===== - Jaká je úspěšnost naivního parseru, který každému slovu přiřadí jako rodiče jeho levého souseda? - Jaké procento slov v trénovacích datech visí - na svém levém sousedovi? - na svém pravém sousedovi? - na uzlu vlevo, který není soused? - na uzlu vpravo, který není soused? - Jak vypadá 10 nejčastějších závislostí v trénovacích datech? Zjistěte pro různé způsoby, jakými lze identifikovat závislost (slovo může být slovní tvar nebo lemma - dochází k nějakým rozdílům, když místo slovního tvaru použijete lemma?): - slovo - slovo - slovo - značka - značka - slovo - značka - značka - Mezi uzly, které se v trénovacích datech vyskytly alespoň pětkrát, najděte takové, které vykazují velmi silnou tendenci mít určitý pevný počet dětí. Uzel lze identifikovat slovním tvarem, lemmatem nebo značkou. Např. uzel, jehož značka říká, že jde o předložku, bude v drtivé většině případů mít právě jedno dítě. - Jaké je pokrytí testovacích dat trénovacími? Tj. jaké procento testovacích slov jsme alespoň jednou potkali v trénovacích datech? - Jak dlouho trvá trénování Malt parseru na přiložených datech (a na jakém hardwaru)? - Jak dlouho trvá parsing (průměrný čas potřebný na rozbor jedné věty) a na jakém hardwaru? - Jaké úspěšnosti parser dosahuje na přiložených testovacích datech? Tj. pro jaké procento slov určil správného rodiče? - Jaké jsou nejčastější druhy chyb naivního parseru a Malt parseru? (Např. "25 % všech chyb byl případ, kdy přídavné jméno je v koordinaci s jiným přídavným jménem, ale parser ho pověsil na podstatné jméno vpravo.") ===== 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 parser. * Obdobně skript pro pouštění parseru, předá se mu soubor vypadlý z trénovacího skriptu a text k označkování, vypadne označkovaný text. * Naivní parser, který se volá stejně jako výše popsané rozhraní na Malt parser, ale chová se zcela naivně (levý soused je rodič, viz výše). * Skript, kterému se předá ručně rozebraný text (tzv. gold standard) a tentýž text rozebraný parserem. Skript vypíše úspěšnost parseru (tj. procento slov, jimž byl správně přiřazen rodič) a případný další rozbor chyb. ===== Data ===== Označkovaná data ve [[:Formát CoNLL|formátu CoNLL]]. Každé slovo leží na samostatném řádku, jsou tam k němu různé údaje (např. lemma, značka) oddělené tabulátory. Věty jsou oddělené prázdným řádkem. ==== Č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.conll.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.conll.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.