Windows 下执行Get-Content .\merge_2_3.txt | .\build_grammar.windows.exe zh-moqi即可生成.gram文件
WSL / Linux 下执行cat merge_2_3.txt | ./build_grammar.linux zh-moqi即可生成.gram文件
mac下 执行cat merge_2_3.txt| ./build_grammar 即可生成.gram文件
可以参考制作白霜词库的过程
脚本见https://github.com/gaboolic/rime-frost/blob/master/others/program/mnbvc/yuliao_fenci_to_txt.py
使用kenlm 这个开源的语言模型库,编译后,进入build目录,把分词后的文本也放入build目录执行
bin/lmplz -o 4 --verbose_header --text ./zhihu_deal_fenci_merge.txt --arpa MyModel/log.arpa --prune 0 50 100
--prune 0 50 100是剪枝,电脑配置好就不需要
即可生成.arpa文件
先执行python arpa.py log.arpa --output-dir output
再执行python merge_ngram.py --input-dir output --orders 2 3合并arpa文件中的ngrams结果,获得merge_2_3.txt
cat merge_2_3.txt| ./build_grammar
但是这里注意build_grammar是macos下编译的,其他系统需要在各自系统下编译。编译方式参考https://github.com/gaboolic/librime/blob/master/.github/workflows/release-ci.yml
项目里额外放了两个可执行文件:
build_grammar.windows.exe:Windows 版本build_grammar.linux:WSL / Linux 版本
Windows 下可以这样生成 .gram:
Get-Content .\merge_2_3.txt | .\build_grammar.windows.exe zh-moqi
这样会在当前目录生成zh-moqi.gram。
WSL 下可以这样生成 .gram:
cat merge_2_3.txt | ./build_grammar.linux zh-moqi
这样也会在当前目录生成zh-moqi.gram。
如果是从 .arpa 开始,完整示例可以写成:
python arpa.py .\lm_sc.arpa --output-dir .\lm_sc_output
python merge_ngram.py --input-dir .\lm_sc_output --orders 2 3
然后在 Windows 下执行:
Get-Content .\lm_sc_output\merge_2_3.txt | .\build_grammar.windows.exe lm_sc
或者在 WSL 下执行:
cd /mnt/d/vscode/moqi-input-method-projs/rime-build-grammar/lm_sc_output && cat merge_2_3.txt | ../build_grammar.linux lm_sc