Table of Contents
Morfologické značkování
spolecne
Morfologická značka neboli tag je obvykle krátký řetězec písmen, číslic a případně dalších znaků, ve kterém jsou zakódované morfologické a další informace o jednom slovu. Prakticky vždy je ze značky poznat slovní druh, ten bývá v některých případech ještě jemněji rozčleněn (třeba zájmena osobní vs. tázací). Podle potřeby pak značky obsahují informaci o relevantních mluvnických kategoriích, jako jsou rod, číslo, pád, stupeň, osoba, čas aj. I pro jeden jazyk mohou existovat různé korpusy s různě koncipovanými sadami značek. V některých případech mluvnické kategorie chybí a kóduje se jen slovní druh (anglicky part of speech), proto se také hovoří o tzv. part-of-speech (POS) tags.
Tagger (značkovač) je program, jehož úkolem je přiřadit každému slovu v textu značku z nějaké konkrétní sady. Obvykle se stává, že některá slova mají více možných interpretací, vyjádřených různými značkami, a až na základě kontextu lze poznat, která je pro daný výskyt slova ta správná. Většina taggerů tedy využívá nějaký statistický model, z něhož lze zjistit pravděpodobnost té které značky na základě kontextu. Statistický model se získá tzv. natrénováním taggeru na korpusu, ve kterém už někdo vyznačil správné značky ručně.
Některé taggery současně provádějí i lemmatizaci (vybírají pro slovo správné lemma - např. české slovo je může mít lemmata oni nebo být). Je to v podstatě jiná instance téhož problému jako u značek, řeší se stejnými metodami, akorát míra nejednoznačnosti bývá nižší.
Vaším úkolem je implementovat v Perlu jednoduchý statistický tagger včetně lemmatizace. Stačí n-gramový (n = 2 nebo 3) model nad slovy a značkami s jednoduchým vyhlazováním. Podrobnosti se dozvíte na přednášce o značkování.
Použijte statistický model, jehož parametry jsou značkované slovo a značka předchozího slova. Vyhlazujte pomocí méně specifického modelu, který se kouká pouze na značkované slovo, případně pomocí hloupého modelu, který bere jen pravděpodobnost značky bez ohledu na slovo. Alternativní rozšíření: Nebuďte hladoví! Ověřte, zda a jak moc pomůže, když nebudete brát v každém okamžiku lokálně nejpravděpodobnější značku, ale budete se snažit maximalizovat pravděpodobnost posloupnosti značek pro celou větu.
Úloha má tyto části (podrobnosti níže):
- Trénovací skript. Na vstupu má označkovaný korpus, na výstup posílá statistický model.
- Vlastní tagger. Na začátku načte statistický model, potom čte neoznačkovaný text a vypisuje označkovaný.
- Oba skripty by měly být schopné využít výstup předcházející morfologické analýzy, pokud je k dispozici (řekne, které značky přicházejí v úvahu na základě slovníku, tagger už pak vybírá pouze z nich).
Trénování
Skript train.pl
se volá velmi jednoduše: na standardním vstupu (popř. v souboru, jehož cestu dostane jako argument, pokud nějaký argument dostane) má anotovaný korpus, na standardní výstup posílá soubor s natrénovanými statistikami.
Formát vstupního souboru může být různý podle toho, pro jaký jazyk budete značkování řešit a odkud budou pocházet data. Trénovací data budou tokenizovaná, pro každé slovo (výskyt slovního tvaru) se dozvíte jeho ručně přiřazené lemma a značku. Volitelně se dozvíte také všechny kombinace lemma-značka, které pro dané slovo navrhl morfologický analyzátor (na základě slovníku, ale bez ohledu na kontext). Tuto informaci, pokud je k dispozici, potom můžete zohlednit ve statistickém modelu.
Dokumentace sady značek, která vám umožní dekódovat informace schované ve značkách, je na požádání k dispozici také. Jinak ale můžete se značkou zacházet jako s obecným řetězcem, který máte pro dané slovo vybrat z nějaké množiny.
Značkování
Skript tag.pl
se volá s volbou (option) -s cesta_k_souboru
, která mu řekne, odkud načíst natrénovaný statistický model. Ze standardního vstupu (popř. ze souboru, jehož cestu dostane jako argument, pokud po odebrání výše zmíněné cesty nějaký argument zbude) přečte tokenizovaný text, na standardní výstup pošle tentýž text s přidanými značkami a lemmaty.
Výstupní formát by měl být stejný jako u vašich trénovacích dat. Formát vstupního textu k označkování bude také analogický, akorát v něm budou chybět ručně přiřazená lemmata a značky. Můžou (ale nemusejí) v něm být kombinace lemmat a značek, které navrhl morfologický analyzátor; v tom případě byste je měli zohlednit.
Pokusy
Srovnejte úspěšnost svého taggeru s naivním taggerem a odpovězte si na obdobné otázky, jaké klade zadání úkolu s Brillovým taggerem.
Data a jazyky
Označkovaná data v tzv. Brillově formátu. Každá věta leží na samostatném řádku. Tokeny na řádku jsou oddělené mezerou. Token je ve formátu “slovo/značka”, přičemž ani slovo, ani značka neobsahuje ani lomítko, ani mezeru. V případě, že lomítko bylo součástí textu, je nahrazeno entitou “&slash;”; kvůli tomu je také znak “&” nahrazen entitou “&”.
Data obsahující navíc výstup morfologické analýzy jsou k dispozici pouze pro češtinu. Ta jsou pak uložena ve formátu CSTS, který je založen na SGML. Ve stručnosti, řádek může vypadat nějak takhle:
<f>slovníTvar<l>ručníLemma<t>ručníZnačka<MMl>lemmaZMorfAn1<MMt>značkaZMorfAn1...
Čeština
Pro přístup k datům je potřeba souhlasit s licenční smlouvou a odeslat registraci na http://ufal.mff.cuni.cz/corp-lic/pdt20-reg.html; do kolonky Optional information vyplňte “NPFL007.tag+trainmm”. O registraci bych se měl dozvědět a poslat vám odkaz na data.
Vysvětlivky k morfologickým značkám najdete např. na adrese http://ufal.mff.cuni.cz/pdt2.0/doc/manuals/en/m-layer/html/ch02s02s01.html, popř. též na http://quest.ms.mff.cuni.cz/cgi-bin/interset/index.pl?tagset=cs::pdt a http://quest.ms.mff.cuni.cz/cgi-bin/tagzplorer/index.pl?corpus=conll-2007-cs.
Švédština
Data pocházejí ze švédského korpusu Talbanken05, který je volně dostupný na webu.
stáhnout
Dánština
Data pocházejí z korpusu DDT (Danish Dependency Treebank), který je volně dostupný na webu.
stáhnout
Hindština
Hindská data mám k dispozici v takzvaném formátu CoNLL, který je přehlednější (anotace spadající pod pojem morfologická značka je tam rozsáhlejší než jinde). Data mají samostatnou licenci a zavazujete se, že je nebudete šířit dále. Pokud si zvolíte tuto úlohu, zeptejte se mne, jak se k datům dostat.
Další informace
Tento úkol (včetně zadání konkrétního jazyka) si můžete zarezervovat vyplněním formuláře na http://quest.ms.mff.cuni.cz/cgi-bin/zeman/zapoctaky/rezervace_ukolu.pl (pokud ještě není rozebrán).
Termín odevzdání e-mailem je konec listopadu, prezentace programu proběhne v prosinci.