- 本课简介了NLP的各类任务,重点在于各类任务的解法掌握
- 根据输入输出的不同将NLP任务分类
- 在BERT中可以学得很多信息,简化了一些预处理步骤(分词、词性标注、语法分析等)
- 讲解了三个数据集,GLUE中有三类任务但不涵盖所有NLP问题,难度也不够,所以提出了super GLUE。DecaNLP体术的是个任务可以从总体去测验机器理解人类语言的能力,所有任务可看做QA。
目录
二、词性标注预处理part-of-speech(POS)tagging
五、指代消解预处理Coreference resolution
八、更正语法错误grammar error correction
九、情感分类sentiment classification
十一、NLI natural language inference自然语言推理
十四、dialogue 对话 分为chatting、task-oriented
2、task-oriented任务导向的对话:需要通过对话获取信息来完成工作
一、根据输入输出的不同组合,NLP任务类别如下
重点在于知道各类任务的解法
- 横向:输入
- 纵向:输出
二、词性标注预处理part-of-speech(POS)tagging
- POS tagging的模型,给句子中的每一个词标注词性
- 然后把词性的信息与文字绑定之后,放在下游任务中使用,帮助分辨一词多义的问题
假如下游任务的模型有做POS tagging的能力,也可以不提前做预处理
三、中文分词预处理word segmentation
- 中文需要词汇分隔,英文是不需要的
- 模型会做二元分类,决定每个字是否是词汇边界。放在下游任务中就是使用词汇来作为处理单位
有没有必要预处理分词?bert处理中文时使用字为单位,bert可能自己会学到如何分词
四、句法分析预处理parsing
给一个句子输出一个树状结构,会被当做额外的feature,作为输入用在接下来的任务中
有无必要?bert能学到parsing吗?
五、指代消解预处理Coreference resolution
找一篇文章中哪些词汇指的是同一个实体,作为一个feature,输入给NLP任务
六、摘要summarization
- 过去常做:extractive summarization,从一篇文章中挑选重要的句子生成摘要,但是句子之间是独立判断是否入选摘要的
- 现在:abstractive summarization,使用的是seq2seq模型,需要模型有复制输入的能力,可以使用pointer network架构
七、机器翻译 machine translation
八、更正语法错误grammar error correction
输入一个错误的句子,输出正确的句子,也需要能从输入拷贝内容的机制
九、情感分类sentiment classification
看网络评价趋势
十、立场侦测stance detection
输入两个句子(源、对源的回复),输出一个类别(support denying querying commenting)
经常用在veracity prediction事实侦测中
输入多个sequence,输出一个类别
输入:源+回应+立场侦测结果+维基百科,输出:真/假
十一、NLI natural language inference自然语言推理
是否能从前提推出假设
输入两个前提和假设,输出类别(矛盾 中立 蕴含)
十二、搜索引擎search engine
bert已经用在谷歌浏览器中了,使得搜索内容更智能了(可以知道词义)
把搜索内容和答案输入模型,输出关联性来排序(输入两个序列,输出类别)
十三、QA问答系统
过去:简单神经网络架构
处理问题(导出问题关键字)
根据找到的结果收集很多文章
文章检索,找出出现次数最多的
提取答案
watson(IBM开发的问答系统)
- 与过去相比,问题处理变得复杂(问题分类非常细)
- 收集资料,从资料中得到答案
- 多了一个系统的资料库
- 根据概率用逻辑回归进行排序
现在:reading comprehension
QA要有能力去阅读没有结构的文章,输入好几个sequence,输出一个sequence
Extractive QA:从文章中提取答案,输出答案的起始和终止位置
十四、dialogue 对话 分为chatting、task-oriented
1、chatting 尬聊:模型起码需要记得之前的输入
cleverbot尬聊网站:这个robot真的很傻,它都不记得之前说了什么
希望这个模型可以,根据不同的性格有多样的回答+有同理心+有丰富的知识可以联动
2、task-oriented任务导向的对话:需要通过对话获取信息来完成工作
输入多个sequence,输出一个sequence。拆分模组来解决这个大问题:NLG、Policy、State Tracker(NLU可不用,end-to-end硬train来抽取state也可以),语音输入再加一个ASR语音辨识模组
输出语音,再加一个TTS文字转语音
应用:订餐厅、定旅馆等
如何解这种问题:把过去的对话输入模型,输出一个sequence。细分这个模型:
- 独立出一个模型:NLG natural language generation,事先决定好action(机器可以做的事情,因为是要完成任务的不能随便说)
- 对话中的内容提取模型state tracker:把不重要的内容过滤掉,把要用的内容存在state里,后面就可以直接从state提取了(可以硬学,以前就还要做NLU自然语言理解,NLU分为第一种intent classification:分类问题决定是或不是。NLU分为第二种:定好一些空位,把提供的信息填入空位)
- 根据state决定现在要做的事的模型policy,是一个分类问题:决定用哪个action
十五、知识图谱Knowledge Graph
其中的node就是entity,edge就是实体之间的关系
研究面向:
1、给模型一个知识图谱,模型如何使用知识图谱来解决现在关心的问题,比如摘要、对话、QA,因为是图的问题,考虑到使用一些图神经网络的东西。
2、能不能从大量的文字中抽取出知识图谱,机器能读完一本哈利波特之后,懂得书中有哪些实体以及实体之间的关系。问题很复杂,简单来说就是两步:1、提取实体,2、提取关系
1、抽取实体Name Entity Recognition
Name Entity:关注的实体,问题不同关注的不同,往往包含:人名地名位置
2、Relation Extraction关系抽取
可以看做分类问题,输入一堆信息,输出一个关系
十六、GLUE数据集 集合了多个任务
过去每个任务都有一个模型,GLUE集合重要的与人类理解语言有关的任务。用一个模型解多个任务。
也有中文版本的GLUE
三类任务:
1、看一个句子,判断类别
2、看两个句子,判断句子意思是否相同
3、看前提假设,判断矛盾蕴含还是无法判断
十七、super GLUE 提高难度
GLUE的问题不够困难,并不涵盖所有的NLP问题,BERT出现之后已经可以解GLUE的问题并且表现和人类一样好了
更难的八个任务,QA问题:
1、给文章和问题,回答正误
2、给前提、问题、选项,回答单个选项
3、分类问题,填空题:给文章和填空问题,回答空位内容
4、给两个含有相同词汇的句子,判断两个词汇含义是否相同
5、给 文本,判断文本中的名词和代名词是否指向同一个东西
十八、DecaNLP
10个NLP任务,用一个模型去解,测验机器总体理解人类语言的能力
全部看做QA问题,给文章和问题,输出答案