Научная статья на тему 'РАЗРАБОТКА WEB-ПРИЛОЖЕНИЯ ДЛЯ АНАЛИЗА НАСТРОЕНИЙ ТЕКСТА С ПОМОЩЬЮ ФРЕЙМВОРКА FLASK И ЯЗЫКА PYTHON'

РАЗРАБОТКА WEB-ПРИЛОЖЕНИЯ ДЛЯ АНАЛИЗА НАСТРОЕНИЙ ТЕКСТА С ПОМОЩЬЮ ФРЕЙМВОРКА FLASK И ЯЗЫКА PYTHON Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
372
42
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ОПРЕДЕЛЕНИЕ ТОНАЛЬНОСТИ ТЕКСТА / WEB-ИНТЕРФЕЙС / ЯЗЫК PYTHON / ФРЕЙМВОРК FLASK / НАДСТРОЙКА KERAS TUNER / БИБЛИОТЕКА TENSORFLOW

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Косых Н.Е., Хомоненко А.Д., Куранова О.Н.

Введение. В настоящее время большой практический и научный интерес представляет решение задач определения настроений пользовательских текстов, передаваемых в информационном пространстве Интернета и в других сетях. Анализ настроений текста используется исследователями и маркетологами для изучения обратной связи от пользователей. В ОАО "РЖД" такой анализ может способствовать изучению общественного мнения в интересах повышения качества пассажирских перевозок. На основе изучения общественного мнения можно изучать и совершенствовать качество образования в ВУЗах. Цель исследования состоит в отработке эффективной технологии применения современных инструментальных средств для разработки Web-приложения, позволяющего выполнять анализ настроений пользовательского текста. Методы и средства. Соответствующий указанным задачам Web-интерфейс реализован с помощью фреймворка Flask, а обучающая модель - на основе использования библиотеки TensorFlow. Результаты. Выполнено обоснование полного цикла создания обучающей модели на открытых данных Twitter-постов при помощи библиотеки TensorFlow, а также реализована возможность автоматического подбора параметров при помощи надстройки Keras Tuner. Практическая значимость. Главной отличительной чертой разработанного приложения является наличие пользовательского интерфейса, позволяющего осуществлять управление прогнозирующим и тренировочным блоками программы без необходимости ручного запуска соответствующих участков кода. Показаны необходимость и удобство работы с обучаемой моделью для классификации текста через графический Web-интерфейс. Такой подход позволяет сократить время выполнения рутинных технических манипуляций при обработке большого объема данных. Наличие обученной модели и интерфейса для работы с ней дает возможность пропускать этапы обучения и сразу перейти к этапу прогнозирования пользовательских значений. Обсуждение. При решении задачи анализа настроений текста изучен процесс создания модели классификации данных на основе модуля TensorFlow, а также создание нейронной сети при помощи надстройки Keras. В процессе обучения выбрана наилучшая модель по параметру "точность на тестовой выборке" с помощью Keras Tuner. Разработан Web-интерфейс на Flask, который изолирован виртуальной средой выполнения Python. Дальнейшие исследования целесообразно продолжить в направлениях практического использования полученных результатов в интересах повышения качества подготовки и переподготовки кадров в ОАО "РЖД", совершенствования характеристик классификации текстовых данных на основе использования корпусов текстов для настройки тонового классификатора, а также разработки метода предварительной очистки данных для создания модели нейросети на основе использования современных и легковесных библиотек для предварительной подготовки текста к обучению.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

DEVELOPING A WEB APPLICATION FOR SENTIMENT ANALYSIS USING THE FLASK FRAMEWORK AND PYTHON

Introduction. Currently, of great practical and scientific interest is the solution of the problems of determining the moods of user texts transmitted in the information space of the Internet and in other networks. Sentiment analysis is used by researchers and marketers to study user feedback. For example, at Russian Railways, such an analysis can contribute to the study of public opinion in the interests of improving the quality of passenger transportation. Based on the study of public opinion, for example, it is possible to study and improve the quality of education in universities. The purpose of the study is to develop an effective technology for the use of modern tools for developing a Web-application that allows you to analyze the sentiment of user text. Methods and means. The web interface corresponding to the tasks is implemented using the Flask framework, and the training model is based on the use of the Tensor Flow library. Results. The rationale for the full cycle of creating a training model based on open data of Twitter posts using the TensorFlow library has been performed, and the ability to automatically select parameters using the Keras Tuner add in has been implemented. Practical significance. The main distinguishing feature of the developed application is the presence of a user interface that allows you to control the predictive and training blocks of the program without the need to manually launch the corresponding sections of the code. The necessity and convenience of working with a trained model for classifying text through a graphical Web-interface are shown. This approach allows you to reduce the time for performing routine technical manipulations when processing a large amount of data. Having a trained model and an interface for working with it makes it possible to skip the training stages and go directly to the stage of predicting user values. Discussion. When solving the problem, we studied the process of creating a data classification model based on the Tensor Flow module, as well as creating a neural network using the Keras add-on. In the process of training, the best model was selected for the parameter "accuracy on the test sample" using Keras Tuner. A web interface in Flask was developed, which is isolated by a virtual Python runtime. It is advisable to continue further research in the areas of practical use of the results obtained in the interests of improving the quality of training and retraining of personnel at Russian Railways, improving the characteristics of the classification of text data based on the use of text corpora to set up a tone classifier, as well as developing a method for preliminary data cleaning to create a neural network model based on the use of modern and lightweight libraries for the possibility of preliminary preparation of the text for training.

Текст научной работы на тему «РАЗРАБОТКА WEB-ПРИЛОЖЕНИЯ ДЛЯ АНАЛИЗА НАСТРОЕНИЙ ТЕКСТА С ПОМОЩЬЮ ФРЕЙМВОРКА FLASK И ЯЗЫКА PYTHON»

doi: 10.36724/2409-5419-2022-14-1-45-52

РАЗРАБОТКА WEB-ПРИЛОЖЕНИЯ ДЛЯ АНАЛИЗА НАСТРОЕНИЙ ТЕКСТА С ПОМОЩЬЮ ФРЕЙМВОРКА FLASK И ЯЗЫКА PYTHON

КОСЫХ

Никита Евгеньевич1

ХОМОНЕНКО Анатолий Дмитриевич2

КУРАНОВА Ольга Николаевна3

Сведения об авторах:

1Магистр по направлению Информационные системы и технологии Аспирант кафедры Информационные и вычислительные системы Петербургского государственного университета путей сообщения Императора Александра I, г Санкт-Петербург, Россия, nikitosagi@mail.ru

2д.т.н., профессор, профессор кафедры Информационные и вычислительные системы Петербургского государственного университета путей сообщения Императора Александра I, профессор кафедры математического и программного обеспечения Военно-космической академии имени А.Ф.Можайского, г. Санкт-Петербург, Россия, khomonenko@pgups.ru

3к.т.н., доцент кафедры Информационные и вычислительные системы Петербургского государственного университета путей сообщения Императора Александра I, г. Санкт-Петербург, Россия, olga_kuranova@mail.ru

АННОТАЦИЯ

Введение. В настоящее время большой практический и научный интерес представляет решение задач определения настроений пользовательских текстов, передаваемых в информационном пространстве Интернета и в других сетях. Анализ настроений текста используется исследователями и маркетологами для изучения обратной связи от пользователей. В ОАО "РЖД" такой анализ может способствовать изучению общественного мнения в интересах повышения качества пассажирских перевозок. На основе изучения общественного мнения можно изучать и совершенствовать качество образования в ВУЗах. Цель исследования состоит в отработке эффективной технологии применения современных инструментальных средств для разработки Web-приложения, позволяющего выполнять анализ настроений пользовательского текста. Методы и средства. Соответствующий указанным задачам Web-интерфейс реализован с помощью фреймворка Flask, а обучающая модель - на основе использования библиотеки TensorFlow. Результаты. Выполнено обоснование полного цикла создания обучающей модели на открытых данных Twitter-постов при помощи библиотеки TensorFlow, а также реализована возможность автоматического подбора параметров при помощи надстройки Keras Tuner. Практическая значимость. Главной отличительной чертой разработанного приложения является наличие пользовательского интерфейса, позволяющего осуществлять управление прогнозирующим и тренировочным блоками программы без необходимости ручного запуска соответствующих участков кода. Показаны необходимость и удобство работы с обучаемой моделью для классификации текста через графический Web-интерфейс. Такой подход позволяет сократить время выполнения рутинных технических манипуляций при обработке большого объема данных. Наличие обученной модели и интерфейса для работы с ней дает возможность пропускать этапы обучения и сразу перейти к этапу прогнозирования пользовательских значений. Обсуждение. При решении задачи анализа настроений текста изучен процесс создания модели классификации данных на основе модуля TensorFlow, а также создание нейронной сети при помощи надстройки Keras. В процессе обучения выбрана наилучшая модель по параметру "точность на тестовой выборке" с помощью Keras Tuner. Разработан Web-интерфейс на Flask, который изолирован виртуальной средой выполнения Python. Дальнейшие исследования целесообразно продолжить в направлениях практического использования полученных результатов в интересах повышения качества подготовки и переподготовки кадров в ОАО "РЖД", совершенствования характеристик классификации текстовых данных на основе использования корпусов текстов для настройки тонового классификатора, а также разработки метода предварительной очистки данных для создания модели нейросети на основе использования современных и легковесных библиотек для предварительной подготовки текста к обучению.

КЛЮЧЕВЫЕ СЛОВА: определение тональности текста, web-интерфейс, язык Python, фреймворк Flask, надстройка Keras Tuner, библиотека TensorFlow.

Для цитирования: Косых Н.Е., Хомоненко А.Д., Куранова О.Н. Разработка Web-приложения для анализа настроений текста с помощью фреймворка Flask и языка Python // Наукоемкие технологии в космических исследованиях Земли. 2022. Т. 14. № 1. С. 45-52. doi: 10.36724/2409-5419-2022-14-1-45-52

Введение

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

Исследования по анализу настроений (сентиментному анализу) текста начали проводить примерно в начале 21-го столетия [1]. Достаточно современный и полный обзор зарубежных работ по этой тематике приводится в работе [2].

Анализ настроений текста используется исследователями и маркетологами для изучения обратной связи от пользователей. К примеру, в ОАО «РЖД» такой анализ может способствовать изучению общественного мнения в интересах повышения качества пассажирских перевозок. На основе изучения общественного мнения, например, как описано в [3], можно изучать и совершенствовать качество образования в ВУЗах.

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

Целью предшествующих исследований, представленных в статье [4], являлся подбор оптимальных параметров для создания обученной модели методом ручного перебора, а также оценка работоспособности и адекватности модели на тренировочной выборке. В настоящей статье описывается полный цикл создания обучающей модели на открытых данных Twit-ter-постов при помощи библиотеки TensorFlow [5], а также реализована возможность автоматического подбора параметров при помощи надстройки Keras Tuner [6].

Все этапы обучения последовательно прописаны в блокноте Jupiter для Python. Далее обученная модель загружается в графический интерфейс с возможностью прогнозирования эмоциональной окраски пользовательского текста. Разработанный интерфейс позволяет абстрагироваться от написания команд вручную и вводить текст на экране для получения оценки его тональности и точности работы модели.

Рассмотрим основные компоненты и этапы применения современных инструментальных средств для разработки Web-приложения, позволяющего выполнять анализ настроений пользовательского текста.

Стадия проектирования программного продукта

Диаграммы UML - схематическая графическая структура, накладываемая на модель приложения, которая облегчает понимание концепции и задачи проектирования [7]. Имеет практическую пользу как для разработчиков интерфейсов, так и для бэкенд разработчиков.

Диаграмма классов (рис. 1,2) определяет предполагаемые типы классов системы и различного рода статические связи, которые существуют между ними. На диаграммах классов в

верхней части отображаются атрибуты классов со знаком "-", а в нижней со знаком "+" операции и методы классов для взаимодействия с другими сущностями. Это дает общее представление о приложении.

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

Рис. 1. Диаграмма классов для этапа загрузки данных и внешних зависимостей

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

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

Диаграммы состояний применяются для того, чтобы объяснить, каким образом работают сложные объекты [7]. От других диаграмм диаграмма состояний (рис. 3) отличается тем, что описывает процесс изменения состояний только одного экземпляра определенного класса - одного объекта.

Рис. 3. Диаграмма взаимодействия состояний системы

На рисунке 3 представлена последовательность действий, описывающая взаимодействие между frontend и backend частями программы. Первая представлена web-интерфейсом пользователя, развернутом на локальном компьютере, вторая - блокнотом Jupiter на языке Python, формирующим конечные данные (модель) для загрузки в пользовательский интерфейс.

Представленные выше диаграммы служат основой для создания спецификации требований к программному обеспече-

Обоснование выбора библиотеки для машинного обучения

В качестве инструментов машинного обучения можно использовать наиболее популярные решения [5, 6, 8]:

1. TensorFlow - разработан компанией Google. Позволяет реализовывать собственные алгоритмы машинного обучения.

2. PyTorch - похожая разработка от компании Face-book. Отличный фреймворк с дружелюбной документацией.

3. Sckilit-learn - в отличие от вышеупомянутых вариантов, позволяет использовать готовые алгоритмы машинного обучения [8].

В научной статье [8] для машинного обучения использован инструмент Sckilit-learn. Существует возможность использования различных алгоритмов обучения, однако дальнейшие улучшения ограничивались подбором оптимальных параметров обучения методом ручного перебора.

В нашем исследовании использован инструмент Tensor-Flow, который имеет собственный производительный фреймворк для обеспечения возможности внедрения обученной модели и оснащен подробной документацией.

Открытая библиотека TensorFlow использует статические вычислительные графы [5]. Входные данные представляются

тензорами n-ранга. Тензор - это контейнер, содержащий однородные данные, например, (int32, float32, bool), где ранги показывают число осей.

Процесс обучения останавливается, когда достигает хотя бы одна цель [9, 10]:

1. Лимитпочислуитераций.

2. Достигнута желаемая точность ошибки.

3. Начат новый процесс обучения.

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

Инструменты для разработки программного обеспечения

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

Класс tf.keras является реализацией TensorFlow спецификации Keras API [6]. Ранее TensorFlow был отдельным модулем, но с выходом Keras v. 2.3.0 модули были полностью синхронизированы, реализуя общий программный интерфейс, включающий в себя поддержку функциональных особенностей TensorFlow таких как конвейеры операций и статистические оценки.

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

Структура искусственной нейронной сети

Вложение слов - это класс методов для представления слов в документе с использованием плотного векторного пространства. Это дает некоторые улучшения по сравнению с моделью "мешка слов" [11], где гигантские векторы использовались для представления каждого слова или оценки каждого слова в векторе для представления всего словаря. Вместо этого, в технике встраивания слов используется единое векторное пространство, в котором отражены все слова.

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

Библиотека Keras [12] предлагает слои встраивания, которые используются для нейронных сетей с текстовыми данными. Для их использования требуется, чтобы все входные данные были закодированы уникальным целым числом. Этап подготовки можно выполнить с помощью API Tokenizer.

Слой вложения определяется как первый уровень в сети и должен иметь три аргумента:

- input dim: размер словаря в текстовых данных;

- output dim: размер векторного пространства, в которое будут вставлены слова;

- input length: длина входных последовательностей.

У этого слоя есть возможность сохранять изученные веса.

При сохранении модели в файл все веса, полученные в процессе обучения, остаются. На выходе слоя встраивания оказываются 32 вектора по 32 измерения каждый, по одному на каждое слово. После определения сети печатается сводка слоев. На выходе слоя получаем матрицу 32x32, которая сжимается в 16-элементный вектор GRU-блоком.

Далее рекуррентный уровень принимает последовательные данные и обрабатывает их, чтобы вернуть 1 или несколько выходов состояния. Такой вариант называется наложением (рис. 4).

01 0|»1 0,+з °|«1

*J if+1 Xl+2

Рис. 4. Наложение рекуррентного слоя

Класс tf.keras.layers.GRU позволяет быстро построить рекуррентные модели без необходимости делать сложные конфигурационные настройки.

По умолчанию выход слоя содержит один вектор на элемент. Этот вектор является выходом последней ячейки рекуррентной сети, содержащей информацию обо всей входной последовательности. Размерность этого выхода равна параметру units, передаваемому в конструкторе (рис. 5).

model - Sequential()

model.add(Embedding(Dictionary_size, 32j input_length-max_len)) model.add(GRU(16))

model.add(Dense(1,activation="sigmoid")} model. s jmmaryO

Рис. 5. Создание рекуррентного слоя

Последним добавляется плотный слой. В нем каждый нейрон получает входные данные от всех нейронов своего предыдущего слоя, т.е. GRU. Является наиболее распространенным слоем при построении моделей.

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

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

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

model. add(layers. dense(units, xl, x2, x3)),

где

- units — размер выходного слоя (> 1),

- xl — установка функции активации слоя,

- х2-

схемы инициализации, создающие веса слоя,

хЗ — схемы регуляризации, такие как L1hL2.

Построение гипермодели и подбор гиперпараметров

Keras Tuner - библиотека, которая помогает выбрать оптимальный набор гиперпараметров [14] для построения модели нейронной сети.

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

В настоящее время момент существует два способа перебора кортежей параметров, таких как поиск по сетке и случайный поиск.

Поиск по сетке отлично подходит для выборочной проверки комбинаций, которые, как известно, в рамках подобных задач работают хорошо. Случайный поиск отлично походит для обнаружения комбинаций гиперпараметров (рис. 6), так как в процессе работы накапливает информацию о целевой функции и использует её для увеличения вероятности сходимости к оптимуму [14].

у ОТ' .: [1* .лпупез, 1 [ГГ671 О'МГ С0&&1]' .СН-Ч«^^ ^Пб*

: : : ^ - :

[,Р.Е 1*Н1Е* |свшПТ!ТЧ*г! П1 т^у' ¡5' .гмЛтуиЕ,! дое]

пиц:!1

ввдпк гбэши гЬнь гии ; гмсб ггяДО

РМ*,*гьчьчГ^Ь^ь .¡мтак^О « зпи тзтонкц «ьиьин

Рис. 6. Пространство поиска для гипертюнера

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

На основании перекрестной проверки, запущенной для "тестируемой" модели, отобразим точность прогноза на проверочной выборке и динамику обучения модели (рис. 7).

03

2

o. 0 7

=i 06

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

05

- Доля верных ответов на обучающем наборе

Доля верных ответов на проверочном наборе

0 2 4 6 Й

Эпоха обучения

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

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

Загрузка виртуального окружения Python

Виртуальная среда - это инструмент, который помогает разделить зависимости, необходимые для разных проектов, путем создания на жестком диске изолированных виртуальных сред. Он является крайне важным механизмом для разработчиков, которым приходится иметь дело одновременно с разными рабочими версиями библиотек [15] и вспомогательных модулей. В таких случаях виртуальная среда обеспечивает жизнеспособность одновременно нескольких проектов и зависимости пользовательских проектов оказываются изолированы от системы и друг от друга.

Для установки в консоли необходимо ввести последовательности команд:

1. ip install virtualenv

2. irtualenv —version

3. irtualenv myVirtualEnv

4. irtualenv -p /usr/bin/python3 myVirtualEnv

5. so ce virtualenvname /bin/activate

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

После активации виртуальной среды (рис. 8) имя виртуальной среды появляется в левой части терминала. Перед запуском приложения необходимо выбрать рабочую директорию, содержащую проект и подключаемые зависимости.

В С. \ WIN DOWS Vsysiem 3 J\cmO »не - щр ру

(venv) C;\Users\User\Deskto))\venv>

(venv) CAUsers\UserU)esktop\venv> cd C:\Users\User\Desktop\venv\saf-3-iiiaiii

(venv) CAUseri\user\Desktop\venv\saf-3-«mn>pytlwi app C:\Users\User\App[)ata\local\Prograjiis\Python\Pythsn38\python.exe: can't open fi file or directory

Рис. 8. Работа виртуальной среды

Во время выполнения Python-скрипта происходит импорт и установка необходимых зависимостей внутри виртуального окружения и запуск Web-интерфейса на локальном сервере.

Разработка пользовательского интерфейс на Flask

Flask - это небольшой легковесный Web-фреймворк, написанный на языке Python и предлагающий полезные инструменты и функции для облегчения процесса создания Web-приложений на этом языке [16]. В отличие от других разработок, позволяет создать Web-приложение быстро, используя лишь один файл Ру. Flask использует механизм шаблонов Jinja для динамического создания HTML-страниц, с использованием уже знакомых понятий, таких как переменные циклы, функции и т.д. Внутри файла арр.ру будут обрабатываться НТТР запросы, содержится инструкция по загрузке файлов модели с локального диска и описание работы токе-найзера.

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

При переходе по адресу 127.0.0.1:5005 мы видим интерфейс разработанного Web-приложения (рис. 9). Три основных пункта меню, отсылающих к разным разделам: домашняя страница, загрузка файлов и переход к Google Collabora-tory для управления процессом обучения модели. Основное поле для ввода предназначено для обработки и анализа пользовательских предложений. Его возможности ограничиваются только функциональными возможностями элемента TextField.

—---------- -

\\ I Ui'iiii' 'Го Sin ri пи ut Amih /сг

Рис. 9. Интерфейс Sentiment Analysis

После того как пользователь вводит произвольный осмысленный текст, запускаются функции предварительной обработки данных, сохраненный файл токеназйер позволяет извлечь отдельные сущности (слова), передаваемые обученной модели для функции прогнозирования [17]. В результате последовательных процедур в окне интерфейса на экране выводится ответ, который содержит следующие значения: ["пользовательское предложение" is процент положительной окраски]. В программу встроен алгоритм, по которому предложение определяется как negative, если оценка меньше 0.5,

иначе positive. Результат выполнения программы приведен на рисунке 10.

Тдзмь ринданкя - саний пучший пртцдкю, чувствуй счзпттивщч fis [0.6618401 fftpositi™ I Рис. 10. Результат прогнозирования

Как видно из рис. 10, представленное предложение имеет на 66% позитивную окраску. Чем длиннее исследуемое предложение и содержит больше эмоционально окрашенных слов, тем приближеннее к 100% будет результат.

Заключение

Практическая значимость результатов исследования состоит в том, что показаны необходимость и удобство работы с обучаемой моделью для классификации текста через графический Web-интерфейс. Такой подход позволяет сократить время выполнения рутинных технических манипуляций при обработке большого объема данных [18]. Наличие обученной модели и интерфейса для работы с ней дает возможность пропускать этапы обучения и сразу перейти к этапу прогнозирования пользовательских значений.

При решении задачи изучен процесс создания модели классификации данных на основе модуля TensorFlow, а также создание нейронной сети при помощи надстройки Keras. В процессе обучения выбрана наилучшая модель по параметру "точность на тестовой выборке" [4] с помощью Keras Tuner. Разработан Web-интерфейс на Flask для программы анализа настроений, который изолирован виртуальной средой выполнения Python.

Дальнейшие исследования целесообразно продолжить в направлениях практического использования полученных результатов в интересах повышения качества подготовки и переподготовки кадров в ОАО «РЖД» [19], совершенствования характеристик классификации текстовых данных на основе использования корпусов текстов для настройки тонового классификатора [20-21], а также разработки метода предварительной очистки данных для создания модели нейросети на основе использования современных и легковесных библиотек для подготовки текста к обучению.

Литература

1. ТимощукА.А. Способ многоуровневой грануляции текста для проведения автоматического определения тональности текста // Международный журнал информационных технологий и энергоэффективности. 2017. Т. 2. № 1 (3). С. 8-15.

2. Cambria E. et al. (ed.). A practical guide to sentiment analysis. Cham, Switzerland: Springer International Publishing, 2017. Pp. 1-196.

3. KhomonenkoA.D., Dashonok V.L., IvanovaK.A., KassymovaD.T. Approach to processing of data from social networks for detecting public opinion on quality of educational services. Proceedings of 2017 XX IEEE

international conference on Soft Computing and Measurements (SCM) 2017. Pp. 737-739.

4. КосыхH. E. Оценка гиперпараметров при анализе тональности русскоязычного корпуса текстов // Интеллектуальные технологии на транспорте. 2020. № 3. С. 41-43.

5. Zafar I. et al. Hands-on convolutional neural networks with TensorFlow: Solve computer vision problems with modeling in TensorFlow and Python. Packt Publishing Ltd, 2018. 272 p.

6. Manaswi N.K. Understanding and working with Keras. Deep Learning with Applications Using Python. Apress, Berkeley, CA, 2018. Pp. 31-43.

7. Faitelson D., Tyszberowicz S. UML diagram refinement (focusing on class-and use case diagrams) 11 2017 IEEE/ACM 39th International Conference on Software Engineering (ICSE). IEEE, 2017. Pp. 735-745.

8. Hao J., Ho T. K. Machine learning made easy: A review of scikit-learn package in Python programming language 11 lournal of Educational and Behavioral Statistics. 2019. V. 44. №. 3. Pp. 348-361.

9. Khomonenko, Anatoly D., et al. Indoor Mobile Positioning Using Neural Networks and Fuzzy Logic Control. Modern Fuzzy Control Systems and Its Applications. InTech, 2017.

10. Kosykh N.E., Khomonenko A.D., Bochkov A.P., Kikot A.V. Integration of Big Data Processing Tools and Neural Networks for Image Classification. CEUR WORKSHOP PROCEEDINGS. Proceedings of Models and Methods of Information Systems Research Workshop. 2019. 2020. V.2556. Pp. 52-58.

11. Пархоменко П. А., Григорьев А. А., Астраханцев H. А. Обзор и экспериментальное сравнение методов кластеризации текстов. Труды Института системного программирования РАН. 2017. Т. 29, № 2. С. 161-200.

12. Ketkar N. Introduction to keras. Deep learning with Python. Apress, Berkeley, CA, 2017. Pp. 97-111.

13. Созыкин A.B. Обзор методов обучения глубоких нейронных сетей // Вестник Южно-Уральского государственного университета. Серия: Вычислительная математика и информатика. 2017. Т. 6. № 3. С. 28-59.

14. Abdelminaam D.S., Ismail F.H., Taha M., Taha A., Houssein E.H., Nabil A. Coaid-deep: An optimized intelligent framework for automated detecting covid-19 misleading information on twitter. IEEE Access, 2021, 9. Pp.27840-27867.

15. Lenz, Moritz. "Building Packages."Python Continuous Integration and Delivery. Apress, Berkeley, CA, 2019. Pp. 67-75.

16. Idris N., Foozy C. F. M., Shamala P. A generic review of web technology: Django and flask 11 International Journal of Advanced Science Computing and Engineering. 2020. V. 2. No 1. Pp. 34-40.

17. Парамонов, И. Ю., Смагин, В. А., Косых, Н. Е., Хомоненко, А. Д. Методы и модели исследования сложных систем и обработки больших данных: монография. Санкт-Петербург: Лань, 2020. 236 с.

18. Grinberg M. Flask web development: developing web applications with python// O'Reilly Media, Inc., 2018. Pp. 50-55.

19. Zhuravleva N. A., Gulyi I. M., Polyanichko M. A. Mathematical description and modelling of transportation of cargoes on the base digital railway // ENVIRONMENT. TECHNOLOGIES. RESOURCES. Proceedings of the International Scientific and Practical Conference. 2019. V. 2. Pp. 175-179.

20. Catal C., Nangir M. A sentiment classification model based on multiple classifiers // Applied Soft Computing. 2017. V. 50. Pp. 135-141.

21. Pradha S, Halgamuge M. N, Vinh N. T. Q. Effective text data preprocessing technique for sentiment analysis in social media data. 2019 11th international conference on knowledge and systems engineering (KSE). IEEE, 2019. Pp. 1-8.

DEVELOPING A WEB APPLICATION FOR SENTIMENT ANALYSIS USING THE FLASK FRAMEWORK AND PYTHON

NIKITA E. KOSYKH

St. Petersburg, Russia, nikitosagi@mail.ru

ANATOLY D. KHOMONENKO

St. Petersburg, Russia, khomonenko@pgups.ru

KEYWORDS: determination of the tonality of the text, web interface, OLGA N. KURANOVA Python language, Flask framework, Keras Tuner add-on, TensorFlow

St. Petersburg, Russia, olga_kuranova@mail.ru library.

ABSTRACT

Introduction. Currently, of great practical and scientific interest is the solution of the problems of determining the moods of user texts transmitted in the information space of the Internet and in other networks. Sentiment analysis is used by researchers and marketers to study user feedback. For example, at Russian Railways, such an analysis can contribute to the study of public opinion in the interests of improving the quality of passenger transportation. Based on the study of public opinion, for example, it is possible to study and improve the quality of education in universities. The purpose of the study is to develop an effective technology for the use of modern tools for developing a Web-application that allows you to analyze the sentiment of user text. Methods and means. The web interface corresponding to the tasks is implemented using the Flask framework, and the training model is based on the use of the TensorFlow library. Results. The rationale for the full cycle of creating a training model based on open data of Twitter posts using the TensorFlow library has been performed, and the ability to automatically select parameters using the Keras Tuner add-in has been implemented. Practical significance. The main distinguishing feature of the developed application is the presence of a user interface that allows you to control the predictive and training blocks of the program without the

need to manually launch the corresponding sections of the code. The necessity and convenience of working with a trained model for classifying text through a graphical Web interface are shown. This approach allows you to reduce the time for performing routine technical manipulations when processing a large amount of data. Having a trained model and an interface for working with it makes it possible to skip the training stages and go directly to the stage of predicting user values. Discussion. When solving the problem, we studied the process of creating a data classification model based on the TensorFlow module, as well as creating a neural network using the Keras add-on. In the process of training, the best model was selected for the parameter "accuracy on the test sample" using Keras Tuner. A web interface in Flask was developed, which is isolated by a virtual Python runtime. It is advisable to continue further research in the areas of practical use of the results obtained in the interests of improving the quality of training and retraining of personnel at Russian Railways, improving the characteristics of the classification of text data based on the use of text corpora to set up a tone classifier, as well as developing a method for preliminary data cleaning to create a neural network model based on the use of modern and lightweight libraries for the possibility of preliminary preparation of the text for training.

REFERENCES

1. A.A. Timoshchuk. Method of multilevel text granulation for automatic detection of text tone. International Journal of Information Technology and Energy Efficiency. 2017. Vol. 2. No. 1 (3). Pp. 8-15. (In Russian)

2. E. Cambria et al. (ed.). A practical guide to sentiment analysis. Cham, Switzerland: Springer International Publishing, 2017. Pp. 1-196.

3. A.D. Khomonenko, V.L. Dashonok, K.A. Ivanova, D.T. Kassymovaio Approach to processing of data from social networks for detecting public opinion on quality of educational services. Proceedings of 2017 XX IEEE international conference on Soft Computing and Measurements (SCM). 2017. Pp. 737-739.

4. N.E. Kosykh. Estimation of Hyperparameters in the Analysis of the Sentiment of the Russian-Language Text Corpus. Intellectual Technologies on Transport. 2020. No. 3. Pp. 41-43. (In Russian)

5. I. Zafar et al. Hands-on convolutional neural networks with TensorFlow: Solve computer vision problems with modeling in TensorFlow and Python. Packt Publishing Ltd, 2018. 272 p.

6. N.K. Manaswio Understanding and working with Keras. Deep Learning with Applications Using Python. Apress, Berkeley, CA, 2018. Pp. 31-43.

7. D. Faitelson, S. Tyszberowicz. UML diagram refinement (focusing on class-and use case diagrams). 2017 IEEE/ACM 39th International Conference on Software Engineering (ICSE). IEEE, 2017. Pp. 735-745.

8. J. Hao, T. K. Ho. Machine learning made easy: A review of scikit-learn package in Python programming language. Journal of Educational and Behavioral Statistics. 2019. Vol. 44. No. 3. Pp. 348-361.

9. Anatoly D. Khomonenko et al. "Indoor Mobile Positioning Using Neural Networks and Fuzzy Logic Control." Modern Fuzzy Control Systems and Its Applications. InTech, 2017.

10. N.E. Kosykh, A.D. Khomonenko, A.P. Bochkov, A.V. Kikot. Integration of Big Data Processing Tools and Neural Networks for Image Classification. Ceur workshop proceedings. Proceedings of Models and Methods of Information Systems Research Workshop2019. 2020. Vol. 2556. Pp. 52-58.

11. P. A. Parhomenko, A. A. Grigorev, N. A. Astrakhantsev. A survey and an experimental comparison of methods for text clustering: application to scientific articles. Proceedings of the Institute for System Programming of the RAS (Proceedings of ISP RAS). 2017. Vol. 29. No 2. Pp. 161-200. (In Russian)

12. N. Ketkar. Introduction to keras. Deep learning with Python. Apress, Berkeley, CA, 2017. Pp. 97-111.

13. A.V. Sozykin. An Overview of Methods for Deep Learning in Neural Networks. Bulletin of the South Ural State University. Series "Computational Mathematics and Software Engineering". 2017. Vol. 6, No 3. Pp. 28-59. (In Russian)

14. D.S. Abdelminaam, F.H. Ismail, M. Taha, A.Taha, E.H. Houssein, A. Nabil, Coaid-deep: An optimized intelligent framework for automated detecting covid-19 misleading information on twitter. IEEE Access, 2021, 9. Pp. 27840-27867.

15. Lenz, Moritz. "State Management." Python Continuous Integration and Delivery. Apress, Berkeley, CA, 2019. Pp. 171-181.

16. N. Idris, C. F. M.Foozy, P. Shamala. A generic review of web technology: Django and flask. International Journal of Advanced Science Computing and Engineering. 2020. Vol. 2. No 1. Pp. 34-40.

17. I.Yu. Paramonov, V.A. Smagin, N.E. Kosykh, A.D. Khomonenko. Methods and models for the study of complex systems and big data processing: monograph. St. Petersburg: Lan, 2020. 236 p. (In Russian)

18. M. Grinberg. Flask web development: developing web applications with python. O'Reilly Media, Inc., 2018. Pp. 50-55.

19. N.A. Zhuravleva, I.M. Gulyi, M.A. Polyanichko. Mathematical description and modelling of transportation of cargoes on the base digital railway. Environment. Technologies. Resources. Proceedings of the International Scientific and Practical Conference. 2019. Vol. 2. Pp. 175-179.

20. C. Catal, M. Nangir. A sentiment classification model based on multiple classifiers. Applied Soft Computing. 2017. Vol. 50. Pp. 135-141.

21. S. Pradha, M.N. Halgamuge, N.T.Q. Vinh. Effective text data preprocessing technique for sentiment analysis in social media data. 2019 11th international conference on knowledge and systems engineering (KSE). IEEE, 2019. Pp. 1-8.

INFORMATION ABOUT AUTHORS:

Nikita E. Kosykh, Master in Information Systems and Technologies, Postgraduate student of the Department of Information and Computing Systems of Emperor Alexander I Petersburg State Transport University, St. Petersburg, Russia

Anatoly D. Khomonenko, Doctor of Technical Sciences, Professor, Professor of the Department Information and computing systems of Emperor Alexander I Petersburg State Transport University, Professor of the Department of Mathematics and software of Military A.F. Mozhaisky Space Academy St. Petersburg, Russia

Olga N. Kuranova, Candidate of Technical Sciences, Associate Professor of the Department Information and computing systems of Emperor Alexander I Petersburg State Transport University, St. Petersburg, Russia

For citation: Kosykh N.E., Khomonenko A.D., Kuranova O.N. Developing a Web Application for Sentiment Analysis Using the Flask Framework and Python. H&ES Reserch. 2022. Vol. 14. No. No 1. P. 45-52. doi: 10.36724/2409-5419-2022-14-1-45-52 (In Rus)

i Надоели баннеры? Вы всегда можете отключить рекламу.