Почему модель Kenlm lm продолжает давать одинаковые оценки для разных слов?
Почему модель 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, True', '-21.69, 1, False', '-1.59, 1, False', '-2.69, 1, True']
['-2.00, 1, True', '-21.69, 1, False', '-1.59, 1, False', '-2.69, 1, True']
['-2.00, 1, True', '-21.69, 1, False', '-1.59, 1, False', '-2.69, 1, True']
1 ответ
Разобрался сам.
Значение True/False в выходных данных указывает, является ли слово OOV (вне словарного запаса) или нет. Модель KenLM присваивает этим словам фиксированную вероятность. В примерах в вопросах все последние слова - это OOV.