使用kenlm训练语言模型,并对句子进行打分

我们可以使用一个kenlm的python包去训练一个语言模型,并对每个句子进行打分。

安装kenlm:

pip install https://github.com/kpu/kenlm/archive/master.zip

训练语言模型

首先下载语言数据,我们可以下载Bible数据:

wget https://github.com/vchahun/notes/raw/data/bible/bible.en.txt.bz2

然后创建一个process.py文件,对数据进行分词等预处理:

import sys
import nltk

for line in sys.stdin:
    for sentence in nltk.sent_tokenize(line):
        print(' '.join(nltk.word_tokenize(sentence)).lower())

接下来就是训练一个语言模型:

bzcat bible.en.txt.bz2 |\
python process.py |\
./kenlm/bin/lmplz -o 3 > bible.arpa

然后可以将训练好的语言模型转换为二进制格式,便于导入模型等:

./kenlm/bin/build_binary bible.arpa bible.klm

最后,我们就可以使用这个语言模型去对每个句子进行打分:

import kenlm
model = kenlm.LanguageModel('bible.klm')
model.score('in the beginning was the word')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值
>