1.
【目标】:将二进制的模型数据lm_sc.t3g转换成 utf8格式 lm_sc.t3g.arpa
【操作】:
./tslminfo -p -v -l ../raw/dict.utf8 ../data/lm_sc.t3g >../raw/lm_sc.t3g.arpa
【解释】:
-p : 使用正常的频率值Pr, 非默认的-log(Pr)
-v : 输出apra格式
-l : 指定utf8格式的字典文件
../raw/dict.utf8 : utf8格式的字典文件
../data/lm_sc.t3g : 需要转换的二进制模型数据
../raw/lm_sc.t3g.apra : 输出utf8格式的模型数据
2.
【目标】: 将utf8格式的模型数据转换为二进制的模型数据
[操作] : tslmpack <arpa_file> <lexicon_file> <t3g_file>
./tslmpack ../raw/lm_sc.t3g.arpa ../raw/dict.utf8 lm_sc.t3g
3. 如果数据模型文件是2-gram不是默认的3-gram,如果执行2的命令会报错 “Failed to read from”
【解决方案】:
1) 修改类 CArpaSlm和tslmpack程序以支持2-gram。具体代码如下
diff --git a/src/slm/tslmpack/arpa_slm.cpp b/src/slm/tslmpack/arpa_slm.cpp
old mode 100644
new mode 100755
index 82029c6..5bb24