MEC Development Notes

《Transition Network Grammars for Natural Language Analysis》笔记

Abstract

这篇文章介绍了如何使用ATN文法来分析自然语言句子。

Motivation

早期,自然语言文法的模型都是有限状态转换图。这个模型由节点和连接节点的有向边组成一个网络。其中的节点对应于一个有限状态机的状态,边表示从一个状态到另一个状态的转换。每条边上标记着一个符号(Symbol,这里指终结符,这个点很重要),如果从输入中读取到这个符号,那么就会跳转到边指向的状态。这个模型的优点是,只要从从开始状态顺着边一直走到终结状态,就可以按照边上标记的符号生成出一个句子。但是这个模型在处理自然语言是有它的不足,因为它不能抓住自然语言中的很多规律。一个最大的不足是,它缺少一种下推(Pushdown)机制(例如堆栈),不能在处理的语言成分的某一个阶段挂起,然后用相同的文法来处理内嵌的语言成分。也就是说,它不能处理递归嵌套的结构,例如多层括号。[?]

接下来引入RTN(Recursive Transition Network)的概念。假定我们有一组上面提到的状态转换图,每个图都有一个名字,图中边上的标签除了可以使用符号(终结符)外,还可以使用转换图的名字(非终结符)。那么在决定是否跳转到新的状态时,就可以理解为“调用一个子过程”,去匹配边上标记的状态。这样的状态转换图就叫递归转换网络,也就是RTN。它的能力等价于上下文无关文法(CFG)和下推自动机。

Recursive Transition Networks

下面给出RTN的正式定义。RTN是一个有向图,其中的节点代表状态,其中的边代表转换动作。节点和边都可以有标签。有一组状态被叫做起始状态,另一组状态被叫做终结状态。它同非确定性有限状态转换图的区别在于,边上的标签不仅可以是终结符,还可以是非终结符(状态的名字)。如果一条边上的标记是状态的名字(记为State A),那么就意味着边所指向的状态(记为State B)会被压入到一个下推存储中,而当前的控制状态会跳转到State A,并且不消耗输入。当控制状态跳转到一个终结状态时,那么就从下推存储中弹出一个状态,并将控制状态置为这个弹出的状态。

Augmented Transition Networks