Ubuntu系统kenlm安装及n-gram语言模型训练

一、kenlm安装

1、安装依赖包

对新安装的ubuntu系统,可能会缺失很多依赖包,如果已安装可以忽略。

sudo apt-get update    # 升级apt-get

sudo apt-get install cmake gcc g++    # 安装编译器

sudo apt install libboost-dev libboost-test-dev libboost-all-dev # 安装boost

sudo apt install libeigen3-dev   # 安装eigen3

sudo apt install libbz2-dev liblzma-dev  # 安装BZip2、LibLZMA

2、安装kenlm

wget -O - http://kheafield.com/code/kenlm.tar.gz |tar xz   # 下载安装包

cd kenlm
mkdir -p build
cd build
cmake ..
make -j 4

 

二、使用kenlm训练n-gram语言模型

1、进入kenlm的build文件夹

cd ~/kenlm/build/

2、执行训练命令

bin/lmplz -o 4 --verbose header --text corpus.txt --arpa lm_4gram.arpa --skip_symbols
  • -o 4:指定为4-gram
  • --verbose header:指定在模型文件开始生成gram统计
  • --text:训练文本语料
  • --arpa:输出的模型文件名,arpa格式
  • --skip_symbols:训练时跳过文本语料中的特殊符号(

#特别注意#:训练的文本需要分词或者分字(字或者词之间要用空格分开)

3、将模型转化为二进制格式(压缩模型文件、提高预测速度)

bin/build_binary -s lm_4gram.arpa lm_s.bin

4、将模型转化为trie二进制格式(进一步压缩模型文件)

bin/build_binary trie -a 22 -q 8 -b 8 lm_4gram.arpa lm_trie.bin
  • -a:表示在"trie"中用于切分的指针的最高位数
  • -q:概率量化参数
  • -b:回退量化参数

三、在python中使用n-gram模型

1、python中安装kenlm

  • ubuntu下安装
pip3 install kenlm
  • window下安装
https://blog.csdn.net/zkgoup/article/details/105492743

2、n-gram使用

#!/usr/bin/ python3

import kenlm

def calculate_score(line):
    new_line = " ".join([char for char in line])
    print(model.score(new_line))

model = kenlm.Model("lm_trie.bin")   # 以上的三种模型均可使用
line1 = "一九九一年"
line2 = "一九九七一年"

calculate_score(line1)
calculate_score(line2)

# #运行结果
#-14.985698699951172
#-18.91192626953125

 

参考文献:

https://blog.csdn.net/qq_29883591/article/details/80206940

https://blog.csdn.net/weixin_42014622/article/details/99691864

https://blog.csdn.net/benbenls/article/details/102898960

你可能感兴趣的:(语音识别,自然语言处理,深度学习,python,ubuntu)