[ 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 Both sides next revision
user:zeman:rizeni-pokusu-pomoci-makefilu [2009/10/20 08:27]
zeman MD-make.
user:zeman:rizeni-pokusu-pomoci-makefilu [2009/10/20 08:36]
zeman .md.fix
Line 56: Line 56:
   * 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)
 +
  
 ===== mdmake ===== ===== mdmake =====
Line 64: Line 65:
   * Vyjmenovat proměnné, které obsahují hodnoty v jednotlivých rozměrech. Současně dát najevo, jak se z nich poskládá jméno souboru. (Mezery se umažou, jsou tam proto, aby se poznalo, který oddělovač se má vynechat, když nějaký rozměr zcela chybí. Povolené oddělovače jsou lomítko, pomlčka a tečka.)   * Vyjmenovat proměnné, které obsahují hodnoty v jednotlivých rozměrech. Současně dát najevo, jak se z nich poskládá jméno souboru. (Mezery se umažou, jsou tam proto, aby se poznalo, který oddělovač se má vynechat, když nějaký rozměr zcela chybí. Povolené oddělovače jsou lomítko, pomlčka a tečka.)
 <code>.MDIMS: LANGUAGES/ DE TRAINTEST -PREPROCESSINGS .STATES</code> <code>.MDIMS: LANGUAGES/ DE TRAINTEST -PREPROCESSINGS .STATES</code>
-    * Oddělovače nejsou povinné, ale MD-make zkontroluje, zda kvůli chybějícím oddělovačům nemůžou vzniknout nejednoznačnosti (např. LANGUAGES = hi him, DOMAINS = mix ix, .MDIMS: LANGUAGES DOMAINS by způsobovalo problémy).+  * Oddělovače nejsou povinné, ale MD-make zkontroluje, zda kvůli chybějícím oddělovačům nemůžou vzniknout nejednoznačnosti (např. LANGUAGES = hi him, DOMAINS = mix ix, .MDIMS: LANGUAGES DOMAINS by způsobovalo problémy).
   * Poslední rozměr v&nbsp;seznamu rozměrů má výlučné postavení. Nemusí se jmenovat STATES a nemusí být oddělen právě tečkou (i když se to doporučuje - v&nbsp;některých operačních systémech je vhodné, když má jméno souboru příponu, která definuje typ obsahu), ale nicméně hodnota v&nbsp;tomto rozměru se považuje za typ souboru, ze kterého mj. vyplývá, v&nbsp;jakých ostatních rozměrech se soubory tohoto typu pohybují. MD-make si to přečte u pravidla, které soubory tohoto typu generuje jako svůj cíl. Takové pravidlo musí být alespoň jedno pro každý typ. Teoreticky jich může být i více, pokud chceme dělat něco jiného třeba pro jednotlivé jazyky. V&nbsp;tom případě všechna taková pravidla musí uvádět shodný seznam rozměrů cíle. Nemusí ale dohromady pokrývat všechny hodnoty všech těchto rozměrů.   * Poslední rozměr v&nbsp;seznamu rozměrů má výlučné postavení. Nemusí se jmenovat STATES a nemusí být oddělen právě tečkou (i když se to doporučuje - v&nbsp;některých operačních systémech je vhodné, když má jméno souboru příponu, která definuje typ obsahu), ale nicméně hodnota v&nbsp;tomto rozměru se považuje za typ souboru, ze kterého mj. vyplývá, v&nbsp;jakých ostatních rozměrech se soubory tohoto typu pohybují. MD-make si to přečte u pravidla, které soubory tohoto typu generuje jako svůj cíl. Takové pravidlo musí být alespoň jedno pro každý typ. Teoreticky jich může být i více, pokud chceme dělat něco jiného třeba pro jednotlivé jazyky. V&nbsp;tom případě všechna taková pravidla musí uvádět shodný seznam rozměrů cíle. Nemusí ale dohromady pokrývat všechny hodnoty všech těchto rozměrů.
   * Příslušné proměnné s&nbsp;hodnotami jednotlivých rozměrů musí být obyčejné proměnné, obsahující seznam slov oddělených mezerami. MD-make v&nbsp;nich nehledá odkazy na jiné proměnné nebo dokonce makra. Pokud v&nbsp;nich narazí na dolar, hodí výjimku a odmítne pokračovat. Tyto proměnné zůstanou viditelné i ve vygenerovaném makefilu.   * Příslušné proměnné s&nbsp;hodnotami jednotlivých rozměrů musí být obyčejné proměnné, obsahující seznam slov oddělených mezerami. MD-make v&nbsp;nich nehledá odkazy na jiné proměnné nebo dokonce makra. Pokud v&nbsp;nich narazí na dolar, hodí výjimku a odmítne pokračovat. Tyto proměnné zůstanou viditelné i ve vygenerovaném makefilu.
Line 73: Line 74:
     * 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&nbsp;něj, v&nbsp;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&nbsp;něj, v&nbsp;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 ''$*''.
-<code>.MDRULE+<code>.MDRULE # asi zbytečné, plyne z výskytu .md.for níže
 %.mst.conll: %.blind.conll %.mst $(TOOLDIR)/runmst.pl %.mst.conll: %.blind.conll %.mst $(TOOLDIR)/runmst.pl
 .md.for: LANGUAGES DE PREPROCESSINGS .md.for: LANGUAGES DE PREPROCESSINGS
-.md.iff: .blind.conll.TRAINTEST = test+.md.fix: TRAINTEST = test 
 +.md.iff: .blind.conll.TRAINTEST = test # tady zbytečné, plyne už z .md.fix
         $(TOOLDIR)/runmst.pl -m $(*2) < $< > $@</code>         $(TOOLDIR)/runmst.pl -m $(*2) < $< > $@</code>
   * Je možné definovat vstupní soubory. Ty typicky leží úplně v&nbsp;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&nbsp;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&nbsp;daném stavu (hodnota posledního rozměru) má mít.   * Je možné definovat vstupní soubory. Ty typicky leží úplně v&nbsp;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&nbsp;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&nbsp;daném stavu (hodnota posledního rozměru) má mít.

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