Both sides previous revision
Previous revision
Next revision
|
Previous revision
Last revision
Both sides next revision
|
user:zeman:moses [2008/12/15 17:42] zeman qsubmit |
user:zeman:moses [2009/08/12 10:20] ptacek |
| |
===== 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> |
| |
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ů ===== |
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). | 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ě, jednak musíme ''make align'' volat z počítače, ze kterého lze odeslat výpočet na cluster (tedy z ''lrc''). | 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.: | <code bash>Pak je skript augment.pl, ktery podle navodu z daneho korpusu vyreze potrebne faktory, napr.: |
| |
To byla priprava. :-)</code> | 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. |
| |
===== Pouštění pokusů ===== | ===== Pouštění pokusů ===== |
<code bash>Samotne pokusy pak pripravuji a spoustim takto: | <code bash>Samotne pokusy pak pripravuji a spoustim takto: |
| |
cd playground | cd moses_playground |
SRCCORP=icon-eilmt \ | SRCCORP=icon-eilmt \ |
SRCAUG=enR+lc \ | SRCAUG=enR+lc \ |
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: |
| |
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. |