自然语言理解-句法分析算法(1)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。


前提条件

文法符合chomsky范式

文法只有两种形式: A B C 其中,A,B,C都为非终结符 A a 其中,a为终结符
算法数据结构

一个二维矩阵:{ M(i , j) }


每一个元素M(i , j)对应于输入句子中某一个 跨度(Span)上所有可能形成的短语的非终 结符的集合 横坐标i:该跨度左侧第一个词的位置 纵坐标j:该跨度包含的词数
m

n
火车
带回溯的LR
组成部分

Shift-Reduce-Goto 表 分析栈 输入队列 引入备份状态,解决移进规约冲突
LR 分析表的构造

0 S’ .NP NP .NP NP NP .n NP .MP NP MP .m q


1 MP m. q



Bottom-up
m

q 张
n
火车
n 票
Bottom-up
MP
m

q 张
n
火车
n 票
Bottom-up
MP
NP q 张
m

n
火车
n 票
Bottom-up
MP
NP q 张
NP n 票
m

n
火车
Bottom-up
NP MP NP q 张 NP n 票
m

n
火车
Bottom-up
NP NP MP NP q 张 NP n 票
q
n
NP.NP.NP
n
agenda:

• (0,1)MP.m. q •(0,1) m (0,2) MP .NP. .MP. .MP .m q. NP. NP NP •(0,3) (1,2) NP q •(1,2) q (2,3) NP (2,4) .n. .NP. .NP NP. .MP NP NP. •(0,4) n •(2,3) n (3,4) NP .n. .NP NP. •(0,4) n •(3,4) n
描述


规则中加入“.”表示当前分析程度 一张二维表 引入预测机制 这个算法可以认为是三个步骤的不断循 环:

预测(predict) 扫描(scan) 完成(complete)
基本概念

一个状态由四部分组成:
1. 2.
3. 4.
ຫໍສະໝຸດ Baidu
上下文无关文法规则 圆点·(圆点左边的部分是已分析的,右边 是待分析的) 整数i : 状态起点(已分析子串的起点) 整数j : 状态终点(已分析子串的终点) i ≤j
(1) NP NP NP (2) NP MP NP
(3) NP n
(4) MP m q
Stack
Input Queue
Backup Status
$ 0 acc m 14 MP NP 3qNP n NP n 27 7 6 5 NP n 76
m$ q n $ n q$ n n$ n$
( $ 0 NP 4 ) ( n $ )

5) m

7) q
火车
14) n

23) n
Prediction Scanning Completion
19) NP 。NP NP 20) NP 。MP NP 21) NP 。n 22) MP 。m q
Results
分析



自顶向下和自底向上的结合,以自顶向 下为主 引入了预测机制,在一般情况下改进了 效率 最坏情况下复杂度为O(n3)

期望分析结果
Top-down
自顶向下的方法又称为基于预测的方法。 这种方法是先产生对后面将要出现的成分的预期,然 后再通过逐步吃进待分析的字符串来验证预期。 如果预期得到了证明,就说明待分析的字符串可以被 分析为所预期的句法结构。 如果某一个环节上预期出了差错,那就要用另外的预 期来替换(即回溯)。 如果所有环节上所有可能的预期都被吃进的待分析字 符串所“反驳”,那就说明待分析的字符串不可能是 一个合法的句子,分析失败。

歧义最大数量: 真歧义和伪歧义



咬死猎人的狗(v n 的 n) 建设公路的需要 (v n 的 n) 他和我的爸爸(r 和 r 的 n) 他和他的爸爸(r 和 r 的 n)
算法应该……

容纳歧义

允许二义文法 任何可能结果都应计算到 在多项式时间内得到结果 具备排序机制,启发式搜索策略
算法描述




初始化 For int i = 0 to n-1 if W(i,i+1) == a && exit Aa Add A to M(i,i+1) 计算 For int l = 2 to n for int k = 0 to n-l for int j = 1 to l-1 for each A B C if(B in M(k,k+j) and C in M(k+j, k+l)) add A to M(k, k+l) 结果 M(0, n) is the set of all results;
NP.NP.NP

0 1
Extended arcs

2
火车
3
Triggered arcs

4
Agenda的作用

实现多种搜索策略:


后进先出,深度优先 先进先出,广度优先 启发式搜索
算法分析

灵活
自底向上 O(n3)


Thank you!

比如: <S NP ·VP 0, 4>
基本操作



预测(Predicator):如果圆点右方是一个非终结符, 那么以该非终结符为左部的规则都有匹配的希望,也 就是说分析器可以预测这些规则都可以建立相应的项 目。 扫描(Scanner):如果圆点右方是一个终结符,就将 圆点向右方扫描一个字符间隔,把匹配完的字符“让” 到左方。 归约(Completer):如果圆点右方没有符号(即圆点 已经在状态的结束位置),那么表示当前状态所做的 预测已经实现,因而可以将当前状态(Si)与已有的 包含当前状态的状态(Sj)进行归约(合并),从而扩大 Sj覆盖的子串范围

Top-down
NP NP m q 张 NP NP MP NP (s) MP m q NP n 票

(4) (1)
NP n 火车
NP NP NP

Bottom-up
自底向上的方法也叫基于归约的方法。 这种方法是先逐步吃进待分析字符串,把它们 从局部到整体层层归约为可能的成分。 如果整个待分析字符串被归约为开始符号S, 那么分析成功。 如果在某个局部证明不可能有任何从这里把整 个待分析字符串归约为句子的方案,那么就需 要回溯。 如果经过回溯始终无法将待分析字符串归约为 S,那么分析失败。
n$ $ $
$ 0 NP 4
$ 0 acc
$
$
$ 0 NP 4
$ 0 acc
$
$
算法分析

类似深度优先搜索

如果改变备份栈顺序,可以实现其它搜索策 略。(agenda)


自底向上 复杂度为指数
思考:有没有办法变成多项式?(GLR)

CYK
组成部分

一张二维表,存储中间结果
从小的成分,逐渐计算到大的成分

扩展:活动弧+完成弧 触发:完成弧
m
q
MP .m.q MP .m q.
算法描述




1。将所有单词作为完成弧放入agenda,按某种排序 策略排序,把结果表清空。 2。如果agenda为空,转入6 3。从agenda中取出一条弧,如果是覆盖整个句子完 成弧且规则右部是可接受文法符号,那么将弧放入结 果表 4。如果不是,则进行弧的扩展与触发,将产生的新弧 放入agenda,放入时满足agenda的排序规则 5。转入2 6。如果结果表空,则分析失败,否则返回结果表中的 内容

高效

一些算法


自顶向下 自底向上 带回溯的LR 分析法 CYK Earley Chart Parsing
使用的例子

输入:

一/m 张/q 火车/n 票/n
NP NP NP NP MP NP NP n MP m q (1) (2) (3) (4)

文法:
图算法
基本数据结构

图(二维表)

节点:词与词之间的间隙 弧:产生式在两个节点间的应用,分为活动 弧和完成弧
0
m
MP .m.q
1
q
2
MP .m q.
基本数据结构(cont.)


Agenda: 可以按某种顺序排列的队列 (stack, queue,…),存放还没有处理 过的弧。 弧的处理(旧弧产生新弧):


6 NP NP NP. NP NP. NP NP .NP NP NP .n NP .MP NP MP .m q

7 NP n.

5 NP MP NP. NP NP. NP NP .NP NP NP .n NP .MP NP MP .m q
最左触发,向右扩展,后进先 出的图算法
NP.NP NP. NP.MP NP. NP.NP NP.
Grammar:
•NP NP NP •NP n •NP MP NP
NP .MP NP. MP .m q.
NP.n.
NP.n.
•MP m q
m
MP.m.q NP .MP. NP
句法分析算法
上海交通大学 陈玉泉
内容提要

概述 带回溯的LR 分析法 CYK Earley Chart Parsing
概述
程序设计语言分析算法

递归下降 LL LR
特点

高效 排歧策略简单

First集 Follow集 算符优先级
自然语言文法的特点

歧义
过程(cont.)
$0 $0m1 $0m1q2 mqnn$ qnn$ nn$
$ 0 MP 3
$ 0 MP 3 n 7 $ 0 MP 3 NP 5
nn$
n$ n$
$ 0 MP 3 NP 5 n 7 $ 0 MP 3 NP 5 NP 6 $ 0 MP 3 NP 5
$ $ $
$ 0 NP 4 $ 0 NP 4 n 7 $ 0 NP 4 NP 6



Top-down
NP MP NP NP MP NP (2)
Top-down
NP NP m q 张 NP NP MP NP (s) MP m q (4)

Top-down
NP NP m q 张 NP NP MP NP (s) MP m q NP

(4) (1)
NP
NP NP NP
Earley Example
1) NP 。NP NP 2) NP 。MP NP 3) NP 。n 4) MP 。m q 6) =4+5 MP m。q 8)=6+7 MP m q。 9)=2+8 NP MP。NP 10) NP 。NP NP 11) NP 。MP NP 12) NP 。n 13) MP 。m q 15)=12+14 NP n。 16)=9+15 NP MP NP。 17)=1+16 NP NP。NP 18)=10+15 NP NP。NP 24)=21+23 NP n。 25)=17+24 NP NP NP。 26)=18+24 NP NP NP。 27)=9+26 NP MP NP。

3 NP MP. NP NP .NP NP NP .n NP .MP NP MP .m q

4 S’ NP. NP NP. NP NP .NP NP NP .n NP .MP NP MP .m q

2 MP m q.
CYK Example
NP(10=9+6), NP(11=7+8) NP(9=7+4)
MP(7=1+2)
m(1) 一 q(2) 张
NP(8=4+6)
n(3), NP(4) N(5), NP(6) 火车 票
算法分析

文法必须二元化 广度优先搜索 自底向上 O(n3),动态规划思想
Earley 算法
过程

The Shift-reduce Table and the parsing process
status 0 1 2 3 4 5 6 7 r4 s1 s1 s1 r2 s1 r1 r3 r2 r1 r3 m s1 s2 r4 r4 s7 s7 s7 r2 s7 r1 r3 acc r2 r1 r3 r4 5 6 6 6 3 3 3 3 q n s7 $ NP 4 MP 3
相关文档
最新文档