[ 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
Next revision Both sides next revision
user:zeman:dz-parser:icon [2009/10/28 18:41]
zeman
user:zeman:dz-parser:icon [2009/11/21 16:47]
zeman Upravit volbu algoritmu pro Malt parser.
Line 5: Line 5:
 ===== Zbývá udělat ===== ===== Zbývá udělat =====
  
-  * Napsat článek+  * 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, u MST ne. 
 +  * Přidat jako rys chunk label, a to i pro DZ Parser. 
 +  * Naivní parser pro telugštinu: poslední uzel visí na kořeni, ostatní uzly na posledním uzlu. Informace, zda závislost mezi dvěma uzly odpovídá tomuto pravidlu, může být rys, který budou parsery sledovat
 +  * Rozchodit podporu clusteru v makefilech, abych nemusel MST parser pouštět ručně zvlášť (''qmake'').
   * 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 telugských dtest datech takových případů vidím spoustu. 
   * 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.
-  * Vybrat SVN repozitář, do kterého tyto pokusy budu archivovat, vybrat soubory, které tam patří (Makefile, specifické skripty, vstupní data, soubory vyhodnocením...) a dát je tam.+  * Více si pohrát s konfigurací Malt parseru. 7 algoritmů už jsem vyzkoušelale 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).
-  * 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 wx do původních indických písem a do jejich vědecké transliterace kvůli příkladům v článku. 
   * 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.
  
Line 43: Line 43:
 | 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 57: Line 60:
  
 <code>conll_pokusy.pl -l hi -t -g hi/dtest.mconll -s hi/dtest.voted.rconll | cstsfs.pl -s dzchyby > hi/dtest.voted.fs</code> <code>conll_pokusy.pl -l hi -t -g hi/dtest.mconll -s hi/dtest.voted.rconll | cstsfs.pl -s dzchyby > hi/dtest.voted.fs</code>
 +
 +Tady je ještě jedna alternativa (pozor, tohle je pro změnu okopírováno z&nbsp;Windows). Kromě toho, že jsem opravil některé chyby v&nbsp;''brahmi.pm'' (což se na volání nijak neprojeví), je teď nově možnost vybrat si ze dvou variant výstupní transliterace do latinky. ''-t sci'' vyvolá vědeckou transliteraci, která se hodí do článků, ale nehodí se pro čtení v&nbsp;Putty, protože používá kombinovanou diakritiku. Pro čtení v&nbsp;Putty použijeme ''-t putty''.
 +
 +<code>C:\Documents and Settings\Dan\Dokumenty\Lingvistika\Projekty\icon-parsing\work>set TOOLS="C:\Documen
 +ts and Settings\Dan\Dokumenty\Lingvistika\Projekty\padapt\parsingroot\tools"
 +C:\Documents and Settings\Dan\Dokumenty\Lingvistika\Projekty\icon-parsing\work>perl conll_pokusy.pl
 +-l te -t sci -g te/dtest.mconll -s te/dtest.voted.rconll | perl %TOOLS%/cstsfs.pl -s dzchyby > te/dt
 +est.voted.1.fs</code>
  
 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&nbsp;bengálské větě "(3) তবে / tabé সুদীপ / sudípa ওকে / óké একদিন / ékadina আড়ালে / áđa়াlé ডেকে / đéké বলেছিল / baléčhila কৌতূহল / kautúhala দেখালে / dékhálé তুমি / tumi উঁচুতে / um̃čuté উঠতে / uţhaté অনিমেষ / animéša" jsou slova "déké" a "dékhálé" značena jako "VGNF|VM" (zřejmě gerundium), zatímco "baléčhila" a "uthaté" jsou "VGF|VM". Pokud parser u všech vidí jen "VM", pak není divu, že v té větě nasekal několik divokých chyb. 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&nbsp;bengálské větě "(3) তবে / tabé সুদীপ / sudípa ওকে / óké একদিন / ékadina আড়ালে / áđa়াlé ডেকে / đéké বলেছিল / baléčhila কৌতূহল / kautúhala দেখালে / dékhálé তুমি / tumi উঁচুতে / um̃čuté উঠতে / uţhaté অনিমেষ / animéša" jsou slova "déké" a "dékhálé" značena jako "VGNF|VM" (zřejmě gerundium), zatímco "baléčhila" a "uthaté" jsou "VGF|VM". Pokud parser u všech vidí jen "VM", pak není divu, že v té větě nasekal několik divokých chyb.
Line 65: Line 76:
  
 Úspěšnost přes 85&nbsp;% je poměrně vysoká a je těžké v&nbsp;těch občasných chybách vysledovat nějaké pravidlo. Přinejmenším v&nbsp;hindštině se mi ale zdá, že často jde o chyby se slovesy či spojkami (koordinace sloves) a často na velkou vzdálenost. Úspěšnost přes 85&nbsp;% je poměrně vysoká a je těžké v&nbsp;těch občasných chybách vysledovat nějaké pravidlo. Přinejmenším v&nbsp;hindštině se mi ale zdá, že často jde o chyby se slovesy či spojkami (koordinace sloves) a často na velkou vzdálenost.
 +
 +Příklad problému s&nbsp;koordinací, stejného, jaký měl DZ parser na češtině: "(143) भाई / bháí और / aura भाभी / bhábhí उसके / usaké अच्छा / aččhá व्यवहार / vjavahára करते / karaté". "bháí aura bhábhí" je jasná koordinace dvou podstatných jmen, která pak dohromady tvoří podmět slovesa. Parser je sice správně spojil do koordinace, pak už ale asi viděl jen spojku "aura", zapomněl na podstatná jména pod ní, vzpomněl si, že spojky také spojují celé klauze, a pověsil ji na kořen.
  
 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&nbsp;lemmatem a zvlášť s&nbsp;pádem a sám se rozhodnout, ve kterém případě mu co pomáhá víc. 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&nbsp;lemmatem a zvlášť s&nbsp;pádem a sám se rozhodnout, ve kterém případě mu co pomáhá víc.
Line 209: Line 222:
   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 ]