diff --git a/UD_any/eval.sh b/UD_any/eval.sh new file mode 100755 index 0000000000000000000000000000000000000000..f1eaa053dcc463f994a102192628d06bc14d6e65 --- /dev/null +++ b/UD_any/eval.sh @@ -0,0 +1,119 @@ +#! /bin/bash + +source config + +function has_space { + [[ "$1" != "${1%[[:space:]]*}" ]] && return 0 || return 1 +} + +function print_usage_and_exit { + >&2 echo "USAGE : language_keyword templateName expName [arguments]" + exit 1 +} + +LANG=UD_any +LANGPATH=$MACAON_DIR/$LANG +MCD=$LANGPATH/data/conllu.mcd +KEYWORD=$1 +TEMPLATENAME=$2 +EXPNAME=$3 + +if [ -z "$KEYWORD" ]; +then + >&2 echo "ERROR : missing argument 1 (keyword)" + print_usage_and_exit +fi + +if [ -z "$TEMPLATENAME" ]; +then + >&2 echo "ERROR : missing argument 2 (templateName)" + print_usage_and_exit +fi + +if [ -z "$EXPNAME" ]; +then + >&2 echo "ERROR : missing argument 3 (expName)" + print_usage_and_exit +fi + +shift +shift +shift +RAWINPUT="" +params=( $* ) +index=0 + +for var in "$@" +do + if [ "$var" = "--rawInput" ] + then + RAWINPUT="$var" + unset params[$((index))] + set -- "${params[@]}" + break + fi + index=$((index+1)) +done + +if [ "$KEYWORD" = "." ] +then + KEYWORD="" +fi + +TRAIN=$(find $UD_ROOT*$KEYWORD -type f -name '*train*.conllu') +TRAINRAW=$(find $UD_ROOT*$KEYWORD -type f -name '*train*.txt') +DEV=$(find $UD_ROOT*$KEYWORD -type f -name '*dev*.conllu') +TEST=$(find $UD_ROOT*$KEYWORD -type f -name '*test*.conllu') +TESTRAW=$(find $UD_ROOT*$KEYWORD -type f -name '*test*.txt') + +if has_space "$TRAIN" || has_space "$DEV" || has_space "$TEST"; +then + >&2 echo "ERROR : more than 1 match with keyword" $KEYWORD + >&2 echo "TRAIN : " $TRAIN + >&2 echo "DEV : " $DEV + >&2 echo "TEST : " $TEST + print_usage_and_exit +fi + +if test ! -f $TRAIN; +then + >&2 echo "ERROR : no train file found with keyword" $KEYWORD + >&2 echo "$TRAIN" + print_usage_and_exit +fi + +if [ ! -z "$RAWINPUT" ]; +then + if [ ! -s "$TRAINRAW" ]; + then + >&2 echo "ERROR : file is empty " $TRAINRAW + >&2 echo "TIP : makes sure file has raw text metadata " $TRAIN + print_usage_and_exit + fi +fi + +TEMPLATEPATH=$LANGPATH/$TEMPLATENAME + +if [ ! -d "$TEMPLATEPATH" ]; then + >&2 echo "ERROR : directory $TEMPLATEPATH doesn't exist" + print_usage_and_exit +fi + +EVALCONLL="../scripts/conll18_ud_eval.py" +ADDMISSINGCOLUMNS="../tools/conlluAddMissingColumns.py" + +EXPPATH=$LANGPATH/bin/$EXPNAME +TOOL=$LANGPATH/bin/maca_tm_$EXPNAME + +if [ -z "$RAWINPUT" ]; +then + echo "Evaluation on file" $TEST ":" + $TOOL $TEST $MCD --interactive 0 > $EXPPATH/tmpOutTest.txt +else + echo "Evaluation on file" $TEST ":" + $TOOL $TESTRAW $MCD --interactive 0 --rawInput > $EXPPATH/tmpOutTest.txt +fi + +$ADDMISSINGCOLUMNS $EXPPATH/tmpOutTest.txt $MCD > $EXPPATH/tmpOutTest.conllu +$EVALCONLL $TEST $EXPPATH/tmpOutTest.conllu -v +