点击上方,选择星标置顶,每天给你送干货

阅读大概需要5分钟

跟随小博主,每天进步一丢丢

作者: 龚俊民(昵称: 除夕)

学校: 新南威尔士大学

单位:Vivo AI LAB 算法实习生

方向: 自然语言处理和可解释学习

知乎: https://www.zhihu.com/people/gong-jun-min-74

前言:上一期我们讲了成分句法分析,它相当于考虑广义上的嵌套关系的命名实体识别。这一次我们来说一说依存句法分析,它相当于文本结构化任务中,与命名实体识别经常在一起的实体关系抽取任务。

成分句法分析关心的是,某两个相邻词汇能不能接在一起构成成分(广义的mention)。而依存句法分析关系的是,两个词汇之间的关系(entity relation)。依存解析不关心两个词汇是否一定要相邻。比如 book 和 flight 没有直接相连,但是 flight 是 book 的宾语,book 是 flight 的主语。我们会用一个从 book 指向 flight 的箭头来表示这种依存关系。箭头的起始我们叫作 head。

词汇和词汇之间的关系一览。

更具体地说,依存解析做的是把一个句子,变成一个有向图。图中每一个节点是一个词汇,每一条边,是一种关系。除了根节点,每一个节点词汇都只有一个入度的边。但每个词汇都可以指向多个其它词汇。它是一个树状的结构。每一个词汇都有唯一的一条路径回溯到根节点。

我们要怎样得到这样一棵依存解析树呢?实际上丢给分类器两个词汇和其上下文,它会先通过一个二分类器,用来输出左边到右边的token之间有无依存关系,若有依存关系,则第二个分类器会输出其关系的类别。

模型的输入是ROOT 加上 N 个词汇组成的句子。然后取出 (N+1)² 的单词对,一个个丢给分类器做关系分类。

文献上的具体做法是这样的。它会先把序列丢给一个 BiLSTM,把每个 token 的嵌入抽出来,再两两丢给一个FC层做分类,判断这两个 token,要不要连在一起,如果要连在一起,它们的关系是什么?论文会把抽出token的嵌入乘上一个FC做线性映射,再把两个 token 做类似注意力的操作,会得到一个数值,这个数值表示这两个 token 有多大概率要连在一起。其关系的标签也是类似的做法。

但如果我们把判断有无关系和判断关系是什么分开来处理,会容易出现矛盾的情况。比如 w1和w2之间有w1->w2的依存关系,而w2和w3又有w3->w2的依存关系。这样就会出现一个 token 入度是2的不可能情况。

我们可以用类似最大生成树的算法来解。我们目标是从各种可能的候选树中,找出一棵路径置信度最大的树。

类似的,我们也可以用基于转移的方式来做依存解析。这部分可以参照上一期的 成分句法分析。模型要根据 Buffer 和 Stack 的内容,来决定要采取哪一个 action。

这种基于转移的方法,最早在14年的时候就有人做过。

这种基于转移的方法,最知名的是 SyntaxNet。它知名的原因在,它有一个好的动画展示转移生成的过程。16年的时候,刚刚有 Alpha Go。所有人一听到有一点和 AI 有关的论文就风吹草动,觉得它很厉害。

往后基于转移的也有Stack-Pointer Networks。首先,它的输入是字嵌入,用 CNN + pooling 处理后,与词的嵌入拼接起来喂给 BiLSTM。一开始 "$" 作为根节点,放入栈中。栈中只有一个元素,位于栈顶,模型要判断 "$" 指向句子中的哪个词,即 head。"$" 没有兄弟节点和父节点,其嵌入会用单方向的 LSTM得到隐层,再用 pointer network 计算该隐层与其余单词的得分。

视频见(需要梯子):

https://www.youtube.com/watch?v=9erBrs-VIqc&feature=youtu.be

图片来自《李宏毅人类语言处理2020课程》

Reference

• Danqi Chen, Christopher D. Manning, A Fast and Accurate Dependency Parser

using Neural Networks, EMNLP, 2014

• Chris Dyer, Miguel Ballesteros, Wang Ling, Austin Matthews, Noah A. Smith, Transition-Based Dependency Parsing with Stack Long Short-Term Memory, ACL, 2015

• Daniel Andor, Chris Alberti, David Weiss, Aliaksei Severyn, Alessandro Presta, Kuzman Ganchev, Slav Petrov and Michael Collins, Globally Normalized Transition-Based Neural Networks, ACL, 2016

• Timothy Dozat, Christopher D. Manning, Deep Biaffine Attention for Neural Dependency Parsing, ICLR, 2017

• Timothy Dozat, Christopher D. Manning, Simpler but More Accurate Semantic Dependency Parsing, ACL, 2018

• Xuezhe Ma, Zecong Hu, Jingzhou Liu, Nanyun Peng, Graham Neubig, Eduard Hovy, Stack-Pointer Networks for Dependency Parsing, ACL, 2018

添加个人微信,备注:昵称-学校(公司)-方向,即可获得

1. 快速学习深度学习五件套资料

2. 进入高手如云DL&NLP交流群

记得备注呦

图文并茂带你了解依存句法分析相关推荐

  1. 语义角色标注视为依存句法分析任务:探索论元内部的隐式树结构

    ©作者 | 张宇 单位 | 苏州大学博士生 研究方向 | 句法分析/语义分析 语义角色标注(SRL)是 NLP 中一个基础且重要的任务,主要涉及谓词和论元的识别,以及相应的角色标签标注等等. 最近主流 ...

  2. 【ChatGPT4】 NLP(自然语言处理)第六课 基于统计和基于深度学习的依存句法分析方法

    我在起,点更新NLP自然语言处理==><王老师带我成为救世主> (1)-------------------------------------------------------- ...

  3. 自然语言处理(NLP)之依存句法分析的可视化及图分析

    依存句法分析的效果虽然没有像分词.NER的效果来的好,但也有其使用价值,在日常的工作中,我们免不了要和其打交道.如何分析依存句法分析的结果,一个重要的方面便是其可视化和它的图分析. 我们使用的NLP工 ...

  4. 自然语言处理(NLP)之pyltp的介绍与使用(中文分词、词性标注、命名实体识别、依存句法分析、语义角色标注)

    pyltp的简介   语言技术平台(LTP)经过哈工大社会计算与信息检索研究中心 11 年的持续研发和推广, 是国内外最具影响力的中文处理基础平台.它提供的功能包括中文分词.词性标注.命名实体识别.依 ...

  5. 句法分析是什么?成分句法分析、依存句法分析又是什么?他们之间有什么区别?

    句法分析是什么?成分句法分析.依存句法分析又是什么?他们之间有什么区别? 目录

  6. 实体链接(Entity Linking)、依存句法分析、成分句法树、词袋模型、文本向量空间模型(TF-IDF)、

    实体链接(Entity Linking).依存句法分析.成分句法树.词袋模型.文本向量空间模型(TF-IDF) 目录

  7. 句法依存分析_恭喜 | 黑龙江大学自然语言处理实验室获得NLPCC2019跨领域移植中文依存句法分析封闭测试第一名!...

    点击上方,选择星标或置顶,每天给你送干货! 阅读大概需要3分钟 跟随小博主,每天进步一丢丢 欢送师兄师姐毕业 任务介绍 我们做的实验为Task1的closed任务 任务设置 任务描述: 输入一个自然语 ...

  8. 依存句法分析的任务以及形式化定义

    转载自  依存句法分析的任务以及形式化定义 依存句法分析的任务以及形式化定义 1.依存句法分析的形式化定义 在依存句法中,共同的基本假设是:句法结构本质上包含词和词对之间的关系.这种关系就是依存关系( ...

  9. .依存句法分析--提取用户评论

    原文链接:https://cloud.tencent.com/developer/article/1590322 <自然语言处理入门>12.依存句法分析--提取用户评论 2020-02-2 ...

  10. 使用stanford nlp进行依存句法分析

    序 本文主要研究下如何使用stanford nlp进行依存句法分析 maven <dependency><groupId>edu.stanford.nlp</groupI ...

最新文章

  1. Python装饰器是什么?使用Python装饰器实现计算程序(函数)运行时间的功能
  2. Node初学者入门,一本全面的NodeJS教程,微小的web框架,能实现文件上传功能以及数据解析功能...
  3. OFBiz + Opentaps 目录管理 四. 产品(二)可配置产品
  4. FPGA_进阶篇开篇
  5. AI:2020年6月21日北京智源大会演讲分享之15:15-15:40黄萱菁教授《自然语言处理中的表示学习》
  6. 【Hibernate】Hibernate实体关系映射——单边的多对一关系
  7. .Net 2.0中使用扩展方法
  8. CentOS6.5 安装MongoDB
  9. 2017年java教材推荐_干货|2017年最新JavaEE课程大纲分享
  10. 没有GPS模块无人机无法解锁解决方法测试及其他无法解锁APM疑难杂症
  11. js调用数科阅读器_aspx调用js函数
  12. 四元式的翻译以及寄存器分配
  13. 技术笔试面试题(上)
  14. tensorflow----tensorboard之histogram与distributions
  15. 基于 SpringBoot 手写 RPC 框架
  16. 计算机组成原理GLK,计算机组成原理课件第一讲.ppt
  17. Android经典铃声等等等等,低调而优雅:40 款经典黑莓手机铃声精选(安卓手机适用)...
  18. magento常用插件
  19. NMEA GPRMC 格式图解,NMEA 工具的比较
  20. 除烟超猛的油烟机,还有智慧内核加持,云米AI烟灶套装体验

热门文章

  1. CSS 中的字体兼容写法:用CSS为英文和中文字体分别设置不同的字体
  2. VB求最大公约数的两个例子
  3. Post传值时间特殊字符处理比如 p/p当作参数传递到后台
  4. XNA 三维入门讲解
  5. 20190901 On Java8 第十五章 异常
  6. VSTO 3.0 for Office 2007 Programming
  7. 没有upcast 也不会发生多态
  8. 【Android Studio安装部署系列】三十一、从Android studio3.0.0升级到Android studio3.0.1
  9. Marlin 溫度感應器 數值轉換對應表
  10. C# 键盘特定键的代码描述