句法分析
来源:互联网 发布:redis java 教程 编辑:程序博客网 时间:2024/06/08 10:13
自顶向下的分析是从树根开始推导的;
S->z1->z2->...->zn
所用到的规则放在一个后进先出的堆栈里,开始时堆栈为空,这个堆栈的作用是记录最近所用到的规则;
堆栈的作用是记录最近所用到的规则;
假定左部符号为A的规则的排列顺序是Pa.1,Pa.2,...,算法如下:
局部分析表:
序号:标明是整个分析过程中的第几个据不分析;
根 : 标明该局部分析过程的树根;
起点:标明该局部分析是从输入串的第几个词开始;
终点:标明局部分析是到输入串的第几个词结束;
成分表:标明该局部分析是以哪些局部分析为其构成成分的;
概率与法:
句法歧义: 从自动分析的角度看,这些歧义可分为:外显式和内含式两种: 如果一个词串所对应的若干种结构有各不相同的根,叫做外显式歧义;
如果一个词语串所对应的若干种结构有形同的根,叫做内含式歧义;
乔姆斯基范式:
A->a;
A->BC
Ai,j(A)=P(A->a)
一般化:
规则概率的调整,需要用到外部概率的概念;
先来考虑A是整个语句绑定后的符号(或者从生成的观点看,是由A推出整个语句)
乔姆斯基范式:
句法分析二:
1 线图分析算法(Chartparsing)
2 标准LR分析算法
3 GLR分析算法(Tomita/富田胜算法)
Chart算法的过程描述:
1)将待分析字符串w置入输入缓冲区,agenda清为空栈;
2)循环,反复执行下面步骤,直至输入缓冲区和agenda均为空
a)若agenda为空,则从输入缓冲区取一个字符,并把该字符及其起止位置
(P1, P2)推入agenda栈;
(P1, P2)推入agenda栈;
b)从agenda中弹出栈顶的边,该边的起止位置为(P1, P2),边上标记为L;
c)检查规则集中的规则,对所有形如AàLb这样的规则,在active arc集合中增加一条起止位置为P1, P2,弧上为AàL · b这样的点规则;
d)把从agenda中弹出的标记为L的边,加入到chart中的P1, P2之间;
e)检查所有active arc,如果存在起止位置为P0, P1,且弧上点规则为A->a·Lb的active arc,就增加一条新的active arc,起止位置为P0, P2,弧上点规则为
A-〉aL ·b
A-〉aL ·b
f)如果一条active arc(起止位置为P0, P2)上点规则形如A->aL · (点号在规则最右端),就将起止位置为P0, P2,边上标记为A的边压入agenda栈
- 句法分析
- 句法分析
- 成分句法分析与依存句法分析
- 入门句法分析
- 依存句法分析
- 中文句法分析
- 入门句法分析
- DependencyParsing 依存句法分析
- StanfordParser句法分析输入输出
- 句法结构分析
- stanford parser 中文句法分析
- stanford parser 中文句法分析
- 句法结构中的语义分析
- 句法分析树标注集
- StanfordParser句法分析断句错误
- Stanford NLP工具--句法分析
- 句法分析算法PCFG学习
- 中文依存句法分析概述及应用
- 控件包含代码块(即 ),因此无法修改控件集合。 .
- 选择保存文件路径的对话框
- chm文件下载后打不开的原因以及解决办法
- 父子页面通讯
- iOS动画效果和实现
- 句法分析
- setjmp和longjmp 转来的
- 千里之行,始于足下(开篇随笔)
- JS Enter回车事件
- NMOS基本逻辑电路分析
- GCD介绍(一): 基本概念和Dispatch Queue
- 对技术的态度
- Android TextView文字横向自动滚动(跑马灯)
- 数组和指针的一些小知识