当前位置:   article > 正文

【新手入门】课程10-深度学习进阶NLP-机器翻译_该数据集有193319条训练数据,6003条测试数据,词典长度为30000

该数据集有193319条训练数据,6003条测试数据,词典长度为30000

任务介绍

机器翻译:即用计算机实现从源语言到目标语言转换的过程,是自然语言处理的重要研究领域之一。

源语言:被翻译的语言

目标语言:翻译后的结果语言

数据集介绍

数据集:WMT-14数据集

  1. 该数据集有193319条训练数据,6003条测试数据,词典长度为30000
  2. Paddle接口paddle.dataset.wmt14中默认提供了一个经过预处理的较小规模的数据集。

数据预处理:

  1. 将每个源语言到目标语言的平行语料库文件合并为一个文件,合并每个xxx.srcxxx.trg文件为xxxxxx中的第i行内容为xxx.src的第i行和xxx.trg中的第i行连接,用“t”分隔。
  2. 创建训练数据的源字典和目标字典。每个字典都有DICSIZE个单词,包括语料中词频最高的DICSIZE-3个单词和三个特殊符号:
  • < s >表示序列的开始
    
  •  
  • < e >表示序列的结束
    
  •  
  • < unk >表示未登录词
    

实践流程

1、准备数据

2、配置网络

  • 定义网络
    
  •  
  • 定义损失函数
    
  •  
  • 定义优化算法
    

3、训练网络

4、模型评估

5、模型预测

In[ ]

  1. #导入需要的包
  2. import numpy as np
  3. import paddle as paddle
  4. import paddle.fluid as fluid
  5. from PIL import Image
  6. import os
  7. import paddle.fluid.layers as pd
  8. import sys

In[ ]

  1. dict_size = 30000#字典维度
  2. source_dict_dim = target_dict_dim = dict_size# source_dict_dim:源语言字典维度 target_dict_dim:目标语言字典维度
  3. hidden_dim = 32 #解码中隐层大小
  4. decoder_size = hidden_dim#解码中隐层大小
  5. word_dim = 32 #词向量维度
  6. batch_size = 200 #数据提供器每次读入的数据批次大小
  7. max_length = 8#生成句子的最大长度
  8. topk_size = 50
  9. beam_size = 2 #柱宽度
  10. is_sparse = True#系数矩阵
  11. model_save_dir = "machine_translation.inference.model"

In[ ]

  1. # *********获取训练数据读取器和测试数据读取器train_reader 和test_reader***************
  2. train_reader = paddle.batch(
  3. paddle.reader.shuffle(
  4. paddle.dataset.wmt14.train(dict_size),buf_size=1000),#dict_size:字典维度 buf_size:乱序时的缓存大小
  5. batch_size=batch_size) #batch_size:批次数据大小
  6. #加载预测的数据
  7. test_reader = paddle.batch(
  8. paddle.reader.shuffle(
  9. paddle.dataset.wmt14.test(dict_size), buf_size=1000),
  10. batch_size=batch_size)

编码器解码器框架

解决的问题:由任意一个长度的原序列到另一个长度的目标序列的变化问题

  • 编码:将整个原序列表征成一个向量
    
  •  
  • 解码:通过最大化预测序列概率,从中解码出整个目标序列
    

柱搜索算法

  • 启发式搜索算法:在图或树中搜索每一步的最优扩展节点
    
  • 贪心算法:每一步最优,全局不一定最优
    
  • 场景:解空间非常大,内存装不下所有展开解的系统
    

In[ ]

#************************实现编码器*******************
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/喵喵爱编程/article/detail/865579
推荐阅读
相关标签
  

闽ICP备14008679号