[ Skip to the content ]

Institute of Formal and Applied Linguistics Wiki


[ Back to the navigation ]

This is an old revision of the document!


Table of Contents

Morpho Challenge 2008

Stránky soutěže jsou na http://www.cis.hut.fi/morphochallenge2008/. E-mailová adresa organizátorů je morphochallenge2007@james.hut.fi. Poznámky k mému loňskému řešení jsou na stránce Morpho Challenge 2007.

Data mám v ~/data/morphochallenge/2008. Programy mám v ~/projekty/morphochallenge (odkaz na data vede i odsud). Původně byly v ~/zapoctaky/konc.

setenv MC /home/zeman/projekty/morphochallenge

Příprava dat

Organizátoři používají trochu zvláštní kódování, navíc pro každý jazyk jiné. Napsal jsem si skript, který převede data od organizátorů do UTF-8. Bude umět i převod opačným směrem, což bude potřeba, až budu organizátorům posílat výsledky.

cd ~/data/morphochallenge/2008
gunzip -c wordlist.ara.gz | $MC/mc_convert.pl -f ar > wordlist.ar.txt
gunzip -c wordlist.eng.gz | $MC/mc_convert.pl -f en > wordlist.en.txt
gunzip -c wordlist.fin.gz | $MC/mc_convert.pl -f fi > wordlist.fi.txt
gunzip -c wordlist.ger.gz | $MC/mc_convert.pl -f de > wordlist.de.txt
gunzip -c wordlist.tur.gz | $MC/mc_convert.pl -f tr > wordlist.tr.txt

Můj skript pro automatické rozsekání slov na kmeny a koncovky předpokládá, že vstup je textový korpus ve formátu CSTS. Nejprve tedy musíme trénovací seznamy slov a jejich četností převést do tohoto formátu.

cd $MC
foreach l (ar de en fi tr)
  mc2csts.pl < data/2008/wordlist.$l.txt -l $l > data/2008/$l.csts
end

Trénování morfologických vzorů

Pro některé jazyky (zejména pro finštinu) trvá zpracování déle, než by se chtělo čekat, a vyplatí se tedy úlohy odeslat na cluster:

# lrc
cd $MC
foreach l (ar de en fi tr)
  qsub.csh mc_jazyk.csh $l
end

Během trénování pro každý jazyk l vzniknou následující soubory:

Seznam vzorů se buduje takto (práce je rozdělena do několika kroků, protože zpracování velkých dat trvá dlouho a při opravě nějaké drobnosti u filtrování vzorů nechceme muset opakovat i první dva kroky):

csts2kmkon.pl < en.csts > en.kmkon
kmkon2vzor.pl < en.kmkon > en.vzor
vzorfiltr.pl < en.vzor > en1.vzor

Skript vzorfiltr.pl jako vedlejší účinek vedle standardního výstupu tiše vyrobí soubory kmeny.txt a koncovky.txt.

Morfematická segmentace

Mám natrénovaný seznam vzorů, resp. seznam kmenů a koncovek. Segmentace ve skutečnosti znamená najít takové dělení slova na dvě části, aby první část odpovídala známému kmenu a druhá část známé koncovce.

Slovo umím rozložit na právě dva morfémy (kmen a koncovka) nebo nechat nerozložené. Při přiřazování slov ke vzorům se přednostně zjišťuje, zda známe přímo danou dvojici kmen-koncovka. Pokud žádnou takovou dvojici nenajdeme, zjišťujeme, zda rozpoznáme alespoň koncovky (aniž bychom znali kmen).

Rozklad slov na základě již vybudovaného seznamu vzorů se provede takto:

mchallenge.pl kmeny.txt koncovky.txt < wordlist.eng > en.dz.txt
cd $MC/data/2008
foreach l (ar de en fi tr)
  $MC/mchallenge.pl $l.kmeny.txt $l.koncovky.txt < wordlist.$l.txt > $l.dz.txt
end

Zbývá udělat


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