Skip to content

Репозиторий для определения тональности отзыва.

Notifications You must be signed in to change notification settings

darkasevgen/sentiment-analysis

Repository files navigation

Этот репозиторий содержит код для задачи "Sentiment analysis", или анализ настроений.


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

Данные

Датасет найден на kaggle и содержит 7,5к отзывов про банковское приложение.

Из признаков:

  • сам отзыв (русский текст);
  • заголовок, дата публикации;
  • имя пользователя;
  • ответ на отзыв со стороны банка;
  • флаг: правилось ли сообщение пользователем.

GT в данном случае является рейтинг, который пользователь выставляет приложению. Из числового формата отзыва (1 - 5 звезд) был получен таргет, используя бинаризацию: отзыв признается негативным, если рейтинг < 2.


Начало работы

  1. conda create --name test python=3.7

  2. pip3 install -r requirements.txt

  3. Для тренировки: python train.py

    Для тестирования: python inference.py --review 'Очень классно'


Обучение

Файл train.py содержит обучение лучшей модели из найденных. Файл 'sentiment analysis.ipynb' содержит исследования и отбор лучшей модели. inference.py содержит код для прогноза тональности, написанного на клавиатуре отзыва.

Для нахождения оптимальных гиперпараметров модели использовалась кросс валидация.

В качестве основы использовались модели RuBert (top-7) и Sbert (top-2). Бенчмарк.

Метрика

В качестве целевой метрики использовался f1. Мотивация в бизнесовом моменте о важности найти все единички, или найти все единички точно. Зависит от компании/ситуации.


Бенчмарк

Модель Используемые фичи Кол-во признаков F1
RuBert Отзыв 3 0.674
RuBert Отзыв + Заголовок 6 0.723
RuBert + LogReg Отзыв + Заголовок 6 0.825
RuBert + SVC Отзыв + Заголовок 6 0.825
RuBert + KNN Отзыв + Заголовок 6 0.826
RuBert + Ensemble Отзыв + Заголовок 6 0.824
RuBert + LogReg Отзыв + Заголовок + sin/cos/onehot date 34 0.826
SBert + LogReg Отзыв 1024 0.829
SBert + KNN Отзыв 1024 0.826

Итоговая модель здесь. Является надстройкой над фичами Sbert и находится в git lfs.

About

Репозиторий для определения тональности отзыва.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published