PCFG 与 CYK 算法:句法分析的概率化

分类: 概率模型 · 难度: 进阶 · 关联讲座: L01

概率上下文无关文法(Probabilistic Context-Free Grammar, PCFG)是将传统形式语言理论与概率模型结合的经典方法,为句法分析提供了数学上优美且计算上可行的框架。PCFG 在统计 NLP 时代是句法分析的标准工具,通过 CYK 动态规划算法实现高效的最优解析树搜索。理解 PCFG 对于把握从规则系统到统计方法的范式转变至关重要。

📐 概率上下文无关文法(PCFG)——句法分析的概率化

PCFG 为每条产生规则赋概率,形式化为 G=(N,Σ,S,R,q)G = (N, \Sigma, S, R, q)

  • NN:非终结符集合(S, NP, VP, PP, …)
  • Σ\Sigma:终结符集合(词汇表)
  • SS:起始符号
  • RR:规则集合,如 VPV NP\text{VP} \to \text{V} \ \text{NP}
  • q(r)q(r):规则概率,满足 r:LHS(r)=Aq(r)=1\sum_{r: \text{LHS}(r)=A} q(r) = 1

句子的概率 = 其解析树 τ\tau 中所有规则概率的乘积: P(τ)=rτq(r)P(\tau) = \prod_{r \in \tau} q(r)

CYK 算法(Cocke-Younger-Kasami,O(n3G)O(n^3 |G|)):

  • 要求 CNF(Chomsky Normal Form):ABCA \to BCAwA \to w
  • 填表:π(i,j,A)=maxABC,s[q(ABC)π(i,s,B)π(s+1,j,C)]\pi(i,j,A) = \max_{A \to BC, s} \left[q(A \to BC) \cdot \pi(i,s,B) \cdot \pi(s{+}1,j,C)\right]
  • π(i,i,A)=q(Awi)\pi(i,i,A) = q(A \to w_i) 若规则存在,否则为 0

与 HMM 的关系:HMM 可视为 PCFG 的特例——正则文法(所有规则形如 AaBA \to aBAaA \to a),只能生成正则语言;PCFG 能表达嵌套结构(如括号匹配),表达力严格更强。

💡 为什么 PCFG 有效?

PCFG 之所以能够有效地进行句法分析,是因为句法结构是递归嵌套的——“名词短语里可以嵌套名词短语”,这恰好是上下文无关文法的表达能力。CYK 算法利用动态规划,将指数级的搜索空间压缩到 O(n3)O(n^3) 的多项式时间,使得在所有可能的解析树中找到概率最大的那棵成为可能。

🔗 知识关联

  • PCFG → 依赖句法分析(HW2):PCFG 生成短语结构树,依赖句法直接建模词-词关系(head-dependent),后者在深度学习时代更常用因为标注简单、跨语言迁移更好。