[关闭]
@wujiaju 2020-12-23T06:38:52.000000Z 字数 1434 阅读 992

研究生实验3:基于序列模型的英文到中文翻译机

2020 PostGraduate


You can click here to get the English version.

实验目的

  1. 探索自然语言处理
  2. 理解经典的Sequence-to-Sequence机器翻译模型
  3. 掌握Attention机制在机器翻译模型上的应用
  4. 搭建机器翻译模型,在简单小规模数据集上验证模型性能,培养工程能力
  5. 了解Transformer在机器翻译任务上的应用

数据集

  1. 本教程采用中英文翻译数据集,更多翻译数据集可在该网站上下载
  2. 共有23,610个翻译数据对,每对翻译数据在同一行:左边是英文,中间是中文,右边是其他属性信息,分割符是\t

实验环境

实验步骤

基于注意力机制的机器翻译模型的示例代码可参考Pytorch 教程, 详细步骤如下:

本实验参考代码:github

  1. 下载中英文翻译数据集,并解压为./data/eng-cmn.tx

  2. 按行读取数据集,构建训练数据对时注意移除属性信息(每行只取前两个数据),否则会报错

  3. 从训练句子中拆分出单词,构建数据集的中英文单词对照表
    注意: 默认reverse=False构建“英文-->中文”翻译器;感兴趣的同学也可尝试构建“中文-->英文”翻译器

  4. 构建机器翻译模型:

    • 构建编码器(Encoder)
    • 构建基于注意力机制的解码器(Attention Decoder)
  5. 定义损失函数,训练机器翻译模型

  6. 使用BLEU等机器翻译指标评估已训练好的模型,可使用 nltk 库

    1. # pip install nltk
    2. from nltk.translate.bleu_score import sentence_bleu
    3. bleu_score = sentence_bleu([reference1, reference2, reference3], hypothesis1)
  7. 可视化测试结果,整理实验结果并完成实验报告.

[可选1] 感兴趣的同学可自行调整参数,如调整句子最大长度MAX_LENGTH,总训练次数n_iters,特征维度hidden_size等

[可选2] 感兴趣的同学可自行划分训练集/测试集,推荐的划分比例是 7:3,根据定性及定量的实验结果进一步分析模型性能

[可选3] 感兴趣的同学可自行探索使用Transformer完成任务,示例代码可参考The Annotated Transformer bloggithub仓库 (注意:同样需要自行处理中英文翻译数据集)

整理实验结果并完成实验报告(实验报告模板将包含在示例仓库中)。


实验代码及报告提交方式

提交内容

提交时间

注意事项

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注