一. 机器翻译和数据集

1. 介绍

机器翻译的数据集是由源语言和目标语言的文本序列对组成的,因此需要一种完全不同的方法来预处理机器翻译数据集, 而不是复用语言模型的预处理程序。

2. 下载和预处理数据集

首先,下载一个由Tatoeba项目的双语句子对组成的“英-法”数据集,数据集中的每一行都是制表符分隔的文本序列对,序列对由英文文本序列和翻译后的法语文本序列组成。注意每个文本序列可以是一个句子,也可以是包含多个句子的一个段落。在将英语翻译成法语的机器翻译问题中,英语是源语言(source language),法语是目标语言(target language)。

import torch
import os
import d2l.torch
d2l.torch.DATA_HUB['fra-eng'] = (d2l.torch.DATA_URL + 'fra-eng.zip','94646ad1522d915e7b0f9296181140edcf86a4f5')
"""载入“英语-法语”数据集"""
def read_data_nmt():data_dir = d2l.torch.download_extract('fra-eng')with open(os.path.join(data_dir,'fra.txt'),'r',encoding='utf-8') as f:return f.read()
raw_text = read_data_nmt() #注意raw_text是一个String类型
print(raw_text[:80])
'''
输出结果如下:
Go. Va !
Hi. Salut !
Run!    Cours !
Run!    Courez !
Who?    Qui ?
Wow!    Ça alors !
Fire!
'''

下载数据集后,原始文本数据需要经过几个预处理步骤,例如用空格代替不间断空格(non-breaking space), 使用小写字母替换大写字母,并在单词和标点符号之间插入空格。

# 将字符和标点符号,.!?以空格方式分隔开,同时将不间断空格用空格符替换,用于下面tokenize_nmt()处理
def process_nmt(text):def no_space(char,pre_char):return char in set(',.!?') and pre_char != ' '#text就是一个String类型,将不间断空格用空格符替换# 使用空格替换不间断空格# 使用小写字母替换大写字母text = text.replace('\u202f',' ').replace('\xa0',' ').lower()# 在单词和标点符号之间插入空格out = [' '+char if i>0 and no_space(char,text[i-1]) else char for i,char in enumerate(text)]return ''.join(out)
text = process_nmt(raw_text)
print(text[:80])

3. 词元化

在机器翻译中,将单词级词元化,而不是将字符级词元化,下面的tokenize_nmt()函数对前num_examples个文本序列对进行词元化, 其中每个词元要么是一个词,要么是一个标点符号,此函数返回两个词元列表:source和target: source[i]是源语言(这里是英语)第

李沐动手学深度学习V2-机器翻译和数据集相关推荐

  1. 李沐动手学深度学习v2/总结1

    总结 编码过程 数据 数据预处理 模型 参数,初始化参数 超参数 损失函数,先计算损失,清空梯度(防止有累积的梯度),再对损失后向传播计算损失关于参数的梯度 优化算法,使用优化算法更新参数 训练求参数 ...

  2. 14李沐动手学深度学习v2/权重衰退简洁实现

    # 权重衰退是广泛应用的正则化技术 %matplotlib inline import torch from torch import nn from d2l import torch as d2l ...

  3. 李沐动手学深度学习V2-全卷积网络FCN和代码实现

    一.全卷积网络FCN 1. 介绍 语义分割是对图像中的每个像素分类,全卷积网络(fully convolutional network,FCN)采用卷积神经网络实现了从图像像素到像素类别的变换 ,与前 ...

  4. 李沐动手学深度学习(pytorch版本)d2lzh_pytorch包的缺少安装问题

    学习深度学习时候,很多人参考的是李沐的动手学深度学习Pytorch版本(附上官方地址:https://tangshusen.me/Dive-into-DL-PyTorch/#/). 在学习3.5.1节 ...

  5. 【李沐动手学深度学习】读书笔记 01前言

    虽然之前已经学过这部分内容和深度学习中的基础知识,但总觉得学的不够系统扎实,所以希望再通过沐神的课程以及书籍,系统条理的学习一遍.在读书过程中,利用导图做了一下梳理,形成了这个读书笔记.如有侵权,请联 ...

  6. 关于李沐动手学深度学习(d2l)pytorch环境本地配置

    本地安装d2l 由于之前试了很多次d2l课本的安装方法失败了,这里提供一种我可以成功安装d2l包的方法. pytorch安装 首先安装cuda.cudnn.pytroch(gpu版本).可以参考这篇文 ...

  7. 李沐动手学深度学习:08 线性回归(代码逐行理解)

    目录 一.相关资料连接 1.1 李沐视频 1.2 代码.PPT 二.代码及笔记(使用Jupyter Notebook) 2.1 线性回归从零开始实现 2.1.1 基本概念 2.1.2 基础优化算法 2 ...

  8. windows上配置深度学习(李沐-动手学深度学习)

    1.安装miniconda windows下安装,去清华大学开源镜像下载,速度比较快. 选中Miniconda3-latest-Windos-x86_64.exe下载安装包(目前最新的是py3.9) ...

  9. 李沐动手学深度学习第四章-4.9.环境和分布偏移

    我们从来没有想过数据最初从哪里来?以及我们计划最终如何处理模型的输出? 根据测试集的精度衡量,模型表现得非常出色. 但是当数据分布突然改变时,模型在部署中会出现灾难性的失败. 解决方案很简单(要求&q ...

最新文章

  1. 面试的算法1(C语言)(整理)(组合数 字符串倒置 最大公共串)
  2. explian执行计划
  3. JavaScript原生的节点操作
  4. 双指针解决数组排序问题
  5. eclipse lombok插件安装_便捷开发,解放双手,lombok插件
  6. MacBook Air 电脑维修/笔记本维修
  7. 7天拿到阿里安卓岗位offer,统统给你解决!
  8. shiro自定义过滤器
  9. Bootstrap3 行内表单
  10. 【Flink】Flink 清理过期 Checkpoint 目录的正确姿势
  11. 不懂*和*区别的可以进来看看
  12. html 设置font size,css font-size属性说明
  13. mac实用小技巧分享之使Mac快速锁屏与睡眠
  14. 单片机音频谱曲软件_51单片机蜂鸣器音乐简谱转换工具
  15. webm格式怎么转换成mp4?
  16. 2017年的知识清单
  17. 利用微信官方文档下载微信对账单、资金账单
  18. 兼容性运行程序永远_永远不会有太多的应用程序
  19. Java接口继承接口
  20. 谷歌浏览器chrome怎么设置成中文

热门文章

  1. Android中相册的实现
  2. 【小程序源码】uni-app云开发的网盘助手抓取网盘资源
  3. Java使用aspose生成简历
  4. flask----后续
  5. xmind 使用教程
  6. C++检测键盘某键是否按下
  7. [转] MATLAB快捷键
  8. NOI.6.08石头剪刀布
  9. 哔哩哔哩(B站)品牌投放,优质潜力up主如何找?
  10. MySQL8.0中消失又回来的磁盘临时表