有一个 hacky 方法可以做到这一点:https ://stackoverflow.com/a/54067480/3310334
但是考虑到两年多过去了,有没有更现代的解决方案?
import openfst_python as fst
input_sym = fst.SymbolTable()
output_sym = fst.SymbolTable()
input_sym.add_symbol('<eps>')
input_sym.add_symbol('a')
input_sym.add_symbol('b')
output_sym.add_symbol('<eps>')
output_sym.add_symbol('A')
output_sym.add_symbol('B')
f = Fst()
f.set_input_symbols(input_sym)
f.set_output_symbols(output_sym)
s0 = f.add_state()
s1 = f.add_state()
s2 = f.add_state()
s3 = f.add_state()
a = input_sym.find('a')
b = input_sym.find('b')
A = input_sym.find('A')
B = input_sym.find('B')
f.add_arc(s0, fst.Arc(a, A, None, s1))
f.add_arc(s0, fst.Arc(b, B, None, s2))
f.add_arc(s1, fst.Arc(a, A, None, s3))
f.add_arc(s2, fst.Arc(b, B, None, s3))
f.set_start(s0)
f.set_final(s3)
取 'ab' 或 'ba' 并产生 'AB' 或 'BA'。
如何测试某些字符串或序列是否构成有效输入?
如何通过传感器运行输入?