我是lua的新手,我想知道我是否可以在translate.lua -src上发送一个字符串而不是字符串存在的文件。在发布之前我已经搜索了很多,但我无法找到类似的东西。我的主要问题是机器翻译速度越来越慢,因为我必须从文件中读取/打开。提前谢谢!
例如:-src /TestFolder/TestFolder/TestFolder/TestFolder/TestFolder/TestFolder/TestFolder/test.txt;
而不是文件直接添加字符串。
答案 0 :(得分:2)
不,这是不可能的,因为-src
值必须是现有文件。
th translate.lua -model $model -src "What is going on?"
translate.lua: invalid argument for option -src: the file must exist
要解决此问题,您可以set up a REST or ZeroMQ server翻译文本"即时"。
您也可以编写一个简单的Bash脚本,该脚本将接受多个参数并转换给定ONMT,模型和可选(如果使用)BPE模型路径的任何字符串:
#!/bin/bash
#USAGE: bash translate.sh <TEXT> <ONMT_PATH> <MODEL_FILE_NAME> <BPE_FILE_NAME>
file="$2/tmp"
echo "$1" > "${file}"
echo "Translating '$1' using ONMT from '$2' using model '$3' and BPE model '$4'"
cd "$2"
th ./tools/tokenize.lua OPTIONS -bpe_model "$4" < "${file}" > "${file}.tok" 2>/dev/null
th ./translate.lua -model "$3" -src "${file}.tok" -output "${file}.tok.tgt" -gpuid 1 1> /dev/null
th ./tools/detokenize.lua OPTIONS < "${file}.tok.tgt" > "${file}.tok.tgt.detok" 2>/dev/null
cat "${file}.tok.tgt.detok"
rm {"${file}","${file}.tok","${file}.tok.tgt","${file}.tok.tgt.detok"}
将脚本中的OPTIONS
替换为(de)标记化的相应选项。
称之为
bash translate.sh "What is going on?" /OpenNMT /models/m_epoch13_3.33.t7 /models/model.bpe