Openfst、pynini
Openfst
弧的2个标注分别表示:消耗的输入
、发出的输出
,希腊字母<epsion>
表示沿弧的空输入或空输出
FSM(Finite State Machines,有限状态机)
- 有限个状态
- 同一时刻只能处于同一个状态
- 不同状态可以互相转换 ==> 状态是无序的
FSA(Finite State acceptor,有限状态接收机)描述单个字符串集
-
与FSM区别,有起点、终点;有重复利用,存储效率更高
输入msb
->msbtech
->witech
- 确定性:在任何给定状态下,对于任何输入,最多只能遍历一个transition(只能走一条路)
- 非循环:不可能重复遍历同一个状态(
有向无环图
) - Final唯一性:当且仅当有限状态机在输入序列末尾处于
最终
状态时,才接受
特定输入序列
FST(Finite State Transducer,有限状态转换器)
-
最重要的功能是可以实现Key到Value的映射
-
描述字符串与字符串之间的关系,当输入字符串对应多个输出字符串时,FST是函数式的
-
FST存储大规模较HashMap小很多,检索速度稍慢
每当有新的输入,从起始点值一次向后更新
- 确定性:在任何给定状态下,对于任何输入,最多只能遍历一个transition(只能走一条路)
- 非循环:不可能重复遍历同一个状态(
有向无环图
) - transducer:转换器有相关的值(Payload),final节点会输出一个值