Рассмотрим проблему классификации текста спама или не спама с помощью алгоритма наивного Байеса.
Вопрос следующий:
как вы делаете прогнозы о документе W =, если в этом наборе слов вы видите новое слово wordX, которое вообще не было замечено вашей моделью (поэтому у вас даже нет оценки вероятности сглаживания Лапласа для него)?
Обычное дело — просто игнорировать это слово X, даже если оно было замечено в текущем тексте, потому что оно не связано с вероятностью? т.е. Я знаю, что иногда для решения этой проблемы используется сглаживание Лапласа, но что, если это слово совершенно новое?
Некоторые из решений, о которых я думал:
1) Просто игнорируйте эти слова при оценке классификации (самая простая, но иногда неправильная...?, однако, если обучающая выборка достаточно велика, это, вероятно, лучше всего сделать, так как я думаю, что разумно предположить ваши особенности и материал был выбран достаточно хорошо, если у вас есть, скажем, 1 или 20 миллионов данных).
2) Добавьте это слово в свою модель и полностью измените свою модель, потому что словарный запас изменился, поэтому вероятности должны меняться везде (хотя у этого есть проблема, поскольку это может означать, что вам придется часто обновлять модель, особенно если ваш анализ 1M документов , сказать)
Я провел некоторое исследование по этому вопросу, прочитал несколько слайдов Дэна Джурафски НЛП и НБ, посмотрел несколько видео на курсе и просмотрел некоторые исследовательские работы, но не смог найти ничего полезного. Мне кажется, что эта проблема вовсе не нова, и должно быть что-то (эвристическое..?) там. Если нет, было бы здорово узнать это тоже!
Надеюсь, что это полезный пост для сообщества и заранее спасибо.
PS: чтобы сделать проблему немного более явной с одним из решений, которые я видел, скажем, что мы видим неизвестное новое слово wordX в спаме, тогда для этого слова мы можем сделать 1/ count(spams) + |Vocabulary + 1|, проблема, с которой я столкнулся при выполнении чего-то подобного, заключается в том, значит ли это, что мы меняем размер словаря, и теперь каждый новый документ, который мы классифицируем, имеет новую функцию и словарное слово? Это видео, похоже, пытается решить эту проблему, но я не уверен, что это хорошо, или 2, может быть, я неправильно его понял: