注意:下面缺少任何一个依赖包都不能安装成功,建议在线安装,让系统自动配置。CentOS和Ubuntu安装的包有所不同
Linux中离线下载软件包网站,主要提供RPM包:https://rpm.pbone.net/ ,https://pkgs.org/
1、安装boost
yum install boost-devel boost-test boost
如果boost的依赖包没有安装完整,安装过程中可能会出现以下错误
/usr/share/cmake/Modules/FindBoost.cmake:1138 (message): Unable to find the requested Boost libraries
2、安装 zlib、bzip2和xz
yum install zlib bzip2 xz
3、安装cmak和make
yum install cmake make
4、安装kenlm
kenlm介绍
http://kheafield.com/code/kenlm/
下载kenlm
将kenlm-master.zip下载到/usr/local目录下
解压zip
unzip kenlm-master.zip
重新命名为kenlm
mv kenlm-master kenlm
进入kenlm
cd kenlm
建立目录
mkdir bulid
进入bulid,使用cmake编译,生成程序库
cmake ..
接着进行make编译
make
5、安装kenlm的python安装包
进入kenlm
python setup.py install
6、简单使用
6.1 数据
test数据,注意词必须要用空格隔开
test
河南大学 真棒
中国 人民 我 爱 你
北京 欢迎 您
6.2 训练模型 训练模型,输出的模型为test.arpa
注意:lmplz是在bulid的bin目录下,不是在kenlm下,“<”表示将文件作为命令的参数输入,“>”表示输出到指定文件
bin/lmplz -o 3
也可以使用如下命令
bin/lmplz -o 3 --verbose_header --text test --arpa test.arpa
如果出现下面问题,添加--discount_fallback参数,即 bin/lmplz -o 3 --discount_fallback test.arpa
Could not calculate Kneser-Ney discounts for 3-grams with adjusted count 4 because we didn't observe any 3-grams with adjusted count 3; Is this small or artificial data?
Try deduplicating the input. To override this error for e.g. a class-based model, rerun with --discount_fallback
6.3 使用python
test.py
import kenlm
model = kenlm.Model('test.arpa')
print(model.score('中国', bos=False, eos=False))
原文链接:https://blog.csdn.net/make_progress/article/details/107517552