微信高级研究员解析深度学习在NLP中的发展和应用 | 公开课笔记

 

分享嘉宾 | 张金超

整理 | Just

来源 | AI科技大本营在线公开课

 

近年来,深度学习方法极大的推动了自然语言处理领域的发展。几乎在所有的 NLP 任务上我们都能看到深度学习技术的应用,并且在很多的任务上,深度学习方法的表现大大超过了传统方法。可以说,深度学习方法给 NLP 带来了一场重要的变革。

 

我们近期邀请到了微信模式识别中心的高级研究员张金超博士,他毕业于中国科学院计算技术研究所,研究方向是自然语言处理、深度学习,以及对话系统。在本次公开课上,他全面而具体地讲述了深度学习在 NLP 中的发展和应用,内容主要分为以下四大篇章:

 

  • 自然语言处理的基本概念和任务;
  • 深度学习方法如何解决 NLP;
  • 对话和机器翻译当中的深度学习模型和一些云端应用,以及使用实例;
  • 对 NLP 感兴趣的开发者提供一些技能进阶的建议。

 

(公开课回放地址:https://edu.csdn.net/huiyiCourse/detail/807

 

以下为公开课内容实录,人工智能头条整理(有删改):

 

一、自然语言处理的基本概念和任务

 

1.基本概念

首先讲一下自然语言处理的基本概念和任务,这一块讲解的目的是让大家对自然语言处理这个领域有一个框图的认识,要知道自然语言处理的目标是什么,任务是什么,主要的方法大概有哪些。

 

Natural Language Processing,缩写是 NLP,主要是指我们借助于计算技术,来对人类的自然语言进行分析、理解,还有生成的一个过程。现在大家比较常见的两个具体应用的场景,一个就是对话机器人(Chatbot),比如 AI 音箱,大家可以跟它做一些对话交流。还有机器翻译,大家可能平时会用一些提供翻译功能的网站,这两个是自然语言处理比较经典的任务。



 

自然语言处理是语言学和计算机科学的交叉学科,语言学方面主要涉及到词法、句法、语用、语义等等,语言学家他们会语言学理论去研究。计算机科学方面会涉及到统计理论、机器学习、优化方法以及数据可视化、深度学习等,它们两个交叉起来叫做计算语言学,即以计算的方法来处理语言。

 

关于自然语言处理任务的重要性大家可以想一下,一方面语言是人类长期进化来的能力,是人类自然的一种交互方式,所以假如机器能够非常准确、全面地理解我们的语义,那么人机交互的方式会发生一个非常革命性的变化。但现在自然语言处理能力还没有到那种程度,我们还需要各种输入、输出设备。另一方面,人类的知识大规模的存储形式是文本,包括大量的书籍,可以把它电子化成数字化的文本,针对这些海量的文本做分析处理,从而得到有价值的信息,这也需要强大的自然语言处理能力的支撑。

 

2.自然语言处理任务

 

自然语言处理任务大概有哪些?我个人做了一个总结,基本可以划分为五层:词法分析、句子分析、语义层面的分析、信息抽取,顶层任务。顶层任务直接面向用户,提供如机器翻译、对话机器人这样的产品化服务。

 

首先是词法分析层。第一个是分词任务,英文的文本是由空格分隔开的单词序列,但中文词和词之间没有清楚的分隔符。对于“长江是中华民族的母亲河”这个句子,我们来做自然语言处理分析,最小的语义单元就是字,字的歧义性非常高。如果我们对它做切分的话,那么“长江”、“中华民族”,还有“母亲”、“河”这种完全可以切出来,句子的基本语义单元就变成了词,这就是分词任务的目的。

 

第二个任务是新词发现,该任务希望发掘文本中的一些新词,比如说“活久见“、”十动然拒“、”十动然揍”这种网络热词。第三个任务是形态分析,形态分析主要针对形态丰富的语言。给定一个词,把里面的词干、词缀、词根等拆分出来,然后做一些形态还原、形态切分任务,给上面的任务提供一个更好的输入。

 

第四个任务是词性标注。词有动词、名词之类词性,词性标注任务就是把每一个词的词性给标出来。另外还有拼写校正任务,应用场景就是我们在用文本编辑器的时候,打错了字会被标红,编辑器还能提供自动纠错的功能。

 

第二个层面的任务是句子分析(Sentence Analysis)。包括句法分析任务。句法分析包括浅层的句法分析和深层的句法分析,比如像组块分析就是给定一个句子,然后来标出里面一些名词短语或者动词短语的块。我们直接来看下面的句法树,我们怎么来看组块呢?比如前面这个 “My dog” 是 NP,NP 是指一个名词短语,S1,VP1 是一个动词短语,组块分析的目的不是想把这棵树分析出来,而是想把这个 NP 和 VP 作为一个 Chunk(组块) 给标注出来。



 

第二个任务是超级标签标注(Super Tagging),这个任务并不想得到最后句法树的结构,只想得到跟我这个词当前相关的树的结构。比如说我想得到 My 的这个 Super Tagg,从 ROOT 到 My 的这一条树的路径是必须保存的,其他上面的一些终结符的结点会被去掉。

 

成分句法分析任务的目标是画这棵树,把句子的结构分析出来。从一个根的结点出发,下面会有 NP、VP,最后到一个终结符上去。

 

依存句法分析任务是来分析句子里词和词之间的依存(修饰)关系,由这些修饰关系来构成一棵依存的句法树。

 

语言模型任务,是训练一个模型来对语句合理的程度(流畅度)进行一个打分。

 

语种识别任务,是给定一段文本,识别出这段文本是用哪一个语言书写的,这可以被用到机器翻译任务中。

 

第三个任务是句子边界检测,我们知道中文句子边界是非常明显的,会由句号、叹号或者问号等做分隔,但是对一些语言来说,句子之间是没有明显边界的,所以做句子层面的分析之前,首先要对它进行句子边界的检测,比如泰语。

 

再往上就是语义分析(Semantic Analysis)层。语言学家想用一些结构化的符号来表达语义,但是现在的深度学习,大量的语义其实是分布式的表示,也就是一系列数值,具体哪一种形式会真正地表达语义还没有定论。

 

语义分析层中,第一个任务是词义消歧,一个词它可能会有歧义,该任务是来确定它准确的词义。

 

第二个任务是语义角色标注,是一种浅层的语义分析。该任务要标出句子里面语义决策动作的发起者,受到动作影响的人等等。比如 “A 打了 B”,那么 A 就是一个施事, B 就是一个受事,中间就是一个打的动作。

 

第三个任务是抽象语义表示(Abstract Semantic Parsing),它是近几年提出的一种抽象语义的表示形式,缩写是 AMR。下面这个一阶谓词逻辑演算和框架语义分析基本上是语言学家一直想把语义做一个符号化推理系统的表达。

 

近期在应用里面用的比较多的语义表现形式就是词汇、句子、段落的向量化表示,即Word/Sentence/Paragraph Vector,包括研究向量化的方法和向量性质以及应用。

 

这是 AMR 的一个例子,这里面有三个句子,三个句子表达的语义是一样的。“猫想吃鱼”这个语义,有三个不同的句子,但是在 AMR 这个概念里,对应的是一个相同的 AMR 图。 AMR 分析的时候,会把一些无关紧要的词去掉,比如 the 或 to。

 

再高一个层面的任务就是信息抽取(Information Extraction)。比如我们给定最下面的这一段新闻,想从里面抽一些关键的信息出来,即从无结构的文本当中抽取出结构化的信息,这是广义的信息抽取概念,可以先做命名实体识别,从这一段文字里识别出人名、地名、机构名,因为这些东西相比于其他的连词等标点符号具有更多的意义。

 

第二个任务是实体消歧,该任务是把句子中出现的名词准确关联到现实当中的一个对象。

 

第三个任务是术语抽取,是从文本当中抽取特定的术语。

 

第四个任务是共指消解。句子里面会出现代词或者多种名词表达同一个对象的现象。比如代词的消解是找出“他、她、它”中的某一个到底指代的是哪个事物。名词消解也是同样的道理。

 

关系抽取任务是确定文本当中两个实体之间的关系,比如说谁生了谁,两个实体一个是生一个是被生。

 

事件抽取任务是一个更复杂的过程,要抽取出时间、地点、人物、发生的事件等等,这是更结构化的信息抽取。

 

这里,我把情感分析和对话系统用到的意图识别和槽位填充也归结到这个部分里了。举个情感分析这个应用场景的例子,比如我们去购物网站买东西,买完了以后会给它做评价,那么用户的这个评价到底是正面的还是负面的情绪?我们需要对这个评价分析出情感倾向。

 

意图识别是对话系统当中一个比较重要的模块,是要分析用户跟对话机器人说话的时候这句话的目的是什么,比如说播放音乐,那么意图就是音乐。

 

槽位填充是和意图识别搭配起来使用的,意图识别出来了,但是意图要有具体的信息,比如你的意图是让机器人帮你去定明天早上从北京到上海飞的一张机票,意图识别出来是

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值