[ 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:brilluv-tagger [2007/10/24 15:10]
zeman
user:zeman:brilluv-tagger [2007/11/11 08:57] (current)
zeman Trénování pravidel skončilo.
Line 24: Line 24:
 ===== Model neznámých slov ===== ===== Model neznámých slov =====
  
-Z označkovaného korpusu vyrobíme neoznačkovaný.+Z označkovaného korpusu vyrobíme neoznačkovaný a získáme z něj seznam slov.
  
-<code>cat pdt-train-*.brill | perl -pe 's-/[^ \r\n]*--g' > pdt-train.tok</code>+<code>cat pdt-train-*.brill | perl ../Utilities/tagged-to-untagged.prl > pdt-train.tok 
 +cat pdt-train.tok | perl ../Utilities/wordlist-make.prl | sort -k2 -rn | awk '{ print $1 }' > pdt.bigwordlist</code>
  
-<code>cat UNTAGGED-CORPUS | perl ../Utilities/wordlist-make.prl | sort +1 -rn | awk '{ print $1 }' > BIGWORDLIST</code>+Zjistíme nejčastější značku pro každé slovo. 
 + 
 +<code>cat pdt-train-1.brill | perl ../Utilities/word-tag-count.prl | sort -k3 -rn > pdt.smallwordtaglist</code> 
 + 
 +Získáme seznam všech dvojic slov (bigramů). 
 + 
 +<code>cat pdt-train.tok | perl ../Utilities/bigram-generate.prl | sort -k3 -rn | awk '{ print $1,$2 }' > pdt.bigbigramlist</code> 
 + 
 +Pustíme učení pravidel. Eric hlásí, že na Sparc 10 (někdy v roce 1994) nad anglickými daty (250000 slov z Penn Treebanku) to běželo 3 dny. Nejdříve vlézt do Erikova kódu a změnit práh ze 3 na 8 (Erikovo doporučení pro korpusy o více než 400000 slov): 
 + 
 +<code perl>$THRESHOLD = 8;</code> 
 + 
 +Trénování běželo na clusteru 17 dní, ale možná by bylo rychlejší, kdybych změnil algoritmus na přiřazování počáteční značky, viz níže. 
 + 
 +**Upozornění:** Chtělo by to ještě změnit (na několika místech, viz README) Erikův algoritmus na přiřazování počáteční značky. Eric zatím přiřazuje značky Penn Treebanku (začíná-li slovo velkým písmenem, je to vlastní jméno (''NNP''), jinak obyčejné podstatné jméno (''NN'')), které na datech z PDT nemohou uspět. Chtělo by to např. veškeré interpunkci dát ''Z:-------------'', všem číslům ''C=-------------'' a všemu ostatnímu třeba ''NNFS1-----A----''
 + 
 +<code>perl ../Learner_Code/unknown-lexical-learn.prl pdt.bigwordlist pdt.smallwordtaglist pdt.bigbigramlist \ 
 +    300 pdt.lexruleoutfile</code> 
 + 
 + 
 +===== Model kontextových pravidel ===== 
 + 
 +Vytvoříme dva slovníky značek ke slovům. První bude vyroben z poloviny trénovacích dat a bude se používat během trénování pravidel. Druhý bude vyroben ze všech trénovacích dat a bude se používat při ostrém nasazení již natrénovaného taggeru. 
 + 
 +<code>cat pdt-train-1.brill | perl ../Utilities/make-restricted-lexicon.prl > pdt.training.lexicon 
 +cat pdt-train-*.brill | perl ../Utilities/make-restricted-lexicon.prl > pdt.final.lexicon</code> 
 + 
 +Odznačkujeme si druhou část korpusu a zkusíme ji označkovat počátečním taggerem, to budeme potřebovat při trénování pravidel. Tagger nemůžeme spustit, dokud se nenatrénuje model neznámých slov. 
 + 
 +<code>cat pdt-train-2.brill | perl ../Utilities/tagged-to-untagged.prl > pdt-train-2.tok 
 +tagger pdt.training.lexicon pdt-train-2.tok pdt.bigbigramlist pdt.lexruleoutfile /dev/null -w bigwordlist -i pdt.dummy-tagged-corpus > /dev/null</code> 
 + 
 +Naučíme se kontextová pravidla. 
 + 
 +<code>contextual-rule-learn pdt-train-2.brill pdt.dummy-tagged-corpus pdt.context-rulefile pdt.training.lexicon</code>
  

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