АННОТАЦИЯ 2
ВВЕДЕНИЕ 7
1 ПОДХОДЫ К ЗАДАЧЕ АНАЛИЗА ТОНАЛЬНОСТИ ТЕКСТА 9
1.1 Методы классификации тональности 9
1.1.1 Методы, основанные на правилах и словарях 9
1.1.2 Метод, основанный на теоретико-графовых моделях 9
1.1.3 Машинное обучение без учителя 10
1.1.4 Машинное обучение с учителем 10
1.2 Обучение с учителем для задачи анализа тональности текста .... 11
1.2.1 Наивный байесовский классификатор 11
1.2.2 Метод опорных векторов 13
1.2.3 Рекурсивная нейронная сеть 14
1.3 Программное обеспечение для построения искусственной
нейронной сети 17
1.4 Методы построения векторного представления текста 18
1.4.1 «Мешок слов» 18
1.4.2 Word2vec 19
1.5 Постановка задачи 21
1.6 Выводы по разделу 21
2 МОДЕЛИ ВЕКТОРИЗАЦИИ ТЕКСТА И РЕКУРСИВНОЙ
НЕЙРОННОЙ СЕТИ ДЛЯ РЕШЕНИЯ ЗАДАЧИ ВЫЯВЛЕНИЯ ТОНАЛЬНОСТИ СООБЩЕНИЙ 23
2.1 Векторизация текста 23
2.2 Математическая модель рекурсивной нейронной сети 25
2.2.1 Функция активации 26
2.2.2 Функция потерь 28
2.2.3 Проблема переобучения модели 29
2.2.4 Обучение методом адаптивного градиента 30
2.3 Выводы по разделу 31
3 РАЗРАБОТКА АЛГОРИТМОВ И ПРОГРАММЫ ДЛЯ АНАЛИЗА
ТОНАЛЬНОСТИ ТЕКСТА 33
3.1 Алгоритм предварительной обработки 33
3.2 Алгоритм обучения нейронной сети 36
3.3 Алгоритм работы программы анализа тональности 37
3.4 Выводы по разделу 37
4 МЕТОДИКА И ОБРАБОТКА РЕЗУЛЬТАТОВ ЭКСПЕРИМЕНТА ... 40
4.1 Исходные данные 40
4.2 Методика экспериментального исследования 40
4.3 Результаты эксперимента 42
4.4 Выводы по разделу 43
ЗАКЛЮЧЕНИЕ 44
БИБЛИОГРАФИЧЕСКИЙ СПИСОК 46
ПРИЛОЖЕНИЕ 1 Текст программы 49
В наше время социальные сети играют не последнюю роль в жизни каждого человека. Социальные сети с момента их создания притягивают пользователей тем, что можно делиться своими впечатлениями и мыслями, где бы они ни находились. Число пользователей в социальных сетях превышает миллиард, и они оставляют по несколько миллиардов сообщений в день. При этом количество пользователей социальных сетей увеличивается с каждым годом, люди регистрируют все большее количество аккаунтов на различных сайтах, постоянно высказывают свое мнение по поводу товаров в различных магазинах, часто пишут свежие обзоры на новинки гаджетов, обсуждают различные события на форумах, происходящие в мире. Таким образом, в социальных сетях формируется огромнейшая база информации по различным темам. Знание мнения людей может дать огромное преимущество в различных областях, к примеру, социологам - для определения отношения пользователей социальных сетей к тем или иным событиям, маркетологам - узнать оценку качества товаров и услуг на основе отзывов пользователей, психологам - для определения депрессии у пользователей социальных сетей.
Мы будем рассматривать такую социальную сеть, как Twitter. Twitter является одной из самых популярных социальных сетей, которая позволяет пользователям читать и отправлять сообщения (т. е. твиты) длиной до 280 символов. Среди большого разнообразия тем, люди в Twitter, как правило, выражают свое мнение о брендах, знаменитостях, продуктах и общественных мероприятиях.
Анализ тональности текста является одним из методов исследования в компьютерной лингвистике. Анализ мнений включает в себя несколько задач, направленных на решение одной и той же проблемы - качественная оценка отношения автора текста к субъекту, который рассматривается в этом же тексте. Из конкретных задач, которые входят в анализ мнений, можно выделить такие задачи, как оценка субъективности или объективности текста по отношению к субъекту, классификация отношения автора к субъекту. Последняя задача - это задача выявления тональности текста, она является фундаментальной в анализе мнений. Сначала необходимо понять, как автор относится к субъекту, чтобы делать какие-то дальнейшие выводы про мнение.
Задача выявления тональности текста сводится к задаче классификации. Имеется три класса эмоциональной окраски: положительная, нейтральная или отрицательная, к которым нужно отнести текст.
В последнее время искусственные нейронные сети доказали свою эффективность для многих задач. Так, нейронные сети могут распознавать цифры, изображения, классифицировать объекты и т. д. Одной из таких сетей является рекурсивная нейронная сеть. Рекурсивные нейросети добились значительного успеха в решении задач обработки естественного языка [1].
Целью работы состояла в разработке и исследовании рекурсивной нейронной сети для выявления тональности сообщений в социальных сетях.
Разработанная программа позволяет производить предварительную обработку сообщений из социальной сети Twitter с дальнейшей их векторизацией. Далее векторное представление слов обрабатывается рекурсивной нейронной сетью, в результате чего определяется класс. Каждый класс имеет оценку -1, 0, 1. Таким образом, сообщения с положительной тональностью оцениваются в 1, нейтральные - 0 и оценка -1 - для отрицательной. Программа реализует предложенный алгоритм на языке Python 3, его можно использовать в качестве подключаемого модуля. Данный модуль можно использовать для приложений, связанных с анализом тональности текста.
В результате работы решены следующие задачи:
1) рассмотрены методы, применяющиеся в анализе тональности текста и для векторного представления текста;
2) разработаны математические модели векторизации текста и рекурсивной нейронной сети, решающие задачу выявления тональности сообщений в социальных сетях;
3) программно реализованы предварительная обработка текста, модель векторного представления слов и рекурсивная нейронная сеть;
4) проведены численные эксперименты при обучении реализованной нейронной сети;
5) осуществлена проверка работа программы на экспериментальных данных.
Разработанная модель имеет ряд преимуществ над классическими методами анализа тональности. Рекурсивная нейронная сеть показала лучшие результаты. Точность классификатора на ее основе составила - 78,7%, тогда как у других методов точность классификации не превосходит 75%.
Возможным направлением для дальнейшей работы может быть применение модели для других языков: английского, казахского и другие. В данной работе модель работает с русским языком. Также можно провести анализ тональности на других подходах классификации и рассмотреть различные возможности других нейронных сетей.