Итак, поскольку я больше практикуюсь в анализе настроений и изучаю различные методы и шаблоны для создания проекта, здесь я делюсь проектом, сделанным в обзоре McDonald’s.
Не тратя много времени на переговоры, сразу приступаю к проекту.
СИРФ КААМ КИ БАТ….!!!
Пост состоит из следующих заголовков —
- Загрузка набора данных
- Работа с пропущенными значениями и удаление бесполезных столбцов
- Выполнение ЭДА
- Подготовка данных для анализа настроений
- Визуализация WordCloud
- Анализ настроений
- Загрузка библиотек для построения модели и векторизация столбца обзора
- Алгоритм Наивного Байеса
- Логистическая регрессия
- Классификатор повышения градиента
- Случайный лесной классификатор
- Классификатор опорных векторов
- Предсказание по новому обзору
Давайте идти ….!!!!
1. Загрузка набора данных
Набор данных, используемый для выполнения этого проекта, — это «Набор данных McDonald’s Review», который доступен на Kaggle.
Включены следующие столбцы: Reviewer_id, store_name, category, store_address, широта, долгота, rating_count, Review_time, Review и рейтинг. Есть некоторые столбцы, которые бесполезны и должны быть удалены.
2. Работа с пропущенными значениями и удаление бесполезных столбцов
Опустим несколько столбцов, которые не нужны в этом анализе —
Теперь, когда мы удалили некоторые столбцы, давайте проверим отсутствующие и повторяющиеся значения в оставшихся столбцах —
Итак, у нас есть нулевые значения в двух столбцах. Я заполню их значением режима, так как не хочу терять свои драгоценные строки.
Итак, дело сделано, и теперь у нас нет пропущенных значений. Вперед.
3. Выполнение ЭДА
Давайте еще раз проверим наш набор данных —
Давайте проверим частоту оценок, данных клиентами, т. Е. Сколько из них поставили 5 звезд, 4 или 3 2 1….
Максимальная частота соответствует рейтингу 5 звезд, но рейтинг 1 звезда является вторым по частоте рейтингом, присваиваемым McDonald. Мы можем сделать вывод, что человек либо очень доволен своей службой, либо полностью недоволен, с небольшим количеством нейтральных.
4. Подготовка данных для анализа настроений
Я создал функцию для удаления всех ненужных слов, знаков препинания, пробелов и цифр. Ниже приведен код:
Теперь, перед анализом настроений, я разделил слова на токены, нормализовал их, а затем присоединил к текстам.
И наша предварительная обработка завершена, и данные подготовлены.
5. Визуализация WordCloud
Я хочу создать облако слов для просмотра наиболее часто упоминаемых клиентами слов. Я подготовил отдельные облака слов для каждой из оценок, предоставленных клиентами. Здесь показаны только onw wordcloud с рейтингом 5 звезд.
Сначала код —
А теперь облако слов —
Он наполнен такими фразами: «хорошо, превосходно, хорошо, лучше всего, отлично, помогите, полюбите, быстро» и прочими хорошими вещами.
6. Анализ настроений
Настало время для анализа настроений —
Верхняя половина анализирует отзывы и отмечает их как положительные, отрицательные или нейтральные.
Нижняя половина обозначает процент положительных и отрицательных отзывов, присутствующих в данных.
53 % положительных и 47 % отрицательных отзывов.
7. Загрузка библиотек для построения модели, векторизация столбца обзора и разделение данных на данные train_test.
Все необходимые библиотеки импортированы на рисунке ниже.
Перед построением модели мне нужно векторизовать текстовые данные, и для этого был использован векторизатор Tfidf, а затем данные были разделены на обучающие и тестовые данные.
Вся наша работа здесь завершена, и теперь мы начинаем построение модели и прогнозы.
8. Алгоритм Наивного Байеса
Был использован алгоритм машинного обучения Naive-Bayes, данные были обучены и подогнаны к этой модели, а затем были сделаны прогнозы.
Оценка точности составила 85%.
9. Алгоритм логистической регрессии
Был использован алгоритм машинного обучения логистической регрессии, данные были обучены и приспособлены к этой модели, а затем были сделаны прогнозы.
Оценка точности составила 93%.
10. Классификатор повышения градиента
Был использован алгоритм машинного обучения Gradient Boosting Classifier, данные были обучены и приспособлены к этой модели, а затем были сделаны прогнозы.
Оценка точности составила 88,5%.
11. Алгоритм классификатора случайного леса
Был использован алгоритм машинного обучения Random Forest Classifier, данные были обучены и приспособлены к этой модели, а затем были сделаны прогнозы.
Оценка точности составила 94,8%.
12. Алгоритм классификатора опорных векторов
Был использован алгоритм машинного обучения «Классификатор опорных векторов», данные были обучены и приспособлены к этой модели, а затем были сделаны прогнозы.
Оценка точности составила 95,15%.
13. Прогнозирование по новому отзыву
Я предсказал настроения по новому отзыву, введенному мной. Поскольку SVC работал лучше всего, я использовал его для своего прогноза.
И он предсказал правильно….!!
Заключение
Итак, я провел анализ настроений по набору данных отзывов McDonald’s. Набор данных был предварительно обработан, а затем подвергнут моделированию.
- Из 4 использованных моделей SVC оказалась наиболее точной моделью с показателем точности — 95,15%.
- Прогноз, сделанный в новом обзоре, был предсказан правильно.
- Не было большой разницы в проценте людей, получивших 5-звездочный рейтинг и 1-звездочный рейтинг.
- McDonald's действительно нужно работать над своими услугами и обеспечивать хорошее обслуживание клиентов, чтобы удовлетворить своих клиентов и сделать более положительный рейтинг.