thrax2fst

一、环境

二、流程

1.编写.grm文件
例如,编写一个简单中文颜色转英文单词的例子

import 'byte.grm' as b;

seven_color = (("绿色":"green") |
("红色":"red") |
("黄色":"yellow") |
("蓝色":"blue") |
("粉红色":"pink") |
("黑色":"black") |
("白色":"white")
);

export COLOR = CDRewrite[seven_color, "", "", b.kBytes*];

2.使用thraxmakedep生成thrax语法依赖关系,产生Makefile文件,对.grm语法进行集中make编译。

color.far: color.grm byte.far
        thraxcompiler --input_grammar=$< --output_far=$@

byte.far: byte.grm
        thraxcompiler --input_grammar=$< --output_far=$@

clean:
        rm -f byte.far

3.在同.grm和MakeFile路径下使用make编译。

make

4.编译以后,会产生.far文件,即fst archieve文件。
5.接下来可以对产生的.far文件进行测试,测试使用thraxrewrite-tester。

  • 一个个测试
thraxrewrite-tester --far=color.far --rules=COLOR

–rules是export导出的规则,该规则其实为一个fst对象。

Input string: 红色
Output string: red
Input string: 黑色
Output string: black
Input string: 蓝色
Output string: blue
Input string: 白色
Output string: white

按ctrl+D可以结束测试。
上面测试是一个个测试的,也可以集中测试

  • 集中测试
cat testcase.txt | thraxrewrite-tester --far=color.far
  • 可以使用grmtest、grmtest-with-symbols等进行集中编译、测试,这些工具位于【一、环境】下的bin/目录下工具

6.far2fst
使用far2fst转fst文件即可,可以使用

far2fst color.far

可以用fstinfo,fstdraw,fstprint等命令查看fst信息。
也可使用thrax的LoadFst函数去加载G.fst等fst文件,使用thraxrewrite-tester对输入输出进行测试。

7.得到.fst文件后,进行组合、优化、确定化等操作,得到HCLG.fst。

上述过程中的命令具体使用及可选参数可以查看相应官网或–help,其实整个流程也可以编写一个shell文件进行自动化操作。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

格桑8

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值