[ 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
Next revision Both sides next revision
user:zeman:deltacorpus [2016/05/10 20:09]
zeman
user:zeman:deltacorpus [2016/05/10 21:19]
zeman Plán nové verze Deltacorpusu.
Line 14: Line 14:
   * Místo HamleDTu 3.0 to celé vyzkoušet na Universal Dependencies 1.2, případně dokonce 1.3. Rovněž pokud možno před LRECem.   * Místo HamleDTu 3.0 to celé vyzkoušet na Universal Dependencies 1.2, případně dokonce 1.3. Rovněž pokud možno před LRECem.
   * Posunout se k parsingu (nový článek na PACLIC).   * Posunout se k parsingu (nový článek na PACLIC).
 +
 +===== Deltacorpus =====
 +
 +Verze 1.0 (2016-03-17) obsahuje 107 jazyků vybraných z W2C. V každém je první milión tokenů (nebo méně, pokud jich W2C neobsahuje milión). Všechny jsou označkované stejným modelem, a to tím, který se při našich pokusech choval v průměru nejlépe: klasifikátor SVM se 17 rysy natrénovaný na směsi c7, tedy na bulharštině, katalánštině, němčině, řečtině, hindštině, maďarštině a turečtině; z trénovacích dat každého z těchto jazyků jsme použili prvních 50000 tokenů.
 +
 +Více než polovina jazyků v Deltacorpusu je indoevropských, a z nich velké skupiny tvoří jazyky baltoslovanské, germánské a románské. Takže první, co chceme změnit, je alternativní mix trénovacích jazyků pro tyto cílové skupiny. Pokud budeme vybírat jen z těch jazyků HamleDTa, které už jsme použili pro trénování v minulosti, tak máme:
 +  * Pro baltoslovanské jazyky bulharštinu, češtinu a ruštinu.
 +  * Pro germánské jazyky němčinu, angličtinu a švédštinu.
 +  * Pro románské jazyky katalánštinu, italštinu a portugalštinu.
 +  * Lze ještě uvažovat o tom, že
 +    * pro ostatní indoevropské jazyky, pro semitské jazyky, svahilštinu a také pro všechny umělé jazyky použijeme směs indoevropských jazyků, tj. z původního c7 vyhodíme maďarštinu a turečtinu a nahradíme je třeba češtinou a portugalštinou;
 +    * pro aglutinační jazyky (uralské, turkické, altajské, drávidské, gruzínštinu a baskičtinu) z původního c7 určitě necháme maďarštinu a turečtinu; více podobných jazyků pro trénování nemáme, ale mohli bychom snížit vliv jazyků s chudší morfologií, tj. např. přidat češtinu, ruštinu a švédštinu a naopak vyhodit bulharštinu, katalánštinu a hindštinu;
 +    * zbývající jazyky (nevarština, vietnamština a austronéské jazyky) ponecháme pod c7, protože toho o nich neumíme mnoho říct a hlavně nemáme trénovací jazyk, o kterém předpokládáme, že je jim podobný.
 +
 +Tyhle nové trénovací směsi bychom samozřejmě měli opět vyhodnotit na testovacích jazycích, které máme k dispozici. V článku bylo 19 testovacích jazyků, ale vynechal bych bengálštinu a telugštinu, kde v podstatě nemáme povrchové věty.
 +
 +===== Obecné poznámky =====
 +
 +Zhiweiův kód je v Pythonu a používá jeden nestandardní modul, ''regex''. Lze ho doinstalovat pomocí pythonovského nástroje ''pip''; ten lze zase nainstalovat jako balíček pro Ubuntu. Při instalaci pipem lze přidat volbu ''--user'', která způsobí, že modul se nainstaluje do domovské složky aktuálního uživatele, nevyžaduje tedy přístup do systémových oblastí disku.
  
 ===== Jak spočítat hodnoty rysů ===== ===== Jak spočítat hodnoty rysů =====
  
 Rysy se získávají z velkého neanotovaného korpusu, v našem případě typicky z W2C. Výstupem je slovník, který pro každé slovo (typ) dodá hodnoty rysů. Na základě tohoto slovníku můžeme převést libovolný nový text daného jazyka na posloupnost struktur rysů. Některá slova budou OOV a nedostanou žádné rysy. Alternativně bychom je mohli přilepit k W2C a spočítat rysy i s nimi, ale to by bylo náročné. Rysy se získávají z velkého neanotovaného korpusu, v našem případě typicky z W2C. Výstupem je slovník, který pro každé slovo (typ) dodá hodnoty rysů. Na základě tohoto slovníku můžeme převést libovolný nový text daného jazyka na posloupnost struktur rysů. Některá slova budou OOV a nedostanou žádné rysy. Alternativně bychom je mohli přilepit k W2C a spočítat rysy i s nimi, ale to by bylo náročné.
 +
 +===== Jak natrénovat a pustit tagger =====
 +
 +Zhiwei dělal obojí v jednom kroku. Prošel trénovací data, natrénoval klasifikátor, nikam ho neukládal a hned ho aplikoval na testovací data. Klasifikátorů měl několik různých (např. SVM nebo KNN), ale žádný z nich nebral v úvahu kontext. Klasickým taggerům posloupností se to tedy moc nepodobalo. Slova by mohla být klidně seřazená abecedně jako ve slovníku a každé by dostalo právě jednu značku.

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