3

我是语言建模的新手,并且使用 kenlm(或this)从一个大文本文件(~7gb.)制作了一个 3grams 语言模型。我从我的语言模型制作了一个二进制文件,并像这样在 python 中调用它:

import kenlm
model = kenlm.LanguageModel(<my .klm file>)
model.score(<my sentence>)

我得到一个负数作为结果。当我改变得分的句子时,结果仍然是负数但改变了。我给它正好一个大文本文件句子,但它给了我一个糟糕的负数(与文本文件中没有的句子)我不知道否定结果是什么意思以及如何将其转换为肯定和正常结果以在某些句子之间选择最正确的句子。

4

2 回答 2

2

要获得介于 0 和 1 之间的相应分数:

import math
print(math.pow(10,model.score(<my sentence>)))
于 2018-04-02T03:25:01.410 回答
2

最后的负数说,-9.585592 是句子的对数概率。由于它是对数,因此您需要计算 10 的该数字的幂,大约为 2.60 x 10-10。也许这是您正在寻找的正数。

更多信息在这里

于 2017-02-28T08:25:25.127 回答