Ch18 计算语义学
语义分析(semantic analysis):将「意义表示」(Ref: Ch 17)进行组合并指派给语言表达式的过程。
常用的知识源:词的意义、语法结构所蕴含的常规意义、话语的结构知识、与话题相关的常识以及与话语中事件状态相关的知识。
句法驱动的语义分析(syntax-driven semantic analysis):在给句子指派意义表示时,仅仅依赖于词典和语法知识。这个意义表示是独立于上下文并与推理无关的表示。
句法驱动的语义分析的作用:
- 简单的表示足以产生有用的结果;
- 简单的表示可以作为后续处理的输入,进而产生更加丰富和更加完整的意义表示。
歧义产生的条件:句法、词法、复指语歧义和量词辖域
18.1 句法驱动的语义分析
组合性原则(principle of compositionality):句子的意义可以从其组成部分的意义构建而成。
Mad Hatter 给出的原则提示:句子的意义并不仅仅依赖于句中的词汇量,还依赖于句中词汇的顺序、词汇所形成的群组以及词汇间的关系。即:句子的意义部分依赖于句法结构。
图18.1 用于语义分析的简单的管道流方法:
(输入)→句法分析器→(句法结构)→语义分析器→(输出的语义表示)
规则到规则的假设(rule-to-rule hypothesis):语言并不是通过枚举所允许的字符串或者句法分析树来定义的,而是通过描述可以生成期望输出集合的有限工具来定义的。因此,在面向句法的方法中语义知识应当面向产生句法分析树的有限工具集(语法规则和词典条目)。
18.2 句法规则的语义扩充
将语义附着(semantic attachments)扩充到上下文无关语法(CFG)规则中。(Ref:Ch15)
使用这些扩充的语义附着来描述基于句法结构成分的意义来计算整体意义表示的规则。
两种带约束的规则到规则(rule-to-rule)的方法:
- 一阶逻辑(FOL)和 λ 算子符号(Ref:Ch17);使用逻辑表示来指导逻辑结构的创建
- 语法规则的语义附着主要由 λ 化简组成,
- λ 表达式的算子
- λ 表达式中算子的论元
- 语法规则的语义附着主要由 λ 化简组成,
- 特征结构和合一运算(Ref:Ch15):实现了句法驱动的语义分析。
三种实现规则到规则(rule-to-rule)方法的技术:
- 将词项与复杂的与函数相似的 λ表达式关联
- 在无分支规则中,将子结点语义值复制到父结点
- 通过 λ 化简,将一条规则的一个子结点的语义应用于该条规则的其他子结点的语义
18.3 量词辖域歧义及非确定性
量词辖域歧义:包含量化词的表达式引起的歧义。
解决量词辖域歧义的方法:
- 创建非确定性表示,该表示需要不通过枚举的方式包含有歧义的各种可能的解释
- 从非确定性表示中生成或者抽取所有可能的解释
- 对所有可能的解释进行选择
18.3.1 存储与检索方法
存储用来替换单独的语义附着。
存储包括
- 一个核心的语义表示
- 一个量化表达式的索引列表
- 量化表达式是从树中该结点的子结点中收集的
- 量化表达式以 λ表达式的形式存在
- λ表达式可能通过与核心意义表示相结合的方式正确地合并量化表达式
从存储中检索出完全确定的表示所必须的过程
- 从存储中选择一个元素
- 通过 λ 化简将选择的元素作用于核心表示
确保了从存储中检索到的量化表达式将被指派给核心表示中的正确角色。
基于存储的方法存在的两个问题:
- 只能解决由量化的名词短语引起的辖域歧义问题。
- 允许枚举给定的表达式所有可能的范围,但是不允许在可能的范围上施加额外的约束。
18.3.2 基于约束的方法
解决存储的方法存在的问题的方法:
- 有效地表示非确定性的表述
- 最终的表示必须满足的所有约束
只要一个完全确定的一阶逻辑(FOL)表达式与这些约束一致,那么这个表达式就符合要求。
孔语义学:是基于约束的非确定性表示方法。使用孔来代替
λ变量。向所有的候选FOL子表达式添加标记。在完全确定的式子中,所有的孔都将被已经标记的子表达式填充。
基于约束的非确定性表示方法的作用:
- 不特定于语法结构或歧义来源
- FOL规则的任意组成部分都可以被标记或者被指定为孔
- 支配约束赋予表达约束的能力,这些约束可用于排除不必要的解释
- 约束的来源可能来自特定的词汇和句法知识,并且可以针对词汇条目和语法规则在语义附着中直接表达
18.4 基于合一的语义分析方法
将复杂的特征结构与单独的上下文无关语法规则组成对,以此来对诸如数一致关系和次范畴化这样的句法约束进行编码,且这些约束通常无法通过上下文无关语法传递。
规则的功能:
- 确保语法丢弃违背约束的表达式
- 创建与语法推导部分相关的复杂结构
18.5 语义与 Earley 分析器的集成
基于Earley分析器可以把语义结合到语法分析中
- 优点:在句法处理时就可以考虑语义,从而在生成意义表示时就可以阻塞语义的非良构形式进入线图。
- 缺点:耗费精力在孤立成分的语义分析上。
18.6 成语(俗语)和组成性
成语(idiomatic language):即习惯用语,或者称为“俗语”。
对于习惯用语的结构,最直接的处理方法就是引入为处理这些习惯用语而特意设计的新语法规则。规则将基于语法成分将词项混合,再引入语义内容,而这个语义内容不是从任何词项中得来的。
处理习惯用语需要对普通的组合框架做出下面的改变:
- 允许词典项与传统语法成分的混合;
- 为了能够处理习惯用语多样性的正确范围,允许生成额外的特定习惯用语的成分;
- 准许在语义附着引入与规则中的任何成分无关的逻辑项和谓词。
18.7 小结
本章的重点是句法驱动的语义分析。
- 语义分析是生成意义表示,并将这些意义表示指派给语言输入的过程。
- 语义分析器能够利用词典和语法中的静态知识,生成上下文无关的字面意义或习惯意义。
- 组合性原则说明一个句子的意义可以由它的组成部分的意义组合而成。
- 在句法驱动的语义分析中,部分是指输入的一个句法成分。
- 通过一些符号扩展,例如:λ表达式和复杂项,可以采用组合方式创建FOL公式。
- 基于特征结构和合一算法提供的机制也可以合成FOL公式。
- 自然语言中的量词会带来一种很难通过组合方式处理的歧义。
- 非确定性表示可以用来处理由辖域歧义引起的多重解释。
- 成语(习惯用语)问题无法利用组合性原则解决,但是可以采用设计语法规则及其语义附着技术来处理。