Chapter7-8_Deep Learning for Constituency Parsing

文章目录

  • 1 什么是Constituency Parsing
  • 2 解决方案
    • 2.1 Chart-based Approach
    • 2.2 Transition-based Approach
    • 2.3 Grammer as Foreign Language

本文为李弘毅老师【Deep Learning for Constituency Parsing】的课程笔记,课程视频youtube地址,点这里👈(需翻墙)。

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

文章索引:

上篇 - 7-7 Deep Learning for Coreference Resolution

下篇 - 7-9 Deep Learning for Dependency Parsing

总目录

1 什么是Constituency Parsing

Constituency parsing要做的事情就是解析出句子中所有的constituents。constituent在英文字典中的意思是“成分”,而在我们这次的这个场景中可以理解为句子中的一个“单元”。比如下面这句话中,“deep learning"就是一个constituent,“very powerful"也是一个constituent,甚至每一个单词都是一个"constituent”。但是"learning is very"这样狗屁不通的句子就不是"constituent”。一种感性的理解,只要读的通的,就是"constituent"。
ch7-8-1

每个constituent在语言学中都有对应的专有名词(POS tags),比如"deep learning"就是NP(Noun phrase),"very power"就是ADJP(Adjective phrase)等等。多个constituents可以组成一个更大的constituent。这也就构成了一棵树的结构,每个节点都是我们要找的constituent。为了简化,本文只考虑二叉树的情况。
ch7-8-2

那么,到底有哪些constituents呢?可见下表。
ch7-8-3

2 解决方案

用deep learning的方法来解决Constituency Parsing的问题有两个方案,一个是Chart-based Approach,另一个是Transition-based Approach。

2.1 Chart-based Approach

chart-based方法很直接,就是遍历句子里的所有spans,然后对每个span做两次分类,先推测这个span是不是一个constituent,如果是的话,再推测这个constituent的词性是什么。
ch7-8-4
模型的结构和上一篇中的Coreference Resolution很像。就是把整个句子过一个预训练的模型,然后对模型的输出取一个感兴趣的span,抽取这个span的特征,再送入刚才说的两个分类器当中。
ch7-8-5
如果要遍历所有的span的话,就要遍历N(N-1)/2次,这样做会有一个大问题,就是当模型认为"deep learning is"和"is very powerful"都是constiuent的时候,模型就自相矛盾了。
ch7-8-6

所以,实际情况下,并不是去遍历所有的spans,而是去遍历所有的树结构。然后取总置信度最高的那棵树来作为最终的那棵树。而去遍历所有的树的时候,会有许多需要重复计算的子节点,这就是一个典型的动态规划问题了。有个叫做CKY的算法就是来解决遍历树这个问题的。
ch7-8-7

2.2 Transition-based Approach

Transition-based方法有三个状态,一个叫做stack,用来存储已经操作过的元素;一个叫做buffer,用来存储还未操作的句子;还有一个叫做actions,表示着可以采取的动作。动作有"create",“shift"和"reduce"三种。“create"表示一个词性的开始,将移入stack当中,比如NP从这个位置开始。“shift"表示将buffer中的一个单词移入stack当中。“reduce"表示一个词性的结束,结束符也将移入stack当中。
ch7-8-9
比如下图当中,每一步采取的action在下半图,每一个action的结果将保存在上半图的stack当中。首先create了一个”(s"表示"s"从这里开始,然后create了一个”(NP"表示"NP"从这里开始,接着两个shift,把"deep"和"learning"放入stack当中,接着一个"reduce”,表示"NP"的结束,即"deep learning"是一个"NP”,以此类推,直到全部结束。
ch7-8-10
这个方法的网络结构如下,就是将"stack","previous actions"和"buffer"分别过一个RNN,然后将这三个结果再一起过一个分类网络,输出要采取什么action,接着根据action更新状态,如此循环,直到结束。
ch7-8-11
看到有action,很多人可能会联想到强化学习,难道训练的时候要用强化学习的方法吗?不用!这就是一个简单的分类任务。因为我们的ground truth明确地告诉了我们这一步要输出什么action,所以只要每一步做分类就可以了。
ch7-8-12

2.3 Grammer as Foreign Language

还有一种直接用seq2seq的方法去做的,这种方法的关键就在于构造输出的结果是什么。一种构造方法如下图所示,自顶向下,由左向右,构造出来的和刚才Transition-based Approach的简直一模一样。只不过这里是直接用seq2seq去做的。
ch7-8-13

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

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

相关文章

html插入flash代码_初学者必备Web开发APP,支持代码补全,一键插入代码,厉害了!...

新手学前端神器,HTML代码补全功能太牛了!讲过学习后端的许多优秀APP,这次来推荐一下前端用的软件。前端,包含了HTMLCSSJavaScript这一整套的流程,缺一不可。其实,市面上用来编写前端的优秀APP有很多&#x…

七、PHP框架Laravel学习笔记——资源控制器

一.资源控制器 声明:资源控制器是某个特定场景下的产物,完全理解需要 PHP 项目基础;比如开发过博客系统,留言帖子系统之类,具有类似思维,否则你懂的…;只是学习了 PHP 基础&#xf…

留言板练习

这个练习做下来发现大体的步骤怎么走怎么做基本清晰&#xff0c;能实现可是做的很糙&#xff0c;没有老师细致……好多需要判断的地方没有想到 denglu.php <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DT…

Chapter7-9_Deep Learning for Dependency Parsing

文章目录1 什么是Dependency Parsing2 模型结构本文为李弘毅老师【Deep Learning for Dependency Parsing】的课程笔记&#xff0c;课程视频youtube地址&#xff0c;点这里&#x1f448;(需翻墙)。 下文中用到的图片均来自于李宏毅老师的PPT&#xff0c;若有侵权&#xff0c;必…

八、PHP框架Laravel学习笔记——表单伪造和 CSRF 保护

一&#xff0e;表单伪造 之前一直用的 GET 请求方式&#xff0c;而表单可以实现 POST 方式&#xff0c;我们来实验下&#xff1a; 先在 TaskController 创建两个方法&#xff0c;一个表单页&#xff0c;一个接受表单数据路由&#xff1b; public function form() { return v…

高通的快充协议_高通:后续骁龙旗舰将标配100W快充

高通于昨晚正式推出了Quick Charge 5充电解决方案&#xff0c;经过3年时间的准备&#xff0c;高通这一次在Quick Charge快充的升级可谓重磅&#xff0c;在功率上实现了重大突破&#xff0c;达到了100W。官方数据显示&#xff0c;高通Quick Charge 5的性能较前代平台显著提升&am…

团队作业(六)

团队项目设计文档 1、系统框图 用户对手机进行设置&#xff0c;包括时间和解锁方式轨迹。手机对用户进行闹铃提醒&#xff0c;同时提供解锁方式。手机对数据库发送数据以保存响铃时间&#xff0c;数据库对手机提供响铃时间信息。 系统框图如下&#xff1a;2、系统结构框图 项目…

Chapter7-10_Deep Learning for Question Answering (1/2)

文章目录1 什么是Question Answering(QA)2 按答案分类2.1 答案是一个单词2.2 答案是多个选项2.3 答案是source中的一段话2.4 答案是生成的一段话3 按source分类3.1 source是网页3.2 source是图片或者视频3.3 source是语音3.4 source是视频本文为李弘毅老师【Deep Learning for …

十、PHP框架Laravel学习笔记——数据库配置入门

一&#xff0e;配置数据库 框架支持原生、查询构造器和 Eloquent ORM(关系型对象映射器)来操作数据库&#xff1b; 数据库的配置在 config/database.php&#xff0c;如果是本地可以直接配置.env 文件&#xff1b; 我们通过.env 文件配置数据库连接的相关信息&#xff0c;以提…

selenium firefox驱动_Python3+selenium配置常见报错解决方案

第一个报错问题geckodriver executable needs to be in PATH1.1如果启动浏览器过程中报如下错误&#xff1a;Traceback (most recent call last):File "", line 1, in <module>File "D:\test\python3\lib\site-packages\selenium\webdriver\firefox\webdr…

Chapter7-11_Deep Learning for Question Answering (2/2)

文章目录1 Simple Question: Match & Extract2 Complex Question: Reasoning3 Dialogue QA本文为李弘毅老师【Deep Learning for Question Answering (2/2)】的课程笔记&#xff0c;课程视频youtube地址&#xff0c;点这里&#x1f448;(需翻墙)。 下文中用到的图片均来自…

十一、PHP框架Laravel学习笔记——构造器的查询.分块.聚合

一&#xff0e;构造器查询 table()方法引入相应的表&#xff0c;get()方法可以查询当前表的所有数据&#xff1b; //获取全部结果 $users DB::table(users)->get(); first()方法&#xff0c;可以获取到第一条数据&#xff1b; //获取第一条数据 $users DB::table(user…

mac 批量清空文件夹文件_【XSS 聚宝瓶】文件及文件夹批量改名工具

置顶公众号&#xff0c;否则不能及时收到新文章推荐给朋友&#xff0c;让朋友也能收到免费文章在公众号发送函数或应用的关键字&#xff0c;即可免费获取对应教程一、功能说明我们在日常办公的时候&#xff0c;经常会碰到文件名不规范&#xff0c;想要整理很不方便&#xff0c;…

论文阅读 - Beat Tracking by Dynamic Programming

文章目录1 概述2 总体框架3. 计算Onset Strength Envelope4 计算全局的Tempo5 基于动态规划计算beats6 参考文献1 概述 有背景音乐的短视频拼接时&#xff0c;如果两个视频的拼接点刚好在背景音乐的某个节拍点上&#xff0c;那么合成的视频看起来&#xff0c;听起来&#xff0…

十二、PHP框架Laravel学习笔记——构造器的查询表达式

一&#xff0e;select 查询 select()方法可以制定你想要的列&#xff0c;而不是所有列&#xff1b; //设置显示的列&#xff0c;设置列别名 $users DB::table(users)->select(username as name, email)->get(); addSelect()方法&#xff0c;可以在你基础的查询构造器…

python解释器的工作原理_Python GIL全局解释器锁详解(深度剖析)

通过前面的学习&#xff0c;我们了解了 Pyton 并发编程的特性以及什么是多线程编程。其实除此之外&#xff0c;Python 多线程还有一个很重要的知识点&#xff0c;就是本节要讲的 GIL。 GIL&#xff0c;中文译为全局解释器锁。在讲解 GIL 之前&#xff0c;首先通过一个例子来直观…

Chapter7-12_Controllable Chatbot

文章目录1 Chatbot面临的问题2 控制Chatbot的输出2.1 直接Finetune2.2 输入添加控制特征2.3 只有独白3 展望本文为李弘毅老师【Controllable Chatbot】的课程笔记&#xff0c;课程视频youtube地址&#xff0c;点这里&#x1f448;(需翻墙)。 下文中用到的图片均来自于李宏毅老…

十三、PHP框架Laravel学习笔记——构造器的 where 派生查询

一&#xff0e;where 派生查询 orWhere()方法&#xff0c;可以通过连缀实现两个或以上的 or 条件查询&#xff1b; //where() orWhere 实现 or 条件查询 $users DB::table(users) ->where(price, >, 95) ->orWhere(gender, 女) ->toSql(); 通过闭包&#xff0…

Chapter7-13_Dialogue State Tracking (as Question Answering)

文章目录1 什么是Dialogue State Tracking2 数据集3 两个挑战4 经典模型本文为李弘毅老师【Dialogue State Tracking (as Question Answering)】的课程笔记&#xff0c;课程视频youtube地址&#xff0c;点这里&#x1f448;(需翻墙)。 下文中用到的图片均来自于李宏毅老师的PP…

Migrate Instance 操作详解 - 每天5分钟玩转 OpenStack(40)

Migrate 操作的作用是将 instance 从当前的计算节点迁移到其他节点上。 Migrate 不要求源和目标节点必须共享存储&#xff0c;当然共享存储也是可以的。 Migrate 前必须满足一个条件&#xff1a;计算节点间需要配置 nova 用户无密码访问。 下面是 Migrate instance 的流程图 …