OpenNMT快速入门

・3 分钟阅读

快速入门


步骤1:预处理数据

th preprocess.lua -train_src data/src-train.txt -train_tgt data/tgt-train.txt -valid_src data/src-val.txt -valid_tgt data/tgt-val.txt -save_data data/demo

我们将在 data/ 文件夹中处理一些示例数据。

数据由并行源(src)和目标(tgt)数据组成,每行包含一个句子,标记用空格分隔:

  • src-train.txt
  • tgt-train.txt
  • src-val.txt
  • tgt-val.txt

验证文件是必需的,并用来评估训练的收敛性。 它通常不包含超过5000个句子。

$ head -n 3 data/src-train.txt
It is not acceptable that, with the help of the national bureaucracies, Parliament 's legislative prerogative should be made null and void by means of implementing provisions whose content, purpose and extent are not laid down in advance. 
Federal Master Trainer and Senior Instructor of the Italian Federation of Aerobic Fitness, Group Fitness, Postural Gym, Stretching and Pilates; from 2004, he has been collaborating with Antiche Terme as personal Trainer and Instructor of Stretching, Pilates and Postural Gym. 
" Two soldiers came up to me and told me that if I refuse to sleep with them, they will kill me. They beat me and ripped my clothes. 

在运行预处理之后,将生成以下文件:

  • demo.src.dict: 索引映射的源代码字典字典。
  • demo.tgt.dict:索引映射的目标词典字典,
  • demo-train.t7:包含词汇表,培训和验证数据的序列化Torch文件,

检查或重用词汇表需要*.dict文件。 这些文件是简单的人类可读字典。

$ head -n 10 data/demo.src.dict
 1
 2 3 4
It 5
is 6
not 7
acceptable 8
that 9
, 10
with 11

系统内部不会触及单词本身,而且是使用这些索引。

便笺

如果未被标记,则可以使用opennmt的tokenizer,

步骤2:训练模型

th train.lua -data data/demo-train.t7 -save_model demo-model

主训练命令很简单。 至少它需要一个数据文件和一个保存文件。 这将运行默认模型,它包含一个 2-layer LSTM,在编码器/解码器上包含500个隐藏单元。 你还可以添加 -gpuid 1以使用(说明)GPU1,

步骤3:翻译

th translate.lua -model demo-model_epochX_PPL.t7 -src data/src-test.txt -output pred.txt

现在你有了一个可以用来预测新数据的模型。 我们通过运行beam搜索来实现。 这将输出预测到 pred.txt

备注

预测将非常糟糕,因为演示数据集很小。 尝试在较大的数据集中运行 ! 例如,你可以为翻译或摘要任务下载数百万条并行的句子 。

陈燕 profile image