前言

如何判断一个句子是否符合文法的规则,自动机是很简便的方法。四种文法对应四种自动机来判断验证,接下来就介绍一下四种文法和四种自动机的对应。

一、有限自动机

确定的有限自动机 (Definite Automata, DFA)

确定的有限自动机 M 是一个五元组: M = (Σ, Q, δ, q0, F) 其中,Σ 是输入符号的有穷集合; Q 是状态的有限集合; q0 ∈ Q 是初始状态; F 是终止状态集合,F ⊆ Q; δ 是 Q 与 Σ 的直积 Q × Σ 到 Q (下一个状态) 的映射。它支配着有限状态控制的行为,有时也称为状态转移函数。

上述是教材的定义,接下来上一个具体的图来解释五元组的具体含义。

自然语言处理(三)——自动机理论

上图中Σ是{0,1},Q是{A,B},q0是A,F是{B},δ可以理解成一个函数,上图输入1,输出B。记作B = δ(A,1)。

不确定的有限自动机 (Non-definite Automata, NFA)

不确定的有限自动机 M 是一个五元组 M = (Σ, Q, δ, q0, F) 其中,Σ 是输入符号的有穷集合; Q 是状态的有限集合; q0 ∈ Q 是初始状态; F 是终止状态集合,F ⊆ Q; δ 是Q与Σ的直积 Q×Σ 到Q的幂集 2Q 的映射。

上述是教材的定义,与确定的有限自动机类似。画一个图解释一下他们的区别。

自然语言处理(三)——自动机理论

很明显,当输入1时,自动机不止有一种选择,这就是确定和不确定的自动机的区别。

二、文法等价的自动机

1.正则文法与有限自动机的关系

若 G = (N, T, P, S ) 是一个正则文法,则存在一个有限自动机 M = (Σ, Q, δ, q0, F),使 得:T(M) = L(G)。

2.已知文法求等价的自动机

由 G 构造 M 的一般步骤:

(1) 令 Σ = T, Q=N ∪ { T },q0 =S,其中 T 是一 个新增加的非终结符。

(2) 如果在 P 中有产生式 S → ε,则 F={S, T},否 则 F={T}。

(3) 如果在 P 中有产生式 B → a,B ∈ N ,a ∈ T, 则 T ∈ δ(B, a)。

(4) 如果在 P 中有产生式B→aC,B, C∈N,a∈T, 则 C ∈ δ(B, a)。

(5) 对于每一个 a ∈ T,有 δ(T, a) = φ。

接下来用一个具体的例子:G = ({S,A}, {0,1}, P, S )。其中P:S自然语言处理(三)——自动机理论0A,A自然语言处理(三)——自动机理论1S,A自然语言处理(三)——自动机理论0。将此文法转换为对应的自动机。

按照上面的五个步骤一步步推演:

(1)  Σ={0,1} Q={S,A,T} q0 =S(推理规则中的第一个规则的左边非终结符) 。这一步可以确定出q0。

自然语言处理(三)——自动机理论

(2) P 中没有产生式 S → ε,因此F={T}(记住F是终止状态的集合,这里只有一个T)。这一步可以确定终止状态的集合。

自然语言处理(三)——自动机理论

(3) B → a只是一个形式,就是非终结符推导出终结符。显然本题有A自然语言处理(三)——自动机理论0。因此T ∈ δ(A,0)。表现在图上如下:

自然语言处理(三)——自动机理论

(4)  B→aC只是一个形式,就是非终结符推导出终结符和非终结符。显然本题有S自然语言处理(三)——自动机理论0A,A自然语言处理(三)——自动机理论1S。

因此推出A∈ δ(S, 0),S∈ δ(A, 1)。表现在图上如下:

自然语言处理(三)——自动机理论

(5)  δ(T, 0) = φ,δ(T, 1) = φ。也就相当于没有变化,如下图:

自然语言处理(三)——自动机理论

 

到此为止,正则文法转化为等价的有限自动机已经完成。下一节介绍上下文无关文法和下推自动机。

相关文章: