[ Skip to the content ]

Institute of Formal and Applied Linguistics Wiki


[ Back to the navigation ]

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

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://ltrc.iiit.ac.in/mtpil2012/
 +
 +===== 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, viz článek). A říkají tam, které rysy a uzly stromu od parseru zkoumali.
 +  * 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 TectoMT share mají verzi 0.4.3b z října 2009 (''$TMT_ROOT/share/installed_tools/parser/mst/0.4.3b''). Já možná mám nebo jsem měl v ''~/nastroje/parsery'' totéž, ale soubor README se tváří, že by to měla být verze 0.5.0. Na [[http://sourceforge.net/projects/mstparser/|Sourceforge]] se tváří, že poslední aktualizace byla 23.1.2012 a verze se stále jmenuje 0.5.0. Resp. možná se tak jmenuje až tahle letošní, protože předcházející aktivita byla 6.5.2011, a to byla zveřejněna verze 0.4.3c. (A verze 0.4.3b ve skutečnosti podle Sourceforge pochází už z 4.4.2007.)
 +
 +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:5. Zkoušel jsem porovnat training-k:5 a výchozí nastavení (neřeknu nic, čili podle souboru README platí training-k:1). Výstup na dtestu se nelišil ani v jediné závislosti. Parametr training-k jsem ovšem předával pouze při učení, předpokládám, že při použití modelu to nemá smysl. Možná by to chtělo ještě prozkoumat trochu pečlivěji, než to úplně vyhodím.
 +
 ====== 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 budu archivovat, vybrat soubory, které tam patří (Makefile, specifické skripty, vstupní data, soubory s vyhodnocením...) a dát je tam+  * Upravit makefile takabych mohl pouštět pokusy současně se starými i novými datyA aby se váhy hlasování automaticky upravovaly podle aktuální úspěšnosti dílčích parserů
-  * Více si pohrát s konfigurací Malt parseru. Zejména vyzkoušet všech 7 algoritmů.+  * 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, u MST ne.   * Více si pohrát s rysy. Naučit se parserům předhazovat rysy. U Malt parseru je to dobře zdokumentováno, u MST ne.
   * 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í, a vylepšit ho. Třeba pomocí nějakého toolkitu pro strojové učení (Mallet apod.) Uvědomit si, že na jednom slovesu zřejmě nemohou viset dvě káčka se stejnými čísly (karma-karta). Taky že většina sloves asi vyžaduje k1.   * Zjistit, proč je tolik chyb v syntaktickém značkování, a vylepšit ho. Třeba pomocí nějakého toolkitu pro strojové učení (Mallet apod.) Uvědomit si, že na jednom slovesu zřejmě nemohou viset dvě káčka se stejnými čísly (karma-karta). Taky že většina sloves asi vyžaduje k1.
 +  * Více si pohrát s konfigurací Malt parseru. 7 algoritmů už jsem vyzkoušel, ale některé z nich mají ještě další parametry (práce s kořenem apod.), které jsem neměnil.
   * 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, takže neodpovídají počtu uzlů, které vidím v treebanku.   * 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, takže neodpovídají počtu uzlů, které vidím v treebanku.
 +  * 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šší, nebo složitější než ty staré, ale každopádně by měly ovlivnit výhradně značkovanou úspěšnost.
  
 ===== 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:       685 / 1250 * 100 = 54.80 %   Label accuracy score:       685 / 1250 * 100 = 54.80 %
 +
 +===== 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
 +/net/work/people/zeman/icon-parsing/work/hi/dtest.malt.eval.txt
 +  Labeled   attachment score: 812 / 1250 * 100 = 64.96 %
 +  Unlabeled attachment score: 1082 / 1250 * 100 = 86.56 %
 +  Label accuracy score:       847 / 1250 * 100 = 67.76 %
 +Thu Nov 19 18:41:45 CET 2009
 +/net/work/people/zeman/icon-parsing/work/bn/dtest.malt.eval.txt
 +  Labeled   attachment score: 491 / 811 * 100 = 60.54 %
 +  Unlabeled attachment score: 693 / 811 * 100 = 85.45 %
 +  Label accuracy score:       509 / 811 * 100 = 62.76 %
 +Thu Nov 19 18:41:46 CET 2009
 +/net/work/people/zeman/icon-parsing/work/te/dtest.malt.eval.txt
 +  Labeled   attachment score: 304 / 675 * 100 = 45.04 %
 +  Unlabeled attachment score: 541 / 675 * 100 = 80.15 %
 +  Label accuracy score:       339 / 675 * 100 = 50.22 %
 +
 +==== covproj ====
 +
 +Bengálština ještě trochu lepší, možná nesignifikantně. Ostatní ne.
 +
 +Thu Nov 19 19:47:14 CET 2009
 +/net/work/people/zeman/icon-parsing/work/hi/dtest.malt.eval.txt
 +  Labeled   attachment score: 801 / 1250 * 100 = 64.08 %
 +  Unlabeled attachment score: 1079 / 1250 * 100 = 86.32 %
 +  Label accuracy score:       836 / 1250 * 100 = 66.88 %
 +Thu Nov 19 19:47:15 CET 2009
 +/net/work/people/zeman/icon-parsing/work/bn/dtest.malt.eval.txt
 +  Labeled   attachment score: 500 / 811 * 100 = 61.65 %
 +  Unlabeled attachment score: 694 / 811 * 100 = 85.57 %
 +  Label accuracy score:       516 / 811 * 100 = 63.63 %
 +Thu Nov 19 19:47:15 CET 2009
 +/net/work/people/zeman/icon-parsing/work/te/dtest.malt.eval.txt
 +  Labeled   attachment score: 303 / 675 * 100 = 44.89 %
 +  Unlabeled attachment score: 542 / 675 * 100 = 80.30 %
 +  Label accuracy score:       330 / 675 * 100 = 48.89 %
 +
 +==== covnonproj ====
 +
 +Zlepšila se hindština. Bengálština se zhoršila, telugština zůstala.
 +
 +Thu Nov 19 21:21:46 CET 2009
 +/net/work/people/zeman/icon-parsing/work/hi/dtest.malt.eval.txt
 +  Labeled   attachment score: 811 / 1250 * 100 = 64.88 %
 +  Unlabeled attachment score: 1087 / 1250 * 100 = 86.96 %
 +  Label accuracy score:       843 / 1250 * 100 = 67.44 %
 +Thu Nov 19 21:21:46 CET 2009
 +/net/work/people/zeman/icon-parsing/work/bn/dtest.malt.eval.txt
 +  Labeled   attachment score: 492 / 811 * 100 = 60.67 %
 +  Unlabeled attachment score: 682 / 811 * 100 = 84.09 %
 +  Label accuracy score:       510 / 811 * 100 = 62.89 %
 +Thu Nov 19 21:21:47 CET 2009
 +/net/work/people/zeman/icon-parsing/work/te/dtest.malt.eval.txt
 +  Labeled   attachment score: 305 / 675 * 100 = 45.19 %
 +  Unlabeled attachment score: 542 / 675 * 100 = 80.30 %
 +  Label accuracy score:       329 / 675 * 100 = 48.74 %
 +
 +==== stackproj ====
 +
 +Není nejhorší, ale taky v ničem nejlepší.
 +
 +Thu Nov 19 21:29:06 CET 2009
 +/net/work/people/zeman/icon-parsing/work/hi/dtest.malt.eval.txt
 +  Labeled   attachment score: 830 / 1250 * 100 = 66.40 %
 +  Unlabeled attachment score: 1082 / 1250 * 100 = 86.56 %
 +  Label accuracy score:       871 / 1250 * 100 = 69.68 %
 +Thu Nov 19 21:29:06 CET 2009
 +/net/work/people/zeman/icon-parsing/work/bn/dtest.malt.eval.txt
 +  Labeled   attachment score: 510 / 811 * 100 = 62.89 %
 +  Unlabeled attachment score: 690 / 811 * 100 = 85.08 %
 +  Label accuracy score:       524 / 811 * 100 = 64.61 %
 +Thu Nov 19 21:29:07 CET 2009
 +/net/work/people/zeman/icon-parsing/work/te/dtest.malt.eval.txt
 +  Labeled   attachment score: 309 / 675 * 100 = 45.78 %
 +  Unlabeled attachment score: 546 / 675 * 100 = 80.89 %
 +  Label accuracy score:       339 / 675 * 100 = 50.22 %
 +
 +==== stackeager ====
 +
 +Přestože umožňuje neprojektivity, hindština i bengálština jsou výrazně horší.
 +Zato se vytáhla telugština, kde neprojektivity téměř nejsou!
 +
 +Thu Nov 19 21:44:15 CET 2009
 +/net/work/people/zeman/icon-parsing/work/hi/dtest.malt.eval.txt
 +  Labeled   attachment score: 761 / 1250 * 100 = 60.88 %
 +  Unlabeled attachment score: 1022 / 1250 * 100 = 81.76 %
 +  Label accuracy score:       813 / 1250 * 100 = 65.04 %
 +Thu Nov 19 21:44:16 CET 2009
 +/net/work/people/zeman/icon-parsing/work/bn/dtest.malt.eval.txt
 +  Labeled   attachment score: 498 / 811 * 100 = 61.41 %
 +  Unlabeled attachment score: 680 / 811 * 100 = 83.85 %
 +  Label accuracy score:       514 / 811 * 100 = 63.38 %
 +Thu Nov 19 21:44:17 CET 2009
 +/net/work/people/zeman/icon-parsing/work/te/dtest.malt.eval.txt
 +  Labeled   attachment score: 303 / 675 * 100 = 44.89 %
 +  Unlabeled attachment score: 547 / 675 * 100 = 81.04 %
 +  Label accuracy score:       336 / 675 * 100 = 49.78 %
 +
 +==== stacklazy ====
 +
 +Na hindštině je to maximum, ostatní se zhoršily.
 +
 +Thu Nov 19 21:52:53 CET 2009
 +/net/work/people/zeman/icon-parsing/work/hi/dtest.malt.eval.txt
 +  Labeled   attachment score: 823 / 1250 * 100 = 65.84 %
 +  Unlabeled attachment score: 1095 / 1250 * 100 = 87.60 %
 +  Label accuracy score:       853 / 1250 * 100 = 68.24 %
 +Thu Nov 19 21:52:54 CET 2009
 +/net/work/people/zeman/icon-parsing/work/bn/dtest.malt.eval.txt
 +  Labeled   attachment score: 480 / 811 * 100 = 59.19 %
 +  Unlabeled attachment score: 687 / 811 * 100 = 84.71 %
 +  Label accuracy score:       496 / 811 * 100 = 61.16 %
 +Thu Nov 19 21:52:55 CET 2009
 +/net/work/people/zeman/icon-parsing/work/te/dtest.malt.eval.txt
 +  Labeled   attachment score: 307 / 675 * 100 = 45.48 %
 +  Unlabeled attachment score: 544 / 675 * 100 = 80.59 %
 +  Label accuracy score:       336 / 675 * 100 = 49.78 %
  

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