sakharamg's picture
Uploading all files
158b61b
# -*- Makefile -*-
# This make module sets up the actual experiments
L1 = fr
L2 = en
tune-ref-ready = /fs/sif0/bhaddow/experiments/accept/symantec-baseline/tuning/reference.tc.18
eval-ref-ready = /fs/saxnot5/germann/accept/homophones/exp.new/evaluation/201201_devtest_b.reference.tok.1
crp_train = /fs/sif0/bhaddow/experiments/accept/symantec-baseline/training/corpus.19
ttable = /fs/sif0/bhaddow/experiments/accept/symantec-baseline/model/phrase-table.10
untuned_moses_ini = model/moses.ini.0
fixed-iweight = --activate-feature d_0,d_1,d_2,d_3,d_4,d_5,d_6,lm_0,w_0,tm_0,tm_1,tm_2,tm_3,tm_4
# list the evaluation metrics to be used for evaluation
# TO DO: list available metrics
eval-metrics = multi-bleu
moses-threads = 20
tuning-runs = $(shell seq 25)
# experiments.make: WSCHEMES = uniform unigram bigram bigram2
# experiments.make: DATASETS = tune eval
# experiments.make: PREPROC = baseline uniq multi
# experiments.make: CSETS = unfiltered filtered edited
experiments.make: WSCHEMES = bigram2
experiments.make: DATASETS = tune eval
experiments.make: PREPROC = baseline
experiments.make: CSETS = filtered
# remake experiments.make if this file changes
experiments.make: $(word $(words ${MAKEFILE_LIST}), ${MAKEFILE_LIST})
experiments.make:
mkdir $@.lock
echo $(call lockline) > $@.lock/owner
echo '# -*- Makefile -*-' > $@_
echo '# This file was automatically generated by setup-experiments.make.' >> $@_
echo 'experiments := ' >> $@_;
$(foreach p, ${PREPROC}, \
echo '# NEW EXPERIMENT #####################################' >> $@_; \
echo 'experiments += $p' >> $@_; \
echo 'ctr = $$(words $${experiments})' >> $@_; \
echo '$p: input-type = 0' >> $@_; \
echo '$p: eval-sets = $p.eval' >> $@_; \
echo '$p: tune-src = input/$p.tune.tc' >> $@_; \
echo '$p: tune-ref = ${tune-ref-ready}' >> $@_; \
echo '$p: $p.eval-src = input/$p.eval.tc' >> $@_; \
echo '$p: $p.eval-ref = ${eval-ref-ready}' >> $@_; \
echo '$p: evaluation/$${ctr}/report' >> $@_; \
echo >> $@_; \
echo 'evaluation/$p/%/$p.eval.output: input = input/$p.eval.tc' >> $@_; \
echo 'evaluation/$p/%/$p.eval.output: input/$p.eval.tc' >> $@_; \
echo $(if $(findstring ini,${tuned_moses_ini}), \
'evaluation/$${ctr}/$p.eval.output: ${tuned_moses_ini}', \
'evaluation/$${ctr}/$p.eval.output: tuning/$${ctr}/moses.tuned.ini') >> $@_; \
echo $(if $(findstring ini,${tuned_moses_ini}), \
'evaluation/$${ctr}/$p.eval.output: moses_ini := ${tuned_moses_ini}', \
'evaluation/$${ctr}/$p.eval.output: moses_ini := tuning/$${ctr}/moses.tuned.ini') >> $@_; \
echo 'evaluation/$${ctr}/$p.eval.multi-bleu: $${$p.eval-ref}' >> $@_; \
echo >> $@_;)
$(foreach c, ${CSETS}, \
$(foreach p, ${PREPROC}, \
$(foreach w, ${WSCHEMES}, \
echo '# NEW EXPERIMENT #####################################' >> $@_; \
echo 'experiments += $w-$c-$p' >> $@_; \
echo 'ctr = $$(words $${experiments})' >> $@_; \
echo '$w-$c-$p: input-type = 1' >> $@_; \
echo '$w-$c-$p: eval-sets = $w-$c-$p.eval' >> $@_; \
echo '$w-$c-$p: tune-src = input/$w-$c-$p.tune.cfn' >> $@_; \
echo '$w-$c-$p: tune-ref = ${tune-ref-ready}' >> $@_; \
echo '$w-$c-$p: $w-$c-$p.eval-src = input/$w-$c-$p.eval.cfn' >> $@_; \
echo '$w-$c-$p: $w-$c-$p.eval-ref = ${eval-ref-ready}' >> $@_; \
echo '$w-$c-$p: evaluation/$${ctr}/report' >> $@_; \
echo >> $@_; \
echo 'evaluation/$${ctr}/$w-$c-$p.eval.output: input = input/$w-$c-$p.eval.cfn' >> $@_; \
echo 'evaluation/$${ctr}/$w-$c-$p.eval.output: input/$w-$c-$p.eval.cfn' >> $@_; \
echo $(if $(findstring ini,${tuned_moses_ini}), \
'evaluation/$${ctr}/$w-$c-$p.eval.output: ${tuned_moses_ini}', \
'evaluation/$${ctr}/$w-$c-$p.eval.output: tuning/$${ctr}/moses.tuned.ini') >> $@_; \
echo $(if $(findstring ini,${tuned_moses_ini}), \
'evaluation/$${ctr}/$w-$c-$p.eval.output: moses_ini := ${tuned_moses_ini}', \
'evaluation/$${ctr}/$w-$c-$p.eval.output: moses_ini := tuning/$${ctr}/moses.tuned.ini') >> $@_; \
echo 'evaluation/$${ctr}/$w-$c-$p.eval.multi-bleu: $${$w-$c-$p.eval-ref}' >> $@_; \
echo >> $@_;\
$(foreach d, tune eval, \
echo 'cfn-targets += input/$w-$c-$p.$d.cfn' >> $@_; \
echo 'input/$w-$c-$p.$d.cfn: input/$p.$d.tc' >> $@_; \
printf '\t@mkdir [email protected]\n\t@echo $$(call lockline) > [email protected]/owner\n' >> $@_; \
printf '\tcreate-confusion-network.01.exe -q -w $w -s csets/csets.$c.txt -c ../mm/fr < $$< > $$@_ && mv $$@_ $$@\n' >> $@_;\
printf '\t@rm [email protected]/owner\n\t@rmdir [email protected]\n' >> $@_;))))
echo '.PHONY += $$(experiments) cfn' >> $@_
echo 'cfns: $${cfn-targets}' >> $@_
@mv $@_ $@
@rm $@.lock/owner
@rmdir $@.lock
# # echo 'ctr = $$(words $${experiments})' >> $@_; \
# echo 'eval-sets = $w-$c-$p.eval' >> $@_; \
# echo 'rx := $$(call report-prereqs,$${ctr},$${eval-sets})' >> $@_; \
# echo '$w-$c-$p: run-id := $${ctr}' >> $@_; \
# echo '$w-$c-$p: tune-input = input/$w-$c-$p.tune.cfn' >> $@_; \
# echo '$w-$c-$p: tune-src = input/$w-$c-$p.tune.cfn' >> $@_; \
# echo '$w-$c-$p: tune-ref = ${tune-ref-ready}' >> $@_; \
# echo '$w-$c-$p: $w-$c-$p.eval-src = input/$w-$c-$p.eval.cfn' >> $@_; \
# echo '$w-$c-$p: $w-$c-$p.eval-ref = ${eval-ref-ready}' >> $@_; \
# echo '$w-$c-$p: input-type = 1' >> $@_; \
# echo '$w-$c-$p: mert.options += $$(if $$(findstring uniform,$w),${fixed-iweight})' >> $@_; \
# echo '$w-$c-$p: evaluation/report.$${ctr}' >> $@_; \
# echo >> $@_; \
# echo 'evaluation/$w-$c-$p.eval.output.$${ctr}: input = input/$w-$c-$p.eval.cfn' >> $@_; \
# echo >> $@_; \
# $(foreach d, tune eval, \
# ofile=input/$w-$c-$p.$d.cfn; \
# ifile=input/$p.$d.tc; \
# echo "$$ofile: $$ifile" >> $@_ ; \
# printf '\t create-confusion-network.01.exe -w $w -s csets/cset.$c.txt -c ../mm/fr < $$< > $$@_ && mv $$@_ $$@\n' >> $@_ ; \
# echo >> $@_; ))))
# echo '.PHONY += $$(experiments)' >> $@_
# @mv $@_ $@
# @rm [email protected]/owner
# @rmdir [email protected]