⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mert-driver

📁 moses开源的机器翻译系统
💻
字号:
#!/bin/sh

WORKDIR=$1
if [ ! -d $WORKDIR ]; then
  mkdir -p $WORKDIR
fi

SRCFILE=$2
REFPREFIX=$3
REFFILES=$REFPREFIX[0-9]*
NBEST=$4
DECODER=$5
DECODEROPTS=$6
RANGES=$7
START=$8

#default pwdcmd is pwd
#pwdcmd is pawd if exists
PWDCMD="pwd"
___PWDCMD=`which pawd | head -1 | awk '{print $1}'`
if [ $___PWDCMD -a -e $___PWDCMD ] ; then PWDCMD=$___PWDCMD ; fi;

RUNDIR=`$PWDCMD`

makeinitopt "$RANGES" $WORKDIR/weights.txt $WORKDIR/ranges.txt
DIM=`cat $WORKDIR/weights.txt | awk '{print NF; exit}'`
echo $DIM dimensions

PATH=/group/project/statmt/pkoehn/user/abhishek:/group/project/statmt/pkoehn/user/abhishek/cmert-0.5:$PATH
export PATH

date

echo Reference sets: $REFFILES

if [ "x$START" == "x" ]; then
  START=1
fi

I=$START
PREVLINECOUNT=0
#$DECODEROPTS =~ s / \-f / -config /;
#$DECODEROPTS =~ s/^\-f /-config /;
filename=$WORKDIR/run$I.best$NBEST.out

while true; do
  echo Run decoder

  WEIGHTS=`cat $WORKDIR/weights.txt`

  ###Changes - AA 29/11/05
  #echo "$DECODER $NBEST \"$WEIGHTS\" $WORKDIR/run$I \"$DECODEROPTS\" < $SRCFILE > $WORKDIR/run$I.nbest"
  #$DECODER $NBEST \"$WEIGHTS\" $WORKDIR/run$I \"$DECODEROPTS\" < $SRCFILE > $WORKDIR/run$I.nbest
 
  echo "$DECODER $DECODEROPTS \"$WEIGHTS\" -n-best-list $filename $NBEST < $SRCFILE > $WORKDIR/run$I.nbest"
  $DECODER $DECODEROPTS "$WEIGHTS" -n-best-list $filename $NBEST < $SRCFILE > $WORKDIR/run$I.nbest

  echo Calculate BLEU component scores

  sort -mn -t\| -k 1,1 $WORKDIR/run*.nbest | score-nbest.py $REFFILES $WORKDIR/

  #LINECOUNT=`cat $WORKDIR/feats.opt | awk '{n++} END {print n}'`
  LINECOUNT=`cat $WORKDIR/cands.opt | awk '{n += $2} END {print n}'`
  echo $LINECOUNT accumulated translations
  if [ $LINECOUNT -le $PREVLINECOUNT ]; then 
    echo "Training finished"
    date
    break
  fi

  echo Optimize feature weights

  cd $WORKDIR
  cat ranges.txt weights.txt > init.opt
  rm -f weights.txt
  mert -d$DIM
  cd $RUNDIR

  if [ "x`cat $WORKDIR/weights.txt`" == "x" ]; then
    echo Optimization failed
    break
  fi

  I=`expr $I + 1`
  PREVLINECOUNT=$LINECOUNT

  date
done

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -