NLP 自然语言处理( Datawhale AI 夏令营)2

Task2:从baseline代码详解入门深度学习

要点:Seq2Seq模型结构; 中英文分词 ;循环神经网络(RNN);门控循环单元(Gated Recurrent Unit,GRU)。

一. Seq2Seq模型
序列到序列(Sequence-to-Sequence,简称Seq2Seq)模型是一种深度学习架构,主要用于处理输入和输出都是变长序列的任务,例如机器翻译、文本摘要、语音识别转文字、聊天机器人对话等自然语言处理任务。Seq2Seq模型的核心思想是使用两个主要部分组成的神经网络框架:编码器(Encoder)和解码器(Decoder)。


                        
更多:含注意力机制的Seq2Seq模型链接https://blog.csdn.net/qq_42533357/article/details/136855508

神经网络解决机器翻译任务的基本流程:

1.配置环境

安装额外包:

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

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

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

  • spacy:是一个强大的自然语言处理库,支持70+语言的分词与训练(安装路径:  https://github.com/explosion/spacy-models/releases)

2.数据预处理

BERT模型中的特殊标记(Special Tokens)。它们的含义如下:

   [PAD]:在batch中对齐序列长度时,用 [PAD]进行填充以使所有序列长度相同。可以通过将其添     加到较短的序列末尾来实现对齐。
   [CLS]:在输入序列的开头添加 [CLS] 标记,以表示该序列的分类结果。
   [SEP]:用于分隔两个句子,例如在文本分类问题中,将两个句子拼接成一个输入序列时,可以    使用 [SEP] 来分隔这两个句子。
   [UNK]:此标记用于表示未知或词汇外的单词。当一个模型遇到一个它以前没有见过/无法识别的    词时,它会用这个标记替换它。
在BERT模型中,这些特殊标记是必不可少的,因为它们能够帮助模型区分输入序列的不同部分)

  • 清洗和规范化数据

    • 去除无关信息:删除HTML标签、特殊字符、非文本内容等,确保文本的纯净性(本赛题的训练集中出现了非常多的脏数据,如“Joey. (掌声) (掌声) 乔伊”、“Thank you. (马嘶声) 谢谢你们”等这种声音词)

    • 统一格式:转换所有文本为小写,确保一致性;标准化日期、数字等格式。

    • 分句和分段:将长文本分割成句子或段落,便于处理和训练。

  • 分词

  • 构建词汇表和词向量

    • 词汇表构建:从训练数据中收集所有出现过的词汇,构建词汇表,并为每个词分配一个唯一的索引

    • 词向量:使用预训练的词向量或自己训练词向量,将词汇表中的词映射到高维空间中的向量,以捕捉语义信息(当前大模型领域训练的 embedding 模型就是用来完成此任务的)。

  • 序列截断和填充

    • 序列截断:限制输入序列的长度,过长的序列可能增加计算成本,同时也可能包含冗余信息。

    • 序列填充:将所有序列填充至相同的长度,便于批量处理。通常使用<PAD>标记填充。

  • 添加特殊标记

    • 序列开始和结束标记:在序列两端添加<SOS>(Sequence Start)和<EOS>(Sequence End)标记,帮助模型识别序列的起始和结束

    • 未知词标记:添加<UNK>(Unknown)标记,使模型能够处理未见过的词汇

  • 数据增强

    • 随机替换或删除词:在训练数据中随机替换或删除一些词,增强模型的鲁棒性。(鲁棒性(Robustness)是指系统或算法在面对不确定、噪声、异常输入或者设计错误时仍能维持其功能的能力。在计算机科学中,它强调的是软件或硬件在面对各种预期之外的情况时,能够保持稳定性能并能够正确处理异常情况的能力。具有鲁棒性的系统能够在一定程度上抵抗外部干扰,保证在遇到小范围变化时不会导致严重故障。例如,在机器学习模型中,鲁棒性意味着模型对数据中的噪声或异常值有一定的容错能力。)

    • 同义词替换

  • 数据分割

    • 划分数据集

3.模型训练与验证

基于注意力机制的 GRU 神经网络机器翻译

其中GRU的部分

4.翻译

1.BLEU(Bilingual Evaluation Understudy)

2.“信达雅“

心得:

1、spacy采用离线下载的方式,但上传依然花费了大量的时间

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值