Both sides previous revision
Previous revision
Next revision
|
Previous revision
Next revision
Both sides next revision
|
user:zeman:rizeni-pokusu-pomoci-makefilu [2009/10/20 22:00] zeman qmake |
user:zeman:rizeni-pokusu-pomoci-makefilu [2009/11/24 17:18] zeman Už se nám to vybarvuje... |
* Velikost trénovacích dat pro křivku učení | * Velikost trénovacích dat pro křivku učení |
* Různá nastavení parseru a dalších nástrojů, různá předzpracování dat (např. převedení morfologických značek do sady PDT) | * Různá nastavení parseru a dalších nástrojů, různá předzpracování dat (např. převedení morfologických značek do sady PDT) |
| |
| |
| |
| |
* Jaké jsou podmínky na hodnoty v jednotlivých rozměrech. (Standardně pomocí direktivy ''.md.if'', ale nějak zařídit, aby se podmínka pro rozměr ''.STATES'' (resp. poslední rozměr v seznamu) mohla defaultně vyjádřit přímo v pravidle. | * Jaké jsou podmínky na hodnoty v jednotlivých rozměrech. (Standardně pomocí direktivy ''.md.if'', ale nějak zařídit, aby se podmínka pro rozměr ''.STATES'' (resp. poslední rozměr v seznamu) mohla defaultně vyjádřit přímo v pravidle. |
* MD-make rozgeneruje multidimenzionální pravidlo na řadu obyčejných pravidel, ve kterých se vystřídají všechny kombinace hodnot ve všech zúčastněných rozměrech. Tato pravidla už nejsou šablonovitá, takže nehrozí, že gnu make potom narazí na cyklické závislosti nebo jiné problémy. | * MD-make rozgeneruje multidimenzionální pravidlo na řadu obyčejných pravidel, ve kterých se vystřídají všechny kombinace hodnot ve všech zúčastněných rozměrech. Tato pravidla už nejsou šablonovitá, takže nehrozí, že gnu make potom narazí na cyklické závislosti nebo jiné problémy. |
* Uvnitř příkazů lze použít nové proměnné ''$(*1)'', resp. místo jedničky jiné číslo, pro n-tou závislost. MD-make si najde pravidlo, kterým tato závislost vzniká, zjistí si z něj, v jakých rozměrech se pohybuje, a podle toho zkonstruuje jméno příslušného souboru, které na dané místo vloží. Totéž provede pro ''$<'' a ''$^'', avšak ignoruje ''$*''. | * Uvnitř příkazů lze použít nové proměnné ''$(*1)'', resp. místo jedničky jiné číslo, pro n-tou závislost. MD-make si najde pravidlo, kterým tato závislost vzniká, zjistí si z něj, v jakých rozměrech se pohybuje, a podle toho zkonstruuje jméno příslušného souboru, které na dané místo vloží. Beze změny ponechá ''$<'' a ''$^'', které budou fungovat samy od sebe, avšak pozor na ''$*'', které v MD pravidlech (na rozdíl od obyčejných šablonovitých pravidel) nemá smysl. |
<code>.MDRULE # asi zbytečné, plyne z výskytu .md.for níže | * MD pravidlo končí povinně prázdným řádkem (dokonce i na konci souboru). |
%.mst.conll: %.blind.conll %.mst $(TOOLDIR)/runmst.pl | * Není-li uveden parametr ''.md.for'', pravidlo se rozgeneruje pro všechny známé rozměry kromě posledního (u nás ''STATES'', ale může se jmenovat i jinak). |
| |
| <code>.MDRULE |
| .md.rul mst.conll < blind.conll mst |
| .md.dep $(TOOLDIR)/runmst.pl |
.md.for: LANGUAGES DE PREPROCESSINGS | .md.for: LANGUAGES DE PREPROCESSINGS |
.md.fix: TRAINTEST = test | .md.fix: TRAINTEST = test |
.md.iff: .blind.conll.TRAINTEST = test # tady zbytečné, plyne už z .md.fix | .md.iff: .blind.conll.TRAINTEST = test # tady zbytečné, plyne už z .md.fix |
| @echo Running MST for language $(*LANGUAGES): |
$(TOOLDIR)/runmst.pl -m $(*2) < $< > $@</code> | $(TOOLDIR)/runmst.pl -m $(*2) < $< > $@</code> |
| |
* Je možné definovat vstupní soubory. Ty typicky leží úplně v jiné cestě, nebo se alespoň jmenují tak, aby se nepletly se soubory pojmenovanými pomocí hodnot rozměrů, a nehrozilo tudíž jejich smazání makem. Můžeme popsat jejich vlastnosti v jednotlivých rozměrech prostě tak, že vytvoříme obyčejné pravidlo, kde dotyčný vstupní soubor bude jako závislost, zatímco cíl bude soubor pojmenovaný příslušnými hodnotami rozměrů. Před pravidlo připíšeme ''.md.in:''. MD-make pak doplní příkaz pro zkopírování závislosti do cíle (''cp $< $@'') a navíc zkontroluje, že cílový soubor má hodnoty všech rozměrů, které soubor v daném stavu (hodnota posledního rozměru) má mít. | * Je možné definovat vstupní soubory. Ty typicky leží úplně v jiné cestě, nebo se alespoň jmenují tak, aby se nepletly se soubory pojmenovanými pomocí hodnot rozměrů, a nehrozilo tudíž jejich smazání makem. Můžeme popsat jejich vlastnosti v jednotlivých rozměrech prostě tak, že vytvoříme obyčejné pravidlo, kde dotyčný vstupní soubor bude jako závislost, zatímco cíl bude soubor pojmenovaný příslušnými hodnotami rozměrů. Před pravidlo připíšeme ''.md.in:''. MD-make pak doplní příkaz pro zkopírování závislosti do cíle (''cp $< $@'') a navíc zkontroluje, že cílový soubor má hodnoty všech rozměrů, které soubor v daném stavu (hodnota posledního rozměru) má mít. |
* Vygenerovaný makefile by navíc mohl obsahovat pro každou hodnotu každého rozměru seznam souborů, v nichž je tato hodnota zafixovaná. Např. všechny cílové soubory v jazyce "hi". Kromě proměnné obsahující jména těchto souborů (HIFILES) by vygenerovaný makefile obsahoval cíl, který všechny tyto soubory vyrobí (hi), a cíl, který je smaže (clean_hi). | * Vygenerovaný makefile by navíc mohl obsahovat pro každou hodnotu každého rozměru seznam souborů, v nichž je tato hodnota zafixovaná. Např. všechny cílové soubory v jazyce "hi". Kromě proměnné obsahující jména těchto souborů (HIFILES) by vygenerovaný makefile obsahoval cíl, který všechny tyto soubory vyrobí (hi), a cíl, který je smaže (clean_hi). |