ATN理论
ATN就是用上下文无关文法的扩充来实现上下文相关文法,它用一组寄存器存放语法分析信息,每走一步都要测试一下当前情况,并根据测试结果决定做什么动作,最后把寄存器中的信息综合起来,即得到被分析句子的语法结构。
BNF描述ATN有一种描述语言,该语言不仅刻画了转移网络的结构,并且指明了每一步应该做什么。该语言的BNF描述大致如下:
::= {};
::= {}
::=CAT
|PUSH
|TST
|POP
::= {}
::=SETR
|SENDR
|LIFTR
::=TO
|JUMP
::=GETR | *
|GETF
|APPEND
|BUILD{}
相关说明(1) 指基本词类范畴,如形容词、副词。
(2) PUSH是进入下一层名为的网络。POP是判断本层网络是否已达终结状态并准备返回上层网络。
(3) TST也是对当前弧进行测试,但不一定是根据弧的名字,也可以根据其他条件。
(4) SETR把一个值送入制定的寄存器。GETR给出指定寄存器的当前值。GETF给出当前被加工部分的某个特性。* 是输入语句当前正被加工的部分。SENDR把一个值送入下层网络,LIFTR则相反,把一个值送入上层网络。
(5) TO表示移动输入语句的指针,并在指定的节点上处理该语句的下一成分。JUMP不移动输入语句指针。,在指定节点上继续处理语句的当前成分。
(6) APPEND把一个值附加到当前寄存器的值中去。BUILD把有关寄存器中的内容综合起来。
(7) 即综合所得的值。即测试某个条件所得结果,为T或F。也是一个状态,可以为空。
示例假设有下列语法公式(语法规则1):
::=
::=
::= |
::=
::= |
::= ;
::= |
处理这组语法公式的扩充转移网络如图1所示。从图1中,可以判断一个句子是否符合上述语法规则。例如,句子:The little boy kicked the ball(句1),可以顺利地通过上面的各条路径到达终点;句子:The littleboy in the swimsuit kicked the ball(句2),就没办法通过。1
ATN算法可以将上面这种形象的扩充转移网络图转化成相应的处理算法。用图1的扩充转移网络处理语句时,按图2中的指令执行。意义为:若走x则做测试y且执行动作z。其中的测试y是对该弧的额外测试,并非是“该不该走x”的测试。走哪条弧的测试应该是自动进行的。
扩充转移网络(小型ATN)的处理算法如图2所示。图2中,主、名、动、形、数、冠都是寄存器名,分别代表主语、名词、形容词、数量属性、冠词。此外,数[主]和数[*]分别代表存放主语数量属性和当前被加工部分数量属性的临时工作单元。1
ATN算法的特点(1) 通过各种寄存器中记录的信息,能够较准确地表达句子的意义。语义网络作为知识表示的工具,是一种对人脑功能的模似。语义内容对语法形式的决定性和语法形式对语义内容表达的强制性,也反映了人的思维过程。
(2) 扩充转移网络受语法的制约很严格,因而不可能接收一些虽不合语法但有实际意义的语句。但是,可以接收语法上正确但没有意义的句子。
(3) 使用扩充转移网络来组织词典就可以构成一个动态词典。词法扩充转移网络的使用使分词处理和自然语言理解系统的句法处理阶段交互成为可能,并且有效地解决了分词的歧义。
(4) 在分析过程中,扩充转移网络同时构造出树形图来表示这个句子的结构。
(5) 在分析句子时,扩充转移网络必须严格按照算法流程图由句首开始。
(6) 扩充转移网络允许拥有许多子网络,当运行到某个子网时,就可以调用另外的子网络,还可以递归调用。如果处理结束或处理失败,可再回到原来的网络继续进行分析,直到分析完整个句子为止。1
ATN的优缺点优点(1) ATN的生成能力相当于图灵机(0型语法)。换言之,ATN具有与转换生成语法同样的生成能力,却又得以维持在上下文无关语法的基本框架之下(无需一个独立的转换部分);
(2) 对自然语言进行分析,从上下文无关语法出发,无论是过渡到转换生成语法(如MITRE及佩德里克的工作),还是过渡到上下文有关语法(如凯依的工作),相应算法所需要的时间会急剧增加。ATN则保证了分析的高效性(计算上可实现);
(3) ATN既可用于分析,英语如LUNAR系统、汉语如RJD一80人机对话系统;也可用于生成如Simmons和Slocum 1972年设计的自然语言系统,即根据ATN产生句子的表层结构;
(4) ATN表达灵活,使之有可能实现不同类型的语法,从而成为新思想一种卓有成效的试验工具;
(5) ATN很容易用人工智能语言LISP实现。
缺点(1) ATN是过程性的,而非描述性的。静态的数据与动态的分析混淆在一起,不尽符合计算意义下知识组织的一般原则。
(2) 对句法的过分依赖,限制了它处理某些合语义但不完全合语法的话语的能力。2