第十三篇:上下文无关语法 Context-Free Grammar
Posted flying_1314
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第十三篇:上下文无关语法 Context-Free Grammar相关的知识,希望对你有一定的参考价值。
目录
Context-Free上下文无关 vs. Regular 常规/正则
回顾
• 中心嵌入
• 无法被正则表达式 () 捕获
• 上下文无关语法!
上下文无关语法基础
• 符号
‣ 终端:单词比如book书
‣ 非终结符:NP 或 VP 等句法标签
• 制作(规则)
‣ W → X Y Z
‣ 左侧 (LHS) 正好有一个非终端
‣ 右侧符号的有序列表 (RHS); 可以是终端或非终端
• 开始符号:S
为什么是“上下文无关”
W → X Y Z
• 产生式规则仅取决于 LHS也就是左侧(而不取决于祖先、邻居)
‣ 类似于马尔可夫链
‣ 每一步的行为仅取决于当前状态
Context-Free上下文无关 vs. Regular 常规/正则
• 上下文无关语言比常规语言更通用
‣ 允许递归嵌套
CFG 解析
• 给定的生产规则
‣ S → a S b
‣ S → a b
• 和一个字符串
‣ aaabbb
• 生成有效的解析树
这意味着什么?
• 如果英语可以用 CFG 表示:
‣ 先制定产生式规则
‣ 然后就可以构建一个“解析器”来自动判断一个句子是否符合语法!
• 但是自然语言是无上下文的吗?
• 不完全:跨串行依赖 ()
但是
• CFG 取得了良好的平衡:
‣ CFG 涵盖大部分句法模式
‣ CFG 解析计算效率高
• 我们使用 CFG 来描述英语语法的核心片段
大纲
• 组成部分
• CYK 算法
• 用 CFG 代表英语
组成部分
句法成分
• 句子被分解成成分
‣ 词序列作为语言分析的连贯单元
‣ 帮助构建 CFG 生成规则
• 组成部分具有某些关键属性:
‣ 移动
‣ 替换
‣ 协调
移动
• 成分可以在句子周围移动
‣ Abigail gave [her brother] [a fish]
‣ Abigail gave [a fish] to [her brother]
• 对比: [gave her], [brother a]
替换
• 成分可以被相同类型的其他短语替换
‣ Max thanked [his older sister]
‣ Max thanked [her]
• 对比: [Max thanked], [thanked his]
协调
• 组成部分可以与协调器连接,例如and和or
‣ [Abigail] and [her young brother] brought a fish
‣ Abigail [bought a fish] and [gave it to Max]
‣ Abigail [bought] and [greedily ate] a fish
成分和短语
• 一旦我们确定了组成部分,我们就会使用短语来描述它们
• 短语由它们的主词决定:
‣ 名词短语:her younger brother
‣ 动词短语:greedily ate it
• 我们可以使用 CFG 来形式化这些直觉
一个简单的 CFG(英语)
终结符:rat、the、ate、cheese
非终结符:S、NP、VP、DT、VBD、NN
制作规则:
CFG Trees
• 生成对应一个句法树
• 非终端是内部节点
• 终端是叶子
• CFG 解析是逆过程(句子→树)
上图中VBG应该是VBD笔误
算术表达式的 CFG
• S = 起始符号
• | = 运算符或
• 递归,NUM 和 S 可以自己产生
解析
• “1+2-3”是有效字符串吗?
CYK 算法
• 自底向上解析
• 测试给定 CFG 的字符串是否有效,而不枚举所有可能的解析
• 核心理念:先形成小成分,再合并成大成分
• 要求:CFG 必须采用乔姆斯基范式
转换为乔姆斯基范式CNF
更改语法,以便所有形式规则:
‣ A → B C
‣ A → a
• 将形式 A → B c 的规则转换为:
‣ A → B X
‣ X → c
• 将规则 A → B C D 转换为:
‣ A → B Y
‣ Y → C D
‣ 例如 VP → VP NP NP
对于双及物情况,“sold [her] [the book]”
• X、Y 是我们引入的新符号
• CNF 不允许一元规则,A → B。
• 想象NP → S; 并且 S → NP … 导致无限多的树具有相同的产量。
• 用它的制造规则替换 RHS 非终端
• A → B,B → 猫,B → 狗
• A → 猫,A → 狗
CYK 解析算法
• 将语法转换为乔姆斯基范式 (CNF)
• 填写解析表(从左到右,从下到上)
• 使用表导出解析
• 表格右上角的 S = 成功!
• 将结果转换回原始语法
CYK:检索解析
• 解析表右上角的 S 表示成功
• 要获取解析,请按照每个匹配项的指针返回
CYK算法
上图的伪代码,就是我们上面所说的解析算法
用 CFG 代表英语
从玩具语法到真正的语法
• 带有少量制作规则的玩具语法,适合演示或非常有限的领域
• 对于真正的文本,我们需要真正的语法
• 数以千计的制作规则
Penn Treebank 的主要成分
• 句子(S)
• 名词短语 (NP)
• 动词短语 (VP)
• 介词短语 (PP)
• 形容词短语 (AdjP)
• 状语短语 (AdvP)
• 从属从句 (SBAR)
示例 PTB/0001
基本英语句子结构
• 陈述句(S → NP VP)
‣ 老鼠吃了奶酪
•祈使句(S → VP)
‣ 吃奶酪!
• 是/否问题(S → VB NP VP)
‣ 老鼠吃奶酪了吗?
• Wh 主语问题(S → WH VP)
‣ 谁吃了奶酪?
• Wh-object-questions (S → WH VB NP VP)
‣ 老鼠吃了什么?
英语名词短语
• 预修饰符
• 后修饰符
这是一条正则:
NP → DT? CD? ADJP? (NN|NNP)+ PP* VP? SBAR?
动词短语
• 辅助者
VP → (MD|VB|TO) AdvP? VP
• 参数和附加词
VP → VB NP? NP? PP* AdvP* VP? SBAR?
其他成分
• 介词短语 ‣ PP → IN NP | in the house |
• 形容词短语 ‣ AdjP → (AdvP) JJ | really nice |
• 副词短语 ‣ AdvP → (AdvP) RB | not too well |
• 从属条款 ‣ SBAR → (IN) S | since I came here |
• 协调 ‣ NP → NP CC NP; VP → VP CC VP;etc. | Jack and Jill |
复杂句 ‣ S → S SBAR; S → SBAR S; 等等。 | if he goes, I’ll go |
总结
• 上下文无关文法可以表示自然语言的大多数语言结构
• 有相对较快的动态编程算法 (CYK) 来检索此结构
解析歧义
• 但是歧义呢? 通常不止一棵树可以描述一个字符串,大家可以思考一下!
ok,今天的内容就到这里了,炎热的暑假即将来临,真的是有点热~辛苦大家观看了!有问题随时评论交流哦!
以上是关于第十三篇:上下文无关语法 Context-Free Grammar的主要内容,如果未能解决你的问题,请参考以下文章
第十四篇:有概率的上下文无关语法Probabilistic Context-Free Grammar