kenlm安装和使用笔记

环境说明

采用Debian系统和anaconda安装的python3.6

安装依赖

如果有root权限, 采用apt安装依赖即可. 见github的链接

sudo apt install build-essential cmake libboost-system-dev libboost-thread-dev libboost-program-options-dev libboost-test-dev libeigen3-dev zlib1g-dev libbz2-dev liblzma-dev

否则的话, 需要安装eigen和boost库.
eigen安装

cd $HOME
wget -O - https://gitlab.com/libeigen/eigen/-/archive/3.3.7/eigen-3.3.7.tar.bz2 |tar xj

boost安装

# 下载boost
cd $HOME
wget https://jaist.dl.sourceforge.net/project/boost/boost/1.66.0/boost_1_66_0.tar.bz2
tar --bzip2 -xf /path/to/boost_1_61_0.tar.bz2
cd boost_1_61_0
./bootstrap.sh --prefix=$HOME/boost
./b2 install --prefix=$HOME/boost

如果安装的时候出现没找到pyconfig.h错误, 需要指定python的安装路径, 然后再执行安装命令.

# 找到自己python安装路径下的include dir, 比如 /usr/include/python2.7/
export CPLUS_INCLUDE_PATH="$CPLUS_INCLUDE_PATH:$HOME/anaconda3/include/python3.6m"

参考:

安装kenlm

git clone https://github.com/kpu/kenlm.git
cd kenlm
# 如果是apt安装的boost, 不用指定BOOST_ROOT
export BOOST_ROOT=$HOME/boost
mkdir -p build
cd build
cmake ..
make -j 4
# 安装python kenlm包
pip install https://github.com/kpu/kenlm/archive/master.zip

训练和使用LM

训练语言模型

# path to kenlm bin
KENLM=$HOME/kenlm/build/bin
data=/path/to/yourdata
dst=/savepath
# 二进制后的文件
dstbin=/binpath
# 构建arpa的语言模型, -o 指定语言模型的阶数
# 这一步如果因为数据太大, 导致训练失败, 可以设定占用的内存和临时文件的位置改变
# -S 50% -T /tmp/  : 指定最多占用50%的内存和利用/tmp存储临时文件
$KENLM/lmplz -o 5 < $data > $dst 
# 将语言模型二进制化
$KENLM/build_binary $dst $dstbin

在python使用训练好的语言模型

import kenlm
model = kenlm.Model('lm/test.arpa')
print(model.score('this is a sentence .', bos = True, eos = True))

猜你喜欢

转载自blog.csdn.net/feifei3211/article/details/108306144
今日推荐