我在用Fairseq把英进行翻译中发现,利用nteractive.py脚本会即时转换文本片段。但是我们一般需要对整个文件进行命令。所以我用了以下的shell脚本来用fairseq-interactive。
#!usr/bin/bash
SRC_PATH=/path/to/source/data
CHECKPOINT=/path/to/MT/model/checkpoint
DATA=/path/to/mt/data
SRC_LANG=***
TGT_LANG=###
N=xxx
cat ${SRC_PATH} | \
fairseq-interactive DATA \
--source-lang $SRC_LANG --target-lang $TGT_LANG \
--max-tokens XXX \
--max-tokens YYY --buffer-size ZZZ \
--num-workers SSS --path ${CHECKPOINT} \
--beam $N --nbest $N &> output.txt
生成的所有输出放入output.txt文件里。输出结果大概以下的图,beam_size不一样输出个项的树木不一样。shell脚本的cat解决一个一个输入句子的问题。
我这里 beam_size是5。