Nlp 如何进行FST(有限状态传感器)合成

Nlp 如何进行FST(有限状态传感器)合成,nlp,finite-automata,state-machine,Nlp,Finite Automata,State Machine,考虑以下FST: T1 0 1 a : b 0 2 b : b 2 3 b : b 0 0 a : a 1 3 b : a T2 0 1 b : a 1 2 b : a 1 1 a : d 1 2 a : c 如何在这两个FST(即T1到T2)上执行合成操作 我看过一些算法,但不太懂。如果有人能简单地解释一下,那将是一个很大的帮助 请注意,这不是家庭作业。该示例取自课堂幻灯片,其中给出了解决方案,但我不知道如何获得它。由于您没有指定输入格式,我假设0是初始状态,任何出现在第二列但不是第

考虑以下FST:

T1 

0 1 a : b
0 2 b : b
2 3 b : b
0 0 a : a
1 3 b : a

T2

0 1 b : a
1 2 b : a
1 1 a : d
1 2 a : c
如何在这两个FST(即T1到T2)上执行合成操作 我看过一些算法,但不太懂。如果有人能简单地解释一下,那将是一个很大的帮助


请注意,这不是家庭作业。该示例取自课堂幻灯片,其中给出了解决方案,但我不知道如何获得它。

由于您没有指定输入格式,我假设0是初始状态,任何出现在第二列但不是第一列的整数都是接受状态(3表示T1,2表示T2),每一行都是转换关系的一个元素,给出了前一个状态、下一个状态、输入字母和输出字母

FST上的任何操作都需要生成新的FST,因此我们需要状态、输入字母表、输出字母表、初始状态、最终状态和转换关系(以下FST a、B和W的规格按此顺序给出)。假设我们的FST是:

A = (Q, Σ, Γ, Q0, QF, α) B = (P, Γ, Δ, P0, PF, β) 类似地,您可以将T1的
02b:b
与T2的
01b:a
12b:a
相结合,将T1的
0a:a
与T2和c的
1Aa:d
相结合


请注意,您可能有无法访问的状态(那些永远不会显示为“下一个”状态)和永远不会发生的转换(那些来自无法访问状态)。作为优化步骤,您可以删除这些状态和转换。但是,将其留在室内不会影响施工的正确性;这仅仅是一种优化。

如果您更容易接受图形解释,下面的幻灯片集提供了实践中合成算法的增量图形示例,还包括对组件传感器中ε转换的讨论。Epsilon变换使合成过程复杂化,在这种情况下,outis answer中描述的算法可能无法生成正确的结果,这取决于所使用的半环

有关一些图形示例,请参见幻灯片10~35:

T1和T2

T1和T2的组成

组合物T的状态是T1状态和T2状态的成对。T满足下列条件:

  • 它的初始状态是T1的初始状态和初始状态对 T2的
  • 它的终态是终态T1和终态T2的成对
  • 对于从q1到r1的每对跃迁T1和从q2到r2的每对跃迁T2,存在从(q1,q2)到(r1,r2)的跃迁t,使得T1的输出标签与T2的输入标签匹配。转换T从T1获取其输入标签,从T2获取其输出标签,其权重是使用相同操作完成的T1和T2权重的组合 沿路径组合权重的
  • 由于没有权重,我们可以忽略这一点。上面是从下面一张漂亮的纸上摘下来的

    W = (R, Σ, Δ, R0, RF, ω) = A ∘ B R = Q × P R = {(0,0), (0,1), ... (3, 2)} R = {00, 01, 02, 10, 11, 12, 20, 21, 22, 30, 31, 32} R0 = Q0 × P0 RF = QF × PF ω = { ((qi,ph), σ) → ((qj, pk), δ) : (qi, σ) → (qj, γ) ∈ α, (ph, γ) → (pk, δ) ∈ β} 00 11 a : a 01 12 a : a