Настроения авиакомпаний США в Твиттере
Использование анализа тональности для понимания отзывов пользователей
Мотивация:
Цифровая связь дает покупателям огромную возможность озвучивать свои мысли, мнения и отзывы о бренде. Мнения клиентов, выраженные в Twitter, Facebook и других онлайн-форумах, формируют основу клиентской стратегии брендов по всему миру.
Авиакомпании могут использовать анализ настроений или интеллектуальный анализ мнений постов, размещенных на различных платформах социальных сетей, чтобы получить информацию о пользователях и разработать стратегию своих брендов.
Проблема :
В текущем наборе данных (который можно найти здесь на Kaggle) у нас есть твиты для 6 авиакомпаний США.
Нам необходимо проанализировать, как путешественники в феврале 2015 года выражали свои чувства в Твиттере, т. е. были ли твиты положительными, отрицательными или нейтральными.
Обработка данных:
Первоначальная очистка
После очистки неуникальных столбцов и столбцов с более чем 90% пропущенных значений у нас будут следующие столбцы:
tweet_id airline_sentiment airline_sentiment_confidence negativereason negativereason_confidence airline name retweet_count text tweet_created tweet_location user_timezone
Давайте посмотрим, как выглядит наш набор данных:
Исследовательский анализ данных
Давайте посмотрим на распределение положительных, нейтральных и отрицательных твитов в нашем наборе данных.
Обратите внимание, что более 60 % твитов являются негативными.
Ниже представлено распределение авиакомпаний по твитам:
Тенденция положительных, нейтральных и отрицательных твитов авиакомпаний:
Из графика выше мы видим, что
1. United, US Airways и American имеют существенно негативные твиты, они также превзошли все остальные твиты
2. Твиты компаний Virgin America, Delta и Southwest довольно сбалансированы
Теперь давайте посмотрим на тенденцию количества негативных твитов по сравнению с датами:
Следует отметить, что американцы начали получать твиты с 22 февраля 2015 года.
Давайте рассмотрим негативные причины, отмеченные клиентами в своих отзывах:
Как видно, в большинстве твитов указана причина
- Проблема со службой поддержки
- Опоздание на рейс
Давайте теперь проанализируем частоту появления слов в негативных твитах с помощью WordCloud:
Обратите внимание, что рейс, час, помощь, время, удержание, сумка, самолет чаще встречаются в отрицательных утверждениях.
Точно так же давайте проанализируем частоту слов, появляющихся в положительных твитах:
Обратите внимание, что спасибо, полет, здорово, воля, офигенно и любовь чаще присутствуют в положительных высказываниях.
Давайте теперь начнем анализировать твиты
Теперь мы очистим текстовые данные, для этого выполним следующие шаги:
- Удалить все специальные символы
- перевести все буквы в нижний регистр
- отфильтровать английские стоп-слова
- стеммер/лемметизация (по желанию)
Далее мы будем векторизовать текст твита, используя TF-IDF, который является мерой для оценки того, насколько важно слово для документа в корпусе.
Теперь мы применим следующие модели для прогнозирования настроений на основе текстовых данных твитов:
- Логистическая регрессия
- МногочленNB
- Дерево решенийКлассификатор
- Случайный ЛесКлассификатор
- KNeighboursClassifier
Оценка точности для каждой модели:
LogisticRegression Accuracy Score : with accuar79.1% precision recall f1-score support negative 0.93 0.81 0.87 3232 neutral 0.48 0.66 0.56 648 positive 0.60 0.81 0.69 512 accuracy 0.79 4392 macro avg 0.67 0.76 0.71 4392 weighted avg 0.83 0.79 0.80 4392MultinomialNB Accuracy Score : 69.69% precision recall f1-score support negative 0.99 0.69 0.81 4081 neutral 0.15 0.78 0.26 174 positive 0.18 0.93 0.31 137 accuracy 0.70 4392 macro avg 0.44 0.80 0.46 4392 weighted avg 0.94 0.70 0.77 4392DecisionTreeClassifier Accuracy Score : 67.42% precision recall f1-score support negative 0.79 0.78 0.79 2841 neutral 0.40 0.41 0.40 879 positive 0.55 0.57 0.56 672 accuracy 0.67 4392 macro avg 0.58 0.58 0.58 4392 weighted avg 0.68 0.67 0.67 4392RandomForestClassifier Accuracy Score : 76.78% precision recall f1-score support negative 0.94 0.79 0.86 3378 neutral 0.38 0.63 0.48 535 positive 0.54 0.79 0.64 479 accuracy 0.77 4392 macro avg 0.62 0.74 0.66 4392 weighted avg 0.83 0.77 0.79 4392KNeighborsClassifier Accuracy Score : 69.83% precision recall f1-score support negative 0.82 0.80 0.81 2866 neutral 0.46 0.42 0.44 960 positive 0.53 0.65 0.58 566 accuracy 0.70 4392 macro avg 0.60 0.62 0.61 4392weighted avg 0.70 0.70 0.70 4392
График для каждой модели и оценки точности:
Вывод
Логистическая регрессия — лучшая модель для прогнозирования результатов с точностью 79,1%.
Нажмите здесь, чтобы просмотреть мою записную книжку по Python на Kaggle, и здесь, чтобы просмотреть статью в Linkedin.