[ 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:conll [2008/04/25 11:49]
zeman Parametr vypsat_tabulku.pl
user:zeman:dz-parser:conll [2009/03/26 08:21] (current)
zeman Úvod.
Line 1: Line 1:
 ====== Pokusy s DZ Parserem pro CoNLL ====== ====== Pokusy s DZ Parserem pro CoNLL ======
  
-Tato stránka původně vznikla jako záznam o tom, jakým způsobem jsem spouštěl parser během soutěže v parsingu CoNLL 2007, abych tyto pokusy dokázal zopakovat. Postupně se mění na stránku o pokusech s [[internal:data-conll|daty CoNLL]] obecně (nejen 2007). Data leží v ''/net/data/conll''. Parser odsud čte, ale nepíše sem. Pro soubory související se syntaktickou analýzou těchto dat mám samostatnou složku ''/net/work/people/zeman/conll-dzparser''.+CoNLL Shared Task je soutěž v závislostní syntaktické analýze více jazyků, která probíhala v letech [[http://nextens.uvt.nl/~conll/|2006]], [[http://depparse.uvt.nl/depparse-wiki/SharedTaskWebsite|2007]], [[http://barcelona.research.yahoo.net/conll2008/|2008]] a [[http://ufal.mff.cuni.cz/conll2009-st/|2009]]. Tato stránka původně vznikla jako záznam o tom, jakým způsobem jsem spouštěl parser během CoNLL 2007, abych tyto pokusy dokázal zopakovat. Postupně se mění na stránku o pokusech s [[internal:data-conll|daty CoNLL]] obecně. 
 + 
 +Data leží v ''/net/data/conll''. Parser odsud čte, ale nepíše sem. Pro soubory související se syntaktickou analýzou těchto dat mám samostatnou složku ''/net/work/people/zeman/conll-dzparser''.
  
 ===== Proměnné ===== ===== Proměnné =====
Line 20: Line 22:
  
 ===== Zpracování ===== ===== Zpracování =====
 +
 +Zpracování má dvě části. První se týká přípravy dat, jejich převodu do formátu CSTS apod. Tato část není bezprostředně závislá na konkrétním parseru a odehrává se přímo ve složce s daty (''$DATA''). Druhá část zahrnuje natrénování parseru, otestování parseru na testovacích datech a vyhodnocení výsledků. Může se opakovat s různými parsery a s různým nastavením parametrů. Tato část se odehrává v pracovní složce (''$OUTPUT''). Na zpracování jsem si vytvořil i Makefile, ale bylo to v době, kdy jsem ještě obě části provozoval přímo ve složce s daty, takže cesty uvnitř Makefilu je nutné upravit. Makefile se nachází v ''/net/data/conll/2007/Makefile''.
  
 Každý jazyk zkouším zpracovat jednak s původními značkami, jednak se značkami převedenými do české sady PDT. Základní zpracování (bez přiřazování syntaktických značek) předpokládá pouze dva kroky: natrénování modelu na průběžných trénovacích datech a jeho otestování na průběžných testovacích datech. U základního zpracování používáme výchozí, jazykově nezávislé nastavení parseru. Každý jazyk zkouším zpracovat jednak s původními značkami, jednak se značkami převedenými do české sady PDT. Základní zpracování (bez přiřazování syntaktických značek) předpokládá pouze dva kroky: natrénování modelu na průběžných trénovacích datech a jeho otestování na průběžných testovacích datech. U základního zpracování používáme výchozí, jazykově nezávislé nastavení parseru.
Line 28: Line 32:
 $PARSER/train.pl < $DATA/$ROK/$JAZYK/dtrain.csts > $JAZYK.stat $PARSER/train.pl < $DATA/$ROK/$JAZYK/dtrain.csts > $JAZYK.stat
 ($PARSER/parse.pl -m $JAZYK.stat < $DATA/$ROK/$JAZYK/dtest.csts > $JAZYK.dtest.dz.csts) >& $JAZYK.dtest.log</code> ($PARSER/parse.pl -m $JAZYK.stat < $DATA/$ROK/$JAZYK/dtest.csts > $JAZYK.dtest.dz.csts) >& $JAZYK.dtest.log</code>
- 
- 
  
 ===== Zpracování na clusteru ===== ===== Zpracování na clusteru =====
Line 37: Line 39:
   * ''qtp2007.csh'' ... přetrénování a rozbor všech jazyků 2007 bez machinací se značkami   * ''qtp2007.csh'' ... přetrénování a rozbor všech jazyků 2007 bez machinací se značkami
   * ''qtppdt.csh'' ... přetrénování a rozbor dat se značkami převedenými do sady PDT u jazyků, u kterých to umíme, z&nbsp;obou let   * ''qtppdt.csh'' ... přetrénování a rozbor dat se značkami převedenými do sady PDT u jazyků, u kterých to umíme, z&nbsp;obou let
-  * ''trainparse.csh ROK JAZYK VAR INI'' ... přetrénování a rozbor jednoho korpusu (rok a jazyk jsou jasné parametry, var je varianta dat, třeba "''.pdttags''", a ini je název konfiguračního souboru bez přípony .ini, třeba "''03''")+  * ''trainparse.csh ROK JAZYK VAR INI'' ... přetrénování a rozbor jednoho korpusu (rok a jazyk jsou jasné parametry, var je varianta dat, třeba "''pdttags''", a ini je název konfiguračního souboru bez přípony .ini, třeba "''03''")
   * ''harvest.csh'' ... pro všechny roky a jazyky (a u korpusů, u kterých to umíme, i pro data se značkami převedenými do PDT) zavolá ''porovnat.pl'' na zlatý standard a výstup parseru, čímž kromě úspěšnosti získáme i McNemarův test statistické významnosti zlepšení nebo zhoršení, které přinesl převod značek oproti datům s&nbsp;původními značkami   * ''harvest.csh'' ... pro všechny roky a jazyky (a u korpusů, u kterých to umíme, i pro data se značkami převedenými do PDT) zavolá ''porovnat.pl'' na zlatý standard a výstup parseru, čímž kromě úspěšnosti získáme i McNemarův test statistické významnosti zlepšení nebo zhoršení, které přinesl převod značek oproti datům s&nbsp;původními značkami
   * ''vypsat_tabulku.pl'' dělá podobnou věc jako ''harvest.csh'', ale výsledky rovnou formátuje jako tabulku, kterou můžeme uložit v&nbsp;této wiki. Má parametr ''INI'', který říká, jaké výsledky (získané s&nbsp;jakým konfiguračním souborem) se mají sbírat.   * ''vypsat_tabulku.pl'' dělá podobnou věc jako ''harvest.csh'', ale výsledky rovnou formátuje jako tabulku, kterou můžeme uložit v&nbsp;této wiki. Má parametr ''INI'', který říká, jaké výsledky (získané s&nbsp;jakým konfiguračním souborem) se mají sbírat.
 +
 +
 +===== Sémantika 2009 =====
 +
 +Aby vyhodnocení CoNLL 2009 fungovalo, musím do výsledků doplnit alespoň nějakou sémantiku, i kdyby třeba náhodně.
 +
 +  * Potřebuju skript, který bude asi pracovat přímo se souborem ve formátu CoNLL, protože v&nbsp;CSTS beztak nejsou k&nbsp;dispozici sémantické prvky a navíc bych pak musel ještě upravovat převod z&nbsp;CSTS do CoNLL.
 +  * Ve skutečnosti „tento skript“ znamená dva skripty, trénovací a anotační.
 +  * Minimální požadavky na tento skript:
 +    * Naučit se pro daný jazyk, jakých hodnot může nabývat pole PRED. Když už to budu dělat, asi bych se to mohl učit jako funkci lemmatu, protože na lemmatu to zjevně běžně závisí.
 +    * Naučit se pro daný jazyk, jakých hodnot může nabývat pole APRED.
 +      * Závisí na uzlu, pro nějž ho vyplňujeme (řídící) a na uzlu odpovídajícím sloupci, do nějž ho vyplňujeme (závislý), ale učit se tohle bude trochu složitější.
 +    * Do existujícího CoNLL souboru doplnit hodnoty PRED všude tam, kde FILLPRED = "Y".
 +    * Pro každou větu spočítat, kolik uzlů má nastaveno FILLPRED = "Y". Tolik bude u každého uzlu sloupců APREDs.
 +    * Zapamatovat si, které predikáty závisí na jiných predikátech (popř. si rovnou zapamatovat celý strom). U každého predikátu pak střelit nějakou hodnotu APRED do všech sloupců, které na něm závisí. Do ostatních vyplnit "_".
 +  * Až tyhle skripty budou, zapracovat je do Makefilu a získat baseline výsledek pro všechny jazyky.
  
 ===== Výsledky ===== ===== Výsledky =====
Line 46: Line 64:
  
 Následující tabulka ukazuje úspěšnost DZ parseru s výchozím nastavením na průběžných testovacích datech CoNLL, s původními neupravenými značkami CoNLL (tabulátory, rysy oddělené svislítky). Následující tabulka ukazuje úspěšnost DZ parseru s výchozím nastavením na průběžných testovacích datech CoNLL, s původními neupravenými značkami CoNLL (tabulátory, rysy oddělené svislítky).
 +Úspěšnost parsingu s&nbsp;původními značkami CoNLL:
 | Jazyk | Rok | P | | Jazyk | Rok | P |
 | ar | 2006 | 63.9 | | ar | 2006 | 63.9 |
Line 52: Line 70:
 | bg | 2006 | 72.3 | | bg | 2006 | 72.3 |
 | ca | 2007 | 72.7 | | ca | 2007 | 72.7 |
 +| ca | 2009 | 73.6 |
 | cs | 2006 | 64.1 | | cs | 2006 | 64.1 |
 | cs | 2007 | 69.1 | | cs | 2007 | 69.1 |
 +| cs | 2009 | 65.8 |
 | da | 2006 | 69.9 | | da | 2006 | 69.9 |
 | de | 2006 | 71.8 | | de | 2006 | 71.8 |
 +| de | 2009 | 72.3 |
 | el | 2007 | 65.0 | | el | 2007 | 65.0 |
 | en | 2007 | 70.6 | | en | 2007 | 70.6 |
 +| en | 2009 | 69.5 |
 +| es | 2009 | 71.8 |
 | eu | 2007 | 58.6 | | eu | 2007 | 58.6 |
 | hu | 2007 | 62.3 | | hu | 2007 | 62.3 |
 | it | 2007 | 71.5 | | it | 2007 | 71.5 |
 | ja | 2006 | 87.3 | | ja | 2006 | 87.3 |
 +| ja | 2009 | 83.2 |
 | nl | 2006 | 73.7 | | nl | 2006 | 73.7 |
 | pt | 2006 | 73.8 | | pt | 2006 | 73.8 |
Line 69: Line 93:
 | zh | 2006 | 69.9 | | zh | 2006 | 69.9 |
 | zh | 2007 | 69.0 | | zh | 2007 | 69.0 |
 +| zh | 2009 | 57.7 |
  
 Následující tabulka srovnává výsledky s původními značkami CoNLL a výsledky se značkami PDT. Data jsou dtest. Nastavení parseru je výchozí, tj. úprava značek ani selektivní lexikalizace není zapnuta. Poslední sloupec říká, zda je změna úspěšnosti statisticky významná podle McNemarova testu na úrovni 0,05 (χ<html><sup>2</sup></html> ≥ 3,84). Následující tabulka srovnává výsledky s původními značkami CoNLL a výsledky se značkami PDT. Data jsou dtest. Nastavení parseru je výchozí, tj. úprava značek ani selektivní lexikalizace není zapnuta. Poslední sloupec říká, zda je změna úspěšnosti statisticky významná podle McNemarova testu na úrovni 0,05 (χ<html><sup>2</sup></html> ≥ 3,84).
Line 79: Line 104:
 | cs | 2007 | 69.1 | 68.6 | horší | ano (3.948357) | | cs | 2007 | 69.1 | 68.6 | horší | ano (3.948357) |
 | da | 2006 | 69.9 | 70.5 | lepší | ne (2.082218) | | da | 2006 | 69.9 | 70.5 | lepší | ne (2.082218) |
 +| de | 2006 | 71.8 | 67.5 | horší | ano (61.301887) |
 | en | 2007 | 70.6 | 65.4 | horší | ano (227.951382) | | en | 2007 | 70.6 | 65.4 | horší | ano (227.951382) |
 +| pt | 2006 | 73.8 | 76.4 | lepší | ano (44.312588) |
 | sv | 2006 | 71.0 | 72.6 | lepší | ano (12.763713) | | sv | 2006 | 71.0 | 72.6 | lepší | ano (12.763713) |
 | zh | 2006 | 69.9 | 68.4 | horší | ne (1.574297) | | zh | 2006 | 69.9 | 68.4 | horší | ne (1.574297) |
Line 187: Line 214:
 | zh | 2006 | 69.9 | 68.0 | horší | ne (2.623482) | | zh | 2006 | 69.9 | 68.0 | horší | ne (2.623482) |
 | zh | 2007 | 69.0 | 63.5 | horší | ano (23.875776) | | zh | 2007 | 69.0 | 63.5 | horší | ano (23.875776) |
- 
  
 ==== 03: navíc zapnuté modelování pseudovalence ==== ==== 03: navíc zapnuté modelování pseudovalence ====
  
 +Úspěšnost parsingu s&nbsp;původními značkami CoNLL:
 | Jazyk | Rok | P | | Jazyk | Rok | P |
 | ar | 2006 | 64.4 | | ar | 2006 | 64.4 |
Line 214: Line 241:
 | zh | 2007 | 64.6 | | zh | 2007 | 64.6 |
  
 +Srovnání úspěšnosti parsingu s&nbsp;původními značkami a se značkami PDT:
 | Jazyk | Rok | P(CoNLL) | P(PDT) | Změna | McNemar | | Jazyk | Rok | P(CoNLL) | P(PDT) | Změna | McNemar |
 | ar | 2006 | 64.4 | 67.6 | lepší | ano (23.953216) | | ar | 2006 | 64.4 | 67.6 | lepší | ano (23.953216) |
 | ar | 2007 | 59.8 | 67.0 | lepší | ano (165.491130) | | ar | 2007 | 59.8 | 67.0 | lepší | ano (165.491130) |
 | bg | 2006 | 67.6 | 71.0 | lepší | ano (45.224638) | | bg | 2006 | 67.6 | 71.0 | lepší | ano (45.224638) |
-| cs | 2006 | 49.62.| lepší | ano (7.529412) |+| cs | 2006 | 56.71.| lepší | ano (587.655280) |
 | cs | 2007 | 58.7 | 74.3 | lepší | ano (627.063764) | | cs | 2007 | 58.7 | 74.3 | lepší | ano (627.063764) |
 | da | 2006 | 68.3 | 69.8 | lepší | ano (8.878214) | | da | 2006 | 68.3 | 69.8 | lepší | ano (8.878214) |
 +| de | 2006 | 69.5 | 67.7 | horší | ano (9.841876) |
 | en | 2007 | 64.2 | 67.9 | lepší | ano (110.976037) | | en | 2007 | 64.2 | 67.9 | lepší | ano (110.976037) |
 +| pt | 2006 | 73.5 | 76.4 | lepší | ano (42.581187) |
 | sv | 2006 | 71.0 | 73.2 | lepší | ano (27.717540) | | sv | 2006 | 71.0 | 73.2 | lepší | ano (27.717540) |
 | zh | 2006 | 67.5 | 68.8 | lepší | ne (2.042553) | | zh | 2006 | 67.5 | 68.8 | lepší | ne (2.042553) |
 | zh | 2007 | 64.6 | 64.6 | stejná | ne (0.000000) | | zh | 2007 | 64.6 | 64.6 | stejná | ne (0.000000) |
  
 +Totéž, ale parsing s&nbsp;původními značkami použil výchozí konfiguraci místo 03.
 | Jazyk | Rok | P(CoNLL) | P(PDT) | Změna | McNemar | | Jazyk | Rok | P(CoNLL) | P(PDT) | Změna | McNemar |
 | ar | 2006 | 63.9 | 67.6 | lepší | ano (27.380000) | | ar | 2006 | 63.9 | 67.6 | lepší | ano (27.380000) |
 | ar | 2007 | 64.9 | 67.0 | lepší | ano (12.949640) | | ar | 2007 | 64.9 | 67.0 | lepší | ano (12.949640) |
 | bg | 2006 | 72.3 | 71.0 | horší | ne (3.688525) | | bg | 2006 | 72.3 | 71.0 | horší | ne (3.688525) |
-| cs | 2006 | 55.62.| lepší | ne (2.666667) |+| cs | 2006 | 64.71.| lepší | ano (167.052632) |
 | cs | 2007 | 69.1 | 74.3 | lepší | ano (87.422200) | | cs | 2007 | 69.1 | 74.3 | lepší | ano (87.422200) |
 | da | 2006 | 69.9 | 69.8 | horší | ne (0.046272) | | da | 2006 | 69.9 | 69.8 | horší | ne (0.046272) |
-| de | 2006 | 68.| 67.| horší | ne (2.892894) |+| de | 2006 | 71.| 67.| horší | ano (54.691057) |
 | en | 2007 | 70.6 | 67.9 | horší | ano (55.470000) | | en | 2007 | 70.6 | 67.9 | horší | ano (55.470000) |
 +| pt | 2006 | 73.8 | 76.4 | lepší | ano (34.848721) |
 | sv | 2006 | 71.0 | 73.2 | lepší | ano (22.530318) | | sv | 2006 | 71.0 | 73.2 | lepší | ano (22.530318) |
 | zh | 2006 | 69.9 | 68.8 | horší | ne (0.757576) | | zh | 2006 | 69.9 | 68.8 | horší | ne (0.757576) |
 | zh | 2007 | 69.0 | 64.6 | horší | ano (14.266376) | | zh | 2007 | 69.0 | 64.6 | horší | ano (14.266376) |
 +
 +===== Která konfigurace je nejúspěšnější pro který jazyk? =====
 +
 +| Jazyk | Rok | orig df | pdt df | orig 03 | pdt 03 |
 +| ar | 2006 | 63.9 | 66.8 | 64.4 | 67.6 |
 +| ar | 2007 | 64.9 | 64.2 | 59.8 | 67.0 |
 +| bg | 2006 | 72.3 | 71.2 | 67.6 | 71.0 |
 +| ca | 2007 | 72.7 |      | 69.9 |      |
 +| cs | 2006 | 64.1 | 64.1 | 56.0 | 71.4 |
 +| cs | 2007 | 69.1 | 68.6 | 58.7 | 74.3 |
 +| da | 2006 | 69.9 | 70.5 | 68.3 | 69.8 |
 +| de | 2006 | 71.8 | 67.5 | 69.5 | 67.7 |
 +| el | 2007 | 65.0 |      | 67.2 |      |
 +| en | 2007 | 70.6 | 65.4 | 64.2 | 67.9 |
 +| eu | 2007 | 58.6 |      | 58.4 |      |
 +| hu | 2007 | 62.3 |      | 62.3 |      |
 +| it | 2007 | 71.5 |      | 72.2 |      |
 +| ja | 2006 | 87.3 |      | 74.9 |      |
 +| nl | 2006 | 73.7 |      | 73.2 |      |
 +| pt | 2006 | 73.8 | 76.4 | 73.5 | 76.4 |
 +| sl | 2006 | 58.7 |      | 63.8 |      |
 +| sv | 2006 | 71.0 | 72.6 | 71.0 | 73.2 |
 +| tr | 2007 | 64.6 |      | 65.2 |      |
 +| zh | 2006 | 69.9 | 68.4 | 67.5 | 68.8 |
 +| zh | 2007 | 69.0 | 63.7 | 64.6 | 64.6 |
  
 ===== Starší poznámky ===== ===== Starší poznámky =====

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