Manjaro下安装使用kenlm

kenlm是一个linux下快速轻量的语言模型训练工具。

下载

git clone https://github.com/kpu/kenlm.git

或者

wget https://kheafield.com/code/kenlm.tar.gz | tar xz

安装依赖

yay -S boost eigen

编译安装

以上两种来源区别我也不是很清楚,没有细究。

mkdir kenlm/build
cd kenlm/build
cmake ..
make -j8
make install

安装Python库

以上下载的文件中有python安装脚本setup.py文件,执行

python setup.py install

或者,

pip install https://github.com/kpu/kenlm/archive/master.zip

或者从pypi源安装,

pip install kenlm

训练模型

准备训练数据

首先我们需要有一个分好词的语料文件,如:


训练

然后使用以下命令训练:

lmplz -o 3 <pku_training.utf8> lm_ng3.arpa

其中-o参数指明n-gram语法为3,<>中的为训练语料路径,后面跟模型保存路径

模型压缩

对模型压缩可以提高加载速度,不压缩也可以

build_binary -s lm_ng3.arpa lm_ng3.bin

使用Python接口

import kenlm
import jieba
model = kenlm.LanguageModel('./lm_ng3.bin')
sent_1 = '哈哈,我是李磊,你好呀'
sent_2 = '安赛飞啊,诶爱尔兰'
def process(sent):
  return ' '.join(jieba.cut(sent))
print(model.score(process(sent_1))
print(model.score(process(sent_2))

结果输出:

-40.40456008911133
-47.40667724609375

其中,分数越小,句子分数越低,越”不像“一个句子。

参考

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章