[ 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
user:zeman:moses [2008/12/15 17:15]
zeman Zkopírován korpus EILMT.
user:zeman:moses [2009/11/16 14:00] (current)
zeman Workspace.
Line 2: Line 2:
  
 ===== Instalace ===== ===== Instalace =====
 +
 +**Ptica: pozor, toto je navod na stary moses_playground, novy lezi na [[https://svn.ms.mff.cuni.cz/projects/statmt/]]**
  
 <code bash>svn co https://svn.ms.mff.cuni.cz/svn/treedecode/moses_playground</code> <code bash>svn co https://svn.ms.mff.cuni.cz/svn/treedecode/moses_playground</code>
Line 27: Line 29:
  
 Nastavuju cesty ''PWD'' a ''WS'' na začátku Makefilu. ''PWD'' vede na právě vytvořený ''moses_playground'', ''WS'' je název právě vytvořeného pracovního prostoru ''workspace.20081215-1642''. Nastavuju cesty ''PWD'' a ''WS'' na začátku Makefilu. ''PWD'' vede na právě vytvořený ''moses_playground'', ''WS'' je název právě vytvořeného pracovního prostoru ''workspace.20081215-1642''.
- 
  
 ===== Příprava korpusů ===== ===== Příprava korpusů =====
Line 46: Line 47:
  
 Nějaké podsložky už tam jsou. Vytvářím novou ''enhi-dan'' a kopíruju do ní Ondrovy příklady souborů .gz a .info. Tím jsem získal kopii anglicko-hindského korpusu EILMT (7000 vět). Korpus je tokenizovaný a spárovaný po větách. Nějaké podsložky už tam jsou. Vytvářím novou ''enhi-dan'' a kopíruju do ní Ondrovy příklady souborů .gz a .info. Tím jsem získal kopii anglicko-hindského korpusu EILMT (7000 vět). Korpus je tokenizovaný a spárovaný po větách.
 +
 +**Před dalšími operacemi raději přepínám z tcsh do bashe, který používá Ondra.**
  
 <code bash>Pak nechas vyrobit alignment, bud rucne, nebo napr.: <code bash>Pak nechas vyrobit alignment, bud rucne, nebo napr.:
Line 59: Line 62:
 (Vystup viz napr. /a/merkur1/bojar/moses_icon08/augmented_corpora/icon-eilmt/lcstem4-lcstem4.gz) (Vystup viz napr. /a/merkur1/bojar/moses_icon08/augmented_corpora/icon-eilmt/lcstem4-lcstem4.gz)
  
-Princip je ten, ze pro kazdy korpus K maji vsechny soubory augmented_corpora/K/*.gz mit stejny pocet radek. Mohou mit ruzny pocet tokenu na radce.+Princip je ten, ze pro kazdy korpus K maji vsechny soubory augmented_corpora/K/*.gz 
 +mit stejny pocet radek. Mohou mit ruzny pocet tokenu na radce.</code>
  
-Pak je skript augment.pl, ktery podle navodu z daneho korpusu vyreze potrebne faktory, napr.:+Cíl ''align'' v příslušném Makefilu nevolá Hunalign, ale Gizu, takže už zřejmě nejde o párování vět, ale tokenů. O Hunalignu (párování vět) se tiše předpokládá, že jsme si ho pustili už dříve sami, nebo že jsme si párování vět zařídili nějak jinak. Viz Ondrova poznámka: paralelní korpusy, které jsme sem nakopírovali, už musí mít na obou stranách stejný počet řádek (= segmentů = vět). 
 + 
 +Pozor, tady už některé věci vyžadují úpravy, např. se tam přistupuje k ''~/diplomka'', čímž se ale má na mysli zřejmě ''/home/bojar/diplomka''. Taky se tam předpokládá existence příkazu ''qsubmit'', což je jednak Ondrova obálka na ''qsub'', kterou normální lidi nemají v cestě (velmi pravděpodobně je to tohle: ''~bojar/tools/shell/qsubmit''), jednak musíme ''make align'' volat z počítače, ze kterého lze odeslat výpočet na cluster (tedy z ''lrc''). 
 + 
 +Vyžaduje se také perlový modul ''File::NFSLock'', který normálně nemám v ''@INC'', takže asi není ve standardní ÚFALí distribuci Perlu. Zjistil jsem, že Ondra tuhle knihovnu má v ''/home/bojar/myperl/lib'' (kromě toho má ještě ''/home/bojar/perllib'', tam jsou nějaké další balíčky z CPANu). Protože normálně nepoužívám ''bash'', nedokázal jsem ho rychle přinutit, aby tuhle cestu standardně přidal do ''PERLLIB'' a ''PERL5LIB''. Nakonec jsem raději přidal na začátek ''augment.pl'' řádek ''use lib '/home/bojar/myperl/lib';''
 + 
 +<code bash>Pak je skript augment.pl, ktery podle navodu z daneho korpusu vyreze potrebne faktory, napr.:
  
 cd augmented_corpora cd augmented_corpora
 ./augment.pl icon-eilmt/hi+form+lcstem4 ./augment.pl icon-eilmt/hi+form+lcstem4
  
-Pozor: v soucasne dobe stale jeste nefunguji zamky v augment.pl a NFS je debilni. Muze se tedy stat, ze kdyz ma augment vyrobit nejakou novou kombinaci, ktera se sklada z take vyrabenych soucastek, tak se vyrobi neuplne gzipy!+Pozor: v soucasne dobe stale jeste nefunguji zamky v augment.pl a NFS je debilni. 
 +Muze se tedy stat, ze kdyz ma augment vyrobit nejakou novou kombinaci, 
 +ktera se sklada z take vyrabenych soucastek, tak se vyrobi neuplne gzipy!
  
-To byla priprava. :-)+To byla priprava. :-)</code>
  
 +Z tohohle to skoro vypadá, že se augment má pouštět před alignem, a ne až po něm. Z Makefilu je ale vidět, že se volání augmentu předává jako parametr alignu, který si ho zřejmě obsluhuje sám.
  
-Samotne pokusy pak pripravuji a spoustim takto:+===== Pouštění pokusů =====
  
-cd playground+<code bash>Samotne pokusy pak pripravuji a spoustim takto: 
 + 
 +cd moses_playground
 SRCCORP=icon-eilmt \ SRCCORP=icon-eilmt \
 SRCAUG=enR+lc \ SRCAUG=enR+lc \
Line 100: Line 115:
 Kdyz das RUN=yes, tak to i rovnou submitne. Kdyz das RUN=yes, tak to i rovnou submitne.
  
-Princip tech seeds je, ze seed je bashovy skript, ktery neco obratem pripravi, a zejmena pripravi bashovy skript 'command', no a make exp..run jen ten command spusti.+Princip tech seeds je, ze seed je bashovy skript, ktery neco obratem pripravi, 
 +a zejmena pripravi bashovy skript 'command', no a make exp..run jen ten command spusti.
  
 +Cili kdyz se nejaky experiment nedari spustit (nebo dokoncit)
 +vlezes do jeho adresare exp.NAZEV.TIMESTAMP, prostudujes ./command,
 +treba si ho spustis rucne atp.
  
-Cili kdyz se nejaky experiment nedari spustit (nebo dokoncit) vlezes do jeho adresare exp.NAZEV.TIMESTAMP, prostudujes ./command, treba si ho spustis rucne atp. +Snazim se o to, aby adresare experimentu obsahovaly uplne vsechny vstupy, 
- +proto hojne v priprave experimentu pouzivam /home/bojar/tools/shell/wiseln, 
-Snazim se o to, aby adresare experimentu obsahovaly uplne vsechny vstupy, proto hojne v priprave experimentu pouzivam /home/bojar/tools/shell/wiseln, ktery podle situace dela bud symlink, hardlink, nebo i kopii, a taky tam pripise md5 sumu, abych mohl i zpetne hlidat, ze jsem neco spoustel na tom, na cem jsem to spoustet chtel. +ktery podle situace dela bud symlink, hardlink, nebo i kopii, a taky tam 
 +pripise md5 sumu, abych mohl i zpetne hlidat, ze jsem neco spoustel na tom, 
 +na cem jsem to spoustet chtel.
  
 Postup pres experimenty je tento: Postup pres experimenty je tento:
Line 118: Line 138:
  
 Take byvalo make exp.align.prepare, ale to je ted zastarale. Take byvalo make exp.align.prepare, ale to je ted zastarale.
- 
  
 Nejspis se v tom ale nevyznas :-( Nejspis se v tom ale nevyznas :-(
-Dej mi vedet, kdybys zacal citit nejakou nadeji. </code>+Dej mi vedet, kdybys zacal citit nejakou nadeji.</code> 
 + 
 + 
 + 
 +===== Výroba jazykového modelu ===== 
 + 
 +Pokouším se použít výše popsaný Ondrův postup pro korpus ''enhi-dan''. Vynechávám Ondrův parametr ''wc10'' (shlukování na 10 slovních tříd; pro baseline výsledek ale nic takového nechci). Místo toho se zřejmě musí uvést ''form''. Nevím, co znamená ''ORDER=10'', ale když to vyhodím, make si stěžuje, že tam má být nastaven "lm order". Tím se myslí, kolika-gramový model se má vytvořit. 10 je tedy asi moc (sloužilo pro slovní třídy, ale pro celá slova bychom měli použít nižší číslo). Karthik použil pentagram. 
 + 
 +<code bash>CORP=enhi-dan \ 
 +CORPAUG=hi+form \ 
 +ORDER=5 \ 
 +RUN=yes \ 
 +make exp.lm.prepare</code> 
 + 
 +Neustále narážím na volání Ondrových nástrojů, které nemám v cestě (např. ''qsubmit'', ''makeargs'', ''mkdiruniq'', ''wiseln''). Pár jsem jich přepsal s plnou cestou, ale je toho moc. Tak si snad raději přidám do ''.bashrc'' rozšíření ''PATH'' o ''/home/bojar/tools/shell''. (Nestačí to nastavit ručně před pouštěním pokusů, protože výpočty se odesílají na cluster a tam běží nový bash s čistým prostředím.) 
 + 
 +Teď už se jazykový model vyrábí pěkně, ale vycházejí mi jiné (menší) počty n-gramů než Karthikovi. Takže by to chtělo dál pátrat, čím se od něj lišíme. Nejbližší další podezřelý je to kódování WX. 
 + 
 +===== Workspace ===== 
 + 
 +Nemám teď čas prolejzat nahoře, jestli už to tam není napsané, ale rychle si potřebuju poznamenat další Ondřejova moudra :-) 
 + 
 +//Asi jsem Ti to nikdy nevysvetloval. 'workspace' je podadresare moses_playground, ktery obsahuje zkompilovane vsechny nastroje. Ten adresar vznikne prikazem 'make workspace'. Zamerne ale vznika pod nazvem workspace.DATUM, aby joch mohlo byt vic. 
 + 
 +Pri uspesnem konci 'make workspace' na zaver napise neco jako: 
 + ... a vas novy workspace je workspace.2009-12-12-1212, poznamenejte 
 +     si to do souboru 'workspace' 
 + 
 +Cili clovek udela: 
 + 
 +echo workspace.2009-12-12-1212 > workspace 
 + 
 +A playground/Makefile (a nove i playground/augmented_corpora/Makefile) se timto souborem ridi pri startu novych experimentu. 
 + 
 +O.// 

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