学习笔记:基于Seq2Seq的机器翻译
1. 环境配置与依赖安装
为了进行机器翻译任务,需要在魔搭平台上配置运行环境,并安装以下包:
- torchtext:自然语言处理库,用于数据预处理、词汇构建等。
- jieba:中文分词库。
- sacrebleu:评估机器翻译质量,计算BLEU得分。
- spacy:自然语言处理库,用于英文分词。
特别地,spacy的en_core_web_trf模型需要根据spacy版本进行安装。
2. 数据预处理
预处理是机器翻译的关键步骤,包括:
- 清洗数据:去除无关信息,统一格式。
- 分词:使用jieba对中文分词,使用spacy对英文分词。
- 构建词汇表和词向量:从训练数据中构建词汇表,使用预训练词向量。
- 序列截断和填充:限制序列长度,使用<PAD>进行填充。
- 添加特殊标记:如<SOS>、<EOS>、<UNK>。
3. 模型训练
3.1 编码器-解码器模型
编码器-解码器模型用于描述输入输出关系,适用于机器翻译问题。模型将源语言编码为中间表示,解码器再将其转换为目标语言。
3.2 Seq2Seq模型结构
Seq2Seq模型使用循环神经网络(RNN)作为编码器和解码器。GRU作为RNN的一种变体,可以更好地捕捉长距离依赖。
3.3 引入注意力机制
注意力机制允许解码器在生成每个输出词时,自适应地关注编码器的中间状态,提高翻译质量。
3.4 Baseline模型
Baseline代码实现了Seq2Seq模型,使用GRU网络,并加入了注意力机制。
4. 翻译质量评价
4.1 BLEU得分
BLEU得分是评估机器翻译质量的重要指标,反映了生成文本与参考译文之间的相似度。
4.2 评价方法
- 人工评价:准确但成本高。
- 有参考答案的自动评价:使用正确译文进行比对,成本低,可重复。
- 无参考答案的自动评价:估计译文质量,用于快速反馈。
4.3 评价标准
- 忠诚度:体现“信”的思想。
- 流畅度:体现“达”的思想。