sakharamg's picture
Uploading all files
158b61b
# -*- Makefile -*-
# some variables need to be set before m4m modules are included
.SECONDARY:
MOSES_ROOT = ${HOME}/code/moses/master/mosesdecoder
MGIZA_ROOT = ${HOME}/tools/mgiza
fast_align = ${HOME}/bin/fast_align
# L1: source language; L2: target language
L1 = de
L2 = en
WDIR = $(CURDIR)
include ${MOSES_ROOT}/contrib/m4m/modules/m4m.m4m
# both systems use the same language model
L2raw := $(wildcard ${WDIR}/crp/trn/*/raw/*.${L2}.gz)
L2data := $(subst /raw/,/cased/,${L2raw})
lm.order = 5
lm.factor = 0
lm.lazy = 1
lm.file = ${WDIR}/lm/${L2}.5-grams.kenlm
${lm.file}: | $(L2data)
$(eval $(call add_kenlm,${lm.file},${lm.order},${lm.factor},${lm.lazy}))
.INTERMEDIATE: ${L2data}
dmodels = wbe-mslr-bidirectional-fe-allff
mysystem = systems/${word-alignment}-aligned
myptable = model/tm/${aligner}.${L1}-${L2}
mydtable = model/dm/${aligner}.${L1}-${L2}
wa ?= $(error wa not specified on command line)
SYSTEMS :=
aligner :=
$(foreach a,${wa},\
$(eval aligner:=${a});\
$(eval $(clear-ptables));\
$(eval $(clear-dtables));\
$(eval SYSTEMS+=systems/${a}-aligned);\
$(eval $(call add_binary_phrase_table,0,0,4,$${myptable}));\
$(eval $(call add_binary_reordering_table,0,0,8,\
${dmodels},$${mydtable},$${myptable}));\
$(eval $(call create_moses_ini,$${mysystem})))
aln: $(foreach a,${wa},${WDIR}/crp/trn/aln/$a/${L1}-${L2}.symal.gz)
info:
dtable: ${DTABLES}
ptable: ${PTABLES}
system: $(addsuffix /moses.ini.0,${SYSTEMS})
eval: ${EVALUATIONS}
ifdef tune.runs
TUNED_SYSTEMS :=
EVALUATIONS :=
$(eval $(tune_all_systems))
$(eval $(bleu_score_all_systems))
tune: ${TUNED_SYSTEMS}
echo TUNED ${TUNED_SYSTEMS}
all: ${EVALUATIONS}
else
tune: all
# The recursive calls below make sure that tuning runs happen sequentially
# (moses runs multi-threaded anyway). The reason is that we may want to have
# first results as soon as possible.
tune.runs := 1 1
$(info TUNE RUNS ${tune.runs})
all:
$(foreach n,$(shell seq ${tune.runs}),\
${MAKE} -f $(word 1, ${MAKEFILE_LIST}) \
tune.runs="$n $n" ${MAKECMDGOALS} -${MAKEFLAGS})
endif
.PHONY: $(addprefix reset-,lm tm dm all aln tune eval systems)
reset-aln: reset-mm
-rm -rf $(foreach a,${wa},crp/trn/aln/${a})
reset-mm: reset-dm reset-tm
-rm -rf $(foreach a,${wa},crp/trn/mm/${a})
reset-dm: reset-systems
-rm -rf $(foreach a,${wa},model/dm/${a}.*)
reset-tm: reset-systems
-rm -rf $(foreach a,${wa},model/tm/${a}.*)
reset-systems:
-rm -rf ${SYSTEMS}
reset-tune:
-rm -rf $(foreach s,${SYSTEMS}/$s/tune)
reset-eval:
-rm -rf $(foreach s,${SYSTEMS},$s/eval)
reset-lm:
-rm -rf lm
reset-all: reset-lm reset-aln
-rm -rf $(wildcard crp/trn/*/[ct]* crp/dev/[ct]* crp/tst/[ct]*)
-rm -rf auxiliary