Skip to content

Sentiment Analysis of twitter texts, written in Russian // Анализ эмоциональной окраски текстов, написанных на русском языке, с помощью нейронной сети LSTM

Notifications You must be signed in to change notification settings

kategimranova/tonal_russian_texts

Repository files navigation

Определение эмоциональной нагрузки текста с помощью нейронной сети типа LSTM

Описание приложения

Была реализована программа, определяющая эмоциональную окраску текста на русском языке. Для этого была разработана модель глубокого обучения, использующая рекуррентные нейронные сети (LSTM). Модель была разработана с помощью языка Python 3 и библиотеки PyTorch для работы с нейронными сетями. Для наглядного представления результатов работы нейронной сети было также написано веб-приложение с использованием микрофрейморка Flask. Пользователем на веб-странице вводится текст для анализа эмоциональной окраски, по результатам которого определяется одна из эмоциональных характеристик.

В качестве выборки для обучения были выбраны размеченные русские твиты на две категории: позитивные и негативные (корпус Юлии Рубцовой: http://study.mokoron.com)

Обучить нейронную сеть можно двумя способами: с помощью CPU и GPU. На GPU вычисления происходят в разы быстрее, поэтому второй вариант является более приемлемым, однако требуется интернет-соединение. Для обучения на GPU была использована облачная технология Google Colab.

Программа классифицирует текст по двум типам эмоциональной окраски: позитивной и негативной.

Установка библиотек

Для обучения и тестирования модели необходимо установить библиотеки PyTorch и Pandas:

pip install torch torchvision
pip install pandas

Данный пункт необходим только для тестирования и обучения модели с помощью CPU: при работе с файлом train_in_colab.ipynb в Google Colab предварительные установки библиотек не требуются.

Для тестирования модели через веб-приложение необходимо установить микрофреймворк Flask:

pip install Flask    

Инструкция по сборке проекта

Чтобы собрать и запустить проект из командной строки из корня проекта (tonal_flask), нужно выполнить следующую последовать команд:

export FLASK_APP=app.py
python -m flask run

Сервер запустится на http://127.0.0.1:5000. Для получения класса эмоциональной окраски текст на РУССКОМ языке необходимо ввести на веб-странице. Другим вариантом тестирования работы программы является передача пути исследуемого файла в качестве аргумента ключа -i:

python3 test_model.py -i input.txt

input.txt - текстовый файл c расширением txt, который содержит тестируемый текст.

Описание работы веб-приложения

  1. переходим по http://127.0.0.1:5000
  2. в input-поле "введите текст на русском языке..." необходимо ввести текст до 120 символов строго на русском языке. Могут встречаться эмодзи(смайлы), ссылки и т.д., система не будет их учитывать при обработке текста (так же как и слова на других языках).
  3. после нажатия кнопки "Получить результат" будут написаны предсказанная эмоциональная окраска(позитивная или негативная) и ее вероятность.

Повторное обучение модели

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

Для того, чтобы запустить обучение модели на CPU :

python3 train_model.py

Для того, чтобы запустить обучение модели на GPU, необходимо :

  1. загрузить файл train_in_colab.ipynb на сайте https://colab.research.google.com;
  2. выбрать режим GPU: перейти по Runtime > Change runtime type и выбрать GPU в качестве Hardware accelerator
  3. Запустить файл с помощью Runtime > Run all (Ctrl + F9).
  4. После запуска файла в первых двух ячейках будет предложено загрузить файлы: необходимо загрузить файлы ./dataset/positive.csv и /dataset/negative.csv c помощью появившихся в этих ячейках кнопки "Выбрать файлы".

About

Sentiment Analysis of twitter texts, written in Russian // Анализ эмоциональной окраски текстов, написанных на русском языке, с помощью нейронной сети LSTM

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published