【Pytorch神经网络理论篇】 36 NLP中常见的任务+BERT模型+发展阶段+数据集

同学你好!本文章于2021年末编写,获得广泛的好评!

故在2022年末对本系列进行填充与更新,欢迎大家订阅最新的专栏,获取基于Pytorch1.10版本的理论代码(2023版)实现

Pytorch深度学习·理论篇(2023版)目录地址为:

CSDN独家 | 全网首发 | Pytorch深度学习·理论篇(2023版)目录本专栏将通过系统的深度学习实例,从可解释性的角度对深度学习的原理进行讲解与分析,通过将深度学习知识与Pytorch的高效结合,帮助各位新入门的读者理解深度学习各个模板之间的关系,这些均是在Pytorch上实现的,可以有效的结合当前各位研究生的研究方向,设计人工智能的各个领域,是经过一年时间打磨的精品专栏!https://v9999.blog.csdn.net/article/details/127587345欢迎大家订阅(2023版)理论篇

以下为2021版原文~~~~

 

1 NLP发展阶段

深度学习在NLP上有两个阶段:基础的神经网络阶段

1.1 基础神经网络阶段

1.1.1 卷积神经网络

将语言当作图片数据,进行卷积操作。

1.1.2 循环神经网络

按照语言文本的顺序,用循环神经网络来学习一段连续文本中的语义。

1.1.3 基于注意力机制的神经网络

是一种类似于卷积思想的网络。它通过矩阵相乘,计输入向量与目的输出之间的相似度,进而完成语义的理解。

1.2 BERTology阶段

通过运用以上3种基础模型,不断地搭建出拟合能力越来越强的模型,直到最终出现了BERT模型。

1.2.1 BERT的发展

BERT模型几乎在各种任务上都优于其他模型, 最终演变出多种BERT的预训练模型 :

  1. 引入BERT模型中双向上下文信息的广义自回归模型XLNet;
  2. 改进BERT模型训练方式和目标的RoBERTa和SpanBERT模型;
  3. 结合多任务和知识蒸馏强化 BERT 模型的MT-DNN模型

1.2.2 关于BERT模型的疑问

试图探究BERT模型的原理及其在某些任务中表现出众的真正原因。BERT模型在其出现之后的一个时段内, 成为NLP任务的主流技术思想。这种思想也称为BERT学。

2 NLP常见的任务

NLP可以细分为自然语言理解(Natural Language Understanding, NLU) 与 自然语言生成(Natural Language Generation,NLG) 两种情况。

2.1 基于文章处理的任务

2.1.1 含义

主要是对文章中的全部文本进行处理,即文本挖掘。该任务的文章为单位,模型会对文章中的全部文本进行处理,得到该篇文章的语义。当得到语义之后,便可以在模型的输出层,按照具体任务输出相应的结果。

2.1.2 基于文章处理任务的细分

  • 序列到类别:如文本分类和情感分析。
  • 同步序列到序列:是指为每个输入位置生成输出,如中文分词、命名实体识别和词性标注。
  • 异步序列到序列:如机器翻译、自动摘要。

2.2 基于句子处理的任务/序列级别任务

主要包括句子分类任务(如情感分类)、句子推断任务(推断两个句子是否同义)及句子生成任务(如回答问题、图像描述)等。

2.2.1 句子分类任务及相关数据集

句子分类任务常用于评论分类、病句检查等场景,常用的数据集如下:

  1. SST-2(Stanford Sentiment Treebank):这是一个二分类数据集,目的是判断一个句子(句子来源于人们对一部电影的评价)的情感。
  2. CoLA(Corpus of Linguistic Acceptability):这是一个二分类数据集,目的是判断一个英文句子的语法是否正确。

2.2.2 句子推断任务及相关数据集

句子推断任务(又称基于句子对的分类任务)的输入是两个成对的句子,其目的是判断两个句子的意思是蕴含、矛盾的,还是中立的。常用在智能问答,智能客服及多轮对话中。常见数据集如下:

  1. MNLI:这是GLUEDatasets数据集中的一个数据集,是一个大规模的、来源众多的数据集,目的是判断两个句子语义之间的关系。
  2. QQP(Quora Question Pairs):这是一个二分类数据集,目的是判断两个来自Quora的问题句子在语义上是否是等价的。
  3. QNLI(Question Natural Language Inference):这也是一个二分类数据集,每个样本包含两个句子(一个是问题,另一个是答案)。正向样本的答案与问题相对应,负向样本则相反。
  4. STS-B(Semantic Textual Similarity Benchmark):这是一个类似回归问题的数据集,给出一对句子,使用1~5的评分评价两者在语义上的相似程度。
  5. MRPC(Microsoft Research Paraphrase Corpus)这是一个二分类数据集,句子对来源于对同一条新闻的评论,判断这一对句子在语义上是否相同。
  6. RTE(Recognizing Textual Entailment):这是一个二分类数据集,类似于MNLI数据集,但是数据量较少。
  7. SWAG(Situations With Adversarial Generations):这是一个问答数据集,给一个陈述句子和4个备选句子,判断前者与后者中的哪一个最有逻辑的连续性,相当于阅读理解问题。

2.2.3 句子生成任务及数据集

句子生成任务:属于类别(实体对象)到序列任务,如文本生成、回答问题和图像描述。

典型数据集如下:

SQuAD数据集的样本为语句对(两个句子)。其中,第一个句子是一段来自某百科的文本,第二个句子是一个问题(问题的答案包含在第一个句子中)。这样的语句对输入模型后,要求模型输出一个短句作为问题的答案。

SQuAD2.0,它整合了现有的SQuAD数据集中可回答的问题和50000多个由公众编写的难以回答的问题,其中那些难以回答的问题与可回答的问题语义相似。它弥补现有数据集中的不足。现有数据集要么只关注可回答的问题,要么使用容易识别的自动生成的不可回答的问题作为数据集。

为了在SQuAD2.0数据集中表现得更好,模型不仅要在可能的情况下回答问题,还要确定什么时候段落的上下文不支持回答。

2.3基于句子中词的处理任务

基于句子中词的处理任务又叫作token级别任务,常用于完形填空(Cloze)、预测句子中某个位置的单词(或实体词)、对句子中的词性进行标注等。

2.3.1 token级别任务与BERT模型

token级别任务也属于BERT模型预训练的任务之一,即完形填空,根据句子中的上下文token,推测出当前位置应当是什么token。

BERT模型预训练时使用了遮蔽语言模型(Masked Language Model,MLM)。该模型可以直接用于解决token级别任务,即在预训练时,将句子中的部分token用[masked]这个特殊的token进行替换,将部分单词遮掩住。该模型的输出就是预测[masked]对应位置的单词。这种训练的好处是不需要人工标注的数据,只需要通过合适的方法,对现有语料库中的句子进行随机的遮掩即可得到可以用来训练的语料,训练好的模型就可以直接使用。

2.3.2 token级别任务与序列级别任务

在某种情况下,序列级别任务也可以拆分成token级别任务来处理。

SQuAD数据集是一个基于句子处理的生成式数据集。这个数据集的特殊性在于最终的答案包含在样本的内容之中,是有范围的,而且是连续分布在内容之中的。

2.3.3 实体词识别任务及常用模型

实体词识别(Named Entity Recognition,NER)任务也称为实体识别、实体分块或实体提取任务。它是信息提取的一个子任务,旨在定位文本中的命名实体,并将命名实体进行分类,如人员、组织、位置、时间表达式、数量、货币值、百分比等。

本质:对句子中的每个token标注标签,然后判断每个token的类别,可以用于快速评估简历、优化搜索引擎算法、优化推荐系统算法等。

常见的实体词识别模型包括:

  1. SpaCy模型是一个基于Python的命名实体识别统计系统,它可以将标签分配给连续的令牌组。SpaCy模型提供了一组默认的实体类别,这些类别包括各种命名或数字实体,如公司名称、位置、组织、产品名称等。这些默认的实体类别还可以通过训练的方式进行更新。
  2. Stanford NER模型是一个命名实体Recognizer,用Java实现。它提供了一个默认的实体类别,如组织、人员和位置等,可支持多种语言。

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

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

相关文章

win7关机快捷键_1个U盘+1款软件,电脑小白也能在家轻松重装win7系统

U盘重装系统,顾名思义就是将U盘插入笔记本后,对电脑进行重装系统。但是我们得清楚一个事情,所谓的U盘并不是普通的U盘,是一个装有PE镜像文件的启动盘。也许很多人还不懂,今天我就来给大家介绍一下如何用1个U盘1款软件&…

cmd导入mysql文件

之所以要使用CMD(命令行)导入Mysql文件(.sql文件形式)也许是你还没遇到过 Mysql图形管理工具都无法正常导入sql文件。在网上找了很多的网友提供的资料来看几乎都是显示 所用工具限制,这里我就不多说了。 如下&#xff…

【Pytorch神经网络实战案例】30 jieba库分词+训练中文词向量

1 安装jieba 1.1 安装 pip install jieba 1.2 测试 import jieba seg_list jieba.cut("谭家和谭家和") for i in seg_list:printf(i); 1.3 词向量 在NLP中,一般都会将该任务中涉及的词训练成词向量,然后让每个词以词向量的形式型的输入…

javascript option 菜单图标_苹果电脑上神奇的Option键 巧用option键提升效率

Option键 是苹果电脑一个非常有用的键option键主要的用途,是绕过一些你不想要的对话框。巧用option键可以提升效率,喜欢的朋友收藏起来吧!Option键神奇功能拖拽粘贴Mac电脑上拖拽文件默认是剪切功能按住Option键拖拽文件就能快速达到复制粘贴…

核酸结果统计难?130行代码实现基于ocr的核酸截图识别存储Excel(复现代码核查核酸报告)

来源: 核酸结果统计难?复旦博士生的操作火了https://m.gmw.cn/baijia/2022-04/08/35644611.html 1 程序背景 学校要收核酸截图,汇总太麻烦了,故将OCR整合到数据中。 1.1 命名规范 20200250202003曹文举4.12阴性.jpg 1.2 Eas…

ubuntu下面的git服务器搭建

1、安装相应的软件和依赖 ubuntu:~$ sudo apt-get install git-core openssh-server openssh-client git-core是git版本控制核心软件安装openssh-server和openssh-client是由于git需要通过ssh协议来在服务器与客户端之间传输文件然后中间有个确认操作,输…

实验四:使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用

王康 原创作品转载请注明出处 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 系统调用:操作系统中,程序员通过封装好的库函数来实现系统调用 前提 1,用户态内核态中断: 1,用户态内核…

【Pytorch神经网络理论篇】 37 常用文本处理工具:spaCy库+torchtext库

同学你好!本文章于2021年末编写,获得广泛的好评! 故在2022年末对本系列进行填充与更新,欢迎大家订阅最新的专栏,获取基于Pytorch1.10版本的理论代码(2023版)实现, Pytorch深度学习理论篇(2023版)目录地址…

海龟画图 python太阳花_python 简单的绘图工具turtle使用详解

目录 1. 画布(canvas) 1.1 设置画布大小 2. 画笔 2.1 画笔的状态 2.2 画笔的属性 2.3 绘图命令 3. 命令详解 4. 绘图举例 4.1 太阳花 4.2 绘制小蟒蛇 4.3 绘制五角星 python2.6版本中后引入的一个简单的绘图工具,叫做海龟绘图(Turtle Graphics),turtle库是python的内…

【Pytorch神经网络实战案例】31 TextCNN模型分析IMDB数据集评论的积极与消极

卷积神经网络不仅在图像视觉领域有很好的效果,而且在基于文本的NLP领域也有很好的效果。TextCN如模型是卷积神经网络用于文本处理方面的一个模型。 在TextCNN模型中,通过多分支卷积技术实现对文本的分类功能。 1 TextCNN 1.1 TextCNN模型结构 TexCNN…

python怎么画出好看的统计图_用最简单的 Python ,画最好看的图 [简单数据可视化]...

可以直接修改参数使用,非常的方便。import numpy as np import pandas as pd import holoviews as hv hv.extension(bokeh) macro_df pd.read_csv(http://assets.holoviews.org/macro.csv, \t) key_dimensions [(year, Year), (country, Country)] value_dimensio…

combobox之下拉宽度自适应

效果对比 先看下优化前后的效果,再看实现过程. 优化前 优化后 从上图中可看到,combobox优化后可以自适应不同长度的字符串,保证每个字符串都能够显示完整。 实现过程 当我们触发CBN_DROPDOWN事件时,不再使用默认的实现&#xff0c…

Python工具:将文件夹下的视频按照帧数输出图片文件(含代码)

1、描述 将一个视频流按帧数截取大量的图片 2、用途 AI的数据集制作,得到大量的图片,之后将其打标签 3、案例文件截图 4、代码实现: import cv2 import argparse import os# 边里该文件夹下的文件名称 def read_directory(directory_nam…

用Python语言对任意图像进行m*n的均匀分块(思路非常清晰,步骤简单)

主要用途:处理图片数据集 1 对单个图片进行分块 import numpy as np import matplotlib.pyplot as plt import cv2def divide_method1(img,m,n):#分割成m行n列print(img.shape)h, w img.shape[0],img.shape[1]gx np.round(h).astype(np.int)gy np.round(w).asty…

python爬虫用什么软件写_python爬虫怎么写

如今很多有编程能力的小伙伴已经不满足手动搜索内容了,都希望通过编写爬虫软件来快速获取需要的内容,那么如何使用python制作爬虫呢?下面小编给大家讲解一下思路 工具/原料 python 方法/步骤 1 首先我们需要确定要爬取的目标页面内容&#xf…

花书《深度学习》代码实现:01 线性代数:基本概念+代码实现基本运算

1 标量、向量、矩阵和张量 2 矩阵和向量相乘 3 单位矩阵和逆矩阵 3.0 单位矩阵 a np.identity(3) # 三行三列单位矩阵 3.1 矩阵的逆 A [[1.0,2.0],[3.0,4.0]] A_inv np.linalg.inv(A) print("A 的逆矩阵", A_inv) 3.1 转置 A np.array([[1.0,2.0],[1.0,0…

【Pytorch神经网络理论篇】 38 Transformers:安装说明+应用结构+AutoModel类

同学你好!本文章于2021年末编写,获得广泛的好评! 故在2022年末对本系列进行填充与更新,欢迎大家订阅最新的专栏,获取基于Pytorch1.10版本的理论代码(2023版)实现, Pytorch深度学习理论篇(2023版)目录地址…

clone是深拷贝还是浅拷贝_Python中的浅拷贝和深拷贝

本文翻译自copy in Python (Deep Copy and Shallow Copy),讲述了在Python语言中浅拷贝与深拷贝的不同用法。全文系作者原创,仅供学习参考使用,转载授权请私信联系,否则将视为侵权行为。码字不易,感谢支持。以下为全文内…

【Pytorch神经网络实战案例】32 使用Transformers库的管道方式实现:加载指定模型+文本分类+掩码语言建模+摘要生成+特征提取+阅读理解+实体词识别

管道方式是Transformers库中高度集成的极简使用方式。使用这种方式来处理NLP任务,只需要编写几行代码就能实现。通过本例的练习可以使读者对Transformers库的使用快速上手。 1 在管道方式中指定NLP任务 Transfomers库的管道方式使用起来非常简单,核心步…

jqprint获取打印页数_如何将每张打印多页PPT的PDF变成常规课件

在工作和学习中,经常会收到各种 PDF 文件,尤其是老师的课件。为了防止学生大量上传到各种文库网站赚积分,或者为了方便学生打印出来预习复习。通常,会在每页 PDF 里面,打印多张 PPT 内容。一般是 6 张或 9 张&#xff…