第14章 统计剖析
CKY算法和Earley算法可以有效地表示句法歧义,但却没有提供排歧的手段。概率语法提供的方法是,可以计算歧义的每一种解释的概率,然后从中选择概率最大的解释。
概率上下文无关语法(PCFG)最常用。
14.1 概率上下文无关语法
上下文无关语法由四个参数定义:
N(非终极符集合),\(\sum\) (终极符集合),R(规则或产生式集合),S(初始符号)
概率上下文无关语法,与标准的CFG不同的是,给每一个规则加上了条件概率 A \(\to \beta [p]\)
其中p是\(P(\beta | A)\),且\(\sum_{\beta} P(A \to \beta) = 1\)
在一个PCFG中,如果一种语言中的所有句子的概率之和为1,就说这个PCFG是坚固的。
14.1.1 PCFG用于排歧
一个PCFG可以对于一个句子S的每一个剖析树T都指定一个概率。
对于句子S,S的单词符号串称为S上的任何剖析谁的剖析产出。排歧算法在句子S剖析产出的所有剖析树中选择对于这个给定的句子S具有最大可能的树作为剖析结果。
\(\hat{T}(S) = argmax_{Ts.t.S=yield(T)} P(T|S) = argmax_{Ts.t.S=yield(T)} \frac {P(T, S)} {P(S)} = argmax_{Ts.t.S=yield(T)} P(T, S) = argmax_{Ts.t.S=yield(T)} P(T)\)
14.1.2 PCFG用于语言建模
PCFG的另一个特性是可以给句子中的单词符号串指派一个概率。这对于语言建模很有意义。
歧义句子的概率等于该句子所有剖析树的概率之和。
14.2 PCFG的概率CKY剖析
现代大多数的概率剖析器都是基于概率CKY算法。
![](https://i-blog.csdnimg.cn/blog_migrate/b907357eedf9de805cac6ef255aba2bd.png)
概率CKY算法也要求其语法具有Chomsky范式(CNF)。
14.3 PCFG规则概率的学习路径
两种途径,一是通过树库学习,如宾州树库,或者没有现成的树库可以使用的时候,可以先剖析一个树库,如果句子没有歧义,那么在剖析中为每个规则加个计数器,然后做归一化处理,既可得到概率。
然而大多数时候句子是有歧义的,为了解决这个”鸡生蛋,蛋生鸡“的问题,需要一步一步地递增地改善我们的估计值。计算这种解的标准算法称为向内-向外算法。这是期望最大值算法的一个特殊情况。
14.4 PCFG的问题
概率上下文无关语法可能有以下两个问题:糟糕的独立性假设,缺乏词汇制约条件。
14.4.1 独立性假设忽略了规则之间的结构依存关系
任何一个非终极符号的展开都是上下文无关的。这种独立性假设带到了PCFG中。