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 n1)推导(至少一步发生变化)
    • ⇒ 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 n0)推导(可不发生任何推导或者空操作)
  • 最左推导:每步推导中只改写最左非终结符
  • 最右推导:每步推导中之改写最右非终结符
    • 最有推导又称规范推导
  • 句型:一些特殊类型的符号串,为文法 G = ( N , Σ , P , S ) G = (N, \Sigma, P, S) G=(N,Σ,P,S)的句子形式(句型):
    1. S S S是一个句子形式
    2. 如果 α β γ \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 ABx
      • A → x A \to x Ax
      • 其中 A , B A, B A,B为非终结符, x x x为终结符
    • 称该文法为正则文法,或称3型文法(左线性正则文法)
    • 如果规则形式为 A → x B A \to xB AxB,则该文法称为右线性正则文法
  • 由文法 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):{xxΣ,SG+x}
  • 上下文无关文法
    • 如果 P P P中的规则满足如下形式:
      • A → α A \to \alpha Aα
      • 其中 A A A为非终结符, α \alpha α为文法允许的任意字符串
    • 称该文法为上下文无关文法,或称2型文法
  • 上下文有关文法
    • 如果 P P P中的规则满足如下形式:
      • α A β → α γ β \alpha A \beta \to \alpha \gamma \beta αAβαγβ
      • A A A为非终结符, α , β , γ \alpha, \beta, \gamma α,β,γ均为文法允许的任意字符串
      • γ \gamma γ至少包含一个字符
    • 称该文法为上下文有关文法,或称1型文法
  • 无约束文法
    • 无限制重写系统
    • 规则满足如下形式:
      • α → β \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产生语言的派生树表示:
    1. ∀ x ∈ N ∪ Σ \forall x \in N \cup \Sigma xNΣ给一个标记作为节点, S S S为树的根节点
    2. 如果一个节点标记为 A A A,并且至少有一个除它纵深以外的后裔,则 A ∈ N A \in N AN
    3. 如果一个节点标记为 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 AA1A2Ak一定是 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 q0Q,初始状态
    • F F F,终止状态集合, F ⊆ Q F \subseteq Q FQ
    • δ \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, pF
    • 那么称句子 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}
  • 非确定性有限状态自动机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 q0Q,初始状态
    • F F F,终止状态集合, F ⊆ Q F \subseteq Q FQ
    • δ \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
    1. Σ = 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是一个新增加的非终结符
    2. 如果在 P P P中有产生式 S → ϵ S \to \epsilon Sϵ,则 F = { S , T } F = \{S, T\} F={S,T},否则 F = { T } F = \{ T \} F={T}
    3. 如果在 P P P中有产生式 B → a B \to a Ba B ∈ V N B \in V_N BVN a ∈ V T a \in V_T aVT,则 T ∈ δ ( B , a ) T \in \delta(B, a) Tδ(B,a)
    4. 如果在 P P P中有产生式 B → a C B \to aC BaC B , C ∈ V N B, C \in V_N B,CVN a ∈ V T a \in V_T aVT,则 C ∈ δ ( B , a ) C \in \delta(B, a) Cδ(B,a)
    5. 对于每一个 a ∈ V T a \in V_T aVT,有 δ ( T , a ) = ∅ \delta(T, a) = \emptyset δ(T,a)=
  • M M M构造 G G G
    1. V N = Q V_N = Q VN=Q V T = Σ V_T = \Sigma VT=Σ S = q 0 S = q_0 S=q0
    2. 如果有 C ∈ δ ( B , a ) ,   B , C ∈ Q ,   a ∈ Σ C \in \delta(B, a),\ B, C \in Q,\ a \in \Sigma Cδ(B,a), B,CQ, aΣ,则在 P P P中有产生式 B → a C B \to aC BaC
    3. 如果 C ∈ δ ( B , a ) ,   C ∈ F C \in \delta (B, a),\ C \in F Cδ(B,a), CF,则在 P P P中有产生式 B → a B \to a Ba

下推自动机与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 q0Q, 初始状态
  • 状态转移时, δ ( 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)={xx:(q0,Z0)M(q,γ),γΓ,qF}
    • 输入串,并且到达接受终止状态
  • 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为编辑距离阈值
  • 为了找到所有的可能,子串可以不从头取
  • 路径寻找:深度优先搜索,寻找符合条件的候选中距离满足要求的

有限自动机用于英语单词形态分析

  • 有限状态转换机:在进行状态转移的过程中还会产生一个输出
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值