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
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