kenlm N-gram语言模型的安装踩坑及使用

1. 安装步骤

1.1 确认工作环境

	一般来说,kenlm只支持在Linux环境下进行训练,因此想用kenlm训练自己的语言模型的小伙伴最好准备一个Linux
环境;至于其他平台的操作方法可能会有, 蛋酥我没找到。。。

1.2 确认kenlm的依赖环境

	请先确认Linux环境下是否已经安装boost、zlib、bzip2、xz等依赖环境是否安装完好!!!

等等… 你说怎么查看Linux已安装程序或软件???

	准备好了...... 大招已放出 ---> 准备接招吧, 接不住我也不会笑话你(PS:我看不到鸭@_@)
1.2.1 看我—千里眼:
	rpm -qa		# 还能过得去,最起码是将安装程序都列出来了
1.2.2 看我—火眼金睛:
	dpkg -l   # 这个以列表形式列出并经过排序,而且——有标注详细信息

1.3 kenlm的依赖环境具体安装步骤:

1.3.1 boost环境安装:

特别需要注意的一点是boost最好不要多次重复安装不同版本
首先我们可以move到官网去撸各种版本的boosthttp://www.boost.org/.

wget https://dl.bintray.com/boostorg/release/1.71.0/source/boost_1_71_0.tar.gz
tar xzvf boost_1_71_0.tar.gz
cd boost_1_71_0
./bootstrap.sh
./b2 install

不想动手的话直接按下面操作:

boost:
yum install boost
yum install boost-devel
1.3.2 xz环境安装:
wget http://tukaani.org/xz/xz-5.2.2.tar.gz
tar xzvf xz-5.2.2.tar.gz
cd xz-5.2.2
./configure
make
make install

另一种xz安装方法:

xz:
yum install xz-libs
yum install xz-devel
1.3.3 zlib环境安装:
wget http://zlib.net/zlib-1.2.8.tar.gz
tar xzf zlib-1.2.8.tar.gz
cd zlib-1.2.8
./configure
make
make install

另一种zlib安装方法:

zlib:
yum install zlib
yum install zlib-devel
1.3.4 bzip2环境安装:
wget http://www.bzip.org/1.0.6/bzip2-1.0.6.tar.gz
tar xzvf bzip2-1.0.6.tar.gz
cd bzip2-1.0.6/
make
make install

另一种bzip2安装方法:

yum install libbz2-dev
yum install liblzma-dev

1.4 最最重要的过程来了——kenlm安装:

首先给出官方路径及编译方法:

wget -O - https://kheafield.com/code/kenlm.tar.gz |tar xz
mkdir kenlm/build
cd kenlm/build
cmake ..
# 编译
make -j2

当我们执行到第四步:cmake .., 如果有报错,说明我们需要安装cmake:

1.5 cmake安装:

安装cmake参考(无坑):https://blog.csdn.net/fxnawm/article/details/78489586.

  1. 请按照上面的教程进行操作,下载最新版本的cmake包;
  2. 然后解压安装包:tar -zxvf cmake-3.15.3-Linux-x86_64.tar.gz
  3. 接下来重命名: mv cmake-3.15.3-Linux-x86_64 cmake
  4. 最后配置环境变量:
    4.1. 全局建议修改这个文件/etc/profile
    4.2 系统级环境变量,全局(公有)配置一般修改 ~/.bash_profile,bash shell执行时,不管是何种方式,都会读取此文件
	//环境变量路径是最好填本地cmake包绝对路径
	# added by cmake installer
	export PATH="/home/work/cmake/bin:$PATH"
  1. 配置完成后,重新打开一个窗口,执行:cmake --version, 显示如下,说明安装成功
cmake version 3.15.3

CMake suite maintained and supported by Kitware (kitware.com/cmake).

1.6 eigen3安装:

wget https://bitbucket.org/eigen/eigen/get/3.2.8.tar.bz2
tar -jxvf eigen-eigen-07105f7124f9.tar.bz2
mv eigen-eigen-07105f7124f9 eigen3
然后将eigen3加入到环境变量
export EIGEN3_ROOT=$HOME/work/eigen3

接下来就是我们环境安装部分的收尾阶段了!
上面依赖环境安装完成后,删除上次编译缺失的编译文件: rm CMakeCache.txt
然后进入kenlm/build文件夹下继续运行kenlm编译过程:

cd kenlm/build
cmake ..
# 编译
make -j2

接下来我们会看到一个kenlm的编译进度,等待编译完成。

2. kenlm的使用:

在我大华夏环境下,我们最常接触的还是各种各样的中文处理任务,中文语言模型也就不可避免的会接触到。那么怎么理解kenlm语言模型呢?
这里我们可以简单了解下:kenlm可以根据需要训练字符级别语言模型和词级别语言模型。
那么如何使用kenlm进行N-gram语言model的训练呢?

2.1 字符级别n-gram语言模型训练

先将语料按字拆分,用空格将每个字符隔开,并连接成字符串,按行存入txt作为训练语料进行训练。

训练的命令如下:我们可以根据自己的需要去选择gram大小,一般来说5是一个比较合适的值

先进入kenlm/build/目录下
bin/lmplz -o 5 --verbose_header --text data/corpus_cut_char.txt --arpa result/corpus_cut_char.arpa
参数介绍:
-o n:最高采用n-gram语法
-verbose_header:在生成的文件头位置加上统计信息
–text text_file:指定存放预料的txt文件,.txt文件必须是分词以后的文件。
–arpa:指定输出的arpa文件

2.2 词级n-gram语言模型训练

先将语料分词,然后用空格将分词连接成字符串,存入txt作为训练语料进行训练。

训练的命令如下:我们可以根据自己的需要去选择gram大小,一般来说3是一个比较合适的值

先进入kenlm/build/目录下
bin/lmplz -o 3 --verbose_header --text data/corpus_cut_word.txt --arpa result/corpus_cut_word.arpa

2.3 压缩模型

训练完模型后一般需要将arpa文件变为二进制文件,压缩。压缩模型为二进制,方便模型快速加载:

bin/build_binary -s result/corpus_cut_word.arpa result/corpus_cut_word.klm
	执行完后会在当前result/目录下保存两个文件,一个是corpus_cut_word.arpa,另一个是corpus_cut_word.klm,arpa
文件失效,所以只能用klm文件。
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值