This is an old revision of the document!
Table of Contents
DZ Parser
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.
svn checkout file:///net/work/public/SVN/dzparser/trunk dzparser
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.
To do
- 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.
- 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.
- Nová regrese na PDT 2.0 a commit (změny v ud.pm). Co je nového? Možnost vypnout rozepisování alternativ! U CoNLL to může uškodit, ale nemůže to pomoct! Kromě toho není dobře, že neSGML znak na vstupu má zvláštní význam - vlastně by se měl zakódovat jako |.
- 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ů.
- Odstranit závislost parseru na konfiguračním souboru
parser.ini
.- Nejdůležitější výchozí hodnoty dát přímo do zdrojáku
parse.pm
, aby bylo možné pracovat úplně bez konfiguračního souboru. Např. vstup ze standardního vstupu, výstup na standardní výstup a veškerá diagnostická hlášení na standardní chybový výstup. - Složka
pracovni
nemusí existovat, psalo by se do/tmp
(resp. Milanem přidělené alternativy), nebo vůbec nikam. - Parser si sám zjistí, zda na vstupu má
<t>
,<MDt>
, nebo<MMt>
(nebo kombinaci uvedeného). Pokud má více různých zdrojů, vybere si výchozí zdroj podle nějaké vestavěné tabulky priorit. Pokud konfigurační soubor nebo někdo jiný vyžadují konkrétní zdroj, který na vstupu není k dispozici, parser ohlásí chybu nebo alespoň varování.
- Převádění vstupních slov na malá písmena by mělo být volitelné. Např. u arabštiny přepsané podle Tima Buckwaltera by to mohlo i uškodit, protože tam velká písmena nemají s odpovídajícími malými nic společného.
Výchozí nastavení
- 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).