анализ одного оупенсорс спеллчекера по следующим тестам:
Данные - 1500 популярных запросов за некоторый интервал времени, каждый запрос был разделен на слова (по пробелам), приведен к нижнему регистру, удалены слова содержащие английские буквы, цифры и длина которых меньше 4 символов.
Тест 1 - удаление одной случайной буквы:- Для каждого слова генерируется 3 различных варианта, где каждый вариант - исходное слово с удаленной одной буквой.
- Все измененные слова были обработаны при помощи spellchecker.- Были получены следующие метрики: accuracy = 0.43 (доля совпадений исправленного слова с исходным) и среднее расстояние Левенштейн = 0.85 (между исправленными словами и исходными). Расстояние Левенштейна между опечатками и исходными словами = 1 (удаление одной буквы).
Тест 2 - замена случайной буквы на букву, расположенную рядом на клавиатуре:
- Для каждого слова генерируется 3 различных варианта, где каждый вариант - исходное слово с заменой одной случайной буквы.- Все измененные слова были обработаны при помощи spellchecker.
- Были получены следующие метрики: accuracy = 0.61 (доля совпадений исправленного слова с исходным) и среднее расстояние Левенштейн = 0.48 (между исправленными словами и исходными). Расстояние Левенштейна между опечатками и исходными словами = 1 (удаление одной буквы).
Это очень плохое качество на мой взгляд. Подскажите, плес, как можно реализовать спеллчекер на основе именно корпуса документов, чтобы он исправлял запросы как надо, а не как не надо?)
https://habr.com/ru/companies/sbermegamarket/articles/673614/ Мы так делали
когда дадут дообучать (или уже можно?) - будет можно сделать чтобы хорошо работало и для специфических датасетов (типа названий товаров)
(хотя бы для генерации хорошего датасета для обучения другой более легковесной модели)
Обсуждают сегодня