/sentiment_analysis

MVideo hackathon test task. User`s review rating prediction

Primary LanguageJupyter NotebookMIT LicenseMIT

В этом репозитории представлено решение тестового задания хакатона MVideo M.Smart

Состав команды:

  1. Парунин Павел
  2. Якубовский Павел
  3. Марин Антон
  4. Тураев Адам
  5. Черняков Илья

Решение:

Постановка задачи:

Задание рассматривалось как задача регрессии.

Подготовка данных:

Данные были проанализированы и разбиты на обучающую и тестовую выборки (см. файл "data preprocessing - original data.ipynb") в отношении 80%:20% соответственно.

В дополнение к обучающей выборке, были добавлены отзывы об интернет-провайдерах с сайта: http://www.moskvaonline.ru/rating (дополнительные ~20.000 отзывов, см. файл "data preprocessing - additional data.ipynb")

Полученные данные были обработаны с использованием двух основных подходов:

  1. word based, word2vec (каждому слову сопоставлялся соответствующий вектор, подробнее: https://nlpub.ru/Russian_Distributional_Thesaurus).

  2. character based (отзывы были разбиты по буквам, был составлен словарь из букв, отзывы заменялись последовательностью индексов букв в словаре)

Метрики:

Целевая переменная(рейтинг комментрия) не нормировалась.
Использованные метрики: MSE, MAE, Median AE, R2 score.
Целевая метрика: MSE

Методы:

Для решения задачи были испробованы различные методы машинного обучения:

  • Linear Regression,
  • Ridge Regression,
  • SVR,
  • RandomForestRegressor,
  • XGBoost,
  • нейронные сети.
    Лучшие результаты были получены с использованием нейронных сетей, поэтому в этом репозитории мы решили включить только их.
Модель №1.

word-based
Файл с обучением: "training model_1(keras==1.2.2).ipynb"
Обученная модель: "saved_models/trained_model_1(keras==1.2.2)"
Файл с оценкой качества: "evaluating_word.ipynb"

Модель №2.

word-based
Файл с обучением: "training model_2(keras==2.0.8).ipynb"
Обученная модель: "saved_models/trained_model_2(keras==2.0.8)"
Файл с оценкой качества: "evaluating_word.ipynb"

Модель №3.

character-based
Файл с обучением: "training model_3(keras==2.0.8).ipynb"
Обученная модель: "saved_models/trained_model_3(keras==2.0.8)"
Файл с оценкой качества: "evaluating_char.ipynb"

Результаты

Модель\Метрика MSE MAE Median AE r2 score
Модель №1 0,9136 0,6817 0,4942 0,471
Модель №2 0,9058 0,6832 0,5121 0,4741
Модель №3 1,0244 0,7631 0,6162 0,4067