文章目录
- 1形式语言
- 1.2形式语言
- 3推导
- 3.1句型、句子、语言
- 3.2文法
- 3.3派生树与二义性
- 4有限自动机和正则文法
- 4.1确定的有限自动机DFA
- 4.2不确定的有限自动机NFA
- 4.3有限自动机<=>正则文法
- 5.下推自动机PDA和上下文无关文法CFG
- 5.1PDA
- 5.1.1 PDA的例子.
- 5.2 其他自动机
- 5.2.1 区别
- 6. 有限自动机在nlp中的应用
- 6.1 英语单词拼写检查
- 6.1.1 编辑距离
- 6.1.2 有限状态机
- 6.1.3 深度优先搜索找路径
- 5.2 英语单词形态分析
- FA的变种
- 6.作业
- 3.1
- 3.2
- 3.3
- 3.4
- 3.5
- 3.6
1形式语言
- 语言:人类所特有的用来表达意思、交流思想的工具,是一种特殊的社会现象,由语音、词汇和语法构成一定的系统。
- 语言描述的三种途径
- 穷举法 — 只适合句子数目有限的语言。
- 语法描述 — 生成语言中合格的句子。
- 自动机 — 对输入的句子进行检验,区别哪些是语言中的句子,哪些不是语言中的句子
- 形式语言:是用来精确地描述语言(包括人工语言和自然语言)及其结构的手段。形式语言学 也称 代数语言学
- 以重写规则 α→β\alpha\rightarrow\betaα→β的形式表示,其中, α,β\alpha,\betaα,β 均为字符串。顾名思义:字符串 α\alphaα 可以被改写成 β\betaβ 。一个初步的字符串通过不断地运用重写规则,就可以得到另一个字符串。通过选择不同的规则并以不同的顺序来运用这些规则,就可以得到不同的新字符串。
1.2形式语言
- 形式语法:四元组G=(N、Σ,P,S)G=(N、\Sigma,P,S)G=(N、Σ,P,S)
- N:非终结符号(变量
- Σ:\Sigma:Σ: 终结符号
- N∩Σ=∅;V=N∪Σ:词汇表N \cap \Sigma=\emptyset;\\V=N\cup\Sigma:词汇表N∩Σ=∅;V=N∪Σ:词汇表
- P:一组重写规则的有限集合:P={α→β},其中α,β是V中元素构成的串,但α至少有一个非终结符号:S∈N(初始符或句子符号)P=\{\alpha\rightarrow\beta\},其中\alpha,\beta是V中元素构成的串,但\alpha至少有一个非终结符号:S\in N(初始符或句子符号)P={α→β},其中α,β是V中元素构成的串,但α至少有一个非终结符号:S∈N(初始符或句子符号)
- eg:
- G=({ A,S},{0,1},P,S)
- P:S→0A1,0A→00A1,A→1P:S\rightarrow0 A 1,\\0 A\rightarrow00A1,\\A\rightarrow1P:S→0A1,0A→00A1,A→1
3推导
-
推导:
- 设G=(N、Σ,P,S)G=(N、\Sigma,P,S)G=(N、Σ,P,S)施一个文法,在(N∪Σ)∗(N\cup\Sigma)^*(N∪Σ)∗上定义关系=>G(直接派生或推导):\stackrel{G}{=>}(直接派生或推导):=>G(直接派生或推导):
- *推导:n>=1
- +推导:n>=0
- 推导:n=1
-
最左推导
-
最右推导(规范推导
3.1句型、句子、语言
- 句型与句子
- 一些特殊类型的符号串G=(N、Σ,P,S)G=(N、\Sigma,P,S)G=(N、Σ,P,S)的句子形式(句型):
- S是一个句子形式
- 句型推出的也是一个句型
- αβγ是一个句型,且有β→δ是p的产生式,则αδγ也是一个句型\alpha\beta\gamma是一个句型,\\且有\beta\rightarrow\delta是p的产生式,\\则\alpha\delta\gamma也是一个句型αβγ是一个句型,且有β→δ是p的产生式,则αδγ也是一个句型
- 句子:不含有非终结符的句型
- 语言:L(G),G产生的所有句子
- 一些特殊类型的符号串G=(N、Σ,P,S)G=(N、\Sigma,P,S)G=(N、Σ,P,S)的句子形式(句型):
3.2文法
- 0型文法(无限制重写系统,无约束文法):P:α→β,字符串P:\alpha\rightarrow\beta,字符串P:α→β,字符串(理论上的,无用处
- 1型文法(上下文有关文法CSG):P:αAβ→αγβA∈N,α,γ,β∈(N∪Σ)∗,且γ至少包含一个字符另一种定义:ifx→y,x∈(N∪Σ)+,y∈(N∪Σ)∗,并且∣y∣≥∣x∣(越推越长)P:\alpha A\beta\rightarrow \alpha \gamma \beta\\A\in N,\alpha, \gamma ,\beta\in(N\cup \Sigma)^*,且\gamma至少包含一个字符\\另一种定义:if x\rightarrow y,x\in(N\cup \Sigma)^+,y\in(N\cup \Sigma)^*,并且|y|\geq|x|(越推越长)P:αAβ→αγβA∈N,α,γ,β∈(N∪Σ)∗,且γ至少包含一个字符另一种定义:ifx→y,x∈(N∪Σ)+,y∈(N∪Σ)∗,并且∣y∣≥∣x∣(越推越长)
- 2型文法(上下文无关文法CFG):P:A→α,A∈N,α∈(N∪Σ)∗P:A\rightarrow \alpha,A\in N,\alpha\in(N\cup \Sigma)^*P:A→α,A∈N,α∈(N∪Σ)∗
- 3型文法(正则文法):P:A→Bx∣A→x,A,B∈N,x∈Σ(左线性正则文法A→xB(右线性正则文法)P:A\rightarrow Bx|A\rightarrow x,A,B\in N,x\in \Sigma(左线性正则文法\\A\rightarrow xB(右线性正则文法)P:A→Bx∣A→x,A,B∈N,x∈Σ(左线性正则文法A→xB(右线性正则文法)
- 0-3,约束越来越大:L(G3)⊆L(G2)⊆L(G1)⊆L(G0)L(G3)\subseteq L(G2)\subseteq L(G1)\subseteq L(G0)L(G3)⊆L(G2)⊆L(G1)⊆L(G0)
- 显然,每一个正则文法都是上下文无关文法,每一个上下无关文法都是上下文有关文法,而每一个上下文有关文法都是0型文法
- 判别文法类别时,倾向于判别为约束最大的:
- 如果一种语言能由几种文法所产生,则把这种语言称为在这几种文法中受限制最多的那种文法所产生的语言。
- 如果一种语言能由几种文法所产生,则把这种语言称为在这几种文法中受限制最多的那种文法所产生的语言。
3.3派生树与二义性
- 2型文法(上下文无关)CFG 产生的语言句子的派生树表示CFGG=(N、Σ,P,S)G=(N、\Sigma,P,S)G=(N、Σ,P,S)产生一个句子的派生树由如下
步骤构成:- (1) 对于x∈N∪Σx\in N \cup \Sigmax∈N∪Σ 给一个标记作为节点, S 作为树的根节点。
- (2) 如果一个节点的标记为 A,并且它至少有一个除它自身
以外的后裔,则A∈NA\in NA∈N。 - (3) 如果一个节点的标记为 A,它的 k ( k > 0) 个直接后裔节 点按从左到右的次序依次标记为 A1, A2, …, Ak,则 A -> A1A2…Ak 一定是 P 中的一个产生式
- 上 下文无关文法的二义性
- 一个文法 G,如果存在某个句子有不只一棵分析树与之对应,那么称这个文法是二义的
- 一个文法 G,如果存在某个句子有不只一棵分析树与之对应,那么称这个文法是二义的
4有限自动机和正则文法
4.1确定的有限自动机DFA
- 确定的有限自动机M是一个五元组M=(Σ,Q,δ,q0,F)Σ:输入符号的有穷集合Q:状态的有限集合q0∈Q:初始状态F:终止状态集合,F⊆Qδ:是Q×Σ到Q的映射,它支配着有限状态控制的行为,状态转移函数M=(\Sigma,Q,\delta,q_0,F)\\ \Sigma:输入符号的有穷集合\\ Q:状态的有限集合\\ q_0\in Q:初始状态\\ F:终止状态集合,F\subseteq Q\\ \delta:是Q×\Sigma到Q的映射,它支配着有限状态控制的行为,状态转移函数M=(Σ,Q,δ,q0,F)Σ:输入符号的有穷集合Q:状态的有限集合q0∈Q:初始状态F:终止状态集合,F⊆Qδ:是Q×Σ到Q的映射,它支配着有限状态控制的行为,状态转移函数
- 从q0开始(输入头开始在最左边),输入a,q′=δ(q,a),从q转移到状态q′,并将输入头向右移动一个字符从q_0开始(输入头开始在最左边),输入a,q'=\delta(q,a),从q转移到状态q',并将输入头向右移动一个字符从q0开始(输入头开始在最左边),输入a,q′=δ(q,a),从q转移到状态q′,并将输入头向右移动一个字符
- 状态变换图如下:
- DFA所定义的语言
- 可接受:如果有一个句子x,使得δ(q0,x)=p,p∈F,则x可被M接受如果有一个句子x,使得\delta(q_0,x)=p,p\in F,则x可被M接受如果有一个句子x,使得δ(q0,x)=p,p∈F,则x可被M接受
- KaTeX parse error: Undefined control sequence: \inF at position 23: …x|\delta(q_0,x)\̲i̲n̲F̲\}
- 确定的:接受一个输入,只会从一个状态转换到另一个状态,不会有其他可能
4.2不确定的有限自动机NFA
- 不确定的有限自动机M是一个五元组M=(Σ,Q,δ,q0,F)Σ:输入符号的有穷集合Q:状态的有限集合q0∈Q:初始状态F:终止状态集合,F⊆Qδ:是Q×Σ到Q的幂集2Q的映射,状态转移函数M=(\Sigma,Q,\delta,q_0,F)\\ \Sigma:输入符号的有穷集合\\ Q:状态的有限集合\\ q_0\in Q:初始状态\\ F:终止状态集合,F\subseteq Q\\ \delta:是Q×\Sigma到Q的幂集2^Q的映射,状态转移函数M=(Σ,Q,δ,q0,F)Σ:输入符号的有穷集合Q:状态的有限集合q0∈Q:初始状态F:终止状态集合,F⊆Qδ:是Q×Σ到Q的幂集2Q的映射,状态转移函数–区别在这里
- 区别:
- δ(q,a)\delta(q,a)δ(q,a)
- 在DFA中是一个状态
- 在NFA中是一个状态集合
- δ(q,a)\delta(q,a)δ(q,a)
- 不确定性:δ(q0,0)=q3,q0\delta(q_0,0)={q_3,q_0}δ(q0,0)=q3,q0
- 关系:设 L 是一个被 NFA 所接受的句子的集合,则存在一个 DFA,它能够接受 L。
- 由于 DFA 与 NFA 所接受的是同样的链集,所以一般情况下无需区分它们,二者统称为有限自动机 (finite automata, FA)。
- 可以转化
4.3有限自动机<=>正则文法
- 正则文法和FA等价
- 若G=(VN,VT,P,S)G=(V_N,V_T,P,S)G=(VN,VT,P,S)是一个正则文法,则必然存在一个有限自动机M=(Σ,Q,δ,q0,F)M=(\Sigma,Q,\delta,q_0,F)M=(Σ,Q,δ,q0,F),使得T(M)=L(G)
- 若Ms是一个有限自动机,则必然存在正则文法G,L(G)=T(M)
- 由正则文法构造有限自动机M:
- 令Σ=VT,Q=VN∪T,q0=S,其中,T是一个新增加的非终结符号\Sigma=V_T,Q=V_N\cup{T},q_0=S,其中,T是一个新增加的非终结符号Σ=VT,Q=VN∪T,q0=S,其中,T是一个新增加的非终结符号
- 如果P中有:S→ϵ,则,F={S,T},否则,F={T}S\rightarrow\epsilon,则,F=\{S,T\},否则,F=\{T\}S→ϵ,则,F={S,T},否则,F={T}
- 如果P中有:B→a,B∈VN,a∈VT,则T∈δ(B,a)B\rightarrow a,B\in V_N,a\in V_T,则T\in\delta(B,a)B→a,B∈VN,a∈VT,则T∈δ(B,a)
- 如果P有B→aC,B、C∈VN,a∈VT,则C∈δ(B,a)B\rightarrow aC,B、C\in V_N,a\in V_T,则C\in \delta(B,a)B→aC,B、C∈VN,a∈VT,则C∈δ(B,a)
- 对于每一个a∈VT,有δ(T,a)=∅a\in V_T,有\delta(T,a)=\emptya∈VT,有δ(T,a)=∅
- 由有限自动机M构造正则文法G:
- 令VN=Q,VT=Σ,S=q0V_N=Q,V_T=\Sigma,S=q_0VN=Q,VT=Σ,S=q0
- 如果C∈δ(B,a),B,C∈Q,a∈Σ,则P:B→aC如果C\in \delta(B,a),B,C\in Q,a\in \Sigma,则P:B\rightarrow aC如果C∈δ(B,a),B,C∈Q,a∈Σ,则P:B→aC
- 如果C∈δ(B,a),B,C∈F,a∈Σ,则P:B→a如果C\in \delta(B,a),B,C\in F,a\in \Sigma,则P:B\rightarrow a如果C∈δ(B,a),B,C∈F,a∈Σ,则P:B→a
5.下推自动机PDA和上下文无关文法CFG
5.1PDA
- 下推自动机PDA:PDA 可以看成是一个带有附加的下推存储器的有限自动机,下推存储器是一个栈
- 一个不确定的PDA可以表达成一个7元组M=(Σ,Q,Γ,δ,q0,Z0,F)Σ:输入符号Q:状态的有限集合q0∈Q:初始状态Γ:下推存储器符号的有穷集合Z0∈Γ:为最初出现在下推存储器顶端的符号F:终止状态集合,F⊆Qδ是从Q×(Σ∪{ϵ})×Γ到Q×Γ∗子集的映射M=(\Sigma,Q,\Gamma,\delta,q_0,Z_0,F)\\\Sigma:输入符号\\Q:状态的有限集合\\q_0\in Q:初始状态\\\Gamma:下推存储器符号的有穷集合\\Z_0\in \Gamma:为最初出现在下推存储器顶端的符号\\F:终止状态集合,F\subseteq Q\\\delta是从Q×(\Sigma\cup\{\epsilon\})×\Gamma到Q×\Gamma^*子集的映射M=(Σ,Q,Γ,δ,q0,Z0,F)Σ:输入符号Q:状态的有限集合q0∈Q:初始状态Γ:下推存储器符号的有穷集合Z0∈Γ:为最初出现在下推存储器顶端的符号F:终止状态集合,F⊆Qδ是从Q×(Σ∪{ϵ})×Γ到Q×Γ∗子集的映射
- 一个不确定的PDA可以表达成一个7元组M=(Σ,Q,Γ,δ,q0,Z0,F)Σ:输入符号Q:状态的有限集合q0∈Q:初始状态Γ:下推存储器符号的有穷集合Z0∈Γ:为最初出现在下推存储器顶端的符号F:终止状态集合,F⊆Qδ是从Q×(Σ∪{ϵ})×Γ到Q×Γ∗子集的映射M=(\Sigma,Q,\Gamma,\delta,q_0,Z_0,F)\\\Sigma:输入符号\\Q:状态的有限集合\\q_0\in Q:初始状态\\\Gamma:下推存储器符号的有穷集合\\Z_0\in \Gamma:为最初出现在下推存储器顶端的符号\\F:终止状态集合,F\subseteq Q\\\delta是从Q×(\Sigma\cup\{\epsilon\})×\Gamma到Q×\Gamma^*子集的映射M=(Σ,Q,Γ,δ,q0,Z0,F)Σ:输入符号Q:状态的有限集合q0∈Q:初始状态Γ:下推存储器符号的有穷集合Z0∈Γ:为最初出现在下推存储器顶端的符号F:终止状态集合,F⊆Qδ是从Q×(Σ∪{ϵ})×Γ到Q×Γ∗子集的映射
- 映射关系\delta的解释
- δ(q,a,Z)={(q1,γ1).(q2,γ2),...(qm,γm)},q∈Q,a∈Σ,γ∈Γ∗\delta(q,a,Z)=\{(q_1,\gamma_1).(q_2,\gamma_2),...(q_m,\gamma_m)\},q\in Q,a\in \Sigma,\gamma \in \Gamma^*δ(q,a,Z)={(q1,γ1).(q2,γ2),...(qm,γm)},q∈Q,a∈Σ,γ∈Γ∗
- 当PDA处于状态 q,面临输入符号a 时,自动机将进入 qi , i = 1, 2, …, m 状态,并以γi\gamma_iγi 来代替下推存储器(栈)顶端符号Z,同时将输入头指向下一个字符 。当 Z 被γi\gamma_iγi取代时,γi\gamma_iγi 的符号按照从左到右的顺序依次从下向上推入到存储器。
- 特殊情况ϵ移动:a=ϵ\epsilon移动:a=\epsilonϵ移动:a=ϵ,输入头位置不移动,只用于处理下推存储器内部的操作
- 符号约定
- 合法转移:设有序对(q,γ),q∈Q,γ∈Γ∗,对于a∈(Σ∪{ϵ})是输入字符,β∈Γ∗,Z∈F,如果(q′,β)∈δ(q,a,Z),q′,q∈Q(q,\gamma),q\in Q,\gamma\in \Gamma^*,对于a\in(\Sigma\cup\{\epsilon\})是输入字符,\beta\in \Gamma^*,Z\in F,如果(q',\beta)\in \delta(q,a,Z),q',q\in Q(q,γ),q∈Q,γ∈Γ∗,对于a∈(Σ∪{ϵ})是输入字符,β∈Γ∗,Z∈F,如果(q′,β)∈δ(q,a,Z),q′,q∈Q
- 0次或多次合法转移:*推
- 合法转移:设有序对(q,γ),q∈Q,γ∈Γ∗,对于a∈(Σ∪{ϵ})是输入字符,β∈Γ∗,Z∈F,如果(q′,β)∈δ(q,a,Z),q′,q∈Q(q,\gamma),q\in Q,\gamma\in \Gamma^*,对于a\in(\Sigma\cup\{\epsilon\})是输入字符,\beta\in \Gamma^*,Z\in F,如果(q',\beta)\in \delta(q,a,Z),q',q\in Q(q,γ),q∈Q,γ∈Γ∗,对于a∈(Σ∪{ϵ})是输入字符,β∈Γ∗,Z∈F,如果(q′,β)∈δ(q,a,Z),q′,q∈Q
- PDA M可以接受的语言为:
- 接受收入并可到达一个可接受状态
- 接受收入并可到达一个可接受状态
5.1.1 PDA的例子.
输入串是从左到右依次输入的
入栈出栈都走左边进出
5.2 其他自动机
- 图灵机
- 图灵机与0型文法等价;
- 图灵机与有限自动机(FA)的区别:图灵机可以通过其读/写头改变输入带的字符。
- 仅存在概念,太灵活了
- 线性带限自动机
- 线性带限自动机与1型文法等价;
- 线性带限自动机是一个确定的单带图灵机,其读 写头不能超越原输入带上字符串的初始和终止位置,即线性带限自动机的存储空间被输入符号串的长度所限制。
5.2.1 区别
- 各类自动机的主要区别是它们能够使用的信息存储空间的差异:
- 有限状态自动机只能用状态来存储信息;
- 下推自动机除了可以用状态以外,还可以用下推存储器(栈);
- 线性带限自动机可以利用状态和输入/输出带本身。因为输入/输出带没有**“先进后出”**的限制,因此,其功能大于栈;
- 而图灵机的存储空间没有任何限制。
6. 有限自动机在nlp中的应用
6.1 英语单词拼写检查
6.1.1 编辑距离
- 编辑距离
- 设 X 为拼写错误的字符串,其长度为m, Y 为 X 对应的正确的单词(答案),其长度为 n。则 X 和 Y 的编辑距离ed(X[m], Y[n]) 定义为:从字符串 X转换到 Y 需要的插入、删除、替换和交换两个相邻的基本单位(字符)的最小个数。如:
- ed (recoginze, recognize) = 1
- ed (sailn, failing) = 3
- 设 X 为拼写错误的字符串,其长度为m, Y 为 X 对应的正确的单词(答案),其长度为 n。则 X 和 Y 的编辑距离ed(X[m], Y[n]) 定义为:从字符串 X转换到 Y 需要的插入、删除、替换和交换两个相邻的基本单位(字符)的最小个数。如:
- 假设 Z = z1 z2 … zp 为字母表 A上的p 个字母构成
的字符串,Z[j] 表示含有j (j >= 1) 个字符的子串。X[m] 为拼写错误的字符串,其长度为m,Y[n] 为与X串接近的字符串(一个候选),其长度为n。则给定两个串X 和Y的编辑距离ed(X[m], Y[n]) 可以通过循环计算出从字符串X 转换到Y 需要进行插入、删除、替换和交换两个相邻的字符操作的最少次数- (1) 如果 xi+1=yj+1x_{i+1}= y_{j+1}xi+1=yj+1(两个串的最后一个字母相同),
- 则 ed(X[i+1], Y[j+1]) = ed(X[i], Y[j]);
- (2) 如果 xi=yj+1x_{i}= y_{j+1}xi=yj+1,并且 xi+1=yjx_{i+1}= y_{j}xi+1=yj(最后两个字符需要
交换位置),- 则ed(X[i+1], Y[j+1]) = 1+min{ed(X[i-1], Y[j-1]),ed(X[i], Y[j+1]),ed(X[i+1], Y[j])}
- 则ed(X[i+1], Y[j+1]) = 1+min{ed(X[i-1], Y[j-1]),ed(X[i], Y[j+1]),ed(X[i+1], Y[j])}
- (1) 如果 xi+1=yj+1x_{i+1}= y_{j+1}xi+1=yj+1(两个串的最后一个字母相同),
*(3)其他情况(xi+1≠yj+1并且(xi≠yj+1或xi+1≠yj)x_{i+1}\neq y_{j+1}并且(x_i\neq y_{j+1}或x_{i+1}\neq y_j)xi+1=yj+1并且(xi=yj+1或xi+1=yj)
- ed(X[i+1], Y[j+1]) = 1+min{ed(X[i], Y[j]),ed(X[i], Y[j+1]),ed(X[i+1], Y[j])}
- 其中:
- ed(X[0],Y[j])=j (0<=j<=n)X长度为0
- ed(X[i],Y[0])=i,(0<=i<=m
- 边界约定:ed(X[-1],Y[j])=ed(X[i],Y[-1])=max{m,n}
6.1.2 有限状态机
- 有时候要在自动机上做改变
- R=(Q,A,δ,q0,F)Q:状态集A:输入集δ:Q×A→Qq0∈Q:起始状态F⊆Q:终止状态集R=(Q,A,\delta,q_0,F)\\ Q:状态集\\ A:输入集\\ \delta:Q×A\rightarrow Q\\ q_0\in Q:起始状态\\ F\subseteq Q:终止状态集R=(Q,A,δ,q0,F)Q:状态集A:输入集δ:Q×A→Qq0∈Q:起始状态F⊆Q:终止状态集
- L⊆A∗L\subseteq A^*L⊆A∗是R接受的语言,字母构成的所有合法单词都是有限状态机中的一条路径。给定一个输入串,对其进行检查的过程就是在给定阈值 t (t > 0) 的情况下,寻找那些与输入串的编辑距离小于 t 的路径。那么,一个字符串X[m]∉LX[m]\notin LX[m]∈/L 能够被 R识别的条件是存在非空集合
C={Y[n]∣Y[n]∈L&ed(X[m],Y[n])≤t}C=\{Y[n]|Y[n]\in L \& ed(X[m],Y[n])\leq t\}C={Y[n]∣Y[n]∈L&ed(X[m],Y[n])≤t}
中间有共用的单词
- 定义:cuted(X[m],Y[n])=minl≤i≤u{ed(X[i],Y[n])}l=max(1,n−t),u=min(m,n+t)cuted(X[m],Y[n])=min_{l\leq i\leq u}\{ed(X[i],Y[n])\}\\l=max(1,n-t),u=min(m,n+t)cuted(X[m],Y[n])=minl≤i≤u{ed(X[i],Y[n])}l=max(1,n−t),u=min(m,n+t)
- t的用途:
- 确定截取X的范围
- 限定编辑距离
- t的用途:
6.1.3 深度优先搜索找路径
- Y是合法的单词,X是输入的单词(可能是错的词),找与X最接近的合法词汇
- 采用深度优先搜索算法从自动机中选择路径。假设X=bax, t=2。那么,Y=a/b/c/…/z,l=max{1, 1-2}=1, u=min{3, 1+2}=3。即从 X 中取长度在1~3个字符范围内的子串X’={b, ba, bax},分别计算与 Y 之间的编辑距离,保留那些 ed(X’, Y)≤ t 的路径,选择 ed 最小的路径继续扩展。
- X=bax, t=2。 Y={ba, bi, bo, … …}。
- 截取 X: l=max{1, 2-2}=1, u=min{3, 2+2}=3。 X’={b, ba, bax}
- 保留那些 ed(X’, Y)≤ t 的路径,选择 ed 最小的路径继续扩展。
- X=bax, t=2。Y={baa, bad, bag, bat, bay}。
- 截取 X: l=max{1, 3-2}=1, u=min{3, 3+2}=3。 X’={b, ba, bax}
- 保留那些 ed(X’, Y)≤ t 的路径,选择 ed 最小的路径,继续扩展Y。
- X=bax, t=2。Y={bade}。
- 截取 X: l=max{1, 4-2}=2, u=min{3, 4+2}=3。 X’={ba, bax}
- 保留那些 ed(X’, Y)≤ t 的路径,选择 ed 最小的路径
- 深度优先可能有只能得到一个解,不一定最优,但肯定
- 宽度优先:可以得到最短的解
- 算法
5.2 英语单词形态分析
- 单复数
- 时态
- 比较
- 一般地,具有相同的前缀或词根,词缀不同的单词可以共用一个有限状态转移机,共享其中的某些状态节点。如:tie, ties, trap, traps, try, tries, to, torch, torches, toss, tosses 等。
- 除了单词拼写检查、形态分析以外,有限状态自动机还广泛应用于词性标注、句法分析、短语识别、机器翻译和语音识别等很多方面。
FA的变种
- 有限自动机FA:只实现状态转移,不产生任何输出
- 有限状态机FSM:只实现状态转移,不产生任何输出
- 有限状态转换机FST:完成状态转移的同时产生一个输出
6.作业
3.1
3.2
anbncn,n≥1a^nb^nc^n,n\geq1anbncn,n≥1