Skip to content

有限状态转导器

Finite-state transducer · FST · 有限状态转换器

用有限控制读取输入并沿运行逐段产生输出,从而定义字符串之间关系的机器模型家族。

条目类型
模型

形式陈述 ​

有限状态转导器把有限状态自动机的边从“只读一个标号”扩展为“读取输入片段并写出输出片段”。一种不偏向确定或非确定版本的定义是六元组

T=(Q,Σ,Γ,E,I,F),

其中 Q、输入字母表 Σ、输出字母表 Γ 均有限,I,F⊆Q 是初态与终态集合,E 是有限边集,满足

E⊆Q×Σ∗×Γ∗×Q.

边 (p,u,v,q) 记作 p→u/vq:机器从 p 到 q,消费 u,同时把 v 追加到输出末尾。运行把各边标签分别做字符串连接;从 I 到 F、输入连接为 x、输出连接为 y 的有限路径实现一对 (x,y)。因此语义一般是关系

RT={(x,y)∈Σ∗×Γ∗:T 有一条标号为 x/y 的成功运行}.

本页约定输出只在边上发生;初始输出或终态输出可用新初态、新终态及 ε/v 边编译进去。这里的 ε 表示不消费输入或不产生输出,不是字母表中的可见字符。后续各专门模型会进一步限制输入边、分支数、读头方向或输出存储方式。

直觉

边集有限不能由状态集有限推出:标签来自无限集 Σ∗×Γ∗。如果允许无限多条字标签边,就能在两个状态之间直接放入任意关系的全部元素,有限状态约束便失去意义。有限性也保证每条边的输出长度存在统一最大值,线性输出界才有依据。

接受器只回答“这个字是否合格”,转导器还要留下一个结果。沿路径想象两卷纸带:输入卷轴按边标签被取走,输出卷轴按同一顺序不断接长。若每一步都消费输入,固定机器的输出长度至多随输入线性增长;一条边还能写出多个字符,所以输出长度不必等于输入长度。允许空输入边后,这个线性上界可能失效,必须另外检查静默环。

真正需要先分清的是“机器有几条运行”和“一个输入有几个输出”。非确定机器可以有多条成功路径;若这些路径全写出同一个字,关系仍是函数。反过来,只要两条成功路径给同一输入写出不同结果,语义便是多值关系。确定性、无歧义性与函数性因而是三个不同层次。

边上允许空输入会带来静默计算。有限状态不等于每个输入只有有限个输出:若某条成功运行经过环 q→ε/zq,其中 z≠ε,则同一固定输入可沿该环绕行任意多次,得到形如 uzkv(k≥0)的无限输出族;当环状态本身兼作初态和终态时,这才简化为 zk。实际算法常把长输入标签正规化为一个字母或 ε,并单独检查这类产出型空环。

有限状态转导的读写路径
例子与边界

设输入为十六进制字符,目标是输出便于朗读的符号名。一个确定转导器可在唯一状态 q 上设置

q→A/A-nameq,q→7/sevenq,q→F/foxtrotq.

把 q 同时作为初态和终态,输入 A7F 的运行逐步产生 A-name、seven、foxtrot,最终输出 A-namesevenfoxtrot。输出没有隐含分隔符;若应用要求空格,空格必须明确写进相应边的输出字。

把原来的 A/A-name 边替换成两条读 A 的边,分别输出 a 与 ā,输入 A7 就对应 aseven 和 āseven 两个结果。这不是“机器随机选一个答案”的概率语义,而是关系中同时包含两对。

多条运行也可以给出同一结果:另构造初态 q、终态 f 和不同中间状态 r1,r2,设置 q→A/ari→7/sevenf(i=1,2)。输入 A7 有两条不同的成功运行,输出却都为 aseven。两条路径通过不同状态区分,不能把边集合中完全相同的四元组重复写两次就算成两条边。

当输入字母表至少含两个可区分符号时,一向有限状态转导器不能实现任意长字的反转。读到前缀时若立即输出,未来字符会出现在错误一侧;若一直等待,又必须在有限状态中保存任意长前缀。单字母表上的反转就是恒等函数,不能充当这个不可实现性的见证;固定最大长度、允许读头回退或使用字符串寄存器也会越过上述论证的边界。类似地,边标签有限并不自动保证实时性:ε 输入环可能在不前进时持续输出。

推论与应用

有限状态转导器统一了字符转义、词形分析、拼写变体、协议字段改写和语音前端中的许多有限记忆转换。设计时应先写清语义是关系还是偏函数,再选择确定、非确定、双向或寄存器实现;否则“同一输入出现两条路径”很容易被误判成错误,或把真正的多值输出遗漏掉。

正规化可把每条长输入标签拆成逐字边,并用新状态串联;长输出标签可以保留为常量块,也能逐字符拆开。该变换改变状态和边的数量,不改变 RT。进一步的组合、确定化和等价判定则依赖模型限制:接受器上熟悉的子集构造不能直接消除不同输出之间不断增长的延迟。

例如边 p→ab/xyq 可拆为 p→a/xr→b/yq,其中 r 是只服务这条边的新状态,且不是初态或终态。若把 r 与其他边的中间状态随意合并,便可能拼出原图不存在的混合路径;增加专用中间状态正是保持关系不变的关键。

从图谱角度,本页只给共同接口。非确定有限状态转导器把关系语义正规化,Mealy 与 Moore 机器固定每步输出时机,sequential 与 subsequential 模型要求输入确定,而双向和流式模型改变了可利用的信息范围。它们共享有限控制,却没有共享同一表达能力或同一判定边界。

参考资料
  • Jacques Sakarovitch, Finite Automata Based Computation Models, Lecture V: Transducers (2), MPRI 2018/2019, §1,有限转导器与正规化构造。

  • Jean Berstel, Transductions and Context-Free Languages, Teubner, 1979, Chapter III, §6, “Transducers.”

  • Jacques Sakarovitch, Elements of Automata Theory, Cambridge University Press, 2009, Chapter IV, “The Richness of Transducers,” §1.

  • Mehryar Mohri, “Finite-State Transducers in Language and Speech Processing,” Computational Linguistics 23(2), 1997, §§2–3.

关系图谱14 个相邻概念 · 3 类关系

拖动节点调整位置。

显示关系

显示:依赖

  1. 前置三跳
  2. 前置二跳
  3. 前置一跳
  4. 当前条目
  5. 后续一跳
  6. 后续二跳
  7. 后续三跳
文字版关系按与当前条目的最短距离分组
分类位置

上位 / 更一般

暂未标注直接上位概念。

下位 / 直接特例

类型化关系

使用的工具

被这些条目使用