Введение 3
Постановка задачи 5
Обзор литературы 6
Глава 1 Формирование корпуса данных 10
1.1 Корпус данных 10
1.2 Предобработка данных 10
1.3 Построение векторного пространства признаков 13
1.4 Проблема несбалансированных данных 14
Глава 2 Алгоритмы классификации 17
2.1 Наивный байесовский классификатор 17
2.1 Логистическая регрессия 18
2.3 Метод стохастического градиента 19
2.4 AdaBoost классификатор 19
2.5 Метод опорных векторов 20
Глава 3 Программная реализация и анализ результатов 22
3.1 Парсинг данных 22
3.2 Кросс-валидация 23
3.3 Методы оценки качества классификации 25
3.4 Результаты 27
Выводы 30
Заключение 31
Список литературы 32
Распространение интернета в современном мире позволило многим видам бизнеса полностью или частично перейти в онлайн. Коммуникация между бизнесом и клиентом в настоящее время зачастую происходит с использованием интернет технологий. Ежедневно тысячи людей заказывают товары в интернет магазинах, бронируют столики в ресторанах через приложения, а также оставляют отзывы на товары и услуги. Наличие отзывов на товары и услуги повышает доверие клиентов к бизнесу и способствует увеличению продаж. Добавление отзывов на страницу товара в интернет магазине может увеличить его продажи более чем в 1,4 раза [1]. Кроме того отзывы пользователей повышают количество уникального контента на сайте, что способствует продвижению сайта в поисковых системах.
Успех бизнеса напрямую зависит от его способности удовлетворять желания и потребности клиентов. Это утверждение верно как для производителей товаров, так и для предприятий, оказывающих услуги. Например, уровень качества сервиса и еды в ресторанах оказывает непосредственное влияние не только на удовлетворенность клиентов, но и на число постоянных клиентов [2].
Анализ тональности отзывов является полезным инструментом для бизнеса, так как позволяет автоматически получать мнения пользователей о товаре или услуге для анализа их качества и сравнения его с конкурентами. Популярные рекомендательные системы, такие как Yelp, Tripadvisor, Foursquare позволяют пользователям помимо отзывов ставить оценки бизнесу, и эта оценка может являться показателем значения тональности соответствующего отзыва. Однако если пользователь не оставил отзыв на одном из таких сайтов, владельцы бизнеса могут попросить клиента дать обратную связь через email рассылку. При больших объемах обратной связи возникает необходимость автоматической классификации полученных отзывов.
При покупке новых товаров и заказе новых услуг люди очень сильно полагаются на отзывы о товарах. Согласно опросу BrightLocal [3] положительные отзывы увеличивают вероятность использования услуги у 91% респондентов, в то время как 82% опрошенных отпугнут отрицательные отзывы. Использование автоматического анализа тональности в рекомендательных системах позволяет пользователям не знакомым с товаром или услугой узнать, что думают о данном товаре или услуге те, кто уже их использовал без необходимости в чтении всех отзывов.
В данной работе будет продемонстрировано сравнение алгоритмов машинного обучения в задаче классификации русскоязычных отзывов на рестораны, а также некоторые методы улучшения качества классификации.
Постановка задачи
Целью данной работы является разработка метода автоматического определения тональности русскоязычных отзывов на рестораны. Каждый отзыв должен быть классифицирован как положительный, нейтральный или отрицательный. Качество работы алгоритма, оцениваемое F-мерой должно быть не меньше 60%.
Для достижения поставленной в работе цели были поставлены следующие задачи:
1. Написание программы для сбора отзывов. Формирование корпуса данных.
2. Предобработка данных.
3. Построение векторных моделей отзывов.
4. Реализация некоторых алгоритмов машинного обучения.
5. Решение проблемы несбалансированных классов.
6. Реализация системы перекрестной проверки алгоритмов и векторных моделей. Выбор алгоритма и векторной модели с лучшими показателями F-меры.
В результате данной работы была разработана система выбора моделей для задачи многоклассовой классификации текстов. Для решения задачи автоматического определения тональности русскоязычных отзывов на рестораны был выбран алгоритм логистическая регрессия. Качество классификации было улучшено с помощью добавления биграмм и применения алгоритма SMOTE к обучающему множеству.
В качестве направления для дальнейших исследований может выступать анализ тональности отзывов на уровне аспектов. Например, для отзывов на рестораны имеет смысл узнать тональность аспектов: еда, интерьер и сервис.