Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
user:zeman:deltacorpus [2016/05/10 20:09] zeman |
user:zeman:deltacorpus [2016/06/30 08:46] (current) zeman |
||
---|---|---|---|
Line 2: | Line 2: | ||
Delexicalized tagging and parsing. | Delexicalized tagging and parsing. | ||
+ | |||
+ | https:// | ||
Cesty na disku: | Cesty na disku: | ||
Line 11: | Line 13: | ||
===== TODO ===== | ===== TODO ===== | ||
- | * Kromě '' | + | * Posunout se k parsingu (nový článek na PACLIC, odložený deadline 12.6.2016). |
- | * 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. | + | * U parsingu se zatím musíme držet UD 1.2 a nemůžeme přejít na UD 1.3, pokud si sami nenatrénujeme UDPIPE na 1.3. Potřebujeme se umět srovnat s parsingem nad značkami predikovanými supervizovaným modelem, a takové značky máme od Milana k dispozici pro UD 1.2. (Dělal to stylem 9+1 dílů, takže mohl označkovat trénovací i testovací data modelem, který nebyl přímo |
- | * Posunout | + | * Trénovací i testovací treebank obsahuje deltaznačky, žádné rysy, žádná slova ani lemmata. |
+ | * Pro každý jazyk je třeba rozhodnout, kterému deltamodelu věříme. A samozřejmě potřebujeme vždy takovou modifikaci, aby trénovací data deltamodelu neobsahovala dotyčný jazyk. Na tom už se pracuje. c7 pro všechny už jsem vyzkoušel | ||
+ | * I u parsingu | ||
+ | * Zkusit delexikalizovaný parsing bez jazykově závislých relací, tj. vyhodit dvojtečku a vše za ní. Měříme sice UAS, ale nějakou roli to může hrát při trénování. | ||
+ | * Zkusit delexikalizovaný parsing zcela bez rysů. U deltaznaček už to tak máme, ale u Milanem predikovaných a u zlatých dat ještě ne. | ||
+ | * Technická delexikalizace: | ||
+ | * K delexikalizovanému parsingu na deltaznačkách přidat ty jazykově nezávislé meta-rysy, třeba | ||
+ | * Tagger, který má k dispozici 50 nejčastějších slov rozhodnutých ručně | ||
+ | * Bude-li to vypadat smysluplně, | ||
+ | * Srovnat se s rychloanotací cílového jazyka. Třeba 20 vět, lexikalizovaných, | ||
+ | * Obdobně je zajímavá rychloanotace u značek, viz Cucerzan and Yarowsky 2002. Vybrat 100 nejčastějších slov, dát jim značky. | ||
+ | * Článek: | ||
+ | * Citovat Loganathana (použil delex na indické jazyky). | ||
+ | * Citovat Teresu Lynn (použila to přímo k urychlení tvorby irského treebanku). | ||
+ | * Citovat Rudu Rosu (algoritmus výběru vhodného zdrojového jazyka; váhy v MST parseru). | ||
+ | * Vůbec by neškodilo vyhodnotit to na více parserech. Nebo alespoň přidat nivreeager + liblinear, je to rychlé. | ||
+ | * Analýza chyb (u deltaznaček zopakovat, protože máme nová data; u delparsingu jsme ji zatím nedělali). | ||
+ | |||
+ | ===== 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ě, | ||
+ | |||
+ | Více než polovina jazyků v Deltacorpusu je indoevropských, | ||
+ | * Pro baltoslovanské jazyky bulharštinu, | ||
+ | * Pro germánské jazyky němčinu, angličtinu a švédštinu. | ||
+ | * Pro románské jazyky katalánš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é, | ||
+ | * zbývající jazyky (nevarština, | ||
+ | |||
+ | 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, | ||
+ | |||
+ | ===== Obecné poznámky ===== | ||
+ | |||
+ | Zhiweiův kód je v Pythonu a používá jeden nestandardní modul, '' | ||
===== 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, |