[ Skip to the content ]

Institute of Formal and Applied Linguistics Wiki


[ Back to the navigation ]

This is an old revision of the document!


Table of Contents

Výsledky

Čeština PDT 2.0

Poslední test proběhl 15.5.2007 s revizí 4. Trénink trval 27 minut, parsing 35 minut.

train.pl -i parser-pdt.ini > pracovni/pdt2.stat
parse.pl -i parser-pdt.ini -m pracovni/pdt2.stat > pracovni/pdt2dtest.dz.csts

A 158962 - G 118984 - B 39978 - P 0.748505932235377.

Stránka Czech Parsing tvrdí, že jsem na d-testu uměl 75 %, ale nevím, která verze parseru to měla být.

Arabština PADT 1.0

Korpus PADT obsahuje celkem 113700 tokenů a 2995 vět (stromů). Průměrná délka věty je 38 tokenů (v češtině je to jen asi 17, tedy méně než polovina!) Není závazně rozdělen na trénovací a testovací data. Obsahuje pouze ruční morfologickou anotaci. Ta je údajně na části korpusu (AFP, UMH a XIN) velmi nekvalitní.

Rozdělil jsem si korpus na trénovací a testovací data. Dat je málo, takže si nenechávám stranou žádný e-test. Každá desátá věta je testovací, tedy: trénink 2696 stromů a 102716 tokenů, test 299 stromů a 10984 tokenů.

Abych mohl otestovat úspěšnost na jiných než ručních značkách, také jsem na korpus pustil jednoduchý tagger. Pro natrénování taggeru jsem vybral soubor mtrain.csts z train.csts tak, že jsem vynechal věty z morfologicky nekvalitních zdrojů AFP, UMH a XIN. Zbylo 1181 vět a 44575 slov. Pro testování taggeru jsem obdobným způsobem vybral mtest.csts z test.csts. Zbylo 131 vět a 4474 slov. Když na mtrainu natrénujeme Hajičův tagger a pustíme ho na mtest, dostaneme úspěšnost 20 % (896/4474) na lemmatech a 87,8 % (3926/4474) na značkách.

Na značkách z Krůzova taggeru

Krůzův tagger má sám o sobě značkovou úspěšnost 80,6 % (G 3606). Neznámá slova dostávají prázdnou značku. Když místo ní dosadíme první značku od morfologického analyzátoru Tima Buckwaltera, dostaneme úspěšnost 86,1 % (G 3852).

Test probíhá 15.5.2007 s revizí parseru č. 4. Trénuje se na značkách z Krůzova taggeru (data/padt/trainmm.kruza.csts).

train.pl -i parser-padt.ini > pracovni/padt.stat
parse.pl -i parser-padt.ini -m pracovni/padt.stat > pracovni/padt.csts

A 10984 - G 6023 - B 4961 - P 0.548343044428259.

Na ručních značkách

V konfiguračním souboru parser-padt.ini se musí změnit cesty ke vstupním datům. Místo /home/zeman/data/padt/trainmm.kruza.csts se trénuje na /home/zeman/data/padt/trainmm.csts. Místo /home/zeman/data/padt/testmm.kruza.bezneznamych.csts se testuje na /home/zeman/data/padt/testmm.csts. Parametr mzdroj0 se musí změnit z “MD” na prázdný řetězec. Parametr mzdroj1 se musí změnit z “kruza” na prázdný řetězec.

train.pl -i parser-padt.ini > pracovni/padt-rucni.stat
parse.pl -i parser-padt.ini -m pracovni/padt-rucni.stat > pracovni/padt-rucni.csts

A 10984 - G 7091 - B 3893 - P 0.645575382374363.

Výsledky CoNLL 2006

Arabština

train.pl < /net/data/CoNLL/2006/arabic/padt/artrain.02.csts
parse.pl < /net/data/CoNLL/2006/arabic/padt/artest.02.csts

G 3086 - B 2287 - P 57,44 %. Ruční značky (jiné nemáme) převedené z CoNLL do PDT. Slova a hesla obsahují za podtržítkem Buckwalterovu transliteraci tak jako v CoNLL. Ta je ovšem převedena na malá písmena, což můj parser dělá i jinde.

Výsledky CoNLL 2007

Viz též Data CoNLL.

Arabština

train.pl < /net/data/conll/2007/arabic/padt/ardtrain.csts
parse.pl < /net/data/conll/2007/arabic/padt/ardtest.csts

G 3591 - P = 61,1 %

Baskičtina

train.pl < /net/data/CoNLL/2007/basque/3lbBasque/eudtrain.csts
parse.pl < /net/data/CoNLL/2007/basque/3lbBasque/eudtest.csts

A 4334 - G 2630 - B 1704 - P 0.606829718504845.

Čeština

Nastavení: stejné jako pro ostatní jazyky, podle výchozího parser.ini. Zvláštní zpracování koordinací je vypnuté. Značky se sice upravují, ale z tvaru CoNLL, v důsledku čehož parser nemá k dispozici informaci o pádu.

train.pl < /net/data/CoNLL/2007/czech/pdt/csdtrain.csts
parse.pl < /net/data/CoNLL/2007/czech/pdt/csdtest.csts

A 5760 - G 3067 - B 2693 - P 0.532465277777778.

Zkouším primitivní model přiřazení syntaktických značek závislostem. Model přiřazuje nejčetnější syntaktickou značku pro danou dvojici morfologických značek rodiče a dítěte. Trénuje se na ručně přiřazených značkách.

atrain.pl < /net/data/conll/2007/czech/pdt/csdtrain.csts > cs.astat

Při nasazení modelu na trénovací (!) data je úspěšnost 85 %: A 451536 - G 385252 - B 66284 - P 0.853203288331384. Překvapivé je, že na testovacích datech to není horší, ale dokonce nepatrně lepší: A 6124 - G 5237 - B 887 - P 0.855160026126715.

Další pokus. Tentokrát pouštím na stromy vypadlé z parseru. První běh stavěl stromy podle návrhů parseru, druhý podle původní ruční anotace. Druhý by tedy měl odpovídat výše naměřenému výsledku na testovacích datech, ale neodpovídá.

12:49 zen:/export/home/zeman/projekty/parser> aclass.pl < csdtest.dz.csts
A 6124 - G 3355 - B 2769 - P 0.547844546048334
12:49 zen:/export/home/zeman/projekty/parser> aclass.pl < csdtest.dz.csts
A 6124 - G 4875 - B 1249 - P 0.796048334421946

Potřebujeme umět skriptu říct pomocí parametrů na příkazovém řádku, podle jaké anotace se má stavět strom, na jehož základě budeme odhadovat syntaktické značky.

Potřebujeme umět skriptu předat cestu k modelu, podle kterého má syntaktické značky odhadovat.

Potřebujeme umět skriptu říct, že místo testování úspěšnosti chceme vypsat CSTS s přidanými syntaktickými značkami.

Čínština

train.pl < /net/data/CoNLL/2007/chinese/sinica/zhdtrain.csts
parse.pl < /net/data/CoNLL/2007/chinese/sinica/zhdtest.csts

A 2277 - G 1513 - B 764 - P 0.664470794905577.

Italština

train.pl < /net/data/CoNLL/2007/italian/isst/itdtrain.csts
parse.pl < /net/data/CoNLL/2007/italian/isst/itdtest.csts

A 7643 - G 4866 - B 2777 - P 0.63666099699071.

Katalánština

train.pl < /net/data/CoNLL/2007/catalan/cess-cat/cadtrain.csts
parse.pl < /net/data/CoNLL/2007/catalan/cess-cat/cadtest.csts

A 10971 - G 6768 - B 4203 - P 0.616899097621001.

Maďarština

train.pl < /net/data/CoNLL/2007/hungarian/szeged/hudtrain.csts
parse.pl < /net/data/CoNLL/2007/hungarian/szeged/hudtest.csts

A 5995 - G 3164 - B 2831 - P 0.527773144286906.

Řečtina

train.pl < /net/data/CoNLL/2007/greek/gdt/eldtrain.csts
parse.pl < /net/data/CoNLL/2007/greek/gdt/eldtest.csts

A 4874 - G 3122 - B 1752 - P 0.640541649569142.

Turečtina

train.pl < /net/data/CoNLL/2007/turkish/metu/trdtrain.csts
parse.pl < /net/data/CoNLL/2007/turkish/metu/trdtest.csts

A 6210 - G 4037 - B 2173 - P 0.650080515297907.

Atanas Čanev, jaro 2006

Atanas se mi ozval, že zkouší použít DZ Parser na italský TUT (Turin University Treebank) a na pár dalších (BulTreeBank, Slovene Dependency Treebank). Úspěšnost nebyla nic moc a měl nějaké problémy s nastavením. Na poslední mail z 13.4.2006 jsem mu téměř 2 roky neodpověděl.

Pokusy s TUT mám na nilu jako samostatný projekt ve složce projekty\tut. Na zenu tenhle projekt nemám, tam mám jen projekty/parser. Dnes (19.2.2008) ho tam kopíruji, ale cílem je sloučit ho se složkou parser a data odstěhovat do příslušných složek na data.

Následující příkazy nefungují, protože DZ Parser zatím není možné spustit z jiné složky, než ve které se nachází. Perl nenajde knihovny .pm.

cd /home/zeman/projekty/tut
../parser/train.pl -i parser-tut.ini < tut.dz.csts
../parser/parse.pl -i parser-tut.ini < test.dz.csts

Chtělo by to přidat nějakou inicializaci (BEGIN), která zařídí, že skript se dívá po knihovnách ve složce, ve které sám leží, aniž by tato složka musela být aktuální.

BEGIN {my $path = `dirname $0`; $path =~ s/\r?\n$//; unshift(@INC, $path) unless(grep {$_ eq $path} @INC)}

Přidal jsem výše uvedený řádek do train.pl a funguje to. Měl bych totéž přidat ještě do parse.pl a všechno uložit do SVN.

Dále se zdá, že současná verze parseru nepřečte treebank, který není v UTF-8, ale v ISO 8859-1 (italština). Jakmile narazí na ne-ASCII znak, vyhodnotí ho jako začátek poškozeného znaku UTF-8, ohlásí chybu a skončí. Pro tuto chvíli to řeším tím, že převádím Turínský treebank do UTF-8. Je to divné, protože na první pohled treebank vůbec neobsahuje ne-ASCII znaky. Italské samohlásky s accentem grave se tu totiž objevují jako ASCII samohlásky následované apostrofem.


[ Back to the navigation ] [ Back to the content ]