Выявление токсичных комментариев в отзывах покупателей интернет-магазина
-
Pandas, Numpy, Matplotlib, Seaborn, Autocorrect, Contractions, Gc, Collections, Re, NLTK, Sklearn, Catboost
-
Pipeline, RandomizedSearchCV, TfidfVectorizer, CountVectorizer, ngram_range
После внедрения нового сервиса в интернет-магазине «Викишоп» пользователи получили возможность редактировать и дополнять описания товаров, как в вики-сообществах. Пользователи могут предлагать свои правки в описание и комментировать изменения, внесенные другими пользователями. В связи с этим интернет-магазину необходим инструмент, который поможет выявлять вероятные токсичные комментарии и отправлять их на проверку модератору.
Предварительно подготовлен набор данных с разметкой комментариев.
Цель проекта: построить модель классификации комментариев пользователей на позитивные (1) и негативные (0).
Целевое ограничение, по которому оценивается результат выполнения проекта: значение метрики качества f1_score лучшей модели на тестовой выборке должно быть >= 0.75.
Для достижения цели были поставлены и решены следующие задачи:
-
выполнена загрузка данных;
-
проведен исследовательский анализ данных;
-
обучены модели машинного обучения с разными гиперпараметрами;
-
лучшая модель проверена на тестовой выборке.
Решаемая задача относится к категории задач классификации.
(1) в результате многоступенчатой предобработки данных из исходного датасета удалено 56.86% информации, являющейся шумовой информацией.
(2) проведено машинное обучение четырех моделей классификации:
-
LogisticRegression
-
CatBoostClassifier
-
DecisionTreeClassifier
-
LinearSVC
Для выявления наилучшего результата кроме подбора гиперпараметров моделей было сделано две ветки обучения в зависимости от типа векторизации текста:
-
CountVectorizer()
-
TfidfVectorizer()
(3) Лучшая из выявленных моделей LinearSVC на тестовой выборке показала значение метрики f1 равное 0.792, что полностью соответствует предъявленным требованиям.