Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
user:zeman:giza [2009/06/02 11:34] zeman Lowercasing. |
user:zeman:giza [2009/06/03 18:48] (current) zeman Příprava dat přesunuta na samostatnou stránku. |
||
---|---|---|---|
Line 24: | Line 24: | ||
===== Příprava dat ===== | ===== Příprava dat ===== | ||
- | Pro přípravu dat potřebujeme některé skripty, které jsou přibalené např. k Mosesovi, nebo je můžeme nahradit svými vlastními: | + | Viz [[Příprava paralelního korpusu|zde]]. |
- | * Tokenizace trénovacích dat (zdrojový i cílový jazyk) | + | |
- | * " | + | |
- | * Odstranění dlouhých vět (např. delších než 40 tokenů). Není to nezbytné, a pokud máme málo dat, možná ani žádoucí, ale Gize trvá neúměrně dlouho, když má pracovat s dlouhými větami. Pozor, pokud je věta dlouhá jen v jednom z jazyků, musíme ji samozřejmě odstranit nebo ponechat v obou. | + | |
- | Následující příklady jsou přímo z práce s hindštinou (TIDES). Převádění velkých písmen na malá by pravděpodobně stačilo provést pro angličtinu (hindština velká a malá písmena nerozlišuje), | + | ===== Volání Gizy ===== |
- | <code>cd / | + | Než zavoláme Gizu, musíme mít z nějakého důvodu hotový [[SRILM|jazykový model]]<nowiki>!</nowiki> |
- | cp $DATA/ | + | |
- | cp $DATA/ | + | |
- | $MOSES/ | + | |
- | $MOSES/ | + | |
+ | Pro konkrétní pokusy s hindštinou už mám upravené volání Gizy++ nachystané ve skriptu '' | ||
+ | |||
+ | Moses obsahuje skript, který hezky obaluje volání mkcls a Gizy++ a generuje frázové a přeskládávací tabulky, které potřebuje dekodér. Volá se takhle (pozor, cesta k jazykovému modelu musí být **absolutní**): | ||
+ | |||
+ | < | ||
+ | -scripts-root-dir $MOSES/ | ||
+ | -root-dir . \ | ||
+ | -corpus ./ | ||
+ | -alignment grow-diag-final-and \ | ||
+ | -reordering msd-bidirectional-fe \ | ||
+ | -lm 0: | ||
+ | >& training.out & | ||
+ | </ | ||
+ | |||
+ | Uvedený skript se mi zasekl krátce před vytvořením vlastního symetrického párování, | ||
+ | |||
+ | Uvedený trénovací skript Mosese má na starosti mnohem více úkonů než jen volání Gizy. Úkony jsou rozdělené do kroků a můžeme provést jen některé kroky. Kroky jsou následující: | ||
+ | |||
+ | - prepare() - pracuje s faktory, nahrazuje slova v korpusu číselnými odkazy do slovníku, volá '' | ||
+ | - run_giza() - pustí paralelně 2 alignovací procesy, ze zdroje na cíl a z cíle na zdroj | ||
+ | - word_align() - zkombinuje výsledky obou Giz, aby získal jedno slovní párování. Volá '' | ||
+ | - get_lexical_factored() | ||
+ | - extract_phrase_factored() | ||
+ | - score_phrase_factored() | ||
+ | - get_reordering_factored() | ||
+ | - get_generation_factored() | ||
+ | - create_ini() | ||
+ | |||
+ | Pokud to děláme kvůli Joshuovi, potřebujeme pustit jen prvních pár kroků. | ||
+ | |||
+ | **Pozor!** Jestliže pustíme Gizu opakovaně ve stejné složce, bude mít tendenci využít staré mezisoubory a nevytvářet je znova, aby ušetřila čas. To ale není vždy žádoucí! Jestliže jsme např. měli vedle sebe dvě verze korpusu, train.lowercased (50000 vět na každé straně) a train.clean (podmnožina 42737 vět na každé straně), nejdříve jsme pustili Gizu na train.lowercased a pak jsme si vzpomněli, že jsme vlastně chtěli train.clean, |