UCAS-AI学院-自然语言处理专项课-第3讲-课程笔记
形式语言与自动机
形式语言
- 语言:
- 一个抽象的数学系统
- 按照一定规律构成的句子和符号串的有限或无限集合
- 语言描述的三种途径
- 穷举法:只适合句子数目有限的语言
- 语法描述:生成语言中“合格”的句子
- 自动机:对输入的句子进行检验以区别是否为语言中的句子
- 形式语言:用于精确地描述语言及其结构的手段
- 又称代数语言学
- 重写规则表示形式 α → β \alpha \to \beta α→β
- 即字符串
α
\alpha
α可以利用重写规则被改写成
β
\beta
β
- 使用不同的规则并以不同的顺序运用,可以得到不同的新字符串
- 形式语法:四元组
G
=
(
N
,
Σ
,
P
,
S
)
G = (N, \Sigma, P, S)
G=(N,Σ,P,S)
- N N N:非终结符(变量)的有限集合
- Σ \Sigma Σ:终结符(常数)的有限集合(二者的交集为空,且并集为总词汇表 V V V)
- P P P:一组重写规则的有限集合 P = α → β P = {\alpha \to \beta} P=α→β
- S S S:句子符或初始符
- α \alpha α和 β \beta β是 V V V中元素构成的串,但 α \alpha α中至少包含一个非终结符
- 推导:设
G
=
(
N
,
Σ
,
P
,
S
)
G = (N, \Sigma, P, S)
G=(N,Σ,P,S)是一个文法,在闭包
(
N
∪
Σ
)
∗
(N \cup \Sigma)^\ast
(N∪Σ)∗上定义关系
⇒
G
\Rightarrow_{G}
⇒G如下(直接派生):
- 如果 α β γ \alpha \beta \gamma αβγ是 ( N ∪ Σ ) ∗ (N \cup \Sigma)^\ast (N∪Σ)∗中的符号串,且 β → δ \beta \to \delta β→δ是 P P P的产生式,那么 α β γ ⇒ G α δ γ \alpha \beta \gamma \Rightarrow_G \alpha \delta \gamma αβγ⇒Gαδγ
- ⇒ G + \Rightarrow_G^+ ⇒G+(按非平凡方式派生)表示 ⇒ G \Rightarrow_{G} ⇒G的传递闭包,即 ( N ∪ Σ ) ∗ (N \cup \Sigma)^\ast (N∪Σ)∗上,符号串 ξ i \xi_i ξi到 ξ i + 1 \xi_{i + 1} ξi+1的 n n n步( n ≥ 1 n \ge 1 n≥1)推导(至少一步发生变化)
- ⇒ G ∗ \Rightarrow_G^\ast ⇒G∗(派生)表示 ⇒ G \Rightarrow_{G} ⇒G的自反和传递闭包,即 ( N ∪ Σ ) ∗ (N \cup \Sigma)^\ast (N∪Σ)∗上,符号串 ξ i \xi_i ξi到 ξ i + 1 \xi_{i + 1} ξi+1的 n n n步( n ≥ 0 n \ge 0 n≥0)推导(可不发生任何推导或者空操作)
- 最左推导:每步推导中只改写最左非终结符
- 最右推导:每步推导中之改写最右非终结符
- 最有推导又称规范推导
- 句型:一些特殊类型的符号串,为文法
G
=
(
N
,
Σ
,
P
,
S
)
G = (N, \Sigma, P, S)
G=(N,Σ,P,S)的句子形式(句型):
- S S S是一个句子形式
- 如果 α β γ \alpha \beta \gamma αβγ是一个句子形式,且 β → δ \beta \to \delta β→δ是 P P P的产生式,则 α δ γ \alpha \delta \gamma αδγ也是一个句子形式
- 句子:文法 G G G的不含非终结符的句子形式称为 G G G生成的句子
- 正则文法:
- 如果文法
G
G
G的
P
P
P中的规则满足如下形式:
- A → B x A \to Bx A→Bx
- A → x A \to x A→x
- 其中 A , B A, B A,B为非终结符, x x x为终结符
- 称该文法为正则文法,或称3型文法(左线性正则文法)
- 如果规则形式为 A → x B A \to xB A→xB,则该文法称为右线性正则文法
- 如果文法
G
G
G的
P
P
P中的规则满足如下形式:
- 由文法 G G G生成的语言,记 L ( G ) L(G) L(G),指 G G G生成的所有句子的集合: L ( G ) : { x ∣ x ∈ Σ , S ⇒ G + x } L(G) : \{ x | x \in \Sigma, S \Rightarrow_G^+ x \} L(G):{x∣x∈Σ,S⇒G+x}
- 上下文无关文法:
- 如果
P
P
P中的规则满足如下形式:
- A → α A \to \alpha A→α
- 其中 A A A为非终结符, α \alpha α为文法允许的任意字符串
- 称该文法为上下文无关文法,或称2型文法
- 如果
P
P
P中的规则满足如下形式:
- 上下文有关文法:
- 如果
P
P
P中的规则满足如下形式:
- α A β → α γ β \alpha A \beta \to \alpha \gamma \beta αAβ→αγβ
- A A A为非终结符, α , β , γ \alpha, \beta, \gamma α,β,γ均为文法允许的任意字符串
- γ \gamma γ至少包含一个字符
- 称该文法为上下文有关文法,或称1型文法
- 如果
P
P
P中的规则满足如下形式:
- 无约束文法:
- 无限制重写系统
- 规则满足如下形式:
- α → β \alpha \to \beta α→β
- 0型文法
- 语言的关系 L ( G 0 ) ⊇ L ( G 1 ) ⊇ L ( G 2 ) ⊇ L ( G 3 ) L(G0) \supseteq L(G1) \supseteq L(G2) \supseteq L(G3) L(G0)⊇L(G1)⊇L(G2)⊇L(G3)
- 约定:认定受限最多的文法产生该语言
- CFG产生语言的派生树表示:
- 对 ∀ x ∈ N ∪ Σ \forall x \in N \cup \Sigma ∀x∈N∪Σ给一个标记作为节点, S S S为树的根节点
- 如果一个节点标记为 A A A,并且至少有一个除它纵深以外的后裔,则 A ∈ N A \in N A∈N
- 如果一个节点标记为 A A A,其 k k k个直接后裔节点按从左到右标记为 A 1 , … , A k A_1, \ldots, A_k A1,…,Ak,则 A → A 1 A 2 … A k A \to A_1 A_2 \ldots A_k A→A1A2…Ak一定是 P P P中的一个产生式
- CFG的二义性:
- 一个文法 G G G,如果存在某个句子不只一棵分析树与之对应,则称这个文法是二义的
有限自动机与正则文法
- 自动机
- 有限自动机
- 确定性有限自动机
- 非确定性有限自动机
- 下推自动机
- 线性带限自动机(与1型文法等价)
- 图灵机(与0型文法等价)
- 有限自动机
- 确定性有限自动机DFA:五元组
M
=
(
Σ
,
Q
,
δ
,
q
0
,
F
)
M = (\Sigma, Q, \delta, q_0, F)
M=(Σ,Q,δ,q0,F)
- Σ \Sigma Σ,输入符号的有穷集合
- Q Q Q,状态的有限集合
- q 0 ∈ Q q_0 \in Q q0∈Q,初始状态
- F F F,终止状态集合, F ⊆ Q F \subseteq Q F⊆Q
- δ \delta δ, Q × Σ → Q Q \times \Sigma \to Q Q×Σ→Q的映射,支配着有限状态控制的行为,亦称状态转移函数
- DFA定义的语言:
- 如果一个句子
x
x
x使得有限自动机
M
M
M有:
- δ ( q 0 , x ) = p , p ∈ F \delta(q_0, x) = p,\ p \in F δ(q0,x)=p, p∈F
- 那么称句子 x x x被 M M M接受
- 由 M M M定义的语言 T ( M ) T(M) T(M)就是被 M M M接受的句子的全集
- T ( M ) : { x ∣ δ ( q 0 , x ) ∈ F } T(M) : \{ x | \delta(q_0, x) \in F \} T(M):{x∣δ(q0,x)∈F}
- 如果一个句子
x
x
x使得有限自动机
M
M
M有:
- 非确定性有限状态自动机NFA:五元组
M
=
(
Σ
,
Q
,
δ
,
q
0
,
F
)
M = (\Sigma, Q, \delta, q_0, F)
M=(Σ,Q,δ,q0,F)
- Σ \Sigma Σ,输入符号的有穷集合
- Q Q Q,状态的有限集合
- q 0 ∈ Q q_0 \in Q q0∈Q,初始状态
- F F F,终止状态集合, F ⊆ Q F \subseteq Q F⊆Q
- δ \delta δ, Q × Σ → Q Q \times \Sigma \to Q Q×Σ→Q的幂集 2 Q 2^Q 2Q的映射(转换不唯一,结果为状态集合)
- DFA可以认为是NFA的一个特例
- NFA和DFA的联系
- 设 L L L是一个被NFA接受的句子的集合,则存在一个DFA,能够接受 L L L
- 由于接受同样的链集,一般情况下无需区分他们,统称FA
- 正则文法与有限自动机的关系
- 如果文法 G G G是一个正则文法,则存在一个FA M M M,使得 T ( M ) = L ( G ) T(M) = L(G) T(M)=L(G)
- 如果有一个FA M M M,则存在一个正则文法 G G G,使得 L ( G ) = T ( M ) L(G) = T(M) L(G)=T(M)
- 由
G
G
G构造
M
M
M:
- 令 Σ = V T \Sigma = V_T Σ=VT, Q = V N ∪ { T } Q = V_N \cup \{ T \} Q=VN∪{T}, q 0 = S q_0 = S q0=S, T T T是一个新增加的非终结符
- 如果在 P P P中有产生式 S → ϵ S \to \epsilon S→ϵ,则 F = { S , T } F = \{S, T\} F={S,T},否则 F = { T } F = \{ T \} F={T}
- 如果在 P P P中有产生式 B → a B \to a B→a, B ∈ V N B \in V_N B∈VN, a ∈ V T a \in V_T a∈VT,则 T ∈ δ ( B , a ) T \in \delta(B, a) T∈δ(B,a)
- 如果在 P P P中有产生式 B → a C B \to aC B→aC, B , C ∈ V N B, C \in V_N B,C∈VN, a ∈ V T a \in V_T a∈VT,则 C ∈ δ ( B , a ) C \in \delta(B, a) C∈δ(B,a)
- 对于每一个 a ∈ V T a \in V_T a∈VT,有 δ ( T , a ) = ∅ \delta(T, a) = \emptyset δ(T,a)=∅
- 由
M
M
M构造
G
G
G:
- 令 V N = Q V_N = Q VN=Q, V T = Σ V_T = \Sigma VT=Σ, S = q 0 S = q_0 S=q0
- 如果有 C ∈ δ ( B , a ) , B , C ∈ Q , a ∈ Σ C \in \delta(B, a),\ B, C \in Q,\ a \in \Sigma C∈δ(B,a), B,C∈Q, a∈Σ,则在 P P P中有产生式 B → a C B \to aC B→aC
- 如果 C ∈ δ ( B , a ) , C ∈ F C \in \delta (B, a),\ C \in F C∈δ(B,a), C∈F,则在 P P P中有产生式 B → a B \to a B→a
下推自动机与CFG
- 下推自动机PDA:
- 可以看成是一个带有附加的下推存储器的有限自动机
- 下推存储器是一个栈
- PDA定义:七元组
M
=
(
Σ
,
Q
,
Γ
,
δ
,
q
0
,
Z
0
,
F
)
M = (\Sigma, Q, \Gamma, \delta, q_0, Z_0, F)
M=(Σ,Q,Γ,δ,q0,Z0,F)
- Σ \Sigma Σ,输入符号的有穷集合
- Q Q Q, 状态的有穷集合
- Γ \Gamma Γ,下推存储器符号的有穷集合
- Z 0 ∈ Γ Z_0 \in \Gamma Z0∈Γ,最初出现在下推存储器顶端的符号
- F F F,终止状态集合
- δ \delta δ,从 Q × ( Σ ∪ { ϵ } ) × Γ Q \times (\Sigma \cup \{\epsilon\}) \times \Gamma Q×(Σ∪{ϵ})×Γ到 Q × Γ ∗ Q \times \Gamma^\ast Q×Γ∗子集的映射
- q 0 ∈ Q q_0 \in Q q0∈Q, 初始状态
- 状态转移时, δ ( q , a , Z ) = { ( q 1 , γ 1 ) . … , ( q m , γ m ) } \delta(q, a, Z) = \{(q_1, \gamma_1). \ldots, (q_m, \gamma_m)\} δ(q,a,Z)={(q1,γ1).…,(qm,γm)},下推存储器中的 Z Z Z将被 γ i \gamma_i γi取代,后者的符号按照从左到右的顺序逐个压入栈中,读取下一个输入
- 特殊情况 δ ( q , ϵ , Z ) = { ( q 1 , γ 1 ) . … , ( q m , γ m ) } \delta(q, \epsilon, Z) = \{(q_1, \gamma_1). \ldots, (q_m, \gamma_m)\} δ(q,ϵ,Z)={(q1,γ1).…,(qm,γm)},不向下读取新输入,只进行下推存储器内部的操作,称之为 ϵ \epsilon ϵ移动
- 合法转移: a : ( q , Z γ ) ⊢ M ( q ′ , β γ ) a: (q, Z \gamma) \vdash_M (q^\prime, \beta \gamma) a:(q,Zγ)⊢M(q′,βγ)
- 下推自动机接受的语言:
T
(
M
)
=
{
x
∣
x
:
(
q
0
,
Z
0
)
⊢
M
∗
(
q
,
γ
)
,
γ
∈
Γ
∗
,
q
∈
F
}
T(M) = \{ x | x : (q_0, Z_0) \vdash_M^\ast (q, \gamma), \gamma \in \Gamma^\ast, q \in F \}
T(M)={x∣x:(q0,Z0)⊢M∗(q,γ),γ∈Γ∗,q∈F}
- 输入串,并且到达接受终止状态
- PDA与CFG的关系
- 对一个CFG G G G,可以构造一个PDA M M M,使得 T ( M ) = L ( G ) T(M) = L(G) T(M)=L(G)
- 对一个PDA M M M,可以构造一个CFG G G G,使得 L ( G ) = T ( M ) L(G) = T(M) L(G)=T(M)
- 各类自动机的区别
- 能够使用信息存储空间的差异
- FA:只能用状态
- PDA:还能用下推存储器
- LCA:可以用输入/输出带本身
- TA:没有任何限制
FA在NLP中的应用
英语单词拼写检查
- 编辑距离:错误单词 X X X,长度为 m m m;正确单词 Y Y Y,长度为 n n n,二者的编辑距离为 X X X转换到 Y Y Y需要的插入、删除、替换、交换两个相邻基本单位的最小个数
- 键树搜索范围:N-T到N+T,T为编辑距离阈值
- 为了找到所有的可能,子串可以不从头取
- 路径寻找:深度优先搜索,寻找符合条件的候选中距离满足要求的
有限自动机用于英语单词形态分析
- 有限状态转换机:在进行状态转移的过程中还会产生一个输出