#! /bin/bash source config function has_space { [[ "$1" != "${1%[[:space:]]*}" ]] && return 0 || return 1 } function print_usage_and_exit { >&2 echo "USAGE : (tsv | txt) language_keyword templateName expName [arguments]" exit 1 } MCD=data/conllu.mcd MODE=$1 KEYWORD=$2 TEMPLATENAME=$3 EXPNAME=$4 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 shift 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') DEVRAW=$(find $UD_ROOT*$KEYWORD -type f -name '*dev*.txt') 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 mkdir -p bin if [ ! -d "$TEMPLATENAME" ]; then >&2 echo "ERROR : directory $TEMPLATENAME doesn't exist" print_usage_and_exit fi rm -rf bin/$EXPNAME cp -r $TEMPLATENAME bin/$EXPNAME EVALCONLL="../scripts/conll18_ud_eval.py" if [ "$MODE" = "tsv" ]; then macaon train --model bin/$EXPNAME --mcd $MCD --trainTSV $TRAIN --devTSV $DEV $@ || exit 1 exit 0 fi if [ "$MODE" = "txt" ]; then macaon train --model bin/$EXPNAME --mcd $MCD --trainTSV $TRAIN --trainTXT $TRAINRAW --devTSV $DEV --devTXT $DEVRAW $@ || exit 1 exit 0 fi print_usage_and_exit