为什么对于不同的单词,Kenlm模型总是返回相同的分数?



为什么kenlm模型返回相同的值?我也试过用4克的arpa文件。同样的问题。

import kenlm
model = kenlm.mode('lm/test.arpa') # unigram model. 
print( [f'{x[0]:.2f}, {x[1]}, {x[2]}' for x in model.full_scores('this is a sentence', bos=False, eos=False)])
print( [f'{x[0]:.2f}, {x[1]}, {x[2]}' for x in model.full_scores('this is a sentence1', bos=False, eos=False)])
print( [f'{x[0]:.2f}, {x[1]}, {x[2]}' for x in model.full_scores('this is a devil', bos=False, eos=False)])

结果:

[-2.00, 1,真实,"-21.69、1、假","-1.59、1、假",' -2.69,1,真正的']

[-2.00, 1,真实,"-21.69、1、假","-1.59、1、假",' -2.69,1,真正的']

[-2.00, 1,真实,"-21.69、1、假","-1.59、1、假",' -2.69,1,真正的']

我自己想出来的。

输出中的True/False告诉您一个单词是否为OOV(超出词汇表)。KenLM模型为这些单词分配了一个固定的概率。在问题中的例句中,最后一个单词都是oov。

最新更新