一、背景
统计语言模型工具有比较多的选择,目前使用比较好的有srilm及kenlm,其中kenlm比srilm晚出来,训练速度也更快,而且支持单机大数据的训练。现在介绍一下kenlm的使用方法。
二、使用kenlm训练 n-gram
1.工具主页:http://kheafield.com/code/kenlm/
2.工具包的下载地址:http://kheafield.com/code/kenlm.tar.gz
3.使用。该工具在linux环境下使用方便,windows下使用需要用cygwin 64模拟linux环境使用。 先确保linux环境已经按照1.36.0的Boost和zlib。
0.安装前建议先更新软件源
sudo apt update
1. Boost 库安装
sudo apt install libboost-all-dev
说明:libboost-all-dev
是 Ubuntu/Debian 中 Boost 库的集成包,包含所有 Boost 模块的头文件、静态库和动态库,无需分两次安装。
验证安装:
安装完成后,可通过以下命令检查版本:
dpkg -l | grep libboost
2. Zlib 库安装
sudo apt install zlib1g # 基础运行时库
sudo apt install zlib1g-dev # 开发文件(头文件和链接库)
说明:
zlib1g
提供运行时依赖,zlib1g-dev
包含编译所需的头文件和链接库。
验证安装:
dpkg -l | grep zlib1g
补充说明:
路径信息:
Boost 头文件默认路径:
/usr/include/boost
Zlib 开发文件路径:
/usr/include/zlib.h
和/usr/lib/x86_64-linux-gnu/libz.so
3.kenlm下载与编译
依赖安装
若首次运行 cmake
或 make
报错,需安装以下依赖库:
sudo apt update
sudo apt install cmake g++ libboost-all-dev libeigen3-dev zlib1g-dev libbz2-dev liblzma-dev
说明:
libboost-all-dev
提供 Boost 库支持(必装)libeigen3-dev
是线性代数库依赖(必装)zlib1g-dev
、libbz2-dev
、liblzma-dev
用于压缩文件处理cmake
和g++
是编译工具链
验证安装
cmake --version
kenlm 源码下载与编译
# 下载并解压 kenlm 源码(使用管道直接解压)
wget -O - https://kheafield.com/code/kenlm.tar.gz | tar xz
# 创建并进入 build 目录
mkdir -p kenlm/build && cd kenlm/build
# 生成编译配置
cmake ..
# 并行编译(使用 2 个线程)
make -j2
4.模型训练
训练命令
build/bin/lmplz -o 3 --verbose_header --text people2014corpus_words.txt --arpa result/people2014corpus_words.arps
说明
people2014corpus_words.txt文件必须是分词以后的文件。
-o后面的3表示的是3-gram,一般取到3即可,但可以结合自己实际情况判断。
5.压缩
压缩模型为二进制文件:
build/bin/build_binary ./result/people2014corpus_words.arps ./result/people2014corpus_words.klm
————————————————
参考文章:https://blog.csdn.net/mingzai624/article/details/79560063
评论