杏彩体育平台app基于文法的语言模型和自动机
在形式语言学中,我们一般将语言形式化定义为:给定一组符号,称为字母表,以Σ表示,又以Σ∗表示由Σ中字母组成的所有字符串的集合,则Σ∗的每个子集都是Σ上的一个语言。
形式文法被严格定义为四元组G=(N,Σ,P,S),其中,N是非终结符的有穷集合;Σ是终结符的有限集合;N∩Σ= ∅;V=N∪Σ称总词汇表;P是一组重写规则的有限集合:P={α→β},其中α,β是V中元素构成的串,但α中至少应含有一个非终结符号;S∈N,称为句子符或初始符。在形式文法的定义中,重写规则P={α→β}最为重要,重写规则P={α→β}表示字符串α可以被改写成β。一个初始字符串通过不断运用重写规则,就可以得到另一个字符串,通过选择不同的规则并以不同的顺序来运用这些规则,就可以得到不同的新字符串。
文法是一种足够强大的语言描述工具,理论上可以描述语法规则非常复杂的语言,因此需要对其加以限制才能简单充分地描述常见的语言。针对重写规则P加以不同的约束,乔姆斯基将形式文法分为以下四类
0型文法,对重写规则P不施加任何限制,因此0型文法又称作无约束文法。由0型文法产生的语言记为L(G0)。
1型文法,如果P中的规则满足如下形式:αA β→αγβ,其中A∈N,α,β,γ∈(N∪Σ),且γ至少包含一个字符,则称该文法为1型文法,观察重写规则P可以发现,字符串A只有在上下文分别是α和β的情况下才能被改写成γ,因此1型文法又称为上下文有关文法(context-sensitive grammar,CSG)。由1型文法产生的语言记为L(G1)。
2型文法,如果P中的规则满足如下形式:A→α,其中A∈N,α∈(N∪Σ),则称该文法为2型文法,因为对A改写成α的规则没有上下文约束,2型文法又称为上下文无关文法(context-free grammar,CFG)。由2型文法产生的语言记为L(G2)。
3型文法,如果P中的规则满足如下形式:A→Bx,或A→x,其中A,B∈N,x∈Σ,则称该文法为正则文法或3型文法。由3型文法产生的语言记为L(G3)。
显然,每一个正则文法都是上下文无关文法,每一个上下文无关文法都是上下文有关文法,而每一个上下文有关文法都是0型文法,即L(G3)⊆L(G2)⊆L(G1)⊆L(G0)。从0型文法到3型文法,限制越来越多,但性质也越来越好。如果一种语言能由几种文法所产生,则把这种语言称为在这几种文法中受限制最多的那种文法所产生的语言。在计算机科学中最常见的是上下文无关语言和正则语言,上下文无关语言根据其转换规则可以表示成树的形式,因而可以使用图论的方法进行搜索。
自动机是一种抽象的计算装置,给定输入符号,自动机将依据转移函数从当前状态跳转到下一状态,逐个读取输入中的符号,直到输入被耗尽,自动机也将停止下来。依据自动机停止时的状态,可以判定这个输入是被自动机“接受”还是“拒绝”。如果自动机停止于“接受状态”,则这个输入被自动机接受,反过来,如果自动机停止于“拒绝状态”,则这个输入被自动机“拒绝”。自动机接受的所有输入的集合称为这个自动机接受的语言。
基于乔姆斯基建立的形式文法与自动机之间的联系,我们也可以将自动机分成四种类型:有限自动机,下推自动机,线性有界自动机和图灵机,并与形式文法一一对应。
自动机可分为确定的有穷自动机(Deterministic Finite Automation,DFA),非确定的有穷自动机(Nondeterministic Finite Automata,NFA)。它们的主要区别是状态转移函数,非确定意味着在某个状态的相同输入下可能会有不同的转移状态。
本节主要介绍了乔姆斯基Chomsky的四类形式文法,其中有限状态自动机,可以解决生活中的大部分问题,并介绍了其定义和自动机的实现。有限状态机自动机又分为确定和非确定,主要体现在转换函数的不同。
有限状态自动机有很多典型的应用,在word,输入法和搜索引擎中,单词拼写检查就是几个典型的应用场景,在之后的文章中我们会继续的介绍。
杏彩体育平台app 上一篇:编译原理 (5) NFA 到 DFA的转化 下一篇:确定和不确定的有限自动机以及正则表达式——形式语言