Differences
This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
user:zeman:brilluv-tagger [2007/10/24 13:52] zeman vytvořeno |
user:zeman:brilluv-tagger [2007/11/11 08:57] (current) zeman Trénování pravidel skončilo. |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== Brillův tagger ====== | ====== Brillův tagger ====== | ||
- | < | + | < |
Potřebujeme trénovací korpus. Ten musí být tokenizovaný, | Potřebujeme trénovací korpus. Ten musí být tokenizovaný, | ||
Line 8: | Line 8: | ||
$PARSINGROOT/ | $PARSINGROOT/ | ||
- | Výsledkem je soubor o 68562 řádcích (větách). | + | Výsledkem je soubor o 68562 řádcích (větách). |
+ | |||
+ | < | ||
+ | |||
+ | Dále potřebujeme rozdělit trénovací data na 2 části. Z první části se budeme učit značky pro neznámá slova. Ze druhé se budeme učit kontextová pravidla pro náhradu značky u slova lepší značkou. | ||
+ | |||
+ | Pozor, Eric měl Perl v ''/ | ||
+ | |||
+ | < | ||
+ | perl ../ | ||
+ | |||
+ | Dělení korpusu je náhodné, ale se snahou, aby obě části byly přibližně stejně velké. Vyšlo mi 34221 vět v první části a 34341 ve druhé. Vzhledem k tomu, že původní korpus měl kolem miliónu slov, každá část by měla mít kolem 500000 slov. | ||
+ | |||
+ | |||
+ | ===== Model neznámých slov ===== | ||
+ | |||
+ | Z označkovaného korpusu vyrobíme neoznačkovaný a získáme z něj seznam slov. | ||
+ | |||
+ | < | ||
+ | cat pdt-train.tok | perl ../ | ||
+ | |||
+ | Zjistíme nejčastější značku pro každé slovo. | ||
+ | |||
+ | < | ||
+ | |||
+ | Získáme seznam všech dvojic slov (bigramů). | ||
+ | |||
+ | < | ||
+ | |||
+ | 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> | ||
+ | |||
+ | Trénování běželo na clusteru 17 dní, ale možná by bylo rychlejší, | ||
+ | |||
+ | **Upozornění: | ||
+ | |||
+ | < | ||
+ | 300 pdt.lexruleoutfile</ | ||
+ | |||
+ | |||
+ | ===== 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. | ||
+ | |||
+ | < | ||
+ | cat pdt-train-*.brill | perl ../ | ||
+ | |||
+ | 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. | ||
+ | |||
+ | < | ||
+ | tagger pdt.training.lexicon pdt-train-2.tok pdt.bigbigramlist pdt.lexruleoutfile /dev/null -w bigwordlist -i pdt.dummy-tagged-corpus > / | ||
+ | |||
+ | Naučíme se kontextová pravidla. | ||
+ | |||
+ | < |