KenLM工具包
基于统计语言模型当中的训练语料库方法在这里介绍一下KenLM模型
KenLM基本介绍
工具介绍:https://kheafield.com/code/kenlm/
github地址:https://github.com/kpu/kenlm#kenlm
下载地址:http://kheafield.com/code/kenlm.tar.gz
在linux当中使用KenLM工具包
1.第一步安装依赖
!apt install libboost-all-dev
!apt install libbz2-dev
!apt install libeigen3-dev
下载KenLM编译
!wget -O - https://kheafield.com/code/kenlm.tar.gz | tar xz
!mkdir kenlm/build
!cd kenlm/build && cmake .. && make -j8
安装
!cd kenlm/build && make install
2.导入训练数据地址训练一个3-gram模型
!lmplz -o 3 </data/NLP/Language_Models/lm_train_data> /data/NLP/Language_Models/lm.arpa
模型压缩
对训练得到的文件进行压缩:将arpa文件转换为binary文件,这样可以对arpa文件进行压缩和序列化,提高后续在python中加载的速度。针对我们训练的到的 lm.arpa 文件其转换命令为:
!build_binary -s /data/NLP/Language_Models/lm.arpa /data/NLP/Language_Models/lm.bin
安装KenLM的python接口
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple kenlm
加载模型,导入训练模型
import kenlm
## 将文件导入到 kenlm 语言模型中
model = kenlm.LanguageModel("/data/NLP/Language_Models/lm.bin")
# 使用语言模型对句子进行打分
sentence = 'you are a good man'
model.score(sentence)#-20.92301368713379
sentence = "I'm fine,thinks"
model.score(sentence)#-21.117055892944336
sentence = "wos as dadawnqsao asd aa aa aa"
model.score(sentence)#-46.037437438964844