Skip to content

AllexFrolov/RNN_in_text

Repository files navigation

RNN_in_text

Постановка задачи заказчиком:
Реализовать рекурентную нейронную сеть для анализа тональности текста. Тренировочные данные состоят из двух файлов positive.txt и negative.txt с позитивными и негативными текстами соответственно. Важен сам pipeline и описание действий.

Этапы выполнения проекта

  1. Анализ и подготовка данных
  • Объеденины данные, добавлен целевой признак 'Target' со значениями 1 - негативный текст, 0 - позитивный. Использовалась библиотека Pandas.
  • Текст отчищен от лишних знаков и сивмолов. Оставлены только буквы. Использована библиотека для регулярных выражений re.
  • При помощи библиотеки pymorphy2 слова приведены к их нормальной словарной форме:
    • для существительных — именительный падеж, единственное число;
    • для прилагательных — именительный падеж, единственное число, мужской род;
    • для глаголов, причастий, деепричастий — глагол в инфинитиве несовершенного вида.
  • Данные разделены на тренировочную, валидационную и тестовую выборки. Использовалась библиотека Scikit-Learn
  • Текст векторизирован. В качестве алгоритма использовался мешок слов, размер словаря 73567. Для этого была использована библиотекой PyTorch.
  1. Создание модели и тренировка
  • Реализованы функции для тренировки модели. В качесте метрики выбрана и реализована функция F1-score.
  • Создана следующая модель Input -> Embedding -> LSTM -> Dropout -> Linear -> ReLU -> Linear -> Class. Использована библиотека PyTorch
  • В качестве функции потерь была взята BCEWithLogLoss. Так было решено сделать различный learning rate для различных слоев модели.
  1. Тестирование модели
  • Проведена оценка модели на тестовой выборке.
  • Обученная модель сохранена для дальнейшего использования

Для корректной работы программы необходим установить библиотеки

Основные файлы
Файл тренировки rnn_in_text.jpynb
Файл тестирования testing_model.py
Для работы файла testing_model.py необходим словарь vocab.txt и модель model.torch. Они создаются в процессе тренировки

Вспомогательные файлы:
Данные для тестирования: texts.txt - Вносятся тексты для анализа
Словарь: vocab.txt - Создаётся после выполнения файла rnn_in_text.jpynb
Модель : model.torch - Создаётся после выполнения файла rnn_in_text.jpynb
Вспомогательные функции: functions.py
В папке Data находятся данные для обучения модели

About

Sentiment classification of text

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published