版权归原作者所有,如有侵权,请联系我们

[科普中国]-转移网络语法

科学百科
原创
科学百科为用户提供权威科普内容,打造知识科普阵地
收藏

概述

递归转移网络(RTN)是ATN的前身,RTN利用有限状态机原理,把句子划分成由若干种状态和弧组成的状态图,每种状态之间用弧来连接。其中有一个状态需要被设定为初始状态,在弧上不仅可以标以终结符号(即具体的词,如“的”)和词类符号(如名词、动词、形容词等),而且可以指定一个RTN网络名称的非终结符,状态中的一个子集叫做结束状态。RTN很好的解决了上下文无关文法的辨别问题,但上下文无关文法对于自然语言的处理是不完善的,它不能分析句子的成分,更无法分析上下文间的依赖性问题。

对此ATN对RTN做了以下几方面的扩展,包括寄存器组,测试和动作。ATN也称为代标记的递归转移网络,因为它把当前信息、如词语、句子成分等信息存放在寄存器中,通过测试的方法来查找下一状态,在测试通过之后执行相关的动作,然后跳到下一状态。在做了这些扩充之后ATN算法的灵活性比较好,但是在一定程度上增加了系统的开销,以及对于有歧义的句子可能会有几种不同的路径。

ATN算法会对信息进行语法、词法检查,所以在对信息进行预处理时一会有很好的效果,这对提高过滤的准确性是一个很好的保障。2

ATN的优缺点准确、高效是ATN算法的主要优点,因为在处理中文分词的时候,会对整个句子做语法、词法检查,所以相比一般的分词算法,它的准确性相对较高一些。同时,它可以从上下文无关文法出发,高效的转换到上下文相关文法,而一般的算法在这个过程中,时间消耗会迅问题速增加。ATN算法更接近人的思维能力,尤其是中文,它的表达很灵活,可以实现很多不同类型的语法,也容易用人工智能语言LISP来实现。

ATN算法对语法过分的依赖,导致了它无法很好的处理一些不符合语法规则的句子或者一些不完全符合语法规则的句子。同时虽然ANT算法在利用语法关联可以很好的解决不符合语法规则带来的歧义切分问题,但它也带来了另外一个问题,ATN算法本身也存在歧义问题,因为汉语的词性很多,可能存在不同的分析结果都符合语法规则,这种问题称为ATN歧义问题。2

ATN歧义问题ATN歧义问题是由汉语多词性造成的,这个问题导致的结果和一般分词算法产生的歧义分解是一样的,但是造成歧义的原因不一样。ATN歧义问题的起因有以下几点:

1、相连的几个字之间成词的组合存在冲突,比如“还有着”,“中继续”,“基本功能”等。

2、句子中连续出现不同长度且都可以构成词的情况,比如“基本功能”中,“基本”可以成词,“基本功”也可以成词,而“功能”也是一个词。

3、词存在相同的词性,这是最重要的条件。以“基本功能”来分析在ATN算法中产生歧义的过程,“基本”共有三个词性,名词,形容词和副词,“基本功”是一个名词,同时“功能”也是名词词性,形容词+名词构成一个短语结构,很容易就可以把“基本”和“功能”切分开,而且是正确的切分。但是把它放在一个句子中“一个人的基本功能体现在工作中”,这里就存在一个问题就是“基本功”是一个名词,“基本”也是一个名词。很容易就可以把这个话切分成一下正确的结果:“一/个/人/的/基本功/能/体现/在/工作/中”,这个句子的主干是:基本功体现,这是个名词短语作主语,动词短语作谓语的结构。但是机器可能会得到如下结果:“一/个/人/的/基本/功能/体现/在/工作/中”,这样的分词结果是符合语法规则的,因为计算机并不知道“人”这个主题不能用来直接修饰“功能”,虽然这不符合自然人的理解,但是程序可以接受这种分析结果。

对于这样的问题,ATN算法并不能解决,只能尽量减少这种情况的发生,为此专门设计了一个算法来判断连续几个汉字之间成词冲突的问题,该算法首先检查词的最后一个字符和词的下一个字符是否能够成词,如果不能成词,则判断为不存在冲突的情况,当前词可以直接存入堆栈,相反如果成词,则继续检查下一个字符与下下个字符能否成词,如果成词,那么判断不存在冲突,如果不成词则判断为成词冲突,这样的情况下,需要检查两个词作为某种词性的概率有多大,以它最高频率的词性来作为该词的当前词性。“基本”的三个词性中,作为形容词出现的频率341.4377是最高的,作为名词的频率只有18.7424,所以这里把“基本”处理成形容词,“基本功”只有名词词性,在名词短语中助词后面只可以接受名词,所以把“基本功”作为一个词,从而得到了正确的分析结果。2