学习《统计自然语言处理-宗成庆》这本书时,对理论部分第三章-形式语言与自动机存在许多困惑,因为抽象的概念比较多,而且例子比较少,理解起来比较晦涩,故自己整理下这方面知识,以期巩固知识,加深理解。
一.概念梳理
1.正则文法:
正规文法是产生式规则取下述形式的一种形式文法(N, Σ, P, S),又称3型文法:1.A -> a ,此处的A是N中的非终结符号,a是Σ中的终结符号;2.A -> aB,此处的A和B是N中的非终结符号,a是Σ中的终结符号;3.C -> ε,此处的C是N中的非终结符号。(viki百科)
2.上下文无关文法:
上下文无关文法(英语:context-free grammar,缩写为CFG)又称2型文法,在计算机科学中,若一个形式文法 G = (N, Σ, P, S) 的产生式规则都取如下的形式:V -> w,则谓之。其中 V∈N ,w∈(N∪Σ)* 。上下文无关文法取名为“上下文无关”的原因就是因为字符 V 总可以被字串 w 自由替换,而无需考虑字符 V 出现的上下文。
3.上下文有关文法:
形式文法 G = (N, Σ, P, S) 是上下文有关的,如果在 P 中所有的规则都有如下形式
αAβ → αγβ
这里的 A ∈ N(就是 A 是单一非终结符),α,β ∈ (N U Σ)*(就是 α 和 β 是非终结符和终结符的字符串)而 γ ∈ (N U Σ)+(就是 γ 是非终结符和终结符的非空字符串),又称1型文法。
4.无约束文法:
无限制文法是形式文法G = (N, Σ, P, S),
{\displaystyle P} 是形如 {\displaystyle \alpha \to \beta } 的产生规则的集合,这里的 {\displaystyle \alpha } 和 {\displaystyle \beta } 是在 {\displaystyle N\cup \Sigma } 中的符号的字符串而 {\displaystyle \alpha } 是非空字符串,无限制文法在可以有什么类型的产生规则上没有真实限制,又称0型文法
如果一个文法产生式集合P分属于不同类型的文法产生式,则将包含最广类的文法产生式作为这个这个文法的类型。
二. 自动机理论
自动机是有限状态机(FSM)的数学模型。FSM是给定符号输入,依据(可表达为一个表格的)转移函数“跳转”过一系列状态的一种机器。逐个读取输入中的符号,直到被完全耗尽(把它当作有一个字写在其上的磁带,通过自动机的读磁头来读取它;磁头在磁带上前行移动,一次读一个符号)。一旦输入被耗尽,自动机被称为“停止”了1. 有限自动机:
有限状态自动机(FA—finite automaton)是一个五元组:– M=(Q, Σ, δ, q0, F)
– Q——状态的非空有穷集合。∀q∈Q,q称为M的一个状态。
– Σ——输入字母表。
– δ——状态转移函数,有时又叫作状态转换函数或者移动函数,δ:Q×Σ→Q,δ(q,a)=p。
– q0——M的开始状态,也可叫作初始状态或启动状态。q0∈Q。
– F——M的终止状态集合。F被Q包含。任给q∈F,q称为M的终止状态。
有限状态自动机还可以分成确定(DFA)与非确定(NFA)两种。非确定有限状态自动机可以转化为确定有限状态自动机。有限状态自动机识别的语言是正则文法。
NFA 与DFA 的唯一区别是:在NFA 中δ(q, a) 是一个状态集合,而在DFA 中δ(q, a)是一个状态。
2. 上下文无关文法与下推自动机有限自动机(push-down automata):
PDA 可以看成是一个带有附加的下推存储器的有限自动机,下推存储器是一个栈。
推自动机 M 是如下的一个七元组 ( Q, Σ, Γ, δ, q0, Z0, F ) ,其中:
* Q 是一个有穷状态集合;
* Σ 是一个字母表,称为输入字母表。
* Γ 是一个字母表,称为栈字母表。
* q0 属于 Q ,是初始状态。
* Z0 属于 Γ ,是一个特殊的栈符号,称为栈起始符号。
* F 包含于 Q ,是终结状态集合。
* δ : Q×(Σ∪{ε})×Γ -> Q×Γ* 是 M 的动作函数
当PDA处于状态q,面临输入符号a 时,自动机将进入qi(i= 1, 2, …, m )状态,并以yi来代替下推存储器(栈)顶端符号Z,同时将输入头指向下一个字符。当Z 被yi取代时,yi的符号按照从左到右的顺序依次从下向上推入到存储器。
3. 无约束文法 与 图灵机
4. 上下文相关文法与线性界限自动机