UCAS-AI学院-自然语言处理专项课-第3讲-课程笔记

形式语言与自动机

形式语言

  • 语言:
    • 一个抽象的数学系统
    • 按照一定规律构成的句子和符号串的有限或无限集合
  • 语言描述的三种途径
    • 穷举法:只适合句子数目有限的语言
    • 语法描述:生成语言中“合格”的句子
    • 自动机:对输入的句子进行检验以区别是否为语言中的句子
  • 形式语言:用于精确地描述语言及其结构的手段
    • 又称代数语言学
    • 重写规则表示形式 α β \alpha \to \beta
    • 即字符串 α \alpha 可以利用重写规则被改写成 β \beta
      • 使用不同的规则并以不同的顺序运用,可以得到不同的新字符串
  • 形式语法:四元组 G = ( N , Σ , P , S ) G = (N, \Sigma, P, S)
    • N N :非终结符(变量)的有限集合
    • Σ \Sigma :终结符(常数)的有限集合(二者的交集为空,且并集为总词汇表 V V
    • P P :一组重写规则的有限集合 P = α β P = {\alpha \to \beta}
    • S S :句子符或初始符
    • α \alpha β \beta V V 中元素构成的串,但 α \alpha 中至少包含一个非终结符
  • 推导:设 G = ( N , Σ , P , S ) G = (N, \Sigma, P, S) 是一个文法,在闭包 ( N Σ ) (N \cup \Sigma)^\ast 上定义关系 G \Rightarrow_{G} 如下(直接派生):
    • 如果 α β γ \alpha \beta \gamma ( N Σ ) (N \cup \Sigma)^\ast 中的符号串,且 β δ \beta \to \delta P P 的产生式,那么 α β γ G α δ γ \alpha \beta \gamma \Rightarrow_G \alpha \delta \gamma
    • G + \Rightarrow_G^+ (按非平凡方式派生)表示 G \Rightarrow_{G} 的传递闭包,即 ( N Σ ) (N \cup \Sigma)^\ast 上,符号串 ξ i \xi_i ξ i + 1 \xi_{i + 1} n n 步( n 1 n \ge 1 )推导(至少一步发生变化)
    • G \Rightarrow_G^\ast (派生)表示 G \Rightarrow_{G} 的自反和传递闭包,即 ( N Σ ) (N \cup \Sigma)^\ast 上,符号串 ξ i \xi_i ξ i + 1 \xi_{i + 1} n n 步( n 0 n \ge 0 )推导(可不发生任何推导或者空操作)
  • 最左推导:每步推导中只改写最左非终结符
  • 最右推导:每步推导中之改写最右非终结符
    • 最有推导又称规范推导
  • 句型:一些特殊类型的符号串,为文法 G = ( N , Σ , P , S ) G = (N, \Sigma, P, S) 的句子形式(句型):
    1. S S 是一个句子形式
    2. 如果 α β γ \alpha \beta \gamma 是一个句子形式,且 β δ \beta \to \delta P P 的产生式,则 α δ γ \alpha \delta \gamma 也是一个句子形式
  • 句子:文法 G G 的不含非终结符的句子形式称为 G G 生成的句子
  • 正则文法
    • 如果文法 G G P P 中的规则满足如下形式:
      • A B x A \to Bx
      • A x A \to x
      • 其中 A , B A, B 为非终结符, x x 为终结符
    • 称该文法为正则文法,或称3型文法(左线性正则文法)
    • 如果规则形式为 A x B A \to xB ,则该文法称为右线性正则文法
  • 由文法 G G 生成的语言,记 L ( G ) L(G) ,指 G G 生成的所有句子的集合: L ( G ) : { x x Σ , S G + x } L(G) : \{ x | x \in \Sigma, S \Rightarrow_G^+ x \}
  • 上下文无关文法
    • 如果 P P 中的规则满足如下形式:
      • A α A \to \alpha
      • 其中 A A 为非终结符, α \alpha 为文法允许的任意字符串
    • 称该文法为上下文无关文法,或称2型文法
  • 上下文有关文法
    • 如果 P P 中的规则满足如下形式:
      • α A β α γ β \alpha A \beta \to \alpha \gamma \beta
      • 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)
  • 约定:认定受限最多的文法产生该语言
  • CFG产生语言的派生树表示:
    1. x N Σ \forall x \in N \cup \Sigma 给一个标记作为节点, S S 为树的根节点
    2. 如果一个节点标记为 A A ,并且至少有一个除它纵深以外的后裔,则 A N A \in N
    3. 如果一个节点标记为 A A ,其 k k 个直接后裔节点按从左到右标记为 A 1 , , A k A_1, \ldots, A_k ,则 A A 1 A 2 A k A \to A_1 A_2 \ldots A_k 一定是 P P 中的一个产生式
  • CFG的二义性
    • 一个文法 G G ,如果存在某个句子不只一棵分析树与之对应,则称这个文法是二义的

有限自动机与正则文法

  • 自动机
    • 有限自动机
      • 确定性有限自动机
      • 非确定性有限自动机
    • 下推自动机
    • 线性带限自动机(与1型文法等价)
    • 图灵机(与0型文法等价)
  • 确定性有限自动机DFA:五元组 M = ( Σ , Q , δ , q 0 , F ) M = (\Sigma, Q, \delta, q_0, F)
    • Σ \Sigma ,输入符号的有穷集合
    • Q Q ,状态的有限集合
    • q 0 Q q_0 \in Q ,初始状态
    • F F ,终止状态集合, F Q F \subseteq Q
    • δ \delta Q × Σ Q Q \times \Sigma \to Q 的映射,支配着有限状态控制的行为,亦称状态转移函数
  • DFA定义的语言:
    • 如果一个句子 x x 使得有限自动机 M M 有:
      • δ ( q 0 , x ) = p ,   p F \delta(q_0, x) = p,\ p \in F
    • 那么称句子 x x M M 接受
    • M M 定义的语言 T ( M ) T(M) 就是被 M M 接受的句子的全集
    • T ( M ) : { x δ ( q 0 , x ) F } T(M) : \{ x | \delta(q_0, x) \in F \}
  • 非确定性有限状态自动机NFA:五元组 M = ( Σ , Q , δ , q 0 , F ) M = (\Sigma, Q, \delta, q_0, F)
    • Σ \Sigma ,输入符号的有穷集合
    • Q Q ,状态的有限集合
    • q 0 Q q_0 \in Q ,初始状态
    • F F ,终止状态集合, F Q F \subseteq Q
    • δ \delta Q × Σ Q Q \times \Sigma \to Q 的幂集 2 Q 2^Q 的映射(转换不唯一,结果为状态集合)
    • DFA可以认为是NFA的一个特例
  • NFA和DFA的联系
    • L L 是一个被NFA接受的句子的集合,则存在一个DFA,能够接受 L L
    • 由于接受同样的链集,一般情况下无需区分他们,统称FA
  • 正则文法与有限自动机的关系
    • 如果文法 G G 是一个正则文法,则存在一个FA M M ,使得 T ( M ) = L ( G ) T(M) = L(G)
    • 如果有一个FA M M ,则存在一个正则文法 G G ,使得 L ( G ) = T ( M ) L(G) = T(M)
  • G G 构造 M M
    1. Σ = V T \Sigma = V_T Q = V N { T } Q = V_N \cup \{ T \} q 0 = S q_0 = S T T 是一个新增加的非终结符
    2. 如果在 P P 中有产生式 S ϵ S \to \epsilon ,则 F = { S , T } F = \{S, T\} ,否则 F = { T } F = \{ T \}
    3. 如果在 P P 中有产生式 B a B \to a B V N B \in V_N a V T a \in V_T ,则 T δ ( B , a ) T \in \delta(B, a)
    4. 如果在 P P 中有产生式 B a C B \to aC B , C V N B, C \in V_N a V T a \in V_T ,则 C δ ( B , a ) C \in \delta(B, a)
    5. 对于每一个 a V T a \in V_T ,有 δ ( T , a ) = \delta(T, a) = \emptyset
  • M M 构造 G G
    1. V N = Q V_N = Q V T = Σ V_T = \Sigma S = q 0 S = q_0
    2. 如果有 C δ ( B , a ) ,   B , C Q ,   a Σ C \in \delta(B, a),\ B, C \in Q,\ a \in \Sigma ,则在 P P 中有产生式 B a C B \to aC
    3. 如果 C δ ( B , a ) ,   C F C \in \delta (B, a),\ C \in F ,则在 P P 中有产生式 B a B \to a

下推自动机与CFG

  • 下推自动机PDA:
    • 可以看成是一个带有附加的下推存储器的有限自动机
    • 下推存储器是一个栈
  • PDA定义:七元组 M = ( Σ , Q , Γ , δ , q 0 , Z 0 , F ) M = (\Sigma, Q, \Gamma, \delta, q_0, Z_0, F)
    • Σ \Sigma ,输入符号的有穷集合
    • Q Q , 状态的有穷集合
    • Γ \Gamma ,下推存储器符号的有穷集合
    • Z 0 Γ Z_0 \in \Gamma ,最初出现在下推存储器顶端的符号
    • F F ,终止状态集合
    • δ \delta ,从 Q × ( Σ { ϵ } ) × Γ Q \times (\Sigma \cup \{\epsilon\}) \times \Gamma Q × Γ Q \times \Gamma^\ast 子集的映射
    • q 0 Q q_0 \in Q , 初始状态
  • 状态转移时, δ ( q , a , Z ) = { ( q 1 , γ 1 ) . , ( q m , γ m ) } \delta(q, a, Z) = \{(q_1, \gamma_1). \ldots, (q_m, \gamma_m)\} ,下推存储器中的 Z Z 将被 γ i \gamma_i 取代,后者的符号按照从左到右的顺序逐个压入栈中,读取下一个输入
  • 特殊情况 δ ( q , ϵ , Z ) = { ( q 1 , γ 1 ) . , ( q m , γ m ) } \delta(q, \epsilon, Z) = \{(q_1, \gamma_1). \ldots, (q_m, \gamma_m)\} ,不向下读取新输入,只进行下推存储器内部的操作,称之为 ϵ \epsilon 移动
  • 合法转移: a : ( q , Z γ ) M ( q , β γ ) a: (q, Z \gamma) \vdash_M (q^\prime, \beta \gamma)
  • 下推自动机接受的语言: 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 \}
    • 输入串,并且到达接受终止状态
  • PDA与CFG的关系
    • 对一个CFG G G ,可以构造一个PDA M M ,使得 T ( M ) = L ( G ) T(M) = L(G)
    • 对一个PDA M M ,可以构造一个CFG G G ,使得 L ( G ) = T ( M ) L(G) = T(M)
  • 各类自动机的区别
    • 能够使用信息存储空间的差异
    • FA:只能用状态
    • PDA:还能用下推存储器
    • LCA:可以用输入/输出带本身
    • TA:没有任何限制

FA在NLP中的应用

英语单词拼写检查

  • 编辑距离:错误单词 X X ,长度为 m m ;正确单词 Y Y ,长度为 n n ,二者的编辑距离为 X X 转换到 Y Y 需要的插入、删除、替换、交换两个相邻基本单位的最小个数
  • 键树搜索范围:N-T到N+T,T为编辑距离阈值
  • 为了找到所有的可能,子串可以不从头取
  • 路径寻找:深度优先搜索,寻找符合条件的候选中距离满足要求的

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

  • 有限状态转换机:在进行状态转移的过程中还会产生一个输出
发布了14 篇原创文章 · 获赞 0 · 访问量 68

猜你喜欢

转载自blog.csdn.net/cary_leo/article/details/105642971