文档章节

nlp 笔记:A Fast and Accurate Dependency Parser using Neural Networks

o
 osc_y8yehimr
发布于 2019/03/20 21:23
字数 994
阅读 14
收藏 0

精选30+云产品,助力企业轻松上云!>>>

概要:本文使用神经网络完成了一个快速准确的依存语法分析程序,也就是句子的结构。

 

  • introduction:

  以前的depenency parser效果很好,但是有几个问题:

  1. 所用的特征很稀疏,而数据不够训练这些权重。
  2. 特征都是人工提取的模版,需要专业知识的情况下还经常不全面。
  3. 计算这些特征十分费时。

  作者想出了一个好方法来解决这些问题,其实我觉得这些都是第一个问题带来的。

  • Transition-Based Dependency Parsing

  先解释什么是Dependency Parsing。依存语法是一种二元非对称关系,一个词A有一个箭头指向另外一个词B, 箭头上通常有标签(label),这些标签表示语法关系,比如主语,同位语等等。箭头连接的两个词有head(高级)和dependent(低级)的区别。而这些箭头称为dependency。本文的箭头是从headdependent。通常一个句子中加一个假的root,这样每个单词dependent于另一个节点。通常这些依存关系会形成一棵树(连通,非循环,一个根结点)。对于dependency parsing有一个定义是projectivity,叫投影。如果这些箭头没有交叉,则称这个树是projective的。如下图就是这样。

此图是论文中的例子,比如He就dependent于has,因为has说明了he要干嘛,所以has是head。而he是has的名词主语(nominal subjective),就是label。可以看出图中的关系形成了一棵树。

  接下来解释什么叫transition-based。依旧是论文的例子。图:

  parser有以下几项:

  1. 一个stack S,root第一个入栈,栈顶靠右,图中栈顶是词good。
  2. 一个buffer B,第一个元素是在最左边,按照句子的顺序开始。
  3. 一个放dependency边的集合A
  4. transition的集合

  在本文中,有如下几种transition:

  1. LEFT-ARC(l): 往A中增加一条s1到s2的边,label是l
  2. RIGHT-ARC(l): 往A中增加一条s2到s1的边,label是l
  3. SHIFT: 把b1移到stack中,前提是buffer的长度大于等于1

  对于论文中的例子,有下图:

  这样就可以得到句子的dependency 树了,也就是句子的结构。

  • Neural Network Based Parser

  本文的目的是通过现有的信息,预测出下一步的transition。首先是所用的模型:

  如图所示:

 

  输入由三部分组成,词,词的词性,词的箭头的label,但是全都是embedding的形式。一共选18个词xw:(1)stack和buffer的前3个单词:s1、s2、s3、b1、b2、b3;(2)栈顶两个单词的第一个和第二个最左边/最右边的子单词:lc1(si), rc1(si), lc2(si), rc2(si), i = 1,2。(3)最左边的最左边/最右边的最右边——堆栈上最上面两个单词的大多数子元素:lc1(lc1(si))、rc1(rc1(si))、i = 1,2。xt:使用这18个词的词性标记,xl对应的单词arc的label,不包括Sl堆栈/缓冲区上的那6个单词,有12个,没有的元素用null来代替。embedding的长度是50,直接行向量的形式连接起来,所以输入长度是50*(18+18+12)。

  隐藏层的长度是200,由图中公式算出,值得注意的是,公式不仅是进行了线性变换,加了一个三次方,论文中说比起tanh或者sigmoid效果很不错,但是原因说不出,说是有待理论调查。

  最终输出层是softmax,有2n+1个transition待选,选出其中可能性最高的。n是总的label的数量。leftarc * n+rightarc * n +shift,共2n+1个transition可选。

  最终实验效果很好,速度很快。

  具体的训练实验细节和模型评估等请看论文A Fast and Accurate Dependency Parser using Neural Networks

  

感叹:word2vec对于nlp的影响真大。

 

 

 

o
粉丝 0
博文 500
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。
dependency parser 项目汇总

McDonald 2005 https://github.com/dorcoh/DependencyParser Simple and Accurate Dependency Parsing Using Bidirectional LSTM Feature Representations https://github.com/Horse-G/NLPne......

CopperDong
03/31
0
0
研究NLP100篇必读的论文---已整理可直接下载

100篇必读的NLP论文 100 Must-Read NLP自己汇总的论文集,已更新链接:https://pan.baidu.com/s/16k2s2HYfrKHLBS5lxZIkuw提取码:x7tn This is a list of 100 important natural language p......

osc_0eecv9o0
2019/12/23
1
0
paper to read

版权声明:本文为博主原创文章,转载请附上原文地址。 https://blog.csdn.net/u011239443/article/details/80333039 1 NLP 1.1 Attention 《注意力机制(Attention Mechanism)在自然语言处理...

卓寿杰_SoulJoy
2018/05/16
0
0
[转载]word2vec在工业界的应用场景

这篇文章主要讲应用,不讲原理。 通俗的说,word2vec是一种将『词』变成向量的工具,在nlp的场景中『词』是显而易见的,但是在有些时候,什么可以看做『词』和『文档』就不那么容易了。 文章...

tiryzheng
2018/05/05
0
0
[转载]word2vec在工业界的应用场景

这篇文章主要讲应用,不讲原理。 通俗的说,word2vec是一种将『词』变成向量的工具,在nlp的场景中『词』是显而易见的,但是在有些时候,什么可以看做『词』和『文档』就不那么容易了。 在社...

tiryzheng
2018/05/05
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Git本地分支和远程分支关联

转载:https://blog.csdn.net/cherishhere/article/details/52606884 转载:https://blog.zengrong.net/post/1746.html 转载:https://blog.csdn.net/xinghuowuzhao/article/details/78663526 转......

osc_ur9jjorb
9分钟前
10
0
移动应用测试方法与思路

标签(空格分隔): 浅谈移动应用测试方法与思路 在 GUI 自动化测试这个系列,我讲了很多基于浏览器的业务测试的内容,你可能会说,现在移动 App 大行其道,对移动应用测试的方法和思路才更重...

osc_avdbd8s3
10分钟前
3
0
搜索所有Git历史记录中的字符串? [重复] - Search all of Git history for a string? [duplicate]

问题: This question already has an answer here: 这个问题在这里已有答案: How to grep Git commit diffs or contents for a certain word? 如何grep Git为某个单词提交差异或内容? 8 ...

fyin1314
12分钟前
12
0
css实现圆形倒计时效果

实现思想: 1.最外层包裹内部的div1(.box) 2.内部左右两边div2(.left_box和.right_box),宽度为div1的一半,通过overflow:hidden隐藏其内部的div 3.在左右两个div2中各有一个div3(.left_item...

osc_sg74u54s
12分钟前
4
0
python语言中threading.Thread类的使用方法

1. 编程语言里面的任务和线程是很重要的一个功能。在python里面,线程的创建有两种方式,其一使用Thread类创建 # 导入Python标准库中的Thread模块 from threading import Thread # 创建一...

osc_q5urtsdm
13分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部