赞
踩
在Task1中我初步了解了如何一键跑通 baseline和赛题,详情可以参考文档 从零入门NLP竞赛和 Task1:了解机器翻译 & 理解赛题。
今天的任务是对baseline代码做具体解析,让我们知其然更知其所以然!
我可以从中学会 Seq2Seq模型结构、中英文分词、循环神经网络(RNN)、门控循环单元(Gated Recurrent Unit,GRU)等。
Seq2Seq模型(Sequence-to-Sequence模型)是一种用于处理序列到序列的任务的神经网络模型。它由两个主要部分组成:编码器(Encoder)和解码器(Decoder)。
编码器(Encoder):
解码器(Decoder):
Seq2Seq模型通常用于机器翻译、对话生成、文本摘要等需要将一个序列映射到另一个序列的任务中。
下面是一个应用编码器解码器结构来解决汉译英的例子:
中英文分词是自然语言处理中的一项重要任务,其目的是将连续的文本序列切分成有意义的词或词语。
中文分词:
英文分词:
循环神经网络(RNN)是一种专门用于处理序列数据的神经网络结构,具有记忆功能,能够捕捉数据中的时间依赖关系。
结构:
应用:
门控循环单元(GRU)是一种改进的循环神经网络结构,旨在解决长期依赖问题,同时减少了参数数量。
结构:
应用:
这些技术在自然语言处理和序列建模领域中起着至关重要的作用,帮助解决了多种复杂的语言处理任务。
运行环境我们还是基于魔搭
平台进行模型训练,这里不再重复说明。另外,有几个包需要额外安装:
torchtext :是一个用于自然语言处理(NLP)任务的库,它提供了丰富的功能,包括数据预处理、词汇构建、序列化和批处理等,特别适合于文本分类、情感分析、机器翻译等任务
jieba
:是一个中文分词库,用于将中文文本切分成有意义的词语
sacrebleu:用于评估机器翻译质量的工具,主要通过计算BLEU(Bilingual Evaluation Understudy)得分来衡量生成文本与参考译文之间的相似度
- !pip install torchtext
- !pip install jieba
- !pip install sacrebleu
spacy:是一个强大的自然语言处理库,支持70+语言的分词与训练,用于英文的 tokenizer(分词,就是将句子、段落、文章这种长文本,分解为以字词为单位的数据结构,方便后续的处理分析工作),具体安装步骤前文提到的文档中有。
注意: 在配置环境的时候安装可能报错,可以到https://spacy.io/usage查看解决方法。
清洗和规范化数据
去除无关信息
统一格式
分句和分段
分词
构建词汇表和词向量
词汇表构建:从训练数据中收集所有出现过的词汇,构建词汇表,并为每个词分配一个唯一的索引。
词向量:使用预训练的词向量或自己训练词向量,将词汇表中的词映射到高维空间中的向量,以捕捉语义信息(当前大模型领域训练的 embedding 模型就是用来完成此任务的)。
序列截断和填充
序列截断:限制输入序列的长度,过长的序列可能增加计算成本,同时也可能包含冗余信息。
序列填充:将所有序列填充至相同的长度,便于批量处理。通常使用<PAD>
标记填充。
添加特殊标记
序列开始和结束标记
未知词标记
数据增强
随机替换或删除词
同义词替换
数据分割
划分数据集:将数据划分为训练集、验证集和测试集,分别用于模型训练、参数调整和最终性能评估(该赛题中已划分好,不需要自己进行划分)
神经机器翻译主要采用编码器-解码器(Encoder-Decoder)模型。编码器将源语言句子编码成一个向量,解码器将该向量解码为目标语言句子。
基线代码中实现了一个经典的Seq2Seq模型,使用GRU网络,并加入了注意力机制。注意力机制允许解码器在生成每个输出词时关注编码器产生的所有中间状态,从而更好地利用源序列的信息。
评估机器翻译系统输出结果的质量,可以采用人工评价、有参考答案的自动评价和无参考答案的自动评价。BLEU是常用的自动评价方法,通过与参考译文的比对来评估翻译质量。
通过对Task2的学习,我理解了Seq2Seq模型结构、中英文分词、循环神经网络(RNN)、门控循环单元(GRU)以及注意力机制等关键概念和技术,为进一步深入学习和应用深度学习技术打下了坚实基础,在遇到困难的时候群里的同学和老师都积极给予了帮助,解决了我很多问题。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。