Dependency Parser研究进展及主流方法

提到dependency parser,咱们就会想到天然语言处理,而句法分析是天然语言处理领域的一个关键问题,dependency parser做为句法分析中的一个文法体系,近年来,成为研究热点,而且逐渐普遍应用于其余天然语言处理任务中。飞马网于3月21日晚,邀请到上海交大计算机科学与信息硕士,前后在UBS和蚂蚁金服工做过的胡翔老师,在直播中为咱们分享关于dependency parser的研究进展以及它的一些主流方法等相关内容。算法

微信图片_20180322085524.jpg

如下是本次分享内容:微信

一.天然语言理解的主要解决问题框架

咱们首先要了解一下天然语言理解领域想要解决的几个问题。天然语言处理的领域很是广,信息检索、智能问答、情感分析、自动翻译等等,均可以说是这个领域很是难且有待解决的问题,今天咱们主要讨论的是语义表达及知识表达。性能

微信图片_20180322085716.jpg

咱们先从一个简单的例子着手,来了解一下语义表达。下面这张图片的两句话,放到如今的语义自动匹配模型里,几乎相同,但为何到人类理解这里,这两句话就是彻底不一样的意思呢?学习

从语义角度来讲,一句话的含义是有层次和主要元素的,主要元素用学术性的话语说就是语义框架,也就是咱们所说的“主谓宾”。虽然不是全部的句子都会有主谓宾覆盖,但咱们这里,先拿一个主谓宾的句子举个例子。翻译

主谓宾的句式能够理解为,这个句子里面有三个不一样类型的槽,每一个槽只能填一个字或词。一旦咱们把两句话结构化以后,它们的区别就十分明显了。设计

微信图片_20180322085720.jpg

因此问题就来了,有没有一种结构化的表达方式,能够有效地解决语义表达这个问题?咱们细想一下,这个问题其实有几大难点。首先,若是说存在这样一种结构,那么这个结构必定要具备普适性,其次,更难的问题是,如何让计算机实现把一个序列化的句子转化成这种结构。3d

二.天然语言理解的几种主流理论cdn

接下来的部分,咱们就来谈谈目前解决这两个问题的方法以及思考。天然语言理解主要有如下三种主流理论。blog

微信图片_20180322085724.jpg

1.Phrase structure(句法结构):

这套理论是由乔姆斯基提出的,在句法结构中,一个非终结符只能生成小于等于两个非终结符,或者生成一个终结符。

微信图片_20180322085727.jpg

非终结符就是这张图里面,像“S、NP、VP”等这些没有实词的标签,在咱们构成树状节点的结构中,它下面还会有子节点,有子节点的节点,咱们都称之为非终结符。

终结符就是这张图里面,像“she、bought、car”等这些具体的实词,是树状结构中的叶子节点。

咱们从句子层面看,一句话能够根据语义的层次性,即它们之间的紧密型,被表达成一个二叉树,如上图所示。

那这个句法结构有什么缺陷呢?咱们看下图,首先它是一个强序列要求的结构。其次,它不是各类语言通用的框架,依赖于特定语言规则,普适性不好。最后,它反映的语义信息比较有限。

微信图片_20180322085730.jpg

2.Dependency structure(一层句法):

它经过用词与词之间的有效边来表示语法关系,所以在形式上会更简单、直观。

微信图片_20180322085732.jpg

在上图这个例子里面,咱们能够看到一条边SBJ,也就是指句子的主语,OBJ就是指句子的宾语,NMOD就是指名词的修饰词,它经过边的类型来定义词与词之间的关系。而边的类型比较多,目前有三十几种。

3.Frame semantics(框架语义):

它相比于以前的两个理论,更偏重于语义及知识表达,这套理论认为一个完整的表达是要结合背景知识的。好比“吃”这个词,不能独立于知识来讨论这个词应该怎么用,而要把它放在完整的语义结构中。“转”这个词也是如此。

微信图片_20180322085735.jpg

三.Dependency parser的意义

Dependency parser是咱们今天的主讲内容,因此咱们就dependency parser来讨论它的主要意义是什么。其实要讨论dependency parser的意义,这多是个比较难的话题,由于它是天然语言处理领域里面一项比较基础的研究,但它真正在实际应用中的效果,主要有如下几方面:

微信图片_20180322085738.jpg

咱们能够看到,Tree-LSTM较Bi-LSTM并无很明显的优点,因此“结构化是否是有必要”,仍然是一个争议点,在胡翔老师看来,他认为这个话题对dependency parser的研究至关因而对语言本质的一些揭露,它的研究成果对理解天然语言颇有帮助,虽然它不必定在实际应用中起到效果。

四.Dependency parser的结构

在传统的dependency parser结构中,有如下几个限制:

微信图片_20180322085742.jpg

在这些条件下,天然而言最后构成的结果是一棵树。存在争议的一点是,咱们构成一个dependency parser结构的时候,有交叉仍是无交叉,实际上,支持交叉,句子表达的语义性更强,但相继引来的pass难度也会更高。

依存句法结构的规范了解完以后,咱们来介绍它的几种主流pass方法。所谓的parser就是教会计算机把一句话自动地翻译成所规范的结构,所以咱们就要有一些方法,帮助计算机可以结合上下文或某些操做,来缩小它的搜索范围和空间,有效地去构成一棵树。

1.Transition-based parser:

这是最经典的方法,transition-based简单来讲是它定义的一系列操做,咱们只要用这一系列的操做一路作下去,最后就能把它变成一棵树,这是直观一点的理解。

微信图片_20180322085745.jpg

这种pass方法主要基于状态转移,咱们来看下面这张图中的例子,来直观地了解一下具体过程:

shift的功能是把当前临时站I站顶里面的token或一个结构,往左边的S站里压一个。

而后咱们看到图三里的Left-Arc(向左造成一条弧)操做,它的具体意义是从I和S里面各取一个元素弹出来,画一条左弧把它们连起来,丢到最右边的A里面,A的意义是一个操做历史。

在“she”和“bought”之间造成一条左弧,左弧的意义是,弧向哪边指,被指向的那个token是做为子节点,指别人的token是做为一个父节点,在这里,“bought”就做为一个父节点从新被压到站里面,以后的操做就是不断循环往复,一直作到I站为空,这时候过程终止。

A站表示这个过程中的操做记录,咱们经过A站看到造成的弧是哪些,就能造成一棵树。

微信图片_20180322085747.jpg

这个算法的意义主要是,“我永远只操做我这句话最前面的两个token”,能够这么理解,transition-based parser是经过基于局部词的组合,来进行局部的合并,一直到把整个东西“吃”完。它在运行性能上有优点,包含更多的语义性。

2.Graph-based parser:

相比于上面局部的方法,graph-based parser就是一种全局的方法。

微信图片_20180322085750.jpg

它的核心思想是,无论每一个词之间的距离,把词与词的关系密切性变成一个值,而后生成一个对角树,生成这个树的路径就是dependency parser的路径。它的优点是可以实现局部最优解,所以它不会由于以前的偏差,致使全局最后的pass结果错误。

五.基于deep learning的parser model介绍

最后咱们介绍基于transition-based理论的一些deep learning模型。

1.Transition-based methods:

它的主要思路是先把一个句子变成句法树,再变成dependency parser,这个方法有点舍近求远,但它的效果不错。它一样会定义一些操做,即在一个序列上不断作这些操做,直到结束,就能造成一棵树。主要有如下三种操做:

微信图片_20180322085753.jpg

这个模型就是在序列中,插左括号或右括号的非典型性序列打标问题,deep learning在里面起的做用是,每个左括号和右括号封闭的token,把它们表达成一个更高级的含义。

微信图片_20180322085755.jpg

2.Graph-based model:

这个模型是把以前构建数的问题变成距离计算的问题。它本质作的事情是创建一个矩阵,行和列都是这个句子里的token,每两个行列中的一个点表示a修饰b的几率或b修饰a的几率的一个得分,最后要造成树,咱们就是在这个距离向量中找一棵最小生成树,生成出来的就是dependency parser。

微信图片_20180322085758.jpg

微信图片_20180322085800.jpg

因此在deep learning的模型里面,比较重要的就是怎么去计算这个距离向量,一样的,也是由于有word embedding的发现,让咱们可以把一个句子变成连续向量。

那么在实际应用中,dependency parser有多少意义呢?咱们不可否认dependency parser的意义,但它有几点很大的限制:

微信图片_20180322085804.jpg

那么为何中文准确率会那么低呢?主要有如下两点:

微信图片_20180322085806.jpg

为了解决这个问题,咱们设计了一种简化标注的思路:

微信图片_20180322085809.jpg

怎么简化呢?就是让标注人员去标这里面的语义结构,识别里面的语义块,但它仍然有缺陷,咱们只能强化学习。

以上全部部分就是此次线上直播的主要分享内容,相信你必定对dependency parser有了更深刻的认识,想了解更多更详细内容的小伙伴们,能够关注服务号:FMI飞马网,点击菜单栏飞马直播,便可进行学习。

服务号.jpg

相关文章
相关标签/搜索