This is an old revision of the document!
Malt parser
Toto je rychlý úvod do práce s Malt parserem.
Jeden z formátů, které parser umí, je sloupcový formát CoNLL. Kromě trénovacích dat potřebuje parser znát také seznam slovních druhů (POS), hrubých slovních druhů (CPOS) a značek pro druhy závislostí (české AFUNy). Pokud nemáme k dispozici vyčerpávající seznamy pro naše data, můžeme alespoň z dat vytáhnout to, co se v nich opravdu objevilo:
setenv MALT /home/zeman/nastroje/parsery/malt/maltparser_0.4 setenv CONLL /net/data/conll cd $MALT $PARSINGROOT/tools/conll_tag_list.pl < $CONLL/2006/swedish/otrain.conll -c 3 > tagset.cpos $PARSINGROOT/tools/conll_tag_list.pl < $CONLL/2006/swedish/otrain.conll -c 4 > tagset.pos $PARSINGROOT/tools/conll_tag_list.pl < $CONLL/2006/swedish/otrain.conll -c 7 > tagset.dep
Taky potřebujeme soubor s definicemi rysů. Pro začátek můžeme využít jeden ze souborů dodávaných s parserem, ale musíme si ho buď přejmenovat, nebo v souboru options.dat
změnit název, pod kterým ho bude parser hledat.
ln -s m2.par model.par
Výchozí volby lze načíst ze souboru options.dat. I při trénování parser posílá na výstup stromečky, což lze využít při konverzi formátů. Natrénovaný model se ukládá do souborů, jejichž názvy se odvodí ze souboru s definicemi rysů, model.par. Trénování můžeme pustit např. takhle:
maltparser -f option.dat -m LEARN -I CONLLTAB -i $CONLL/2006/swedish/otrain.conll
Trénování nad 11000 švédskými větami trvalo na zenu asi 13 s.
Vlastní parsing pustíme ze stejného adresáře, parser si zřejmě sám načte natrénovaný model. Z testovacích dat nemusíme odstraňovat případné ruční anotace. Parseru nemusíme říkat, kde leží natrénovaný model, zřejmě tedy ale musíme být ve složce, ve které jsme byli při trénování.
maltparser -f option.dat -m PARSE -I CONLLTAB -i $CONLL/2006/swedish/etest.conll -O CONLLTAB -o sv.etest.malt.conll $PARSINGROOT/tools/conll-eval.pl -g $CONLL/swedish/etest.conll -s sv.etest.malt.conll | tee sv.etest.malt.result