- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
在开始之前,请注意我使用的是 linux shell(通过 Python 中的 using subprocess.call()
),并且我使用的是 openFST。
我一直在筛选有关 openFST 的文档和问题,但我似乎无法找到这个问题的答案:实际上如何为 openFST 定义、编译和组合的 FST 提供输入?输出到哪里去?我只是执行'fstproject'吗?如果是这样,我将如何给它一个字符串来转换,并在达到最终状态时打印各种转换?
如果这个问题看起来很明显,我深表歉意。我对openFST还不是很熟悉。
最佳答案
一种方法是创建执行转换的机器。一个非常简单的例子是将字符串大写。
M.wfst
0 0 a A
0 0 b B
0 0 c C
0
随附的符号文件包含字母表中每个符号的一行。注意 0 保留用于 null (epsilon) 转换,在许多操作中具有特殊含义。
M.syms
<epsilon> 0
a 1
b 2
c 3
A 4
B 5
C 6
然后编译机器
fstcompile --isymbols=M.syms --osymbols=M.syms M.wfst > M.ofst
对于输入字符串“abc”,创建一个线性链自动机,这是一个从左到右的链,每个字符都有一条弧线。这是一个接受器,所以我们只需要一个列输入符号。
I.wfst
0 1 a
1 2 b
2 3 c
3
作为接受者编译
fstcompile --isymbols=M.syms --acceptor I.wfst > I.ofst
然后组装机器并打印
fstcompose I.ofst M.ofst | fstprint --isymbols=M.syms --osymbols=M.syms
这将给出输出
0 1 a A
1 2 b B
2 3 c C
3
fstcompose 的输出是输入字符串的所有转换的格。 (在这种情况下只有一个)。如果 M.ofst 更复杂,则 fstshortestpath 可用于使用标志 --unique -nshortest=n 提取 n 字符串。这个输出又是一个转换器,你可以废弃 fstprint 的输出,或者使用 C++ 代码和 OpenFst 库运行深度优先搜索来提取字符串。
插入 fstproject --project_output 会将输出转换为仅包含输出标签的接受器。
fstcompose I.ofst M.ofst | fstproject --project_output | fstprint --isymbols=M.syms --osymbols=M.syms
提供以下内容
0 1 A A
1 2 B B
2 3 C C
3
这是一个接受器,因为输入和输出标签是相同的,--acceptor 选项可以用来生成更简洁的输出。
fstcompose I.ofst M.ofst | fstproject --project_output | fstprint --isymbols=M.syms --acceptor
关于python - 您甚至如何提供(openFST 制作的)FST 输入?输出到哪里去?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9390536/
试图运行我用输入 FSA 编译的 FST,但是当我这样做时没有输出。 正如我搜索的那样,只有在 openfst 中运行命令是 fstcompose,所以它尝试做的是将 fst 与输入组合为 fsa。
在 OpenFST 中 web site上面写着; The OpenFst library is a C++ template library. From C++, include in the in
我尝试安装 OpenFst 以将其与 SphinxTrain 一起使用,并在启用 g2p 的情况下重新编译它,它似乎可以工作,但我遇到了以下错误: checking fst/fstlib.h usab
我正在使用方法 linear_chain 来接受一个 String。当我将它转换为 fst binary 然后转换为 DOT 格式时,我得到的是整数而不是字符。此外,我为每个正在读取的相应字母都有一个
我一直在做openfst-1.6.5的交叉编译,我的交叉编译器是gcc-linaro-6.3.1-2017.02-x86_64_aarch64-linux-gnu。 每次执行命令如下: ./confi
(菜鸟警告——我不是真正的 C++ 程序员,只是发现自己需要用 Java 重新实现一些 C++ 代码。) 我试图理解 the following function来自 OpenFST,作为在 JOpe
我正在尝试编译 OpenFST对于 iOS,这里是 make 失败的地方: cd openfst-1.6.5/src/lib /Applications/Xcode.app/Contents/Deve
OpenFST 提供 python extension 。是否可以使用该 API 从已编译的 FST 模型中读取输入符号 (isyms)? 我找不到合适的属性或方法来执行此操作: >>> import
在开始之前,请注意我使用的是 linux shell(通过 Python 中的 using subprocess.call()),并且我使用的是 openFST。 我一直在筛选有关 openFST 的
上周我一直在尝试安装 openfst python 库,但是我卡住了。我已经阅读了有关堆栈溢出和其他网站的所有类似问题,但这些说明均无效。我安装了最新的 Xcode,使用 brew install o
我是一名优秀的程序员,十分优秀!