Manjaro下安装使用kenlm
2019-02-15 本文已影响3人
iamlightsmile
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
其中,分数越小,句子分数越低,越”不像“一个句子。