学习
实践
活动
工具
TVP
写文章

高性能,依存句法解析器,基于三层神经网络模型

题图:mike-marquez-512516-unsplash

今天与大家分享一篇课程中提到的论文,题目:A Fast and Accurate Dependency Parser using Neural Networks

论文实现了一个准确快速的依存句法分析器( Dependency Parser),模型是三层神经网络,解决了三个目前普遍存在的语义分析难题。

介绍下什么是依存句法任务。依存句法任务,分析语言单位内成分之间的依存关系,揭示其句法结构。 直观来讲,它识别句子中的 “主谓宾”、“定状补” 这些语法成分,并分析各成分之间的关系。

当前常用的依存句法解析器,基于转化 (transition-based) parser, 基于搜索( search-based) parser, 贪心 parser 。本文实现的 parser 基于 arc-standard 系统 (Nivre,2004年实现,被公认为最流行的转换系统) 作为基础,arc-standard 包括三元组 (s,b,A): stack s, buffer b, 依赖 arc A. 如下句子期望得到的解析如下:

转换操作。开始状态栈只有一个 Root 元素,输入序列为整个句子,包括标点符号,A中单词依存关系为空,经过 shift,left-arc,right-arc 操作,最终得到单词间的关系集合A.

这些传统的方法提取指示特征,存在三方面缺陷,特征稀疏,单词间关系存在不完整分析,计算量非常大。本文基于神经网络模型,解决了这三个问题。

神经网络模型示意图如下,框架底层是上面提到的 arc-standard 系统,输入层包括三部分,xw 词向量二维矩阵,其第一维表示单词嵌入词向量维度,第二维字典单词数大小;xt 单词标注矩阵,xl 表示弧标记矩阵。隐含层包括三个权重参数矩阵,一个偏移向量,选用 cube 激活函数,第三层是熟悉的softmax层,对隐含层的输出加权后分类。

创新点。google曾用嵌入词向量表达每个单词的语义,但,尝试将词性标注和弧标签嵌入到神经网络中,属于首次。作者希望用稠密矩阵表达出单词间的依存关系。第一次尝试用 cub (三次方) 函数作为输入层到隐含层的激活函数。

预处理阶段进行一些计算准备工作,加速训练速度。得到单词的 50 维嵌入词向量,使用 google的 word2vec模型。其他技巧包括,提前计算前 1 万个常用单词的嵌入矩阵,单词标注矩阵,弧标记矩阵。隐含层计算权重时,出现这些单词时直接 lookup得到参数

交叉熵和二次惩罚项的结合作为目标函数。汉语数据集选用 CTB ,英文数据集选用 PTB,得到词性标注,依存句法准确度都有提高,训练速度较快。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180422G0IIFK00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码关注腾讯云开发者

领取腾讯云代金券