Увидев электронное письмо с темой «Избавьтесь от долгов с помощью наших советов по торговле акциями!», вы бы сосредоточились на словах «избавьтесь», «долги», «акции» и «совет» и вычислили бы следующие конкурирующие значения:
1. Оценка «спам» =
2. Оценка «не спам» =
Однако есть небольшая проблема. Новые и редкие слова требуют некоторой корректировки расчетов, чтобы вероятности не умножились на ноль. В крошечном наборе данных, приведенных в табл. 11.4, слово «избавьтесь» вообще не встречается, тогда как слова «долги», «акции» и «совет» встречаются только в спам-сообщениях. Из-за подобных нюансов оценки «спам» и «не спам» окажутся равными нулю. Чтобы это исправить, давайте представим, что мы встречали каждое слово хотя бы один раз, прибавив 1 к частоте встречаемости. Кроме того, мы прибавим 2 к частоте встречаемости спама (и не спама), чтобы значения не были равны 1[120].
Теперь мы можем произвести вычисления:
Первое значение больше второго, поэтому электронное письмо с темой: «Избавьтесь от долгов с помощью наших советов по торговле акциями!» мы классифицируем как спам.
Анализ настроений – это популярный способ применения алгоритмов классификации текстов к данным социальных сетей. Если вы введете в поисковую строку Google запрос «анализ настроений по сообщениям в Twitter», то количество результатов вас наверняка удивит; складывается впечатление, что этим заняты все. Суть идеи в данном случае та же, что и в рассмотренном выше примере со спамовыми/не спамовыми письмами и сводится к ответу на вопрос о том, являются ли слова в сообщении в социальной сети (обзоре продукта или опросе) скорее «положительными» или скорее «отрицательными». То, что вы будете делать с полученной информацией, зависит от конкретного бизнес-кейса. Однако следует отметить, что при анализе настроений не стоит выполнять экстраполяцию за пределы контекста обучающих данных, рассчитывая на получение осмысленных результатов.
Что мы имеем в виду? Дело в том, что многие классификаторы для «анализа настроений» обучаются на данных, находящихся в свободном доступе в Интернете. Популярный набор данных для студентов – большая коллекция рецензий на фильмы из базы данных IMDb.com. Этот набор данных и любая модель, созданная на его основе, будут иметь отношение исключительно к обзорам фильмов. Разумеется, она будет ассоциировать такие слова, как «великолепный» и «замечательный», с положительными эмоциями, однако не стоит ожидать, что эта модель будет хорошо работать при ее применении к уникальному бизнес-кейсу, которому присуща особая терминология.
Методы на основе деревьев, такие как случайный лес и бустинг (усиление), могут применяться для решения задач классификации текстов и, как правило, работают лучше, чем наивный байесовский алгоритм с некоторыми наборами данных. Однако наивный байесовский алгоритм обычно становится хорошей отправной точкой и отличается прозрачной интерпретацией.
Практические соображения при работе с текстом