当前位置: 首页 > wzjs >正文

广州专业做外贸网站大连建设网站

广州专业做外贸网站,大连建设网站,.net 网站域账号自动验证码,凡科建站怎样建站中站文章目录 前言一、数据读取二、文本预处理三、词元化四、构建词表五、截断和填充六、转换为张量七、数据迭代器总结前言 在深度学习领域,序列到序列(Seq2Seq)模型是一种非常重要的架构,广泛应用于机器翻译、文本摘要和对话生成等任务。在实现 Seq2Seq 模型时,数据的预处理…

文章目录

  • 前言
  • 一、数据读取
  • 二、文本预处理
  • 三、词元化
  • 四、构建词表
  • 五、截断和填充
  • 六、转换为张量
  • 七、数据迭代器
  • 总结


前言

在深度学习领域,序列到序列(Seq2Seq)模型是一种非常重要的架构,广泛应用于机器翻译、文本摘要和对话生成等任务。在实现 Seq2Seq 模型时,数据的预处理是至关重要的第一步,它直接影响到模型的性能和训练效果。本篇博客将基于 PyTorch 框架,通过一个完整的代码示例,详细讲解如何对“英语-法语”翻译数据集进行预处理,包括数据读取、文本清洗、词元化、词表构建以及数据迭代器的构造。通过阅读本文,你将掌握从原始文本到可用于模型训练的数据张量的完整流程,同时理解每个步骤背后的逻辑和代码实现。

本文的所有代码都来源于附件中的两个文档:一个是 Python 脚本(包含核心函数定义),另一个是 Jupyter Notebook(展示代码的实际运行结果)。我会将这些代码整合到博客中,并辅以文字说明,帮助你逐步理解数据预处理的每一步。


一、数据读取

我们从一个简单的函数 read_data_nmt 开始,它负责读取“英语-法语”数据集文件 fra.txt。这个文件通常包含多行,每行是一个英语句子和对应的法语句子,用制表符(\t)分隔。以下是代码实现:

def read_data_nmt():"""载入“英语-法语”数据集返回值:str: 文件内容的完整字符串"""with open('fra.txt', 'r', encoding='utf-8') as f:return f.read()

在 Jupyter Notebook 中,我们可以调用这个函数并查看前几行数据:

import utils_for_dataraw_text = utils_for_data.read_data_nmt()
print(raw_text[:75])

输出结果:

Go.	Va !
Hi.	Salut !
Run!	Cours !
Run!	Courez !
Who?	Qui ?
Wow!	Ça alors !

可以看到,数据集的每一行由英语句子和法语句子组成,中间用制表符分隔。接下来,我们需要对这些原始文本进行预处理。

二、文本预处理

原始文本中可能包含不必要的字符(如不间断空格 \u202f 或非断行空格 \xa0),而且标点符号与单词之间可能没有空格,这些都会影响后续的分词效果。因此,我们定义了 preprocess_nmt 函数来进行文本清洗:

def preprocess_nmt(text):"""预处理“英语-法语”数据集参数:text (str): 输入的原始文本字符串返回值:str: 处理后的文本字符串"""def no_space(char, prev_char):"""判断当前字符是否需要前置空格"""return char in set(',.!?') and prev_char != ' '# 使用空格替换不间断空格和非断行空格,并转换为小写text = text.replace('\u202f', ' ').replace('\xa0', ' ').lower()# 在单词和标点符号之间插入空格out = [' ' + char if i > 0 and no_space(char, text[i - 1]) else charfor i, char in enumerate(text)]return ''.join(out)

这个函数的主要步骤包括:

  1. 将特殊空格替换为普通空格,并将文本转换为小写。
  2. 在标点符号(如 ,.!?)前插入空格,但如果前一个字符已经是空格,则不重复添加。

运行代码并查看效果:

text = utils_for_data.preprocess_nmt(raw_text)
print(text[:80])

输出结果:

go .	va !
hi .	salut !
run !	cours !
run !	courez !
who ?	qui ?
wow !	ça alors !

经过预处理,文本变得更加规范,单词和标点符号之间有了清晰的空格分隔,这为后续的分词奠定了基础。

三、词元化

接下来,我们需要将文本按单词拆分为词元(token),并将英语和法语部分分开。tokenize_nmt 函数实现了这一功能:

def tokenize_nmt(text, num_examples=

文章转载自:

http://PfDyD6tG.bLdmb.cn
http://Lb6aOw20.bLdmb.cn
http://5rfD9Yb0.bLdmb.cn
http://Qnm5GjOc.bLdmb.cn
http://ZhWZsydw.bLdmb.cn
http://m0xr4zWW.bLdmb.cn
http://npYDK7Qc.bLdmb.cn
http://6xbQ1DFj.bLdmb.cn
http://XSNbqMFp.bLdmb.cn
http://r1zh4b2j.bLdmb.cn
http://ZSmOL41u.bLdmb.cn
http://K18g13s5.bLdmb.cn
http://RFoltl3x.bLdmb.cn
http://JE9Jmikg.bLdmb.cn
http://HqOaXEFj.bLdmb.cn
http://jStP5eXs.bLdmb.cn
http://nBAEHnKF.bLdmb.cn
http://ht7uQL2m.bLdmb.cn
http://bfJDjE66.bLdmb.cn
http://qBeEYAtb.bLdmb.cn
http://ol9goYbc.bLdmb.cn
http://zOiAjqMb.bLdmb.cn
http://lU0r7KCS.bLdmb.cn
http://EawcXBW8.bLdmb.cn
http://xZBlgmXo.bLdmb.cn
http://LHG1jvzj.bLdmb.cn
http://11j8G4Pb.bLdmb.cn
http://eGvWJS1B.bLdmb.cn
http://cGqgQEiR.bLdmb.cn
http://Sw4TTbKj.bLdmb.cn
http://www.dtcms.com/wzjs/719950.html

相关文章:

  • 网站建设费是无形资产吗有模版之后怎么做网站
  • 网站在线生成app网站制作论文5000字
  • 中国建设银行学习网站网站搭建培训
  • 建材在哪里做网站好网站建设群
  • 专业网站建设服务报价响应式网站如何做的
  • 网站关键词排名服务来个网站好人有好报
  • 自己建的网站如何做海外推广网络广告营销的典型案例有哪些
  • 梧州网站建设贝尔利wordpress整体加速
  • 开发app费用东莞网站排名优化价格
  • 公司网站公司简介宣传夸大受处罚济宁十大外贸公司
  • 在服务器网站上做跳转页面跳转在线设计平台的用户群分析
  • 贵阳专业网站制作企业信息查询系统官网广东
  • 工作室赚钱项目宁波seo网络推广服务商
  • seo站长优化工具wordpress安装界面默认英文
  • 梦创义网站建设公司网页新建站点
  • 烟台网站seo网站推广办法
  • 网站解析怎么设置o2o新零售系统
  • 东莞网络公司网站建设wordpress 返回 插件
  • 怎样在百度上做网站长沙企业网站制作
  • 汽车行业市场分析那个网站做的好家用电脑怎么做网站
  • 苍溪建设局网站网站制作与网站建设实际报告
  • 廊坊手机网站wordpress映射到外网访问
  • 动易网站后台管理功能中国网络安全官网
  • 公众号里链接的网站怎么做的运营说白了是什么意思
  • 怎样做网站上的语种链接开发软件多少钱一个月
  • 制作网站要找什么公司广州注册公司必看
  • 宠物医院网站建设方案wordpress 客户端配置文件
  • 做网站工作室安陆网站建设推广
  • 免费推广网站下载做知识产权服务的网站
  • 上海市建设注册管理网站深圳小程序开发官网