CentOS安装kenlm

注意:下面缺少任何一个依赖包都不能安装成功,建议在线安装,让系统自动配置。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

https://github.com/kpu/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 test.arpa

也可以使用如下命令

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

上一篇:2021-10-14


下一篇:boost::asio教程(一) :tcp server与tcp client