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

其中,分數越小,句子分數越低,越”不像“一個句子。

參考

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