nlp知识点总结(中)

陆:句法分析

语言学的不同分支对应了不同的nlp基础技术,词法学对应于自动分词、词性标注等,而句法学对应的是句法分析。

句法(Syntax): 研究语言的句子结构,针对语言学两个基本关系中的组合关系

一、句法分析概述

    • 概念

  • 句法分析:判断单词串是否属于某个语言,如果是,则给出其(树)结构。

  • 句法分析包含两个子问题,一是语言体系的形式化描述,二是语言结构的分析算法。

一般而言,语言结构分析算法的任务着重考虑两方面问题:
1. 消除输入句子中词法和结构等方面的歧义
2. 分析输入句子的内部结构,如成分构成、上下文关系等
  • 结构分析算法的设计依赖于语言描述形式,描述一种语言通常可采用穷举法、文法和自动机。在乔姆斯基层级体系中包含四类文法,考虑到描述能力和复杂程度,最常用的是上下文无关文法CFG。

nlp知识点总结(中)_第1张图片

二、句法分析算法

    • 移进-规约方法

  • 移进-归约是自底向上语法分析的一种形式,使用一个栈来保存文法符号,并用一个输入缓冲区来存放其余符号。采用堆栈作为数据结构。

两种冲突
移进-归约冲突:既可以移进,又可以归约
归约-归约冲突:可以使用不同的规则归约移进归约冲突
  • 冲突的解决办法——回溯。

回溯策略:对于互相冲突的各项操作,给出一个选择顺序
• 移进-归约冲突: 优先进行归约,如果失败再尝试移进
• 归约-归约冲突: 规则事先排序,优先执行排在前面的规则
除了在堆栈中除了保存非终结符外,还需要 保存断点信息
  • 每次分析失败时都强制性回溯,将导致大量的冗余操作,效率非常低。

2. 线图分析法Chart parsing

nlp知识点总结(中)_第2张图片
  • 线图是一组节点(node)和边(edge)的集合,线图分析法是基于CFG规则的分析方法。

节点:对应着输入字符串中的字符间隔
边:<起点, 终点, 标记>
句法分析过程:从输入串开始一步步形成chart,直至存在一条边可以覆盖全部节点,并标记为S
  • Chart算法设计三个数据结构,线图chart、待处理表agenda和活动弧active arc.

nlp知识点总结(中)_第3张图片
nlp知识点总结(中)_第4张图片

  • 相较于移进-规约算法,Chart算法有较大的改进,但依然存在不足。

优点:算法简单、容易实现
缺点:算法复杂度高达n^3;难以区分歧义结构;严重依赖句法规则的质量

三、概率上下文无关PCFG

    • PCFG

CFG存在许多缺陷:
1. 算法运行的复杂度较高,难以处理较大规模问题
2. 手工编写的规则一般带有一定的主观性
3. 写规则本身是一件大工作量的复杂劳动,而且规则对特定的领域有密切的相关性,难以移植
  • 20世纪80年代中期研究者们开始探索统计句法分析方法,而基于概率上下文无关文法(PCFG) 可以说是目前最成功的统计句法分析方法。

  • PCFG实际上相当于为规则增添了概率的简单CFG,同一非终结符的产生式概率之和为1。

在基于PCFG的句法分析模型中,假设满足以下三个条件:
• 位置不变性(place invariance):子树的概率不依赖于该子树所管辖的单词在句子中的位置
• 上下文无关性(context-free):子树的概率不依赖于子树控制范围以外的单词
• 祖先无关性(ancestor-free):子树的概率不依赖于推导出子树的祖先节点
nlp知识点总结(中)_第5张图片

2. CYK算法

  • CYK算法通过动态规划,相对高效的计算出最有可能的句法结构树,伪代码如下图所示。

  • 其中i代表正在处理的行,j为正在处理的列,table[i, j, A]代表第i行j列出现A的概率。算法过程是按列进行的,从第0列开始,直至最后一列规约出S。

nlp知识点总结(中)_第6张图片

  • 初始化的过程就是标注对角线上的概率。

  • 算法中有一个值得注意的地方——最内层循环中为什么只判断了[i,k]和[k,j]位置处的符号。从直觉上,不应该再引入一层循环,遍历该行该列的每一种组合吗?为什么算法中没有这么做呢?

  • 事实上,从句法树的结构就可以得出答案了。由于每个单词(叶节点)仅属于一颗子树,在这种情况下,语法树不会出现“交叉”或“缺漏”的现象。

以下图所示的CYK算法结果矩阵为例,在归约出[2,8]的VP时用到了[2,5]的VP和[5,8]的PP。
假如使用[2,5]的VP和[6,8]的NP进行归约会发生什么情况呢?(假定存在这条语法规则VP -> VP NP)
  • [2,5]VP的语法树(即箭头)中,包含saw,the,dog这三个叶节点,而[[6,8]NP的语法树中包含the,telescope这两个叶节点,中间的单词with没有被使用到!这与我们期望的句法树结构是相悖的!类似的,还可能出现一个叶节点同时属于两颗子树的情况。因此,为了使句法树结构符合要求,必须要求起止下标闭合

nlp知识点总结(中)_第7张图片

3. 集束搜索Beam Search

Beam search(集束搜索)是一种启发式图搜索算法,在每一步扩展的时候,减掉一些质量比较差的节点,从而减少空间消耗,提高时间效率。但是该算法是不完备的,可能导致潜在的最佳方案被丢弃。
  • Beam search使用广度优先策略建立搜索树,在树的每一层,按照启发代价对节点进行排序,然后仅留下预先确定的个数(Beam Width 集束宽度)的节点,仅这些节点在下一层继续扩展,其他节点就被剪掉了。

nlp知识点总结(中)_第8张图片

4. 小结

  • 需要指出,PCFG仍然只是一个非常粗糙的概率模型,不一定适合自然语言——自然语言是上下文相关的!

PCFG优点:利用概率减小搜索空间;剪枝,加快分析效率; 可以定量地比较两个语法的性能。
PCFG缺点:无法描述的两种现象——结构相关性和词汇相关性。
nlp知识点总结(中)_第9张图片

你可能感兴趣的:(课程复习,自然语言处理,人工智能)