Openfst fstcompose for transducing

房东的猫 提交于 2019-12-04 04:34:15

问题


Trying to run a FST which i compiled with an input FSA, but when I do there is no output. As I searched, only run command in openfst is fstcompose, so what it try to do is composing the fst with the inputs as fsa.

pronoun.fsm.txt

0   1   <s> <s>
1   0   <eps>   <eps>
0   2   </s>    </s>
2   0   <eps>   <eps>
0   3   <unk>   <unk>
3   0   <eps>   <eps>
0   4   a   a
4   5   l   l
5   6   l   l
6   0   +PRN    #
0

symbols.txt

<eps>   0
<s> 1
</s>    2
<unk>   3
a   4
l   5
+PRN    6
#   7

test.fsm.txt

0 1 a
1 2 l
2 3 l
3 4 +PRN
4

So I created pronoun.fsm.txt as FST

fstcompile --isymbols=symbols.txt --osymbols=symbols.txt pronoun.fsm.txt>pronoun.fst

Then, I created my inputs as acceptor

fstcompile --isymbols=symbols.txt --acceptor=true test.fsm.txt>test.fst

Lastly, I composed both fsts, but the output is nothing.

fstcompose pronoun.fst test.fst|fstprint --isymbols=symbols.txt --osymbols=symbols.txt

Here is the deal, I want to run a string input to a transducer I created with fstcompose command. But the output is blank.


回答1:


I found the problem. I want to answer this question instead of deleting it because OpenFST has really isufficient documentation and this question answers how to run FST on OpenFST. The problem is on fstcompose you have to give your inputs as the first argument. So the solution is

fstcompose test.fst pronoun.fst |fstprint --isymbols=symbols.txt --osymbols=symbols.txt


来源:https://stackoverflow.com/questions/47235658/openfst-fstcompose-for-transducing

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!