基于KenLM的句子打分项目

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

你可能感兴趣的:(自然语言处理)