Оценка качества "Automatic spelling correction component"

Добрый день! Подскажите пожалуйста, в таблице характеристик оценки качества Automatic spelling correction component указана precision в лучшем случае (кроме Yandex.Speller) как 53.26%. Можете подсказать, в каком контексте она подсчитана:

  1. Из 100 искаженных слов на входе в половине случаев модель не предложила правильные корректировки. Этот вариант допустим, т.к. модель помогла в половине случаев.

  2. Из 100 искаженных слов на входе в половине случаев модель предложила неправильные корректировки. В этом случае модель как бы не помогла и ухудшила ситуацию.

  3. Из 100 искаженных слов на входе в половине случаев модель либо не предложила корректировку либо предложила неправильную?

Возможно ли использование модели с порогом решающего правила таким, чтобы использовались такие подсказки, в которых модель “сильно” уверенна? Суть в том, что хочется максимально исключить случаи неправильной рекомендации слова - т.е. чтобы модель помогала, а не вредила. Спасибо!

  1. Из ста исправлений половина была правильной, то есть правильное или искажённое слово было заменено на искажённое.

Можно попробовать уменьшить штраф за отсутствие слова в словаре, тогда precision растёт, но recall (количество правильных исправлений, делённое на количество исходных ошибок) падает.
Этого пока нельзя сделать в конфигах, но попробуем добавить https://github.com/deepmipt/DeepPavlov/pull/747 в ближайших релизах

1 Like

Да, интересно посмотеть без штрафа за отсутствие слов в словаре. Именно precision - сколько процентов ошибок модель сделала, предложив неправильное исправление = число предложенных ошибочных исправлений / число предложенных исправлений. По идее recall будет регулироваться объемом словаря и его можно отдельно замерять и наращивать словарь. Тут критично именно не навредить - не исказить исходный текс.