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/10/21 21:23] zeman Jak dlouhé jsou věty? |
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 ===== | ||
- | * Napsat | + | * Upravit makefile tak, abych mohl pouštět pokusy současně se starými i novými daty. A aby se váhy hlasování automaticky upravovaly podle aktuální úspěšnosti dílčích parserů. |
- | * Rozchodit podporu clusteru v makefilech, abych nemusel MST parser pouštět ručně zvlášť. | + | * Upravit makefile a/nebo skripty pro pouštění Malt parseru tak, aby Malt pro každý jazyk zvolil nejvhodnější algoritmus. |
+ | * 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. | ||
+ | * Naivní parser pro telugštinu: | ||
+ | * Rozchodit podporu clusteru v makefilech, abych nemusel MST parser pouštět ručně zvlášť | ||
* Vyzkoušet neprojektivní parsing MST parserem. | * Vyzkoušet neprojektivní parsing MST parserem. | ||
- | * Zjistit, jaká je úspěšnost naivního parseru, který pověsí poslední uzel na kořen a všechny předcházející uzly na poslední. Přinejmenším v& | ||
* Zjistit, proč je tolik chyb v syntaktickém značkování, | * Zjistit, proč je tolik chyb v syntaktickém značkování, | ||
- | * Vybrat SVN repozitář, | + | * Více si pohrát s konfigurací Malt parseru. 7 algoritmů už jsem vyzkoušel, ale některé |
* 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). | ||
- | * Více si pohrát s rysy. | ||
- | * Více si pohrát s konfigurací Malt parseru. | ||
* 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. | ||
- | * Konverze z& | ||
* 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 25: | Line 68: | ||
Následující statistiky pocházejí ze souborů pro dtrénink s automatickou morfologií: | Následující statistiky pocházejí ze souborů pro dtrénink s automatickou morfologií: | ||
- | | Jazyk | Výskytů slov | Tvarů | Lemmat | ChunkPOS | POS+case+postpos | FEATS | | + | | Jazyk | Výskytů slov | Tvarů | Lemmat | ChunkPOS |
- | | hindština | 13779 | 3973 | 3134 | 10 | 297 | 714 | | + | | hindština | 13779 | 3973 | 3134 | 10 | 33 | 297 | 714 | |
- | | bengálština | 6449 | 2997 | 2336 | 14 | 398 | 367 | | + | | bengálština | 6449 | 2997 | 2336 | 14 | 30 | 398 | 367 | |
- | | telugština | 5494 | 2462 | 1403 | 12 | 409 | 453 | | + | | telugština | 5494 | 2462 | 1403 | 12 | 31 | 409 | 453 | |
+ | |||
+ | Statistiky v& | ||
+ | |||
+ | <code bash> | ||
+ | |||
+ | ==== Naivní telugu ==== | ||
+ | |||
+ | V& | ||
+ | |||
+ | | Jazyk | dtrain | dtest | | ||
+ | | hi | 35.71 | 34.64 | | ||
+ | | bn | 39.52 | 44.14 | | ||
+ | | 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 ===== | ||
Takhle se z morfologických indických dat vyrobí soubor pro Tred, který obsahuje indické písmo místo WX: | Takhle se z morfologických indických dat vyrobí soubor pro Tred, který obsahuje indické písmo místo WX: | ||
< | < | ||
+ | |||
+ | Důležitou součástí výše uvedeného příkazu je perlový kód, který maže tabulátory ze značek, jinak se na výsledek nedá v& | ||
+ | |||
+ | < | ||
+ | |||
+ | A takhle spojíme vzorovou anotaci s& | ||
+ | |||
+ | < | ||
+ | |||
+ | Tady je ještě jedna alternativa (pozor, tohle je pro změnu okopírováno z& | ||
+ | |||
+ | < | ||
+ | ts and Settings\Dan\Dokumenty\Lingvistika\Projekty\padapt\parsingroot\tools" | ||
+ | C: | ||
+ | -l te -t sci -g te/ | ||
+ | est.voted.1.fs</ | ||
+ | |||
+ | Není pravda, že ze značky POS jednoznačně vyplývá značka chunku. Proto bych měl parserům poskytnout obě značky, může jim to pomoct. Např. v& | ||
+ | |||
+ | V& | ||
+ | |||
+ | Přinejmenším častá slova by měla být pro parsery viditelná jako samostatný rys uzlu. Např. hindské " | ||
+ | |||
+ | Úspěšnost přes 85& | ||
+ | |||
+ | Příklad problému s& | ||
+ | |||
+ | Je potřeba přinejmenším Malt parseru, ale pokud to jde, tak i MST parseru předhodit podrobnější rysy, aby parser mohl pracovat zvlášť např. s& | ||
+ | |||
+ | ===== Výsledky ===== | ||
První výsledky DZ Parseru na vývojových datech: | První výsledky DZ Parseru na vývojových datech: | ||
Line 131: | Line 223: | ||
Otázka je, jestli by si lépe vedly i Malt parser a MST parser, ale to vyzkouším až později. | Otázka je, jestli by si lépe vedly i Malt parser a MST parser, ale to vyzkouším až později. | ||
Pozoruhodné je, že zhoršený DZ Parser zlepšuje výsledek hlasování, | Pozoruhodné je, že zhoršený DZ Parser zlepšuje výsledek hlasování, | ||
+ | |||
+ | Nové váhy parserů při hlasování (20.10.2009 13:26, DZ parser teď na všechno používá pád a záložku, Malt parser používá POSTAG s pádem a záložkou pro hindštinu, jinde používá CPOSTAG, MST Parser používá všude POSTAG s pádem a záložkou): | ||
+ | |||
+ | unlabeled MST:MALT:DZ | ||
+ | hi 8616: | ||
+ | bn 8570: | ||
+ | te 7985: | ||
+ | |||
+ | labels MST:MALT:DZ | ||
+ | hi 6816: | ||
+ | bn 6967: | ||
+ | te 5526: | ||
+ | |||
+ | ===== Neprojektivity ===== | ||
21:57 lrc-two:/ | 21:57 lrc-two:/ | ||
Line 160: | Line 266: | ||
Label accuracy score: | Label accuracy score: | ||
- | Nové váhy parserů při hlasování (20.10.2009 13:26, DZ parser teď na všechno používá pád a záložku, | + | ===== Parsovací algoritmy |
- | unlabeled | + | 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 |
- | hi 8616: | + | |
- | bn 8570: | + | |
- | te 7985: | + | |
- | labels MST:MALT:DZ | + | hi 87.60 stacklazy |
- | hi 6816:6704:5960 | + | bn 85.57 covproj |
- | bn 6967:6215:5314 | + | te 81.04 stackeager |
- | te 5526:4904:4400 | + | |
+ | ==== 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: 336 / 675 * 100 = 49.78 % | ||