Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
user:zeman:malt-parser [2009/12/07 17:31] zeman Poznámky 1.3 2009. |
user:zeman:malt-parser [2010/03/29 15:53] zeman Evidence nových procesů, jejichž cílem je zjistit, proč trénování libsvm padá. |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== Malt parser ====== | ====== Malt parser ====== | ||
- | Toto je rychlý úvod do práce s Malt parserem. | + | http:// |
- | 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ů | + | Rychlý úvod do práce s Malt parserem, který tu dřív byl, už neplatí, protože se týkal starého Malt parseru 0.4 (céčková implementace). Nyní už máme 1.3 (javová implementace). Až se to usadí, budou k ní spouštěcí skripty |
- | < | + | ===== Pokusy s PDT 2.0 ===== |
- | setenv CONLL / | + | |
- | cd $MALT | + | |
- | $PARSINGROOT/ | + | |
- | $PARSINGROOT/ | + | |
- | $PARSINGROOT/ | + | |
- | 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 '' | + | Malt 1.3. Podle Joakima trénování na celém PDT trvá 3 až 5 dní, a to ještě jen při použití splitting triku (bez něj několik týdnů). Trénování SVM má kvadratickou složitost vzhledem k& |
- | < | + | Trénování bez " |
- | Výchozí volby lze načíst ze souboru options.dat. I při trénování | + | | Algoritmus | Délka |
+ | | nivreeager | 24 dní 17 hodin 13 minut (2135575 s) | 180062 s (50:01 hodin) | 1 věta / 19,4 s | 80,73 % | | ||
+ | | nivrestandard | 32 dní 16 hodin 47 minut (2825227 | ||
+ | | covproj | 60 dní 15 hodin 28 minut (5239706 s) | 348001 s (96:40 hodin) | 1 věta / 37,5 s | 79,69 % | | ||
+ | | covnonproj | Skončilo restartem fireball6 někdy v lednu nebo únoru 2010. V ''/ | ||
+ | | stackproj | 42 dní 12 hodin 55 minut (3675303 s) | 183676 s (51:01 hodin) | 1 věta / 19,8 s | 78,49 % | | ||
+ | | stacklazy | Skončilo chybou Java VM ('' | ||
+ | | stackeager | 39 dní 11 hodin 38 minut (3375472 s) | 227927 s (63:19 hodin) | 1 věta / 24,6 s | 82,93 % | | ||
- | < | + | Trénování na části trénovacích |
- | Trénování nad 11000 švédskými | + | | N | Délka trénování | Délka parsingu | Rychlost parsingu | Úspěšnost | |
+ | | 1000 | 5 minut | 1 hodina | 2,5 věty / s | 71,49 % | | ||
+ | | 2000 | 24 minut | 5522 s (1,5 hodiny) | 1,7 věty / s | 75,02 % | | ||
+ | | 5000 | 4 hod 40 min | 9914 s (2 3/4 hod) | 0,9 věty / s | 77,72 % | | ||
+ | | 10000 | 22 hod 05 min | 21865 s (6 hodin) | 0,4 věty / s | 79,28 % | | ||
+ | | 20000 | 53 hod 33 min | 47822 s (13 1/4 hodin) | 1 věta / 5,2 s | 80,71 % | | ||
+ | | 50000 | 19 dní 1 hod 27 min | 76428 s (21 1/4 hodin) | 1 věta / 8,2 s | 82,76 % | | ||
+ | | 68563 | Skončilo restartem sol5 po 36 dnech. V ''/ | ||
- | 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í. | + | Podívat se na LEMMA místo FORM? |
- | < | + | ==== Výpočetní náročnost ==== |
- | $PARSINGROOT/ | + | |
- | ===== Pokusy | + | Na jakých strojích to běží (LRC): |
+ | (poznámky typu "ale proces zabírá jen" se týkají prosincových trénování se splitting trickem a s Danovým nastavením). | ||
- | Malt 1.3. Podle Joakima trénování | + | === orion7 === |
+ | procesor 64bit Intel Xeon 2 GHz | ||
+ | paměť 32 GB, ale proces zabírá jen 2,2 GB | ||
+ | Je to náročné na diskové operace? | ||
+ | |||
+ | === sol5 === | ||
+ | procesor 64bit dual core AMD Opteron 2 GHz | ||
+ | paměť 16 GB, ale proces zabírá jen 4,1 GB | ||
+ | |||
+ | ==== Nastavení od Švédů ==== | ||
+ | |||
+ | 26.3.2010 po měsíci další pokus pustit to na datech upravených stejným způsobem | ||
+ | |||
+ | 28.3.2010: Zjistil jsem, že při převodu dat do formátu, který měl být shodný s Marcovým, jsem omylem vypustil všechna zalomení vět, tj. soubor obsahoval jednu větu o 16001 slovech, navíc nejednoznačně číslovaných. Tak to už se ani nedivím, že to parseru nedělalo dobře. | ||
+ | |||
+ | < | ||
+ | $PARSINGROOT/ | ||
+ | end | ||
+ | foreach i (dtrain dtest) | ||
+ | $PARSINGROOT/ | ||
+ | end | ||
+ | foreach i (25000 30000 35000 40000 45000 55000 60000 65000) | ||
+ | split_conll.pl < dtrain.conll2009tags.conll -head $i dtrain-$i.conll2009tags.conll /dev/null | ||
+ | end</ | ||
+ | |||
+ | Učení: | ||
+ | |||
+ | < | ||
+ | |||
+ | Rozbor: | ||
+ | |||
+ | < | ||
+ | |||
+ | Vyhodnocení: | ||
+ | |||
+ | < | ||
Trénování na části trénovacích dat (prvních N vět). Testování je vždy na celém dtestu, tedy 9270 vět. | Trénování na části trénovacích dat (prvních N vět). Testování je vždy na celém dtestu, tedy 9270 vět. | ||
| N | Délka trénování | Délka parsingu | Rychlost parsingu | Úspěšnost | | | N | Délka trénování | Délka parsingu | Rychlost parsingu | Úspěšnost | | ||
- | | 1000 | 5 minut | 1 hodina | + | | 1000 | 1 minuta | 1248 s = 20:48 min | 1 věta / 0,13 s | 74,63 % | |
- | | 2000 | 24 minut | 5522 s (1,5 hodiny) | + | | 2000 | 4 minuty | 1885 s = 31:25 min | 1 věta / 0,20 s | 77,73 % | |
- | | 5000 | 4 hod 40 min | 9914 s (2 3/4 hod) | 0,9 věty / s | 77,72 % | | + | | 5000 | 30 minut | 5534 s = 1:32 hod | 1 věta / 0,60 s | 80,18 % | |
+ | | 10000 | 1:30 hod | 7171 s = 2:00 hod | 1 věta / 0,77 s | 82,11 % | | ||
+ | | 20000 | 10:09 hod | 17139 s = 4:45 hod | 1 věta / 1,85 s | 83,65 % | | ||
+ | | 25000 | (984089) | | | | | ||
+ | | 30000 | (984090) | | | | | ||
+ | | 35000 | (984091) | | | | | ||
+ | | 40000 | 984092 spadlo na sdm0.003.libsvm.mod | | | | | ||
+ | | 45000 | (984093) | | | | | ||
+ | | 50000 | (984030) | | | | | ||
+ | | 55000 | (984094) | | | | | ||
+ | | 60000 | 984095 spadlo na sdm0.004.libsvm.mod | | | | | ||
+ | | 65000 | (984096) | | | | | ||
+ | | 68563 | Dva pokusy, oba spadly při vytváření '' | ||
- | Podívat se na LEMMA místo FORM? | + | ==== Co dál? ==== |
+ | * Stáhnout céčkovou verzi '' | ||
+ | * Zkusit '' | ||
+ | * Jestli nakonec nějak prorazím, bude potřeba opět učesat obalovací skripty. Mj. jsem přišel na to, že ve většině svých skriptů používám jako dočasný adresář ''/ |