mirror of
https://github.com/moses-smt/mosesdecoder.git
synced 2025-01-06 11:38:34 +03:00
71 lines
1.7 KiB
Makefile
71 lines
1.7 KiB
Makefile
# -*- Makefile -*-
|
|
|
|
moses.threads ?= 4
|
|
moses.flags += -threads ${moses.threads}
|
|
moses.flags += -v 0 -t -text-type "test" -fd '${FACTORSEP}'
|
|
|
|
%.multi-bleu: | %.cleaned
|
|
$(lock)
|
|
${multi-bleu} ${bleu.ref} < $*.cleaned > $@_ && mv $@_ $@
|
|
$(unlock)
|
|
|
|
%.moses-out.wa: moses.flags += -alignment-output-file $*.output.wa
|
|
%.moses-out.wa: %.moses-out
|
|
|
|
# .SECONDEXPANSION:
|
|
moses.ini ?=
|
|
%.moses-out: | ${moses.ini}
|
|
echo MOSES $^
|
|
$(lock)
|
|
${moses} -i ${moses.input} -inputtype ${moses.inputtype} \
|
|
-f ${moses.ini} ${moses.flags} > $@_ && mv $@_ $@
|
|
$(unlock)
|
|
|
|
%.cleaned: %.moses-out
|
|
$(lock)
|
|
$(clean-decoder-output) < $< > $@_ && mv $@_ $@
|
|
$(unlock)
|
|
|
|
%.natcased: %.cleaned
|
|
$(eval $(call lock))
|
|
$(detruecase) < $*.cleaned > $@_ && mv $@_ $@
|
|
$(eval $(call unlock))
|
|
|
|
|
|
# $1: output base name
|
|
# $2: system to be evaluated
|
|
# $3: evaluation input
|
|
|
|
define bleu_eval
|
|
|
|
EVALUATIONS += $1
|
|
$1: moses.ini := $2
|
|
$1: moses.input := $3
|
|
$1: moses.inputtype := $(call guess-inputtype,$3)
|
|
$1: bleu.ref := $$(shell echo $(patsubst %.${L1},%.${L2},$3) | perl -pe 's?/cfn[^/]+/?/cased/?')
|
|
$1.moses-out: | $2 $3
|
|
$1.multi-bleu: | $(call reffiles,$3,$(dir $(patsubst %/,%,$(dir $3))))
|
|
$1: | $1.multi-bleu
|
|
|
|
endef
|
|
|
|
EVALUATIONS :=
|
|
|
|
eval.sets ?= $(patsubst %.${L1}.gz,%,$(subst /raw/,/cased/,$(wildcard ${WDIR}/crp/tst/raw/*.${L1}.gz)))
|
|
|
|
ifdef tune.runs
|
|
define bleu_score_all_systems
|
|
|
|
$(foreach system,${SYSTEMS},\
|
|
$(foreach tuneset,${tune.sets},\
|
|
$(foreach evalset,${eval.sets},\
|
|
$(foreach run,$(shell seq ${tune.runs}),\
|
|
$(eval $(call bleu_eval,\
|
|
${system}/eval/$(notdir ${tuneset})/${run}/$(notdir ${evalset}),\
|
|
${system}/tuned/$(notdir ${tuneset})/${run}/moses.ini,\
|
|
${evalset}.${L1},${moses.inputtype.plaintext},${evalset}.${L2}))))))
|
|
|
|
endef
|
|
endif
|
|
|