Данный проект посвящен классификации отзывов на фильмы с использованием методов машинного обучения. Был разработали веб-сервис, который позволяет пользователям вводить текст отзыва и получать предсказания о рейтинге и статусе (положительный/отрицательный) отзыва.
- Классификация отзывов на фильмы по позитивным и негативным категориям.
- Предсказание рейтинга отзыва на основе его содержания.
- Создание удобного веб-интерфейса для взаимодействия с пользователями.
Данные для обучения были взяты из достаточно известного набора данных Large Movie Review Dataset. Более подробно вы можете почитать о нем перейдя по ссылке.
В качестве модели для предскзаания рейтингов использовался дообученный под задачу BERT из библиотеки transformers google-bert/bert-base-uncased. Предобработку данных, различные подходы к обучению моделей,
эксперименты с гиперпараметрами и оценку качества вы можете найти в файле experiments.ipynb.
▎Оценка
В результате проведенного анализа данных удалось подобрать наилучшую модель и гиперпараметры для дообучения. В качестве метрик для оценки рейтинга использовались f1 score и mae (так как более близкое предсказание к истинной метке в данном случае играет большую роль) и accuracy для предсказания меток negative/positive
Итоговые метрики:
| f1 score | mae | accuracy |
|---|---|---|
| 0.559 | 0.608 | 0.976 |
▎Веб-сервис
Для взаимодействия с моделью был разработан веб-сервис, работающий на основе библиотек fastapi и pydantic для связи фронтенд части сервиса с бэкенд частью.
- Склонируйте репозиторий
- Установите зависимости из файла 'requirements.txt'
- Запустите приложение с помощью команды
python app.py - Если приложение слушает хост, к которому нет доступа, то пропишите в файле запуска
app.pyнужный локалхост (например, 127.0.0.1)