[ 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
user:zeman:ukoly:hmm-tagger [2007/11/07 23:40]
zeman vytvořeno
user:zeman:ukoly:hmm-tagger [2013/10/08 08:11] (current)
zeman quest
Line 1: Line 1:
 ====== Morfologické značkování ====== ====== Morfologické značkování ======
 +{{template>spolecne}}
  
-Napište dva programy v Perlutrénovací testovacíPrvní se učí značkovat a naučené znalosti ukládá na diskdruhý značkuje.+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é další informace o jednom slovuPrakticky 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, číslopá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//.
  
-Pro trénování edpokládejte, že máte k dispozici korpus s vyznačenými hranicemi slov vět, kde ke každému slovu je uvedeno jednak jeho správné lemma a značkajednak všechny ostatní dvojice lemma-značka, které pro toto slovo připouští morfologická analýza (slovník).+//Tagger// (značkovač) je program, jehož úkolem je 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ž 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ý modelz 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 korpusuve kterém už někdo vyznačil správné značky ručně.
  
-Pro testování přepokládejte, že máte k dispozici jiný korpusve kterém z výšuvedených informací chybí určení správné dvojice lemma-značka; ostatní informace jsou k dispoziciMáte za úkol vybrat správnou dvojici lemma-značka.+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ímPodrobnosti se dozvíte na přednášce o [[http://ufal.mff.cuni.cz/~zeman/vyuka/podklady/pzpj10-znackovani.pdf|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. 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 [[Brillův tagger|Brillovým taggerem]]. Srovnejte úspěšnost svého taggeru s naivním taggerem a odpovězte si na obdobné otázky, jaké klade zadání úkolu s [[Brillův tagger|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át csts|formátu CSTS]], který je založen na SGML. Ve stručnosti, řádek může vypadat nějak takhle:
 +
 +<code xml><f>slovníTvar<l>ručníLemma<t>ručníZnačka<MMl>lemmaZMorfAn1<MMt>značkaZMorfAn1...</code>
 +
 +==== Č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.
 +{{user:zeman:ukoly:sv.tag.zip|stáhnout}}
 +
 +==== Dánština ====
 +
 +Data pocházejí z korpusu DDT (Danish Dependency Treebank), který je volně dostupný na webu.
 +{{user:zeman:ukoly:da.tag.zip|stáhnout}}
 +
 +==== Hindština ====
 +
 +Hindská data mám k&nbsp;dispozici v&nbsp;takzvaném [[:format-conll|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&nbsp;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.
  

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