用于转换的 Openfst fstcompose
Openfst fstcompose for transducing
尝试 运行 我用输入 FSA 编译的 FST,但是当我这样做时没有输出。
正如我搜索的那样,openfst 中唯一的 运行 命令是 fstcompose,所以我尝试做的是将 fst 与输入组合为 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
所以我创建了 pronoun.fsm.txt 作为 FST
fstcompile --isymbols=symbols.txt --osymbols=symbols.txt pronoun.fsm.txt>pronoun.fst
然后,我将输入创建为接受器
fstcompile --isymbols=symbols.txt --acceptor=true test.fsm.txt>test.fst
最后我写了两个fst,结果什么都没有
fstcompose pronoun.fst test.fst|fstprint --isymbols=symbols.txt --osymbols=symbols.txt
这是交易,我想 运行 一个字符串输入到我用 fstcompose 命令创建的传感器。但是输出是空白的。
我发现了问题。我想回答这个问题而不是删除它,因为 OpenFST 的文档确实不足,这个问题回答了如何 运行 FST on OpenFST。问题出在 fstcompose 上,您必须将输入作为第一个参数。所以解决方案是
fstcompose test.fst pronoun.fst |fstprint --isymbols=symbols.txt --osymbols=symbols.txt
尝试 运行 我用输入 FSA 编译的 FST,但是当我这样做时没有输出。 正如我搜索的那样,openfst 中唯一的 运行 命令是 fstcompose,所以我尝试做的是将 fst 与输入组合为 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
所以我创建了 pronoun.fsm.txt 作为 FST
fstcompile --isymbols=symbols.txt --osymbols=symbols.txt pronoun.fsm.txt>pronoun.fst
然后,我将输入创建为接受器
fstcompile --isymbols=symbols.txt --acceptor=true test.fsm.txt>test.fst
最后我写了两个fst,结果什么都没有
fstcompose pronoun.fst test.fst|fstprint --isymbols=symbols.txt --osymbols=symbols.txt
这是交易,我想 运行 一个字符串输入到我用 fstcompose 命令创建的传感器。但是输出是空白的。
我发现了问题。我想回答这个问题而不是删除它,因为 OpenFST 的文档确实不足,这个问题回答了如何 运行 FST on OpenFST。问题出在 fstcompose 上,您必须将输入作为第一个参数。所以解决方案是
fstcompose test.fst pronoun.fst |fstprint --isymbols=symbols.txt --osymbols=symbols.txt