2017-11-11 4 views
1

入力FSAでコンパイルしたFSTを実行しようとしましたが、出力がないときに出力されます。 私が検索したように、openfstのrunコマンドだけがfstcomposeなので、fstを入力としてfstを作成することです。Openfst fstcompose for transducing

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 

だから私は、FST

としてpronoun.fsm.txt作成
fstcompile --isymbols=symbols.txt --osymbols=symbols.txt pronoun.fsm.txt>pronoun.fst 

その後、私はアクセプタ

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

最後としての私の入力を作成し、私は両方のFSTSを構成が、出力は何もありません。

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

ここでは、fstcomposeコマンドで作成したトランスデューサに文字列入力を実行します。しかし、出力は空白です。

答えて

0

問題が見つかりました。私はOpenFSTが本当に不十分なドキュメンテーションを持っているので、この質問を削除するのではなく、OpenFSTでFSTを実行する方法に答えています。問題は、入力を最初の引数として与える必要があることにあります。だから解決策は

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