[ 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

Next revision
Previous revision
Next revision Both sides next revision
user:zeman:dz-parser [2007/02/28 11:25]
zeman
user:zeman:dz-parser [2007/05/15 15:13]
zeman To do - co je hotovo a co je potřeba.
Line 3: Line 3:
 DZ Parser má svoji stránku na adrese http://ufal.mff.cuni.cz/~zeman/projekty/parser/index.html. To, co je zde, jsou pracovní poznámky. DZ Parser má svoji stránku na adrese http://ufal.mff.cuni.cz/~zeman/projekty/parser/index.html. To, co je zde, jsou pracovní poznámky.
  
-<code> +<code>svn checkout file:///net/work/public/SVN/dzparser/trunk dzparser</code> 
-svn checkout file:///net/work/public/SVN/dzparser/trunk dzparser + 
-</code>+  * [[user:zeman:dz-parser:atrain-a-aclass|atrain a aclass]] 
 +  * [[user:zeman:dz-parser:csts.pm|csts.pm]] 
 +  * [[user:zeman:dz-parser:vystupy.pm|vystupy.pm]] 
 +  * [[user:zeman:dz-parser:vysledky|Výsledky]] 
 +  * [[user:zeman:dz-parser:conll|CoNLL]] 
 + 
 +===== Chování vstupu a výstupu ===== 
 + 
 +V posledním roce jsem vnesl zmatek do chování vstupu a výstupu DZ Parseru. Jak by se tedy měl chovat a jak se momentálně chová? 
 + 
 +==== Vstup ==== 
 + 
 +Vstupem train.pl jsou trénovací data a případně konfigurační soubor. 
 +Vstupem parse.pl je natrénovaná statistika, testovací data a případně konfigurační soubor. 
 + 
 +Malou část konfigurace lze provést přepínači na příkazovém řádku. V budoucnosti by měla být možnost provést tady veškerou konfiguraci, pokud uživatel chce. Z příkazového řádku lze také říci, odkud se má načíst konfigurační soubor. Pokud nic neřekneme, neměl by se defaultně číst žádný konfigurační soubor. (A ty nejdefaultnější defaulty by měly být obsaženy přímo ve zdrojácích parseru.) Nevím, jak je to teď, ale po dlouhá léta se standardně načítal soubor parser.ini ve složce s parserem. Komplikovalo to pouštění parseru z jiných složek. 
 + 
 +Pokud konfigurace obsahuje cestu ke vstupním datům (trénovací korpus, testovací korpus, natrénovaná statistika), použijí tato data. Pokud je tato cesta "-", čte se standardní vstup. Pouze v případě natrénované statistiky se "-" interpretuje jinak: vleze se do pracovní složky (cesta k ní by měla být opět v konfiguraci), najde se soubor s nejvyšším číslem N, že jméno souboru je N.stat, a ten se načte. 
 + 
 +Pokud konfigurace (ani ta z příkazového řádku) neobsahuje cestu ke vstupním datům, ale na příkazovém řádku zbývají nevyužité argumenty, tyto argumenty se interpretují jako cesty ke vstupním souborům a ty se načtou. Pokud nezbývají ani argumenty, čte se standardní vstup. (To neplatí o natrénované statistice na vstupu parse.pl, ta se čte vždy ze souboru. Pokud chybí určení cesty, postupuje se jako kdyby určení bylo "-", tj. čte se z pracovní složky.) 
 + 
 +Pokud konfigurace neobsahuje cestu k pracovní složce, považuje se za pracovní složka, ze které byl program spuštěn ("."). 
 + 
 +==== Výstup ==== 
 + 
 +Hlavním výstupem train.pl je natrénovaná statistika. Hlavním výstupem parse.pl jsou rozebraná testovací data ve formátu CSTS. Hlavní výstupy se posílají na standardní výstup. 
 + 
 +V ladícím režimu (lze ho zapnout v konfiguraci) se totéž loguje i do souboru. Případně lze vypnout standardní výstup a pouze logovat do souboru. 
 + 
 +Každý program může navíc generovat různé vedlejší výstupy, které lze regulovat pomocí konfigurace. Tyto výstupy standardně směřují na standardní chybový výstup (STDERR), ale v konfiguraci lze zapnout jejich logování do souboru v pracovní složce.
  
 ===== To do ===== ===== To do =====
  
-  * Vyřešit situaci, kdy svislítko ve vstupních datech (značkách, slovech, heslech) se považuje za oddělovač alternativních anotací. Přinejmenším v arabských datech (přepsaných podle Tima Buckwaltera) se může objevit jako normální písmeno! I pokud se nesprávně interpretuje jako oddělovač, neměla by se funkce ud() zacyklit.+  * CoNLL 2007 
 +    * Otestovat mé výstupy oficiálním skriptem eval.pl, nebo jak se jmenuje. 
 +    * Zkusit ještě jednou pustit parser na všechny jazyky s vypnutým rozepisováním alternativ. 
 +    * Totéž, ale vypnout úpravy morfologických značek, na ne-PDT značkách to nemůže fungovat. 
 +    * Totéž, ale učit se pouze na podrobných slovních druzích, hodnoty rysů zahodit. 
 +    * Totéž, ale navíc rys pád. 
 +    * Učit se na morfologických značkách překódovaných do sady PDT. 
 +    * Kombinace parserů ([[:Parsery|Brown]], [[:MST|McDonald]], [[:Parsery|Stanford]]). 
 +    * Angličtina (větev adaptace na novou doménu)? 
 +    * Vše přetrénovat na celých trénovacích datech, rozebrat slepá testovací data a do soboty odeslat výsledky. 
 +  * Následující už je asi vyřešeno, ale je třeba to zdokumentovat: Vyřešit situaci, kdy svislítko ve vstupních datech (značkách, slovech, heslech) se považuje za oddělovač alternativních anotací. Přinejmenším v arabských datech (přepsaných podle Tima Buckwaltera) se může objevit jako normální písmeno! I pokud se nesprávně interpretuje jako oddělovač, neměla by se funkce ud() zacyklit.
     * Půjde zřejmě o rozsáhlejší přestavbu funkce ud(), kterou bude potřeba pečlivě otestovat na parsingu PDT. Součástí přestavby by mělo být i to, že parametrem funkce už nebude jeden řetězec, ale pole, kde prvním prvkem bude typ události a další prvky budou její parametry. Pak bude jasné, že na alternativy se dělí každý parametr zvlášť a že je potřeba nakombinovat všechny alternativy všech parametrů.     * Půjde zřejmě o rozsáhlejší přestavbu funkce ud(), kterou bude potřeba pečlivě otestovat na parsingu PDT. Součástí přestavby by mělo být i to, že parametrem funkce už nebude jeden řetězec, ale pole, kde prvním prvkem bude typ události a další prvky budou její parametry. Pak bude jasné, že na alternativy se dělí každý parametr zvlášť a že je potřeba nakombinovat všechny alternativy všech parametrů.
   * Odstranit závislost parseru na konfiguračním souboru ''parser.ini''.   * Odstranit závislost parseru na konfiguračním souboru ''parser.ini''.
Line 20: Line 59:
  
   * koordinace = 0. Zvláštní zpracování koordinací předpokládá určité konkrétní syntaktické značky (Coord, _Co). Pokud tam nejsou, koordinace se nepoznají. Horší ale je, když tam jsou, ale nesplňují tatáž pravidla jako v PDT (např. v PADT).   * koordinace = 0. Zvláštní zpracování koordinací předpokládá určité konkrétní syntaktické značky (Coord, _Co). Pokud tam nejsou, koordinace se nepoznají. Horší ale je, když tam jsou, ale nesplňují tatáž pravidla jako v PDT (např. v PADT).
- 
-===== Výsledky ===== 
- 
-==== Arabština CoNLL 2006 ==== 
- 
-<code> 
-train.pl < /net/data/CoNLL/2006/arabic/padt/artrain.02.csts 
-parse.pl < /net/data/CoNLL/2006/arabic/padt/artest.02.csts 
-</code> 
- 
-G 3086 - B 2287 - P <html><span style='background:yellow'>57,44</span></html> %. Ruční značky (jiné nemáme) převedené z CoNLL do PDT. Slova a hesla obsahují za podtržítkem Buckwalterovu transliteraci tak jako v CoNLL. Ta je ovšem převedena na malá písmena, což můj parser dělá i jinde. 
- 
-==== Čeština PDT 2.0 ==== 
- 
-<code> 
-train.pl -i parser-pdt.ini 
-parse.pl -i parser-pdt.ini 
-</code> 
- 
-A 158962 - G 118894 - B 40068 - P <html><span style='background:yellow'>0.74793975918773</span></html>. Tato úspěšnost je nižší než dříve. Podle záznamů na stránce o českém parsingu jsem už dříve na d-testu PDT 2.0 dosáhl 75 %. SVN revize 3 ale dává stejné výsledky jako teď (P 74,8, G 118894). Uvidíme, co udělá revize 1, která ale není zvyklá pracovat s daty zakódovanými v UTF-8. 

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