目录

回顾

上下文无关语法基础

为什么是“上下文无关”

Context-Free上下文无关 vs. Regular 常规/正则

CFG 解析

这意味着什么?

但是

大纲

组成部分

句法成分

移动

替换

协调

成分和短语

CFG Trees

算术表达式的 CFG

解析

CYK 算法

转换为乔姆斯基范式CNF

CYK 解析算法

CYK:检索解析

CYK算法

用 CFG 代表英语

从玩具语法到真正的语法

Penn Treebank 的主要成分

示例 PTB/0001

基本英语句子结构

英语名词短语

动词短语

其他成分

总结

解析歧义


回顾

• 中心嵌入

• 无法被正则表达式 () 捕获
• 上下文无关语法!

上下文无关语法基础

• 符号
    ‣ 终端:单词比如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相关推荐

  1. 第十四篇:有概率的上下文无关语法Probabilistic Context-Free Grammar

    目录 解析中的歧义 大纲 概率CFGs的基本Basics of Probabilistic CFGs (PCFGs) 使用 PCFG 随机生成 一棵树的可能性有多大? PCFG parsing CYK ...

  2. 【计算理论】下推自动机 PDA ( 设计下推自动机 | 上下文无关语法 CFG 等价于 下推自动机 PDA )

    文章目录 I . 下推自动机 设计 II . 上下文无关语法 ( CFG ) 等价于 下推自动机 ( PDA ) I . 下推自动机 设计 设计下推自动机 , 可以识别 {wwR:w∈{0,1}∗}\ ...

  3. 【计算理论】上下文无关语法 ( 代数表达式 | 代数表达式示例 | 确定性有限自动机 DFA 转为 上下文无关语法 )

    文章目录 I . 代数表达式 语法 II . 代数表达式 语法 示例 III . 设计 上下文无关语法 IV . 确定性有限自动机 DFA 转为 上下文无关语法 I . 代数表达式 语法 1 . 代数 ...

  4. 【计算理论】上下文无关语法 ( 语法组成 | 规则 | 语法 | 语法示例 | 约定的简写形式 | 语法分析树 )

    文章目录 I . 语法组成 II . 规则 III . 语法 IV . 语法示例 V . 语法简写形式 VI . 语法分析树 VII . 代数表达式 语法 I . 语法组成 上下文无关语法 组成 : ...

  5. 【计算理论】上下文无关语法 CFG ( CFG 设计示例 | CFG 歧义性 | Chomsky 范式 | 上下文无关语法 转为 Chomsky 范式 )

    文章目录 一.上下文无关语法 设计 示例 二.上下文无关语法 的歧义性 三.Chomsky 范式 四.上下文无关语法 转为 Chomsky 范式 五.上下文无关语法 转为 Chomsky 范式 示例 ...

  6. 【计算理论】上下文无关语法 ( CFG ) 转为 下推自动机 ( PDA )

    文章目录 I . 上下文无关语法 ( CFG ) 转为 下推自动机 ( PDA ) II . 下推自动机 ( PDA ) 三个状态 III . 下推自动机 ( PDA ) qstartq_{start ...

  7. 短语结构文法(PSG)、上下文有关文法(CSG)、上下文无关文法(CFG)、右线性文法(RLG)的区别

    Part 1 短语结构文法(PSG).上下文有关文法(CSG).上下文无关文法(CFG).右线性文法(RLG)的区别 Part 2 概念 文法G=(V,T,P,S) G叫做0型文法(type 0 gr ...

  8. 上下文无关文法和正则文法_什么是上下文无关文法?

    上下文无关文法和正则文法 Have you ever noticed that, when you are writing code in a text editor like VS code, it ...

  9. 【计算理论】计算理论总结 ( 上下文无关文法 CFG 转为下推自动机 PDA 示例 2 ) ★★

    文章目录 一.上下文无关文法 CFG 转为下推自动机 PDA 流程 二.上下文无关文法 CFG 转为下推自动机 PDA 示例 2 参考博客 : [计算理论]上下文无关语法 ( 语法组成 | 规则 | ...

最新文章

  1. 2020十大热门机器学习项目
  2. Install pysnmp for django
  3. sqlserver 性能问题
  4. 【算法】设计算法求所有强连通分量的完整代码(kosaraju算法)
  5. ElasticSearch(二)索引管理
  6. SQL Server执行计划那些事儿(3)——书签查找
  7. Java中对字符串的操作
  8. 思科收购网络安全管理厂商Pari Networks
  9. python随机颜色代码_python绘制随机颜色太阳花
  10. Ubuntu16.04下修复宿主机时区错位8小时、修复容器相较于宿主机错位8小时问题
  11. C++ 引用 支持多级嵌套吗
  12. 极大似然估计法的理解
  13. c语言pic延时1ms程序,几个延时子程序
  14. OpenCV(C++)图像处理基础03:读写像素、像素值修改、像素反差
  15. MATLAB/Simulink仿真 并网型风光混储直流微电网 实现:功率分配、削峰填谷、平抑功率波
  16. android 直播推流sdk,Android——直播推流SDK
  17. 【转载】Vue -- 获取点击元素的兄弟元素
  18. 梦幻柔焦(奥顿效果)
  19. 联想电脑如何修复计算机系统,预装Windows 10的一键恢复过程
  20. 研究生平均年薪26.5万!本科生20万!南京大学软件学院19年就这么高!

热门文章

  1. 面试必备|带你彻底搞懂Python生成器
  2. Windows 7时代即将终结!
  3. TensorFlow 2.0新特性解读,Keras API成核心
  4. 百度大脑发挥AI“头雁效应” 王海峰:在AI时代共同推动社会智能化升级
  5. Spring Boot 面试杀手锏:自动配置原理
  6. Spring发布新成员:Spring GraphQL!高调出场的GraphQL能火起来了吗?
  7. 让人头痛的大事务问题到底要如何解决?
  8. 作者解读ICML接收论文:如何使用不止一个数据集训练神经网络模型?
  9. 开源教程 「nlp-tutorial」!用百行代码搞定各类NLP模型
  10. 【廖雪峰python进阶笔记】面向对象编程