1.8 NLP自然语言处理

news2024/12/25 9:16:48

NLP自然语言处理

更多内容,请关注:
github:https://github.com/gotonote/Autopilot-Notes.git

一、简介

seq2seq(Sequence to Sequence)是一种输入不定长序列,产生不定长序列的模型,典型的处理任务是机器翻译,输入一段不定长的源语言文字(如中文),而产生一段不定长的目标语言文字(如英文)。

seq2seq模型通常会选用编码器解码器(Encoder-Decoder)架构,编码器接受不定长输入并产生一定大小的上下文(Context),再将上下文投喂给解码器,产生不定长的输出。

在机器翻译的情况下,上下文是一个向量(通常是一个数字数组)。编码器和解码器往往都是递归神经网络RNN。如下图,上下文是浮点数的向量,将具有较高值的单元格分配更亮的颜色来可视化颜色的矢量。可以在设置模型时设置上下文向量的大小。通常为编码器RNN中隐藏单元的数量,此处可视化显示大小为 4 的向量,但在实际应用中,上下文向量的大小可能为 256、512 或 1024。

根据设计,RNN 在每个时间步长接受两个输入:一个输入(在编码器的情况下,输入句子中的一个单词)和一个隐藏状态。词向量通常是在一个大型语料库上学习得到的,这样的技术称为词嵌入(Word Embedding)。这些将单词转换为向量空间,以捕获单词的许多含义/语义信息(例如 国王 - 男人 + 女人 = 女王)。

我们需要在处理输入词之前将其转换为向量。该转换是使用词嵌入算法完成的。我们可以使用预先训练的嵌入,也可以在数据集上训练我们自己的嵌入。嵌入大小为 200 或 300 的向量是典型的,为了简单起见,我们展示了大小为 4 的向量。

二、BERT

BERT是Bidirectional Encoder Representations from Transformers的简称,该模型用Transformer模块堆叠而成,提出一种用大量未标注数据对模型进行预训练(词预测任务MLM和连续语句判断任务NSP),然后用预训练模型在目标训练集上进行微调。

(一)输入/输出表示形式

BERT采用WordPiece[1]的表示形式
图5. WordPiece

WP = TE + SE + PE

  • 两个特殊标记

    • [CLS]:起始标记,同时对应的输出向量表示分类结果(Classification)
    • [SEP]:分隔标记(Separate),分隔两个不同的句子
  • TE:词编码(词嵌入)

  • SE:段编码,指示该单词从属与那个分段(句子)

  • PE:位置编码

(二)预训练任务

用大量未标注的数据集(如维基百科等语料)来构造一系列简单的预训练任务。

(三)词预测MLM

Masked Language Model(LML),训练模型token-level的能力,使其能够关注token之间的联系。随机在语料
中挑选15%的单词进行处理,

  • 以80%的概率将这些单词替换为[MASK]特殊标记
  • 以10%的概率用词表中的随机单词替换这些单词
  • 以10%的概率保持不变
    图6. 词预测MLM

(四)连续语句判断NSP

Next Sentence Prediction(NSP),训练模型sentence-level的能力,使其能够关注两个语句之间的联系。随机在语料中抽选连续的两个语句,并以50%的概率用随机语句来替代第二个语句,让模型学习判断两个语句是不是
连续的(通常在该任务中能达到97%-98%的准确率)。
图7. 连续语句判断NSP

(五)迁移学习

BERT复用预训练模型权重之后,在目标数据集和任务上对所有权重进行微调。常见NLP任务的输入输出形式如
下图所示:
图8. 迁移学习

参考文献

[1] Google’s Neural Machine Translation System: Bridging the Gap between Human and Machine Translation

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1452870.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

BUGKU-WEB game1

题目描述 题目截图如下: 进入场景看看: 是一个盖楼的游戏! 解题思路 先看看源码,好像没发现什么特别的是不是要得到一定的分数才会有对应的flag?查看下F12,请求链接发现,这不就提示了 相…

第13章 网络 Page738~741 13.8.3 TCP/UDP简述

libcurl是C语言写成的网络编程工具库,asio是C写的网络编程的基础类型库 libcurl只用于客户端,asio既可以写客户端,也可以写服务端 libcurl实现了HTTP\FTP等应用层协议,但asio却只实现了传输层TCP/UDP等协议。 在学习http时介绍…

九大问题困扰企业财务数字化转型,你准备好解决了吗?

随着数字化浪潮的推进,企业财务管理也迎来了转型的关键时刻。然而,多年的数字化转型经验告诉我们,企业在这一过程中普遍面临着许多挑战和痛点。接下来,我们将逐一深入剖析这些痛点,并探讨如何有效应对。 一、数据孤岛问…

【大厂AI课学习笔记】【2.1 人工智能项目开发规划与目标】(3)数据准备初步

今天来学习数据准备。 一个AI项目要包括构建数据集、数据清理和数据融合、数据采集、特征工程、算法改进和其他步骤。 数据采集和数据清洗,也就是数据准备,要占到人工智能项目一半以上的工作量。 训练的数据量越大,模型越准确。 建立数据标…

一篇文章入门postmain接口测试

一、了解接口和接口测试 1、什么是接口? 电脑:USB,投影机(数据传输) 软件:统称APl,application,program,interface,微信提现和充值,支付宝支付,银联支付接口。(鉴权码:token,key,appkey) 2、接口包括&…

关于umi ui图标未显示问题

使用ant design pro 时,安装了umi ui ,安装命令: yarn add umijs/preset-ui -D但是启动项目后,发现没有显示umi ui的图标 找了许多解决方案,发现 umi的版本问题,由于我使用的ant design pro官网最新版本&a…

tf.linspace时出现Could not find valid device for node.

背景: 在使用tensorflow2.x的时候,当使用tf.linspace的时候会出现如下的报错: import os os.environ[TF_CPP_MIN_LOG_LEVEL] 2import tensorflow as tf from tensorflow import keras import numpy as npdef out():# x tf.constant(np.arange(12).re…

实现低功耗设计的嵌入式系统技术

(本文为简单介绍,观点来源网络) 在嵌入式系统设计中,追求低功耗已成为一个核心指标,旨在延长设备的运行时间并提升能效。实现这一目标的途径是多元的,涉及从硬件选型到软件算法的各个层面。 首先&#xf…

顺序结构实现栈

顺序结构实现栈 1. 栈1.1 栈的概念及结构1.2栈的实现 2. 栈的各种函数实现3. 全部代码实现 1. 栈 1.1 栈的概念及结构 栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为…

浅析太阳能电池量子效率测试系统的主要组成部分

太阳能电池量子效率测试系统是用于对太阳能电池进行量子效率测试的设备。量子效率是指太阳能电池在接收光照射时,将光子转化为电子的效率。太阳能电池的量子效率越高,其转化光能为电能的效率就越高。主要由以下几个组成部分构成: 光源&#x…

MIT-BEVFusion系列八--onnx导出2 spconv network网络导出

这里写目录标题 export-scn.py加载模型设置每层的精度属性初始化输入参数导出模型model.encoder_layers 设置初始化参数设置 indice_key 属性更改 lidar backbone 的 forward更改lidar网络内各个层的forward带参数装饰器,钩子函数代码使用装饰器修改forward举例 跟踪…

SpringBoot实战第五天

最后在开发一个文件上传接口,结束后端部分开发 文件上传接口 先看接口文档 阅读接口文档,唯一问题就是项目暂时还没有传到服务器上,所以对文件的存储与读取暂时在项目本地进行 Controller层 RestController public class FileUploadCont…

探索设计模式的魅力:揭秘模版方法模式-让你的代码既灵活又可维护

设计模式专栏:http://t.csdnimg.cn/U54zu 目录 一、开篇二、应用场景一坨坨代码实现存在的问题 三、解决方案模式方法结构示意图及说明用模板方法模式重构示例解决的问题 四、工作原理使用模板方法模式重写示例结构图核心结构:抽象类和具体实现 五、总结…

IDEA 的28 个天花板技巧,yyds!

IDEA 作为Java开发工具的后起之秀,几乎以碾压之势把其他对手甩在了身后,主要原因还是归功于:好用;虽然有点重,但依旧瑕不掩瑜,内置了非常多的功能,大大提高了日常的开发效率,下面汇总了常用的28个使用小技巧,学会之后,让你的撸码效率直接起飞... 注意:不同idea版本菜…

计算机二级之sql语言的学习(数据模型—概念模型)

概念模型 含义: 概念模型用于信息世界(作用对象)的建模,是实现现实世界到信息世界(所以万丈高楼平地起,不断地学习相关的基础知识,保持不断地重复才能掌握最为基础的基础知识)的概念抽象&#…

SG5032VEN晶体振荡器SPXO

在高速数字通信和精密电子系统中,时钟信号的质量至关重要。SG5032VEN晶体振荡器(SPXO)凭借其低相位抖动的LVDS输出,为这些应用提供了理想选择。提供频率范围:200.1 MHz ~ 500mhz,满足了从高速网络到数据中心等不同应用…

Java编程在工资信息管理中的最佳实践

✍✍计算机编程指导师 ⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流! ⚡⚡ Java实战 |…

【c++】析构函数

1.特征 析构函数是特殊的成员函数,其特征如下: 1.析构函数名是在类名前加上字符~。 2.无参数无返回值类型。 3.一个类只能有一个析构函数。若未显式定义,系统会自动生成默认的析构函数。注意:析构函数不能重载。 4.对象生命周…

HTML-多媒体嵌入-MDN文档学习笔记

HTML-多媒体与嵌入 查看更多学习笔记&#xff1a;GitHub&#xff1a;LoveEmiliaForever MDN中文官网 HTML-中的图片 将图片放入网页 可以使用<img/>来将图片嵌入网页&#xff0c;它是一个空元素&#xff0c;最少只需src属性即可工作 <img src"图片链接"…

【Python】测量WAV文件播放时长

问题 windows播放WAV音频文件&#xff0c;一般使用API函数&#xff0c;如PlaySound。实际使用发现&#xff0c;从调用PlaySound到实际开始播放存在200ms以上的延时&#xff0c;在游戏编程中音效实时性是个需要解决的问题。 本文主要讨论&#xff0c;windows播放WAV文件的衍生…