一. 摘要

在自然语言处理的一个重要分支领域——机器翻译中,句法分析占据着核心的地位,句法分析也是自然语言处理的核心技术,是机器理解语言的关键部分。句法分析的主要任务是识别出句子所包含的句法成分以及这些成分之间的关系,通常会以句法树来表示句法分析的结果。本次分享将介绍句法分析相关的技术。

二. 概述

句法分析是决定自然语言处理进度的关键部分。句法分析主要有一下两个障碍:歧义和搜索空间。自然语言区别于人工语言的一个重要特点就是它存在着大量的歧义现象。人们可以依靠大量的先验知识有效的消除掉歧义,而在机器学习中,机器在表示和获取方面存在严重的不足,所以很难向人一样进行语句的歧义消除。句法分析是一个极为复杂的任务,侯选树的个数会随着句子增多呈现指数级别的增长,搜索空间巨大。因此,必须要有合适的解码器,才能够做到在规定的时间内搜索到模型定义的最优解。

句法分析是通过词语组合分析得到句法结构的过程,而实现该过程的工具或程序被称为句法分析器。句法分析的种类很多,这里我们根据其侧重目标分为完全句法分析和局部句法分析两种。两者的差别在于,完全句法分析以获取整个句子的句法结构为目的;而局部句法分析只关注局部的一些成分。

句法分析中所用方法可以简单的分为基于规则和基于统计两个类别。首先基于规则的方法在处理大规模真实文本时,会存在语法规则覆盖有限的缺陷。随着基于统计学习模型的句法分析方法兴起,句法分析器的性能不断的提高。典型的就是PCFG,它在句法分析领域得到了很广泛的应用。统计句法分析模型本质上是一套面向候选树的评价方法,正确的句法树会被赋予一个较高的分值,对不合理的句法树则赋予较低的分值,最终将会选择分值最高的句法树作为最终句法分析的结果。

三. 句法分析的数据集和评测方法

统计分析方法是离不开语料数据集和评价体系做基础的。

句法分析的数据集:统计学习方法需要语料数据的支撑,相较于分词和词性标注,句法分析使用的数据集更复杂,它是一种树形的标注结构,已可以称为树库。

图1:句法树模型

英文宾州树库PTB(Penn TreeBank),是目前使用最多的树库,具有很好的一致性和标注准确率。中文的树库起步建设较晚,目前比较著名的有中文宾州树库、清华树库、台湾中研院树库。宾夕法尼亚大学标注的汉语句法树库是绝大多数中文句法分析研究的基准语料库。

图2:树库汉语成分标记集

句法分析的评测方法:句法分析评测的主要任务是评测句法分析器生成的树结构与手工标注的树结构之间的相似度。主要通过两个方面评测其性能:满意度和效率。满意度指的是测试句法分析器是否合适某个特定的自然语言处理任务;而效率主要是对比句法分析器的运行时间。

目前主流的句法评测方法是PARSEVAL评测体系,这是一种粒度适中、较为理想的评测方法,主要指标有准确率、召回率、交叉括号数。其中准确率表示分析正确的短语个数在句法分析结果中占据的比例。也就是分析结果中与标准句法树中相匹配的短语个数占分析结果中所有短语个数的比例。召回率可以理解为分析得到的正确短语个数占标准分析树全部短语个数的比例。交叉括号表示分析得到的某一个短语的覆盖范围与标准句法分析结果的某个短语的覆盖范围存在重叠但不存在包含关系,即构成一个交叉括号。

四. 基于PCFG的句法分析

PCFG(Probabilistic Context Free Grammar)是基于概率的短语结构分析方法,是目前较成熟的句法分析模型,也可以认为是规则方法和统计方法的结合。

PCFG是一种生成式的方法,它的短语结构文法可以表示为一个五元组(X,V,S,R,P):

X是一个有限词汇的集合,其中的元素称为词汇或者终结符。

V是一个有限标注的集合,称为非终结符集合。

S称为文法的开始符号,并且包含于V。

R是有序偶对(α,β)的集合,就是产生的规则集。

P代表每个产生规则的统计概率。

PCFG用于解决以下的问题:

1)  基于PCFG可以计算分析树的概率值。

2)  若一个句子有多个概率树,可以依据概率值对所有的分析树进行排序。

3)  PCFG可以用于进行句法排歧,面对多个分析结果选择概率值最大的。

下面通过一个例子展示PCFG求解最优句法树的过程。首先有一个规则集:

图3:PCFG规则集

其中第一列表示规则,第二列表示规则成立的概率。

给定句子S:astronomers saw stars with ears,通过PCFG和上述的规则集,得到如下两个句法树:

图4:句法树展示图

然后计算两棵句法树的概率:

P(T1) = S×NP×VP×V×NP×NP×PP×P×NP

= 1.0×0.1×0.7×1.0×0.4×0.18×1.0×1.0×0.18

= 0.0009072

P(T2) = S×NP×VP×VP×V×NP×PP×P×NP

= 1.0×0.1×0.3×0.7×1.0×0.18×1.0×1.0×0.18

= 0.0006804

对比两棵句法树的最终概率值,选择T1作为最终的句法树。

五. 基于最大间隔马尔可夫网络的句法分析

最大间隔属于SVM(支持向量机)中的核心理论,而马尔可夫网络是概率图模型中一种具备一定结构处理关系能力的算法。最大间隔马尔可夫网络(Max-Margin Markov Networks)就是这两者的集合方法,能够解决复杂的结构化预测问题,尤为适合用于句法分析任务。这是一种判别式的句法分析方法,主要是通过多个特征来消除分析过程中的歧义。判别函数如下:

图5:最大间隔马尔可夫网络判别函数表达式

其中的(x,y)表示与x相对应的句法树y的特征向量,w表示特征权重。

类似SVM算法,最大间隔马尔可夫网络如果要实现多元分类,可以采用多个独立并且可以并行训练的二元分类器实现。每一个二元分类器识别一个短语标记,再通过组合多个二元分类器就可以完成句法分析任务,同时也可以通过并行的方式,提升训练速度。

总结

句法分析在自然语言处理中是非常重要的一个环节。本次的内容分享了常用的数据集和评测方法,PCFG和最大间隔马尔可夫网络两种句法分析。目前的句法分析的实际性能与理论性能还有较大的距离,因为语言学的理论和自然语言实际应用之间还有着较大的差异。

自然语言处理之——句法分析相关推荐

  1. 中文自然语言处理--依存句法分析标注关系

    依存关系的五条公理,分别如下: 1.一个句子中只有一个成分是独立的: 2.句子的其他成分都从属于某一成分: 3.任何一个成分都不能依存于两个或两个以上的成分: 4.如果成分 A 直接从属成分 B,而成 ...

  2. 自然语言处理6 -- 情感分析

    系列文章,欢迎阅读 NLP预训练模型1 – 综述 NLP预训练模型2 – BERT详解和源码分析 Transformer家族1 – Transformer详解和源码分析 自然语言处理1 – 分词 自然 ...

  3. 【ChatBot开发笔记】使用LTP(语言技术平台)进行自然语言处理

    目录 准备工作 测试示例 测试代码 1.ltp.py run.py 测试结果及分析 中文分词 词性标注 依存语句分析 命名实体识别 语义角色标注 语义依存 (依存树) 分析 语义依存 (依存图) 分析 ...

  4. 一种情感判别分析体系在汽车品牌舆情管理中的应用

    一种情感判别分析体系在汽车品牌舆情管理中的应用 宋云生 深圳联友科技有限公司,广东 深圳 518031 摘要:品牌舆情管理涉及文本.语音等自然语言产物的处理,如挖掘文本内涵的情感.观点等并对其量化,才 ...

  5. AI测试|天猫精灵智能音箱测试策略与方法

    一.业务介绍 2014年11月,亚马逊推出了一款全新概念的智能音箱:Echo,这款产品最大的亮点是将智能语音交互技术植入到传统音箱中,从而赋予了音箱人工智能的属性.这个被称为"Alexa&q ...

  6. Web 文本挖掘(TextMining)技术

    Web 文本挖掘(TextMining)技术 [日期:2007-01-04] 来源:  作者: [字体:大 中 小] 文本挖掘的起源 文本数据库(web文档数据) 半结构化数据(semistructu ...

  7. GTD3年来读的52本书

    2012年 1.一生的计划 平衡:人生要在精神.理财.教育和娱乐4个方面进行平衡. 2.重来REWORK 小型软件公司的创业与软件项目的管理 不要管全年计划,只要找出下一项最重要的任务,然后起而行之. ...

  8. 深度学习与自然语言处理教程(4) - 句法分析与依存解析(NLP通关指南·完结)

    作者:韩信子@ShowMeAI 教程地址:https://www.showmeai.tech/tutorials/36 本文地址:https://www.showmeai.tech/article-d ...

  9. 统计自然语言处理梳理二:句法分析

    进行统计自然语言处理系统梳理,学习资料<统计自然语言处理.宗成庆>. 一.概述 句法分析是自然语言处理技术中的关键技术之一,其基本任务是确定句子的句法结构或句子中词汇之间的依存关系. 句法 ...

  10. 自然语言处理(三)——句法分析与依存句法分析

    更多内容请至南木博客主页查看哦 文章目录 一.StanfordCoreNLP对英文进行处理 二.StanfordCoreNLP对中文进行处理 三.LTP对中文进行处理 四.结论 附录 · 本文所使用工 ...

最新文章

  1. 未转变者rust服务器推荐,如果steam只留一个游戏,你会选择吃鸡还是CSGO
  2. GRE核心词汇助记与精练-List12转
  3. linux 查看cpu_看看你的嵌入式设备CPU温度是多少,能烤肉吗?
  4. swift使用mysql教程,Swift学习教程之SQLite的基础使用
  5. 关于vs2015每次打开都要配置opencv问题
  6. python学起来很蛋疼_一个初学者的辛酸路程-了解Python-2
  7. 计算机网络定义记不住,win10下微软拼音输入法记不住自定义输入词语怎么办
  8. 虚拟化技术——虚拟存储
  9. ⚡【图像描述】pytorch_image_caption
  10. C++ 11,智能指针(整理总结)3
  11. qq飞车手游忘记哪个区了服务器也没显示,qq飞车手游大区查询方法,轻松几步让你知道你是哪个区...
  12. python判断按键是否按下_python – 如何检查键修饰符是否被按下(shift,ctrl,alt)?
  13. 迈阿密大学的计算机系咋样,迈阿密大学计算机科学专业
  14. 订阅切换按钮(subscribe toggle button)
  15. 软件测试/自动化测试/测试开发/性能测试经典好书推荐
  16. 阿里开发手册-MySQL规约
  17. 使用期望等待一次性事件
  18. JAVA实现MD5加密及解密
  19. SyntaxError: invalid syntax 诡异的错误
  20. 每日技术新闻汇_2019-8-26

热门文章

  1. word常用宏方法介绍
  2. 视差图(disparity map)
  3. DVWA Contradiction #01
  4. 无人驾驶技术 CNN应用
  5. OpenGL ES EGL eglCreateContext
  6. wifi物理地址怎么改_怎么修改手机的物理地址
  7. 五月的庐州城《柳絮》
  8. ggplot制作条形图
  9. 代码传奇 | 搞罢餐的热血青年到 PHP大神的蜕变——“鸟哥”惠新宸
  10. iOS添加pch头文件