Разработка, тестирование и сравнение моделей сентиментального анализа коротких текстов

Разработка, тестирование и сравнение моделей сентиментального анализа коротких текстов

о см о см

<0

Гринин Игорь Леонидович

магистрант кафедры ПОАС, Волгоградский Государственный Технический Университет(ВолгГТУ), frederickbrown@yandex.ru

Цель исследования заключается в исследовании различных методологий разработок моделей, предназначенных для семантического (или тонального) анализа коротких текстов. Методы исследований. Методологиями тонального анализа текста были выбраны бинарная классификация, метод векторного представления слов Word2Vec, основами обучения моделей выбрана сверточная и рекуррентная нейронные сети. Результаты. Итогом проведенных исследований стало экспериментальное сравнение двух разработанных моделей тонального анализа текста.

Заключение. В процессе исследования были собраны данные, на основании которых была разработана методика автоматического сентиментального анализа текстов-комментариев, реализованы, протестированы и подвергнутые сравнительному анализу две программы-анализатора. Также был получен ряд основных практик создания нейронных сетей для работы с текстом, которые могут быть полезны не только для анализа тональности, но и других возможных обработок текстовых данных.

Ключевые слова: анализ тональности текста, векторное представление слов, программирование, обучение нейронных сетей, сверточная нейронная сеть, рекуррентная нейронная сеть

Введение

В современном мире большая часть взаимодействия между людьми происходит в Интернете. Самым популярным способом общения являются мессенджеры, в которых пользователи отправляют друг другу сообщения.

Однако, важным пластом контакта между людьми также является комментирование чего-либо. Неважно, что это - видео на Youtube, пост на странице ВКонтакте, тема на форуме, фотография в Instagram. Во всех этих случаях человек и его аудитория взаимодействуют путем комментариев.

Но комментариев могут быть сотни, тысячи, возможно даже и миллионы. Такое количество информации не под силу проанализировать ни одному человеку. Но ему все равно необходимо знать, как же аудитория восприняла его послание? Понравилось оно им, или же наоборот - разозлило? Да и самим сервисам, предоставляющим это общение крайне важно знать, что происходит и иметь возможность использовать эти знания.

Сейчас развитие технологий дошло до возможности извлекать информацию прямо из текста, что какое-то время назад казалось просто фантастическим достижением. На помощь для решения поставленной выше проблемы приходит тональный анализ текста, специально разработанный для решения таких ситуаций.

Основной задачей анализа тональности является нахождение мнений в тексте и определение их свойств. Помимо этого, он так же используется для переводов текста, для разработок рекомендаций пользователям и во многом другом.

Целью этого исследования будет разработать методику простого автоматического тонального анализа текстов-комментариев. Для достижения цели были поставлены следующие задачи:

- провести анализ классификации анализаторов;

- провести анализ методов создания анализаторов;

- на основе полученной информации разработать методику анализа;

- подготовить необходимую базу данных комментариев для тестирования и обучения программы анализатора;

- разработать и реализовать тональный анализатор с учетом

собранных данных и рекомендаций.

Разработка производилась в несколько итераций с промежуточным тестированием с внесением изменений с учетом собранных данных.

О ш т х

Материалы и методы разработки методики тонального анализа текста

Чтобы определить принципы работы анализатора, было произведен анализ нескольких работающих примеров.

<

т о х

X

Классификация

Основным принципом анализатора является его классификация - характеристика, основанная на количестве классов анализируемого текста. Самым простым и распространненым вариантом является бинарная классификация - разделения текста на «положительный» и

«отрицательный». Такая классификация позволяет более точно определить принадлежность текста, в связи с малым количеством вариантов определения.

Более сложная классификация - «плоская». Отличается от бинарной добавлением «нейтрального» текста.

Рисунок 1 - Классификатор тональности текста

Сложность работы прямо пропорционально возрастает с количеством анализируемых классов, т.о. даже три класса в этом варианте уже достаточно сложно обрабатывать, независимо от подхода.

Самой же сложной является «иерархическая» классификация.

Рисунок 2 - Иерархическая классификация текста

Такая система обучается на основе «регрессии» -присуждении каждому классу идентификатора тональности, где чем выше показатель - тем положительнее тональность. Такая классификацияработает даже точнее предыдущей, но требует очень больших затрат ресурсов для обработки и обучения.

По итогу проведенных исследований, было решено взять за основу бинарную классификацию.

Векторное представление слов

В процессе своей работы анализатор создает из слов специальные виды хранилищ - вектора. Эти вектора помогают анализатору разделять слова по смысловым группам для упрощения работы с большой массой текста. Вариантов того, как они будут группироваться, как и инструментов для создания векторов есть несколько. Нам предстоит выбрать наиболее подходящий для нашей работы метод векторизации.

В случае векторного представления текст рассматривается, как «мешок слов» (bag of words). Текст представляется, как вектор размерности 1*N, где N - размер словаря. Каждый столбец - это слово, а соответствующее значение - количество появлений этого слова в тексте.

Например, фраза «bag of bag of words» может быть представлена, как вектор [2, 2, 1]. Далее эту информацию можно передать алгоритму машинного обучения, такому как логистическая регрессия (logistic regression) или метод опорных векторов (support vector machine, SVM), чтобы произвести классификацию и прогнозировать тональность незнакомых данных.

При проведении исследований было выяснено, что самыми популярными методами векторного представления слов являются методы Word2Vec и Doc2Vec.

Word2Vec- метод разработанный Google. Он учитывает контекст, и в то же время уменьшает объем данных. На самом деле, Word2Vec представляет собой два разных метода: continuous bag of words (CBOW, непрерывный мешок слов) и skip-gram. Задачей первого метода является предсказание слова на основании близлежащих слов. Второй выполняет обратную задачу -предсказание набора близлежащих слов на основании одного слова.

Метод Doc2Vec же представляет собой два метода: distributed memory (DM, распределенная память) и distributed bag of words (DBOW, распределенный мешок слов). Первый метод прогнозирует слово по известным предшествующим словам и вектору абзаца. . Второй же прогнозирует случайные группы слов в абзаце только на основании вектора абзаца.

Так как для решения нашей задачи необходимо выяснить тональную принадлежность малого количества слов на основании близлежащих, было решено выбрать метод Word2Vec.

Набор данных

В качестве тестируемых и работающих примеров текста, было решено использовать «корпус коротких текстов Юлии Рубцовой», сформированный на основе русскоязычных сообщений из Twitter. Он содержит 114 991 положительных, 111 923 отрицательных твитов, а также базу неразмеченных твитов объемом 17 639 674 сообщений.

Текст для работы в анализаторе должен быть максимально упрощенным. Отделив положительные комментарии от отрицательных, было так же решено отформатировать текст для максимальной эффективности взаимодействия.

В результате работы были получены следующие изменения:

- Все приведено к нижнему регистру;

- Заменена «ё» на «е»;

- Заменены ссылки на токены «URL»;

- Заменены упоминания пользователя на токен «USER»;

- Удалены знаки пунктуации.

Машинное обучение

Поскольку реализация программы-анализатора также важна в выборе методики анализа тональности, был произведен разбор возможных вариантов создания программы. Самым распространенным решением является сверточная нейронная сеть (CNN), которая и была взята за основное решение. Однако также, было решено

X X

о го А с.

X

го m

о

2 О

м о

о

CS

о

CS <0

о ш m

X

<

m О X X

создать аналогичную версию анализатора на основе рекуррентной сети и сравнить методику и результаты обучения. Для второй версии анализатора также было решено провести ряд испытаний, заключающихся в изменении некоторых входных параметров, а именно: размерности слоев, функция активации и коэффициент исключения.

Результаты

После выделения основных методов и параметров, были подготовлены две нейронных сети, ответственных за семантический анализ текста. Реализация этих проектов происходила с учетом собранных данных.

Векторное представление слов при учете нашего подготовленного набора прокластеризиловало слова и представила их группами слов, похожих по смыслу.

Рисунок 4. Обучение модели сверточной сети

Как мы видим, результат правильного предсказания

- 77,67%, судим по И показателю.

Другой же анализатор показал следующий результат

- 77,79%.

In (13): ficm sltlMrn.iiieiries lr^ort el«ii£ie»tion_«port

predicted • np.round

print |clasji[ication_r«port(y_t«t, predicted, digits» И

Рисунок 3. Кластеризация слов

Тестирование проводилось с помощью заготовленных тестовых примеров, аналогичных оригинальным комментариям в наборе данных. Обучение модели, тестирование и обработка проводились на машине следующей комплектации:

- Видеокарта ASUS GeForce RTX 2060 PHOENIX [PH-RTX2060-6G]

- Процессор Intel core i7-8700

- Материнская плата GIGABYTE B360N WIFI

- Samsung DDR4 16GBх2 UNB 2400

Обнаруженные в результате тестирования недочеты

и ошибки были решены на следующей итерации разработки.

Некоторые положительные комментарии, содержащие слова, подходящие по эмоциональному окрасу для негативных, определялись как негативные («Нет, нет, да снимут хорошее кино»).

Также, особой проблемой, почти не поддавшейся нашему анализатору в связи с малой степенью глубины разработки, были комментарии, написанные с сарказмом или иронией. Такие комментарии текстово полностью совпадают, с, например, положительными, однако при прочтении человеком, сразу становится очевидно, что это не так («Браво, сняли очередной шедевр русского кино»).

Так как было создано два варианта анализатора, перейдем к сравнению их работы.

Обучение модели показывает нам следующее:

0 I

accuracy МСГО tvg weighted avg

precision recall El-jcore support

0.79460 0.748S0 0.77180 22«? 0.1(138 0.80765 0.78383 22313

0.77699 0.7790«

0.77807 0.77798

0.77798 <4770 0.77781 <4770 0.77779 44770

Рисунок 5. Результаты рекуррентной сети

Обсуждение полученных результатов

Одной из главной выходной характеристики модели является время обучения. И как можно заметить на рисунках разница между этими подходами существенная. На один круг обучения модели («эпохи»), при применении CNN уходило в среднем 2000 секунд. В то время как для RNN - всего 8 секунд. Это наглядно демонстрирует эффективность инструмента, созданного для работы с последовательными типами данных. За время обучения одной эпохи в СNN можно обучить модель RNN 250 раз. Таким образом, можно подобрать такое количество эпох, которое лучше всего подойдет для работы модели и выдаст наибольшую точность. Однако при слишком большом количестве подходов может произойти «переобучение», модель может сбиться с правильного вектора и точность пойдет на убыль.

Стоит сказать, что в наших испытаниях был и отрицательный результат. Мы использовали 2 вида функции активации - тангенциальную и сигмоид, меняли коэффициент исключения в пределах от 0,25 до 0, 35 с шагом 0,05 и ставили размерности слов различные значения степеней двойки (от 5 до 8). Однако, в связи малыми ресурсами обучения и производительности, значимых изменений выявлено не было - все значения были примерно одинаковые, с погрешностью в максимум 1,5%.

В результате исследований была создана и разработана методика автоматического анализа тональсти текстов-комментариев, а также реализована программа-анализатор на основе разработаной методики.

Заключение

Создание системы тонального анализа является сложной задачей, но вполне возможной. Главное, понимать, что именно анализируется и какие возможные подводные камни там могут присутствовать. При использовании машинного обучения важно тестировать разные параметры, чтобы подобрать те, которые работают лучше на тестовых данных. Каждый из них влияет на процесс обучения, на подготовленные данные и остальные составляющие.

Модель RNN показала способность к более быстрому обучению, и предпочтительная для экспериментирования.

В дальнейшем, планируется доработка методики, обучение новых моделей, и воз-

можность взаимодействия с другими блоками, связанных с обработкой текстовых данных.

Литераптура

1. Rosenthal S, Farra N, Nakov P SemEval 2017 Sentiment Analysis in Twitter (Proceedings of the 11th International Workshop on Semantic Evaluation) pp 502518

2. Dolbin A, Rozaliev V, Orlova Y 2017 Recognition of a person named entity from the text written in a natural language. (IOP Conf. Series: Journal of Physics: Conf. Series) pp 1-5

3. Mikolov T 2013 Distributed Representations of Words and Phrases and Their Compositionality (Advances in Neural Information Processing Systems) pp 3111-3119

4. Sarbasova A 2015 Research of methods of sentimental analysis of Russian-language texts (Young scientist) 8. 143-146.

5. Lazareva O, Solomatova M 2016 Methods of selection of keywords in the context of e-learning systems (Young scientist) 26 pp 143-146

6. Меньшиков И, Кудрявцев А 2012 Обзор систем анализа тональности текста на русском языке (Молодой ученый) 12 pp 140-143

7. Павлов Ю, Майструк К 2016 Сравнение методов оценки тональности текста (Молодой ученый) 12 pp 5964

8. Arkhipenko K, Kozlov I, Trofimovich J, Skorniakov K, Gomzin A, Turdakov D 2016, Comparison of neural network architectures for sentiment analysis of Russian tweets.

9. Bo Pang, Lillian Lee, Shivakumar Vaithyanathan 2002 Sentiment Classification using Machine Learning Techniques (Thumbs up?) pp 79-86

10. Лазарева О, Боломутова М 2016 Методы выделения ключевых слов в контексте электронных обучающих систем (Молодой ученый) 26 pp 143-146

Developing, testing, and comparing models for sentimental short texts analysis

Grinin I.L.

Volgograd State Technical University

The aim of the research is to investigate various methodologies for developing models intended for semantic (or tonal) analysis of short texts.

Methods of research. Binary classification, word2vec vector representation method, and convolutional and recurrent neural networks were chosen as the main methods for tonal text analysis.

Results. The result of the research was an experimental comparison of two developed models of tonal text analysis.

Conclusion. In the course of the research, data were collected, on the basis of which a method of automatic sentimental analysis of text-comments was developed, two analyzer programs were implemented, tested and subjected to comparative analysis. We also obtained a number of basic practices for creating neural networks for working with text, which can be useful not only for analyzing tonality, but also for other possible processing of text data.

Keywords: sentiment analysis, text, vector representation of words, programming, training neural networks, convolutional neural network, recurrent neural network

References

1. Rosenthal S, Farra N, Nakov P SemEval 2017 Sentiment Analysis in Twitter (Proceedings of the 11th International Workshop on Semantic Evaluation) pp 502-518

2. Dolbin A, Rozaliev V, Orlova Y 2017 Recognition of a person named entity from the text written in a natural language. (IOP Conf. Series: Journal of Physics: Conf. Series) pp 1-5

3. Mikolov T 2013 Distributed Representations of Words and Phrases and Their Compositionality (Advances in Neural Information Processing Systems) pp 3111-3119

4. Sarbasova A 2015 Research of methods of sentimental analysis

of Russian-language texts (Young scientist) 8. 143-146.

5. Lazareva O, Solomatova M 2016 Methods of selection of keywords in the context of e-learning systems (Young scientist) 26 pp 143-146

6. Меньшиков И, Кудрявцев А 2012 Обзор систем анализа то-

нальности текста на русском языке (Молодой ученый) 12 pp 140-143

7. Павлов Ю, Майструк К 2016 Сравнение методов оценки то-

нальности текста (Молодой ученый) 12 pp 59-64

8. Arkhipenko K, Kozlov I, Trofimovich J, Skorniakov K, Gomzin A,

Turdakov D 2016, Comparison of neural network architectures for sentiment analysis of Russian tweets.

9. Bo Pang, Lillian Lee, Shivakumar Vaithyanathan 2002 Sentiment

Classification using Machine Learning Techniques (Thumbs up?) pp 79-86

10. Лазарева О, Боломутова М 2016 Методы выделения ключевых слов в контексте электронных обучающих систем (Молодой ученый) 26 pp 143-146

X X О го А С.

X

го m

о

2 О

м о