Прежде чем использовать наивный байесовский классификатор, давайте сначала определим его!
Наивный байесовский классификатор направлен на оценку вероятности каждого класса данного текста.
Просто возьмите простой пример для расчета результатов. В этом случае я буду использовать только признаки прилагательных.
Первый шаг (приоры):
P(положительный) = количество(положительное)/количество(документ) = 3/7
P(отрицательное) = количество(отрицательное)/количество(документ) = 4/7
Второй шаг (вероятность):
Для положительного класса: (в положительном классе 10 признаков adj)
P(восхитительно|положительно) = 2/10
P(плохо| положительно) = 1/10
P(отлично|положительно) = 1/10
P(фантастически|положительно) = 1/10
P(хорошо|положительно) = 1/10
P(отлично|положительно) = 1/10
P(прекрасно|положительно) = 1/10
P(исходно|положительно) = 0/10
P(плохо|положительно) = 0/10
P(известный|положительный) = 1/10
P(лишенный воображения|положительный) = 0/10
P(!!!|положительный) = 1/10
Для отрицательного класса: (в отрицательном классе есть восемь признаков adj)
P(потрясающие|отрицательные) = 0/8
P(плохие| отрицательно) = 3/8
P(отлично|отрицательно) = 0/8
P(фантастически|отрицательно) = 0/8
P(хорошо|отрицательно) = 0/8
P(отлично|отрицательно) = 2/8
P(прекрасно|отрицательно) = 0/8
P(исходно|отрицательно) = 1/8
P(плохо|отрицательно) = 1/8
P(известный|отрицательный) = 0/8
P(лишенный воображения|отрицательный) = 1/8
P(!!!|отрицательный) = 0/8
Заключительный шаг (задний):
Учитывая новое предложение, чтобы классифицировать, является ли оно положительным или отрицательным.
например Это была фантастическая история, добрая, милая.
P(положительно|предложение) = P(положительно) * P(фантастически|положительно) * P(хорошо|положительно) * P(прекрасно|положительно) = 0,00043
P(отрицательное|предложение) = P(отрицательное) * P(фантастическое|отрицательное) * P(хорошее|отрицательное) * P(прекрасное|отрицательное) = 0
Следовательно, тональность этого предложения будет классифицироваться как положительная.
Однако этот подход имеет некоторые недостатки. Давайте посмотрим на другой пример.
например Скучный фильм, нудный сюжет, банальный конец.
P(положительное|предложение) = P(положительное) * P(скучное|положительное) * P(раздражающее|положительное) * P(лишенное воображения|положительное) = 0
P(отрицательное|предложение) = P(отрицательное) * P(скучное|отрицательное) * P(раздражающее|отрицательное) * P(лишенное воображения|отрицательное) = 0
В этом случае мы не можем определить, является ли это предложение положительным или отрицательным.
Сглаживание Лапласа
P(токен|класс) = (количество(токен, класс) + 1) / (количество(класс) + |V|)
где |V| - количество различных атрибутов в обучающем корпусе.
например Скучный фильм, нудный сюжет, банальный конец.
P(положительное|предложение)
= P(положительное) * P(скучное|положительное) * P(раздражающее|положительное) * P(лишнее воображения|положительное)
= 3/7 * ((0+1 )/(10+12)) * ((0+1)/(10+12)) * ((0+1)/(10+12))
=0,000040
P(отрицательное|предложение)
= P(отрицательное) * P(скучное|отрицательное) * P(раздражающее|отрицательное) * P(лишенное воображения|отрицательное)
= 4/7 * ((0+1 )/(8+12)) * ((0+1)/(8+12)) * ((1+1)/(8+12))
=0,000143
Следовательно, настроение будет классифицироваться как отрицательное!
Вывод
Имея обученный классификатор, который классифицирует произвольные сегменты текста, мы можем использовать его для:
- Классифицировать целые документы, например. целый обзор.
- Классифицируйте предложения в документе, а затем вычислите классификацию документа, объединив настроения отдельных предложений в соответствии с некоторой функцией.
- Классифицируйте предложения или фразы, идентифицированные как обсуждение аспекта или особенности целевого объекта, и интерпретируйте настроение как отношение держателя мнения к конкретному обсуждаемому аспекту.