Datawhale AI 夏令营 学习笔记——NLP竞赛

本人属于半个小白,之前接触过一些深度学习的内容,几乎没有接触过自然语言处理(NLP)方向的知识。写下这个博客,也只是为了记录此次学习的过程与收获。

赛题思考

这是一个基于神经网络的机器翻译任务,通常的任务流程为:环境配置、数据预处理(数据清洗)、训练模型和验证、应用模型翻译。

环境配置

运行可以使用提供的“魔搭”平台,也可以在本地自行配置。如果是使用魔搭平台,task1中并不需要额外配置环境;task2与task3则需要安装torchtextjiebasacrebleu等包。我是在本地搭的环境,需要注意python、pytorch、tensorflow和上述包的对应版本,防止不兼容。

  • torchtext:是一个用于自然语言处理(NLP)任务的库,它提供了丰富的功能,包括数据预处理、词汇构建、序列化和批处理等,特别适合于文本分类、情感分析、机器翻译等任务。

  • jieba:是一个中文分词库,用于将中文文本切分成有意义的词语。

  • sacrebleu:用于评估机器翻译质量的工具,主要通过计算BLEU(Bilingual Evaluation Understudy)得分来衡量生成文本与参考译文之间的相似度。

  • spacy:是一个强大的自然语言处理库,支持70+语言的分词与训练。

数据预处理

预处理阶段通常包括多个步骤,旨在清理、标准化和转换数据,使之适合模型训练。机器翻译的预处理任务通常包含:

  • 清洗数据

  • 分词

  • 构建词汇表和词向量

  • 添加特殊标记

  • 数据分割

基于Seq2Seq解决机器翻译任务

task2的baseline代码中实现了一个经典的序列到序列(Seq2Seq)模型,它是由两个主要部分组成:Encoder(编码器)和Decoder(解码器),两者均由GRU网络构成,并且网络中加入了注意力机制(Attention Mechanism)。需要注意的是,GRU(门控循环单元)是RNN的变体,能够有效捕捉长序列语义关联,缓解梯度消失或爆炸现象,其核心结构由更新门和重置门两部分组成。

基于Transformer解决机器翻译任务

Transformer的主要组件包括编码器(Encoder)、解码器(Decoder)和注意力层。其核心是利用多头自注意力机制(Multi-Head Self-Attention),使每个位置的表示不仅依赖于当前位置,还能够直接获取其他位置的表示。

解码器的每个Transformer块的第一个自注意力子层额外增加了注意力掩码,对应图中的掩码多头注意力(Masked Multi-Head Attention)部分。这主要是因为在翻译的过程中,编码器端主要用于编码源语言序列的信息,而这个序列是完全已知的,因而编码器仅需要考虑如何融合上下文语义信息即可。而解码端则负责生成目标语言序列,这一生成过程是自回归的,即对于每一个单词的生成过程,仅有当前单词之前的目标语言序列是可以被观测的,因此这一额外增加的掩码是用来掩盖后续的文本信息,以防模型在训练阶段直接看到后续的文本序列进而无法得到有效地训练。

评估质量:BIEU-4

在机器翻译领域,BLEU(Bilingual Evaluation Understudy)是一种常用的自动评价指标,用于衡量计算机生成的翻译与一组参考译文之间的相似度。这个指标特别关注 n-grams(连续的n个词)的精确匹配,可以被认为是对翻译准确性和流利度的一种统计估计。BLEU-4 特别指的是在计算时考虑四元组(即连续四个词)的匹配情况。

翻译质量评价

task2使用的是Seq2Seq模型,我调整了几次参数,但是结果还是不太理想。

task3使用的是Transformer模型,相对于Seq2Seq有了很大的进步。​​​​​​​

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值