Chapter7-1_Overview of NLP Tasks

文章目录

  • 1 Introduction
  • 2 Part-of-Speech(POS) Tagging
  • 3 Word Segmentation
  • 4 Parsing
  • 5 Coreference Resolution
  • 6 Summarization
  • 7 Machine Translation
  • 8 Grammar Error Correction
  • 9 Sentiment classification
  • 10 Stance Detection
  • 11 Natural Language Inference(NLI)
  • 12 Search Engine
  • 13 Question Answering(QA)
  • 14 Dialogue
    • 14.1 Chatting
    • 14.2 Task-oriented
  • 15 Knowledge Extraction
  • 15.1 Name Entity Recognition (NER)
    • 15.2 Relation Extraction
  • 16 Benchmarks

本文为李弘毅老师【Overview of NLP Tasks】的课程笔记,课程视频youtube地址,点这里👈(需翻墙)。

下文中用到的图片均来自于李宏毅老师的PPT,若有侵权,必定删除。

文章索引:

上篇 - 6 Vocoder

下篇 - 7-2 BERT and its family - Introduction and Fine-tune

总目录

1 Introduction

接下来的课程讲述的内容就基本和语音无关了,都是讲本文方面的东西了,这也是被大家称作NLP(Natural Language Processing)的部分。讲的泛一点,接下来的任务都可以概括为“输入文本,输出文本”和“输入文本,输出类别”这两大类。
ch7-1
根据输入和输出序列不同的对应关系,又可以细分为下表所示的这些类别。当然,这么一看,如果没有事先了解的话,根本不知道是在说啥,不急,接下来会一一介绍。因为这篇是Overview,所以只会讲个大概,不会细讲。
ch7-2

2 Part-of-Speech(POS) Tagging

首先来介绍以下POS Tagging,顾名思义就是给句子中的每个word做词性的判断,是动词,还是形容词,还是名词之类的等等。

为什么要搞这个东西?这个其实一般会作为其他NLP任务的上游。比如,今天有一个句子输进来了,叫做"John saw the saw”。这个句子里有两个一模一样的"saw",对下游的模型来说,也许"saw"就是"saw",它会把这两个"saw"当作一个"saw"。但是,学过英文的都知道,这里的前一个"saw"是动词"see"的过去式,后一个"saw"是一个名词,表示锯子。这个时候,如果在直接输入下游模型之前,有一个POS Tagging模型告诉下游模型,等一等,这两个“saw”的词性是不一样的,一个是动词,一个是名词,是两个完全不同的东西。这样一来,下游模型就懂了。

POS Tagging的前处理并不是必要的,因为现在一些比较厉害的模型,比如Bert,可能在训练的时候,就自己已经学到这个东西了。

POS Tagging的输入就是文本序列,输出就是序列中每个token对应的词性类别。
ch7-3

3 Word Segmentation

Word Segmentation就是分词,也是一个前处理。在英文当中,我们有空格可以作为分词的依据,但是在中文当中,我们就不知道怎么样的算作一个词,或者说怎么的叫做一个token。这个时候,就需要有一个分词的前处理。分词模型会输出每个文字对应的是否一个词的结尾。

Word Segmentation的输入是文本序列,输出是每个文字对应的类别(是否是词的结尾)。

这个技术在如今也并不是必须的,厉害的模型也是可以自己学到这个的。
ch7-4

4 Parsing

Parsing又分为Constituency Parsing和Dependency Parsing,也是一种前处理。它有点特殊,它并不像之前讲的那样是“输入文本,输出文本”或“输入文本,输出类别”这两大类中的一种。它输入的是文本,输出的是一个树状结构。这种在接下来的课程中会单独拿出来讨论。
ch7-5

5 Coreference Resolution

Coreference Resolution的中文叫做指代消解。不管是中文还是英文,都是比较少听到的词汇,如果没学过的话,就不知道在说什么东西。它也是前处理的一种,其目的是,找出一个段落中,属于同一个东西的短语或者词汇。

比如,下面这段话中,指代消解需要知道下文中浅蓝色部分的"Paul Allen",“He”,"he"和“Paul”都是指的同一个东西。它也需要知道黄色部分的"Lakeside School"和"their high school, Lakeside"是同一个东西。甚至,它需要知道,浅粉色部分的"Paul and Bill"和两个"their"是同一个东西。

这个也不在之前讲的两种情况当中,会单独拿出来讲。
ch7-6

6 Summarization

Summarization就是摘要。这个任务是希望输入一篇文章,然后输出一段这段文章的摘要。摘要有两种做法,一种叫做Extractive summarization,另一种叫做Abstractive summarization。

Extractive summarization就是像我们小学的时候做摘要一样,从原文中抄几句话下来,就是摘要了。输入是一篇文章,模型要做的事情就是,输出文章中的每个句子是不是摘要。这是很久以前的一种做法了,那个时候认为模型只能做到这样,所以就这么做了。当然,大家心里都清楚,这怎么可能生成好的摘要。

简而言之,Extractive summarization就是之前说的输入文本序列,输出每个token类别的模型,这里的token就是句子。
ch7-7

Abstractive summarization则是要高杰一些,有点像初高中考试时的概括全文主要内容的意思,要我们动脑子去自己组织句子了。不过,有一些成分还是会从原文中摘下来,只不过不适整句整句地抄了。这里抄一些内容是被鼓励的,Pointer Network就是干这个的。

简而言之,Extractive summarization就是之前说的输入文本序列,输出摘要序列的模型。
ch7-8

7 Machine Translation

Machine Translation(机器翻译)是一个典型的seq2seq的模型,这里值得一提的就是,Machine Translation不光光是文本转文本这样,它也可以语音转文本,甚至语音转语音。为什么要搞这个?因为世界上其实有很多语言是连文字都没有的。

另一点值得一提的就是,无监督的机器翻译是目前一个主要的研究方向。因为世界上的语言太多了,我们很难收集到成对的翻译资料。如果我们可以让模型只看英文学一会,再接着只看中文学一会儿,然后模型自己就会自己找到对应关系,把英文转成中文了,那就太好了。
ch7-9

8 Grammar Error Correction

Grammar Error Correction也是一个seq2seq的模型,它就是输入一个错误语法的句子,输出一个正确语法的句子的模型。我们可以很简单地,就拿一些正确与错误配对的数据,硬train一发。但是这样做,模型的任务是很难的。其实我们完全可以给模型一个更简单的任务。比如下图中的右半边有两个例子,我们可以看出,如果句子不是面目全非的那种,我们只需要把错误的单词替换掉,或者在某个单词后面加一个单词即可,这样模型就可以变成去给每个单词做分类,分为“正确”,“替换”,“追加”这三类,然后再去修改。
ch7-10

9 Sentiment classification

情感分类是典型的序列分类任务,它要做的事情就是评价一段话是好评还是差评,常常被用来分析用户的评论。输入是一段文本序列,输出是一个类别。
ch7-11

10 Stance Detection

Stance Detection就是立场检测,它要做的事情就是检测两个句子的立场是否是相同的。比如下面有人发了“李弘毅是个型男”这样一条推文,如果回复中有人说“他只是个死丑酸宅”的话,那么这两句话的立场就不一样了。立场可以分为四种,分别是“Support”,“Denying”,"Querying"以及“Commenting”,简称为(SDQC)。
ch7-12

这个技术常被用在Veracity Prediction(真实性预测)当中。比如今天有一条推文,我们不能马上知道这条推文的真实性,但是,如果推文小面的很多回复都是在“Denying”它的,那么这就很有可能是一条假消息。我们在预测时,也可以加入Wikipedia的内容,用来辅助模型判断。

总的来说,都逃不过输入是多个文本序列,输出是一个类别。
ch7-13

11 Natural Language Inference(NLI)

NLI就是自然语言推理,它要做的一件事情就是,给一个前提,再给一个假设,模型要判断在这个前提下,输入的假设是否成立。这看似是一个很难的问题,但是从一个宏观的角度来说,就是给模型输入一个前提和一个假设,然后模型做一个分类,判断是"矛盾",“蕴涵"还是"中立”。
ch7-14

12 Search Engine

搜索引擎现在也慢慢把深度学习的技术融入进去了。之前的搜索引擎都是基于的关键词匹配,对于英文中一词多义的情况就处理的不是很好。但有了深度学习模型之后,就可以了解到语义了。从宏观上来讲,也就是输入搜索的句子和文章,输出句子和文章的相似度,然后按相似度排序。
ch7-15

13 Question Answering(QA)

QA在没有深度学习之前就有了,比较有名了就是IBM的Watson,它们都是基于一些传统的机器学习模型去做的。Waston在做QA时的步骤是,先对输入的问题进行前处理,把问题分到一个很小的类别当中,然后根据类别和问题从数据库中去找备选答案,找到备选答案之后,对答案进行相关性的评分,最后把这些备选答案合并和排序,得到最终答案。整个过程是相当复杂的。
ch7-16

但有了深度学习之后,我们要做的其实就是输入问题和知识库,然后输出一个答案。这里的知识库是我们把问题输入搜索引擎之后得到的,就像程序员编程的时候一样。模型会过滤调一些无关的内容,然后整合得到最终的答案。不过,这个其实在今天还是有很多路要走的一个问题,并没有事先到这么智能。
ch7-17

今天我们能做的,也许就只能是输入一个问题和一篇文档,答案是在文档中可以找到的,最后输出的是答案在这个文档中的位置。这么一看,一下子可以看出我们距离QA的设想还有多远的路要走。
ch7-18

14 Dialogue

对话可以分为聊天型和任务导向型的。

14.1 Chatting

聊天机器人很善于尬聊,李老师在课堂上展示了以下他和cleverbot的聊天纪录,可以看出,聊天机器人还是可以知道之前聊了些什么的。聊天的模型就是把当前说的话和历史聊天纪录一起丢给模型,然后模型会吐出一个回复。我们希望模型可能还要有一些个性,针对不同的人,说话时不一样的;有一些同理心,可以安慰安慰人;有知识,可以回答我们的一些疑惑。
ch7-19

14.2 Task-oriented

任务导向型的对话,其实就是我们日常生活中越来越普遍的服务型聊天机器人。我们会限制机器人回复的内容,这个回复的内容统称为Action。比如如果时酒店的订房机器人,它的Action可能就是"问好",“询问入住日”,“询问退房日”等等。我们会把历史的聊天纪录喂给模型,然后这个模型会输出对应的Action应该是哪个。得到Action之后,还会把Action丢给NLG模型,让它生成对应的回答。如果时比较简单的场景,我们完全可以用规则写死,但是场景复杂的话,我们是希望用深度模型来解决这个问题的。
ch7-20
这里用来输出Action的Model,往往用到的是Policy & State Tracker。State就是一个来记录当前状态的东西,比如下图中的订房示例的话,我们会有一些信息要模型去填出来,模型会根据当前的聊天进度来更新这个state的表格,然后Policy的模型会根据当前的state来决定接下来的action是什么。
ch7-21

输入State Tracker的内容往往要经过Natural language understanding(NLU)。NLU要做的有意图分类和填槽。意图分类就是判断当前说的话是提供信息,还是询问之类的。填槽就和我们之前说到的POS Tagging很像了,就是输出输入句子的每个token对应的slot是什么。然后再把这些信息交给State Tracker去处理。
ch7-22

整个任务导向型的对话系统可以用下图来概括。整个过程,可以看到,用了很多模型,不过在今天,也是有end-to-end去做的可能性。
ch7-23

15 Knowledge Extraction

Knowledge Extraction要做的一件事情就是构建知识图谱(Knowledge Graph)。比如我们今天有一大堆的资料,我们要先从这堆资料当中抽取一些entities,entity可以理解为东西,然后再根据资料给有关联的entities之间画上relation。

当然,这么说其实把整个过程说成Extract Entity和Extract Relation这两步是简化了很多很多的,这个再之后的课程中会细讲。
ch7-24

15.1 Name Entity Recognition (NER)

NER要做的事情就是和POS Tagging和Slot Filling差不多的事情,给一段文本,然后给文本中每个token打标签,比如Harry Potter就是People,Hogwarts就是organizations等等。这里的entity的种类是可以根据我们关心的内容去改变的。

当然,实际情况下,某个同样的东西可能有多个名字,同样的名字也可能指向不同的东西。要解决这个问题就要用到一个叫做entity linking的技术了。这个在之后的课程再讲。
ch7-25

15.2 Relation Extraction

Relation Extraction就是一个分类的问题。我们会事先定义好有哪些relations,然后输入我们两个entities和与这两个entities相关的句子,得到最终的relation。类别中还要有一个叫做"none"的,因为有些entities虽然在同一段句子中出现,但是它们是没有关系的,这个就要看模型的能力了。
ch7-26

16 Benchmarks

为了指导机器到底理解到人类的语言到了怎样的程度,就有了很多的Benchmarks。比较权威知名的有Glue,Super Glue和Decanlp。这里只是提一下,不细讲。

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

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

相关文章

python制作文本编辑器_Python小实战:制作文本编辑器

学了半年了,该施展一下了🍺 做什么呢?做一个简单的文本编辑器吧 来,开始 知识点: 1)做窗体的知识 2)文件操作 窗体用的是tkinter简单模块,系统自带模块 有人说了:“哇&am…

OGNL 详解

Struts2 OGNL详解 1.概念: OGNL是Object-Graph Navigation Language的缩写,全称为对象图导航语言,是一种功能强大的表达式语言,它通过简单一致的语法,可以任意存取对象的属性或者调用对象的方法,能够遍历整…

完善获取数据库数据的写法

上一篇:使用express搭建服务器获取MySQL数据库数据 一、完善获取数据库数据的写法 asyncawait版本: const express require(express) const db require(./db/nodejs-orm/index.js)const app express()app.get("/get_data", (req, res) …

Chapter7-2_BERT and its family - Introduction and Fine-tune

文章目录1 What is pre-train model2 How to fine-tune2.1 Input2.2 Output2.3 Fine-tune2.4 Weighted Features3 Why fine-tune本文为李弘毅老师【BERT and its family - Introduction and Fine-tune】的课程笔记,课程视频youtube地址,点这里&#x1f4…

【BZOJ-2435】道路修建 (树形DP?)DFS

2435: [Noi2011]道路修建 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 3115 Solved: 1002[Submit][Status][Discuss]Description 在 W 星球上有 n 个国家。为了各自国家的经济发展,他们决定在各个国家之间建设双向道路使得国家之间连通。但是每个国家的国王都…

CSRF跨站请求伪造

一、CSRF跨站请求伪造 CSRF全拼为Cross Site Request Forgery,译为跨站请求伪造。 CSRF指攻击者盗用了你的身份,以你的名义发送恶意请求。 包括:以你名义发送邮件,发消息,盗取你的账号,甚至于购买商品&a…

升级 ubuntu_Ubuntu 19.04 已经到期!现有用户必须升级到 Ubuntu 19.10

Ubuntu 19.04 已在 2020 年 1 月 23 日到期,这意味着运行 Ubuntu 19.04 的系统将不再会接收到安全和维护更新,因此将使其容易受到攻击。-- Abhishek Prakash(作者)Ubuntu 19.04 发布于 2019 年 4 月 18 日。由于它不是长期支持(LTS)版本,因此…

Chapter7-3_BERT and its family - ELMo, BERT, GPT, XLNet, MASS, BART, UniLM, ELECTRA, and more

文章目录1 How to pre-train2 Predict next token3 Mask Input4 seq2seq的pre-train model5 ELECTRA6 Sentence Embedding本文为李弘毅老师【BERT and its family - ELMo, BERT, GPT, XLNet, MASS, BART, UniLM, ELECTRA, and more】的课程笔记,课程视频youtube地址…

python中split函数_python strip()函数和Split函数的用法总结

strip函数原型 声明:s为字符串,rm为要删除的字符序列. 只能删除开头或是结尾的字符或是字符串。不能删除中间的字符或是字符串。 s.strip(rm) 删除s字符串中开头、结尾处,位于 rm删除序列的字符 s.lstrip(rm) 删除s字符串中开头处&#xff0c…

express项目搭建 初始化详细步骤

案例 一、对每一个POST请求都设置CSRF防护 实际上,不仅仅转账需要CSRF防护,每一个post请求都需要做csrf的防护措施。 webA项目中的app.js: const router express.Router();router.all("/register",(res,req)>{.... })funct…

Chapter7-4_來自獵人暗黑大陸的模型 GPT-3

文章目录1 为何来自暗黑大陆2 GPT-3的野心3 GPT-3的效果4 Beyond GPT-3本文为李弘毅老师【來自獵人暗黑大陸的模型 GPT-3】的课程笔记,课程视频youtube地址,点这里👈(需翻墙)。 下文中用到的图片均来自于李宏毅老师的PPT,若有侵权…

二、PHP框架Laravel学习笔记——路由的定义和控制器

一.路由的定义 什么是路由?路由就是提供接受 HTTP 请求的路径,并和程序交互的功能; 简单点理解,就是为了提供访问程序的 URL 地址,所做的一些设置工作; phpstorm 支持 cmd 操作,左…

Chapter7-5_Multilingual BERT

文章目录1 什么是Multilingual BERT2 Zero-shot Reading Comprehension3 Cross-lingual Alignment4 How alignment happens本文为李弘毅老师【Multilingual BERT】的课程笔记,课程视频youtube地址,点这里👈(需翻墙)。 下文中用到的图片均来自…

deepin tim(wine)无法安装_浅析国产操作系统深度deepin

经过两天的努力,终于实现了win10下跟deepin 的双系统,经过我实际操作,发现win7环境下装双系统还是有问题的。虽然deepin系统也能安装成功,但是win系统却是无法顺利启动,一直卡在系统初始界面无限循环。而更换win10之后…

三、PHP框架Laravel学习笔记——路由参数、重定向、视图

一.路由参数 我们已经学习了部分路由参数的功能,比如动态传递{id};那么,有时这个参数需要进行约束,我们可以使用正则来限定必须是数字; Route::get(task/read/{id}, TaskControllerread) ->where(id, …

Chapter7-6_Text Style Transfer

文章目录1 什么是Text Style Transfer2 Cycle GAN2.1 Gumbel-softmax2.2 Continuous Input for Discriminator2.3 Reinforcement Learning2.4 效果3 Star GAN4 Feature Disentangle5 Unsupervised Abstractive Summarization6 Unsupervised Translation7 Unsupervised Speech R…

Student学生管理系统

1.定义各个层 2.添加各个层之间的引用 DAL 层调用Model BLL层调用DAL和Model UI层调用BLL和Model层 Model层供各个层调用 3.根据数据库建立实体类,每张表对应一个实体类 4.在DAL层调用MyTool类和SQLhelper类,添加system.Configuration 引用 并编写app.config 在SqlHelper类调用…

一、PHP框架Laravel——入门和安装

一.版本化方案 Laravel 框架是一款简洁、优秀且优雅的 PHP 开发框架;Laravel 到底怎么读,由于不是真实的单词,导致争论较多目前已知:[lrəvel][lɑːrəvel][lɑːrvl]有这几种;Laravel 从 6.x 开始进入到…

iscsi没有可用于使用快速连接登陆的目标_【解密】5G商用在即 OPPO快速网络切换方法;高管宣布华为河图商标注册成功;小米折叠屏专利曝光 类似于摩托罗拉Razr...

1.【专利解密】5G商用在即 OPPO快速网络切换方法2.好消息!高管宣布华为河图商标注册成功3.小米折叠屏专利曝光 类似于摩托罗拉Razr4.索尼Xperia提交新专利 上下双升降结构1.【专利解密】5G商用在即 OPPO快速网络切换方法【嘉德点评】OPPO发明的网络切换专利&#xf…

搞懂DEtection TRanformer(DETR)

文章目录1 bipartite matching loss2 模型总体框架2.1 backbone2.2 transformer2.2.1 encoder2.2.2 decoder2.2.3 prediction heads3 模型效果参考文献本文描述了笔者在阅读了一些文献之后,对 End-to-end Object Detection with Transformers(DETR) 的理解。DETR是一…