[ 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
Next revision Both sides next revision
user:zeman:deltacorpus [2016/05/10 18:48]
zeman created
user:zeman:deltacorpus [2016/05/10 21:19]
zeman Plán nové verze Deltacorpusu.
Line 6: Line 6:
   * ''/home/zhiwai/pos'' ... zde zůstal Zhiweiův kód   * ''/home/zhiwai/pos'' ... zde zůstal Zhiweiův kód
   * ''/home/marecek/listr/delex_pos'' ... zde to dále rozvíjí David   * ''/home/marecek/listr/delex_pos'' ... zde to dále rozvíjí David
 +    * ''/home/marecek/listr/ud_delex_pos'' ... vylepšené makefily a data z Universal Dependencies 1.2
   * ''/net/work/people/zeman/delextag'' ... zde to dále rozvíjí Dan   * ''/net/work/people/zeman/delextag'' ... zde to dále rozvíjí Dan
  
Line 13: 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 struktury 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 ]