图文并茂带你了解依存句法分析
点击上方,选择星标或置顶,每天给你送干货!
阅读大概需要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交流群
记得备注呦
图文并茂带你了解依存句法分析相关推荐
- 语义角色标注视为依存句法分析任务:探索论元内部的隐式树结构
©作者 | 张宇 单位 | 苏州大学博士生 研究方向 | 句法分析/语义分析 语义角色标注(SRL)是 NLP 中一个基础且重要的任务,主要涉及谓词和论元的识别,以及相应的角色标签标注等等. 最近主流 ...
- 【ChatGPT4】 NLP(自然语言处理)第六课 基于统计和基于深度学习的依存句法分析方法
我在起,点更新NLP自然语言处理==><王老师带我成为救世主> (1)-------------------------------------------------------- ...
- 自然语言处理(NLP)之依存句法分析的可视化及图分析
依存句法分析的效果虽然没有像分词.NER的效果来的好,但也有其使用价值,在日常的工作中,我们免不了要和其打交道.如何分析依存句法分析的结果,一个重要的方面便是其可视化和它的图分析. 我们使用的NLP工 ...
- 自然语言处理(NLP)之pyltp的介绍与使用(中文分词、词性标注、命名实体识别、依存句法分析、语义角色标注)
pyltp的简介 语言技术平台(LTP)经过哈工大社会计算与信息检索研究中心 11 年的持续研发和推广, 是国内外最具影响力的中文处理基础平台.它提供的功能包括中文分词.词性标注.命名实体识别.依 ...
- 句法分析是什么?成分句法分析、依存句法分析又是什么?他们之间有什么区别?
句法分析是什么?成分句法分析.依存句法分析又是什么?他们之间有什么区别? 目录
- 实体链接(Entity Linking)、依存句法分析、成分句法树、词袋模型、文本向量空间模型(TF-IDF)、
实体链接(Entity Linking).依存句法分析.成分句法树.词袋模型.文本向量空间模型(TF-IDF) 目录
- 句法依存分析_恭喜 | 黑龙江大学自然语言处理实验室获得NLPCC2019跨领域移植中文依存句法分析封闭测试第一名!...
点击上方,选择星标或置顶,每天给你送干货! 阅读大概需要3分钟 跟随小博主,每天进步一丢丢 欢送师兄师姐毕业 任务介绍 我们做的实验为Task1的closed任务 任务设置 任务描述: 输入一个自然语 ...
- 依存句法分析的任务以及形式化定义
转载自 依存句法分析的任务以及形式化定义 依存句法分析的任务以及形式化定义 1.依存句法分析的形式化定义 在依存句法中,共同的基本假设是:句法结构本质上包含词和词对之间的关系.这种关系就是依存关系( ...
- .依存句法分析--提取用户评论
原文链接:https://cloud.tencent.com/developer/article/1590322 <自然语言处理入门>12.依存句法分析--提取用户评论 2020-02-2 ...
- 使用stanford nlp进行依存句法分析
序 本文主要研究下如何使用stanford nlp进行依存句法分析 maven <dependency><groupId>edu.stanford.nlp</groupI ...
最新文章
- Python装饰器是什么?使用Python装饰器实现计算程序(函数)运行时间的功能
- Node初学者入门,一本全面的NodeJS教程,微小的web框架,能实现文件上传功能以及数据解析功能...
- OFBiz + Opentaps 目录管理 四. 产品(二)可配置产品
- FPGA_进阶篇开篇
- AI:2020年6月21日北京智源大会演讲分享之15:15-15:40黄萱菁教授《自然语言处理中的表示学习》
- 【Hibernate】Hibernate实体关系映射——单边的多对一关系
- .Net 2.0中使用扩展方法
- CentOS6.5 安装MongoDB
- 2017年java教材推荐_干货|2017年最新JavaEE课程大纲分享
- 没有GPS模块无人机无法解锁解决方法测试及其他无法解锁APM疑难杂症
- js调用数科阅读器_aspx调用js函数
- 四元式的翻译以及寄存器分配
- 技术笔试面试题(上)
- tensorflow----tensorboard之histogram与distributions
- 基于 SpringBoot 手写 RPC 框架
- 计算机组成原理GLK,计算机组成原理课件第一讲.ppt
- Android经典铃声等等等等,低调而优雅:40 款经典黑莓手机铃声精选(安卓手机适用)...
- magento常用插件
- NMEA GPRMC 格式图解,NMEA 工具的比较
- 除烟超猛的油烟机,还有智慧内核加持,云米AI烟灶套装体验
热门文章
- CSS 中的字体兼容写法:用CSS为英文和中文字体分别设置不同的字体
- VB求最大公约数的两个例子
- Post传值时间特殊字符处理比如 p/p当作参数传递到后台
- XNA 三维入门讲解
- 20190901 On Java8 第十五章 异常
- VSTO 3.0 for Office 2007 Programming
- 没有upcast 也不会发生多态
- 【Android Studio安装部署系列】三十一、从Android studio3.0.0升级到Android studio3.0.1
- Marlin 溫度感應器 數值轉換對應表
- C# 键盘特定键的代码描述