Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
user:zeman:dz-parser:icon [2009/11/19 15:49] zeman Inventura seznamu věcí k udělání. |
user:zeman:dz-parser:icon [2012/12/11 12:37] (current) zeman training-k:5 |
||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ====== Hindi Parsing Shared Task at COLING 2012 Mumbaī ====== | ||
+ | |||
+ | http:// | ||
+ | |||
+ | ===== Udělat ===== | ||
+ | |||
+ | * Natrénovat McDonaldův MST parser. Pokud možno s pořádnými rysy, neprojektivně a druhý řád. Ale na druhou stranu, aby to taky někdy doběhlo. | ||
+ | * Zkusit jinou kombinaci rysů ze sloupce FEAT. A zkusit ponechat všechny rysy (žádná redukce). | ||
+ | * Natrénovat Malt parser a mezi rysy mu přidat hypotézu od MST (parser MST-Malt podle Joakimova a Ryanova článku). | ||
+ | * To znamená, že musím vybrat nejlepší parametry trénování MST, rozdělit trénovací data na 10 dílů, opakovaně natrénovat MST na devíti dílech a pustit ho na ten desátý. Pak musím rozhodnout, jakým způsobem se názor MST předloží Maltu. Musí to být rys položky na vstupu nebo na zásobníku. Asi nejjednodušší by bylo zavést rys, který pro každé slovo řekne značku jeho rodiče. V mnoha větách to bude ukazovat na více než jedno slovo, ale někde to snad pomůže. A pokud místo značky dáme slovo, mohla by být příliš řídká data. (Můžeme ale zavést dva rysy a dát tam obojí.) Index rodiče je jako rys k ničemu, protože hodnota má v každé větě jiný význam. Nejlepší by zřejmě bylo, kdybychom dokázali posuzovat dvě položky najednou (např. dvě horní položky v zásobníku) a říct, zda si MST parser myslí, že mezi nimi vede hrana. Ale to zase neumím popsat a je otázka, jestli to vůbec umí Malt parser, resp. ten jeho SVM rádce. | ||
+ | * Zkontrolovat normalizaci UTF-8 (dévanágarí). | ||
+ | * Natrénovat samostatný značkovač syntaktických značek. Ambati et al.: MST labeler je blbej, použili maxent (http...lzhang, | ||
+ | * Potřebuju nějaké vyhledávadlo a zvýrazňovadlo chyb. | ||
+ | * Opravit normalizaci pro HamleDT. Normalizace hindštiny prý dělá na nových datech mnohem více chyb (uzel pod Coord nemá is_member apod.) Mohly by mi pomoct Martinovy transformace koordinací? | ||
+ | |||
+ | HTB verze 0,51: train 12041 sent, 268093 tok? (words), dev 1233 / 26416 | ||
+ | |||
+ | **MST parser:** V& | ||
+ | |||
+ | Vyhodnotit samostatně | ||
+ | * LAS vs. UAS | ||
+ | * uvnitř chunku vs. mezi chunky | ||
+ | * pro jednotlivé s-značky | ||
+ | |||
+ | ===== Výsledky ===== | ||
+ | |||
+ | ==== Různé redukce značek ==== | ||
+ | |||
+ | Je vhodné využívat formát dat CoNLL, který je i pro MST parser nyní výchozí. Při konverzi do původního formátu MST je nutné rozhodnout, co prohlásíme za morfologickou značku. Pokud nechceme zbytek informace zahodit, tak máme značky velmi dlouhé a neumožňujeme parseru vybrat si, jaká jejich část ho zajímá nejvíc. Naproti tomu ve formátu CoNLL bere MST parser 0.4.3b v úvahu všechny morfologické sloupce (CPOS, POS i FEAT), jak vyplývá z následujících pokusů. Zatím jsem nezkoumal, zda je schopen rozložit obsah sloupce FEAT na samostatné rysy. A nikdy jsem mu nedal kompletní rysy, vždy jsem je omezil buď na vibhakti + tam, nebo jsem je úplně vymazal. | ||
+ | |||
+ | Zlatý standard morfologie, trénování na 1000 větách, neprojektivní MST parser 2. řádu. Střídavě jsem redukoval nebo mazal (nahrazoval podtržítkem) hodnoty v různých sloupcích. Parser na všechny tyto změny reagoval a pokaždé dosáhl jiné úspěšnosti. To znamená, že všechny tyto sloupce bere při trénování v úvahu. | ||
+ | |||
+ | ^ CPOS ^ POS ^ FEAT ^ UAS ^ LA ^ LAS ^ Model ^ Rysů ^ Čas učení ^ | ||
+ | | ano | ano | vibhakti + tam | 91.78 | 79.76 | 77.73 | 131 MB 9.12.2012 23:31:04 | 2 334 346 | 11 min | | ||
+ | | ano | ano | ne | 88.47 | 77.52 | 75.55 | 56 MB 9.12.2012 23:32:15 | 1 130 847 | 12 min | | ||
+ | | ano | ne | vibhakti + tam | 90.47 | 68.65 | 66.64 | 128 MB 10.12.2012 9:10:05 | 2 246 768 | 11 min | | ||
+ | | ne | ano | vibhakti + tam | 88.11 | 77.83 | 74.62 | 127 MB 10.12.2012 9:13:08 | 2 234 096 | 14 min | | ||
+ | |||
+ | ==== training-k ==== | ||
+ | |||
+ | Ambati et al. použili 2. řád a training-k: | ||
+ | |||
====== ICON 2009 NLP Tools Contest ====== | ====== ICON 2009 NLP Tools Contest ====== | ||
Line 5: | Line 47: | ||
===== Zbývá udělat ===== | ===== Zbývá udělat ===== | ||
- | * Vybrat SVN repozitář, do kterého tyto pokusy | + | * Upravit makefile tak, abych mohl pouštět |
- | * Více si pohrát s konfigurací | + | * Upravit makefile a/nebo skripty pro pouštění |
* Více si pohrát s rysy. Naučit se parserům předhazovat rysy. U Malt parseru je to dobře zdokumentováno, | * Více si pohrát s rysy. Naučit se parserům předhazovat rysy. U Malt parseru je to dobře zdokumentováno, | ||
* Přidat jako rys chunk label, a to i pro DZ Parser. | * Přidat jako rys chunk label, a to i pro DZ Parser. | ||
Line 13: | Line 55: | ||
* Vyzkoušet neprojektivní parsing MST parserem. | * Vyzkoušet neprojektivní parsing MST parserem. | ||
* Zjistit, proč je tolik chyb v syntaktickém značkování, | * Zjistit, proč je tolik chyb v syntaktickém značkování, | ||
+ | * Více si pohrát s konfigurací Malt parseru. 7 algoritmů už jsem vyzkoušel, ale některé z& | ||
* Vyhodnotit křivku učení. | * Vyhodnotit křivku učení. | ||
* Vyhodnotit požadavky na procesor, paměť a disk (je třeba nejdříve rozchodit skript). | * Vyhodnotit požadavky na procesor, paměť a disk (je třeba nejdříve rozchodit skript). | ||
* Frekvenční slovníky, abych si trochu udělal představu o častých slovech, případně o jejich syntaktických zvláštnostech. | * Frekvenční slovníky, abych si trochu udělal představu o častých slovech, případně o jejich syntaktických zvláštnostech. | ||
* Průzkum dat: jak dlouhé jsou věty? Indové v dokumentaci nějaká čísla uvádějí, ale tam se slova počítají včetně záložek a možná i včetně interpunkce, | * Průzkum dat: jak dlouhé jsou věty? Indové v dokumentaci nějaká čísla uvádějí, ale tam se slova počítají včetně záložek a možná i včetně interpunkce, | ||
+ | * Neučit se na hindštině a bengálštině dohromady? Jsou to přece podobné jazyky a data by se významně zvětšila! | ||
===== Průzkum dat ===== | ===== Průzkum dat ===== | ||
Line 41: | Line 85: | ||
| bn | 39.52 | 44.14 | | | bn | 39.52 | 44.14 | | ||
| te | 73.75 | 76.89 | | | te | 73.75 | 76.89 | | ||
+ | |||
+ | ==== Nová data pro druhé kolo ==== | ||
+ | |||
+ | Pro druhé vyhodnocení pořadatelé připravili upravená data "with courser tags". Ukázalo se, že nejde o lepší informaci na morfologické rovině, která by případně mohla parsing usnadnit. Jde o syntaktické značky, které má parser produkovat spolu se závislostní strukturou. Otázka je, jestli jsou nové značky jednodušší, | ||
===== Analýza chyb ===== | ===== Analýza chyb ===== | ||
Line 217: | Line 265: | ||
Unlabeled attachment score: 947 / 1250 * 100 = 75.76 % | Unlabeled attachment score: 947 / 1250 * 100 = 75.76 % | ||
Label accuracy score: | Label accuracy score: | ||
+ | |||
+ | ===== Parsovací algoritmy Malt parseru ===== | ||
+ | |||
+ | Zatím jsem neměnil root handling u Nivreho algoritmů (-r strict|relaxed|normal) a allow shift/root u Covingtona (-cs, -cr). Tohle jsou nejlepší hodnoty, kterých jsem dosáhl. Na každém jazyku vyhrál jiný algoritmus. Na hindštině Malt parser opět překonal MST, takže bude potřeba upravit váhy při hlasování. Současný výsledek Malt parseru je lepší než dosud nejlepší výsledek dosažený hlasováním! | ||
+ | |||
+ | hi 87.60 stacklazy | ||
+ | bn 85.57 covproj | ||
+ | te 81.04 stackeager | ||
+ | |||
+ | ==== nivrestandard ==== | ||
+ | |||
+ | Hindština i bengálština vyšla zřetelně lépe než nivreeager, telugština si lehce pohoršila. | ||
+ | |||
+ | Thu Nov 19 18:41:43 CET 2009 | ||
+ | / | ||
+ | Labeled | ||
+ | Unlabeled attachment score: 1082 / 1250 * 100 = 86.56 % | ||
+ | Label accuracy score: | ||
+ | Thu Nov 19 18:41:45 CET 2009 | ||
+ | / | ||
+ | Labeled | ||
+ | Unlabeled attachment score: 693 / 811 * 100 = 85.45 % | ||
+ | Label accuracy score: | ||
+ | Thu Nov 19 18:41:46 CET 2009 | ||
+ | / | ||
+ | Labeled | ||
+ | Unlabeled attachment score: 541 / 675 * 100 = 80.15 % | ||
+ | Label accuracy score: | ||
+ | |||
+ | ==== covproj ==== | ||
+ | |||
+ | Bengálština ještě trochu lepší, možná nesignifikantně. Ostatní ne. | ||
+ | |||
+ | Thu Nov 19 19:47:14 CET 2009 | ||
+ | / | ||
+ | Labeled | ||
+ | Unlabeled attachment score: 1079 / 1250 * 100 = 86.32 % | ||
+ | Label accuracy score: | ||
+ | Thu Nov 19 19:47:15 CET 2009 | ||
+ | / | ||
+ | Labeled | ||
+ | Unlabeled attachment score: 694 / 811 * 100 = 85.57 % | ||
+ | Label accuracy score: | ||
+ | Thu Nov 19 19:47:15 CET 2009 | ||
+ | / | ||
+ | Labeled | ||
+ | Unlabeled attachment score: 542 / 675 * 100 = 80.30 % | ||
+ | Label accuracy score: | ||
+ | |||
+ | ==== covnonproj ==== | ||
+ | |||
+ | Zlepšila se hindština. Bengálština se zhoršila, telugština zůstala. | ||
+ | |||
+ | Thu Nov 19 21:21:46 CET 2009 | ||
+ | / | ||
+ | Labeled | ||
+ | Unlabeled attachment score: 1087 / 1250 * 100 = 86.96 % | ||
+ | Label accuracy score: | ||
+ | Thu Nov 19 21:21:46 CET 2009 | ||
+ | / | ||
+ | Labeled | ||
+ | Unlabeled attachment score: 682 / 811 * 100 = 84.09 % | ||
+ | Label accuracy score: | ||
+ | Thu Nov 19 21:21:47 CET 2009 | ||
+ | / | ||
+ | Labeled | ||
+ | Unlabeled attachment score: 542 / 675 * 100 = 80.30 % | ||
+ | Label accuracy score: | ||
+ | |||
+ | ==== stackproj ==== | ||
+ | |||
+ | Není nejhorší, ale taky v ničem nejlepší. | ||
+ | |||
+ | Thu Nov 19 21:29:06 CET 2009 | ||
+ | / | ||
+ | Labeled | ||
+ | Unlabeled attachment score: 1082 / 1250 * 100 = 86.56 % | ||
+ | Label accuracy score: | ||
+ | Thu Nov 19 21:29:06 CET 2009 | ||
+ | / | ||
+ | Labeled | ||
+ | Unlabeled attachment score: 690 / 811 * 100 = 85.08 % | ||
+ | Label accuracy score: | ||
+ | Thu Nov 19 21:29:07 CET 2009 | ||
+ | / | ||
+ | Labeled | ||
+ | Unlabeled attachment score: 546 / 675 * 100 = 80.89 % | ||
+ | Label accuracy score: | ||
+ | |||
+ | ==== stackeager ==== | ||
+ | |||
+ | Přestože umožňuje neprojektivity, | ||
+ | Zato se vytáhla telugština, | ||
+ | |||
+ | Thu Nov 19 21:44:15 CET 2009 | ||
+ | / | ||
+ | Labeled | ||
+ | Unlabeled attachment score: 1022 / 1250 * 100 = 81.76 % | ||
+ | Label accuracy score: | ||
+ | Thu Nov 19 21:44:16 CET 2009 | ||
+ | / | ||
+ | Labeled | ||
+ | Unlabeled attachment score: 680 / 811 * 100 = 83.85 % | ||
+ | Label accuracy score: | ||
+ | Thu Nov 19 21:44:17 CET 2009 | ||
+ | / | ||
+ | Labeled | ||
+ | Unlabeled attachment score: 547 / 675 * 100 = 81.04 % | ||
+ | Label accuracy score: | ||
+ | |||
+ | ==== stacklazy ==== | ||
+ | |||
+ | Na hindštině je to maximum, ostatní se zhoršily. | ||
+ | |||
+ | Thu Nov 19 21:52:53 CET 2009 | ||
+ | / | ||
+ | Labeled | ||
+ | Unlabeled attachment score: 1095 / 1250 * 100 = 87.60 % | ||
+ | Label accuracy score: | ||
+ | Thu Nov 19 21:52:54 CET 2009 | ||
+ | / | ||
+ | Labeled | ||
+ | Unlabeled attachment score: 687 / 811 * 100 = 84.71 % | ||
+ | Label accuracy score: | ||
+ | Thu Nov 19 21:52:55 CET 2009 | ||
+ | / | ||
+ | Labeled | ||
+ | Unlabeled attachment score: 544 / 675 * 100 = 80.59 % | ||
+ | Label accuracy score: | ||