自然语言处理: 第四章Seq2Seq

文章介绍了Seq2Seq模型的理论基础,包括端到端学习和信息的压缩抽象表示。它常用于机器翻译、文本摘要等生成任务,但不适合序列标注等问题。文中还提供了中英翻译数据集的预处理、词汇表构建、数据集构建以及RNN和LSTM版本的Seq2Seq模型的构建和训练过程。

自然语言处理: 第四章Seq2Seq

理论基础

开始之前,首先提出一个问题,电脑是怎么识别人类的命令的,首先人们通过输入代码(编码) ,带入输入给计算机然后再经过处理(解码)得到最终的命令。所以可以看到这其实是一个编码 + 解码的过程。可以看到首先我们将初始的信息通过编码,得到涵盖全局的信息的特征然后再经过解码器去解码从而最终得到需要得到的信息,所以借鉴于Seq2Seq模型就借鉴于这个结构出现了。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3JuQu7iH-1691329327977)(image/seq2seq/1686905754869.png)]



Seq2Seq 是2014年由Llya 大神在 Sequence to Sequence Learning with Neural Networks 一文中提出的,其由几个重要的优势:

  1. 实现了端到端的学习(神经网络)
  2. 处理可变长度序列,Seq2Seq可以接受可变长度的序列的输入也可以生成可变长度的输出序列
  3. 信息的压缩和抽象表示,编码器将上下文的信息整合到一个向量里,然后解码器通过这个向量输出序列
  4. 可扩展性,很容易与其他神经网络做结合,可以处理很多复杂的问题和常见

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CcK26mpB-1691329327981)(image/seq2seq/1686907307646.png)]



适合处理的问题, 一些生成的问题:

  • 机器翻译
  • 文本摘要
  • 对话系统
  • 问答系统
  • 语音识别
  • 语音合成

不适合的问题:

  • 序列标注,命名实体识别,关系抽取,词性标注
  • 文本分类
  • 文本相似性

局限性:

  • 无法储存长序列的信息,缺少局部的信息
  • lstm训练效率比较低下


代码实现

本次代码使用的是中英翻译的数据集,一共有40000多个数据中英互译对。本次任务需要完成的是中 -> 英任务。


[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6mzRhFXR-1691329327982)(image/seq2seq/1691315436691.png)]

1. 数据预处理

# Step 1: 数据预处理
import jieba  # 使用jieba进行中文分词
import re  # 使用正则表达式对英文句子进行分词

# 读取句子
with open('all_sentences.txt', 'r', encoding='utf-8') as f:
    all_sentences = f.readlines()

# 创建用于存储中英文句子对的列表
sentences = []

# 对每个句子进行处理
for i in r
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

曼城周杰伦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值