С появлением социальных сетей высокое качество структурированной и неструктурированной информации, передаваемой из различных источников, таких как данные, генерируемые Twitter или Facebook, которые отражают настроения пользователей. Возможность обрабатывать эту информацию стала важной для более глубокого изучения восприятия бренда с помощью анализа настроений в Twitter. Анализ текста - это часть техники машинного обучения, при которой высококачественная информация, полученная из текста, позволяет проанализировать восприятие покупателем определенного бренда.

Восприятие бренда - это особый результат взаимодействия потребителя с брендом. Цель этой статьи - найти имидж и узнаваемость бренда среди потребителей, что они на самом деле думают и думают о #nike как о бренде. Для исследования мы собрали данные из твиттера для анализа восприятия бренда и настроений.

Just Do It - товарный знак обувной компании Nike и один из основных компонентов бренда Nike. Слоган был придуман в 1988 году на встрече рекламного агентства.

1) ИЗВЛЕЧЬТЕ ДАННЫЕ ИЗ TWITTER

Извлекайте последние твиты из Twitter, используя учетную запись приложения Twitter.

install.packages("twitter")
install.packages("ROAuth")
library("twitter")
library("ROAuth")
cred <- OAuthFactory$new(consumerKey='XXXXXXXXXXXXXXXXXX',
consumerSecret='XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX',
requestURL='https://api.twitter.com/oauth/request_token',
accessURL='https://api.twitter.com/oauth/access_token',
authURL='https://api.twitter.com/oauth/authorize')

Прежде чем очищать данные для анализа, давайте сначала изменим формат столбцов даты и текста. Текстовый столбец может содержать числа, хэш-теги и другие регулярные выражения, преобразующие их все в символьные значения, что упрощает чтение корпуса.

tweets$created <- as.Date(tweets$created, format= "%y-%m-%d")
tweets$text <- as.character(tweets$text)

2) СОЗДАТЬ БРЕНДОВЫЙ КОРПУС

Корпус состоит из текстового документа. В программировании на R этот термин используется для обозначения набора текстов, которые считаются схожими.

#Data Pre-processing
set.seed(100)
(n.tweet <- length(tweets))
## [1] 17

Приведенный выше код считывает данные и возвращает длину назначенного текста.

corpus () в пакете corpus - это функция для создания коллекции текста для интеллектуального анализа текста

# Создайте корпус документов с текстом твита.

corpus<- Corpus(VectorSource(tweets$text))
corpus[[1]]

3) ПРЕДВАРИТЕЛЬНАЯ ОБРАБОТКА И ОЧИСТКА

Предварительная обработка текста может значительно улучшить производительность метода «Сумка слов». Первым шагом к этому является создание корпуса, который, попросту говоря, представляет собой не что иное, как собрание текстовых документов. После создания корпуса мы готовы к предварительной обработке.

Во-первых, удалим знаки препинания. Основной способ справиться с этим - удалить все, что не является стандартным числом или буквой. В нашем случае мы удалим все знаки препинания. Затем мы меняем регистр слова на нижний, чтобы одни и те же слова не считались разными из-за нижнего или верхнего регистра.

Еще одна задача предварительной обработки, которую мы должны выполнить, - это удалить бессмысленные термины, чтобы улучшить нашу способность понимать настроения.

Преобразования в тексте выполняются с помощью функции tm_map (). По сути, все преобразования работают с отдельными текстовыми документами, а tm_map () просто применяет их ко всем документам в корпусе.

Удалить URL

Это удалит URL-адрес из основного документа.

#remove URL

removeURL <- function(x) gsub("http[^[:space:]]*", "", x)
corpus <- tm_map(corpus, content_transformer(removeURL))

Удалить пунктуацию

Создайте внешнюю функцию и передайте в tm_map () для преобразования текстового корпуса.

# удаление знаков препинания

remove_punct<-function(x)gsub("[^[:alpha:][:space:]]*", "", x)
corpus <- tm_map(corpus, content_transformer(remove_punct))

Удаление пробелов

Это уберет пустое пространство из текстовых корпусов.

# удаление лишних пробелов

corpus = tm_map(corpus, stripWhitespace)

Удалите @ (имена пользователей)

Несколько слов в корпусе могут содержать почтовые идентификаторы или слова, начинающиеся с @.

removeUsername <- function(x) gsub("@[^[:space:]]*", "", x)
corpus <- tm_map(corpus, content_transformer(removeUsername))
writeLines(strwrap(corpus[[750]]$content,60))
## RT Nike Dont ask if your dreams are crazy Ask if theyre
## crazy enough justdoit

4) НОРМАЛИЗАЦИЯ ТЕКСТА

Процесс нормализации включает в себя равномерное преобразование текста.

преобразовать текст в нижний регистр

corpus <- tm_map(corpus, content_transformer(stri_trans_tolower))
writeLines(strwrap(corpus[[750]]$content,60))
## rt nike dont ask if your dreams are crazy ask if theyre
## crazy enough justdoit

удалить стоп-слова

Стоп-слова - это просто обычные слова, которые не имеют смысла. Если мы посмотрим на результат использования стоп-слов («английский язык»), мы увидим, что удаляется.

corpus = tm_map(corpus, removeWords, stopwords('English'))
inspect(corpus)
##    [1] rt nike dont ask   dreams  crazy ask crazy theyre enough justdoit
##    [2] rt statecrafthuff paint kap   person    people even   demonizes good cops  trys  sell americans   false narra

Давайте создадим наш собственный словарь для удаления стоп-слов, чтобы дальше анализировать текст

# укажите ваши игнорируемые слова как вектор символов

Corpus<-tm_map(corpus, removeWords, c("keep", "check", "can","just","isnt","hey","ask","theyr","dont","theyre","cmon","htt","everything","even","enough","rt"))

удалить однобуквенные слова

removeSingle <- function(x) gsub(" . ", " ", x)
corpus <- tm_map(corpus, content_transformer(removeSingle))
writeLines(strwrap(corpus[[750]]$content,60))
## nike dreams crazy crazy justdoit

5) МАТРИЦА СРОК-ДОКУМЕНТОВ

После предварительной обработки данных мы готовы извлечь частоты слов, которые используются в наших данных Twitter. Пакет tm предоставляет функцию под названием Term Document Matrix, которая генерирует матрицу, в которой строки соответствуют документам, в нашем случае твитам, а столбцы соответствуют словам в этих твитах.

Значения в матрице - это количество раз, когда это слово появлялось в каждом документе. Матрица документа представляет собой таблицу, содержащую частоту слов. Имена столбцов - это слова, а имена строк - это документы. Функция TermDocumentMatrix () из пакета интеллектуального анализа текста используется следующим образом:

dtm <- TermDocumentMatrix(corpus)

justdoitjustdoit1730сумасшедший, сумасшедший1564

Наиболее частые термины

На основе функции вывода termdocumentmatrix () была предпринята попытка отсортировать ключевые слова по их частоте. Слово, которое часто встречается, просто используется пользователями в Твиттере, где «козырная» - это слово, которое чаще всего встречается в корпусе.

Низкочастотные термины

Низкочастотные @ 55 и @ 85 слов показаны на графике подсчета частот ниже.

Постройте график частоты слов

6) Бренд WORD CLOUD

7) ПОИСК АССОЦИАЦИИ

Здесь мы пытаемся найти связь между ключевыми словами.

barplot(t(as.matrix(corrdf1)), beside=TRUE,xlab = "Words",ylab = "Corr",col = "blue",main = "nike",border = "black")

Слово «Найк» тесно связано с терминами «верь», «Христос», «Иисус», «Каперник», «демс» и «беги».

barplot(t(as.matrix(corrdf1)), beside=TRUE,xlab = "Words",ylab = "Corr",col = "yellow",main = "justdoit",border = "black")

Точно так же Justdoit показывает большую связь с жертвоприношением, чем kaepernick

8) КЛАСТЕРИЗАЦИЯ

Поскольку с помощью #nike создается много похожих твитов, становится сложно дать осмысленную интерпретацию огромных объемов обрабатываемых данных. Мы стараемся группировать похожие твиты вместе. Иерархическая кластеризация пытается построить разные уровни кластеров.

Функция R, функция hclust () выполняет иерархическую кластеризацию. Используется агломерационный метод. Для выполнения этой операции корпус конвертируется в матрицу документа. Мы использовали метод Уорда для иерархической кластеризации. Представленная ниже дендограмма показывает результаты иерархической кластеризации.

9) МОДЕЛИРОВАНИЕ ВОСПРИЯТИЯ БРЕНДА

На приведенных выше графиках показано распределение вероятностей для всех терминов, каждая тема LDA имеет 10 терминов, которые не зависят от терминов в другой теме LDA.

10) АНАЛИЗ ОТПРАВЛЕНИЙ В TWITTER

Анализ настроений и извлечение мнений - это область исследования, которая анализирует мнения, настроения, оценки, отношения и эмоции людей на основе письменной речи. Это одна из самых активных областей исследований в области обработки естественного языка и искусственного интеллекта, которая также широко изучается в интеллектуальном анализе данных, веб-интеллектуальном анализе и интеллектуальном анализе текста.

Чувства подразделяются на положительные, предвкушение, страх, радость, удивление и отрицательные.

Это говорит о том, что из 2000 текстовых данных оценка положительных твитов сравнительно выше, чем других настроений, около 1400, в то время как 1300 ключевых слов ожидаются как отрицательные, и есть несколько настроений, которые нельзя классифицировать.

ЗАКЛЮЧЕНИЕ

Восприятие бренда в кампании Nike «Просто сделай это» в честь 30-летнего юбилея Nike запустила кампанию с скандальной бывшей звездой НФЛ Колином Каперником. Споры вокруг Каперника связаны с его решением встать на колени во время исполнения Государственного гимна Америки в начале игр НФЛ в знак протеста против жестокости полиции по отношению к цветным людям.

Каперник не имел контракта с НФЛ в течение последних двух сезонов, но по-прежнему считается фигурой поляризующей. Запуская эту новую кампанию, Nike рискует оттолкнуть огромный сегмент своей потребительской базы в США, возможно, даже половину. Почему они это сделали? Возможно, они думают, что это сузит племя с миллениалами, которые склонны участвовать в протестных движениях, особенно когда политические лидеры и другие авторитетные фигуры не согласны с их чувствами и ценностями.

Итак, эта кампания рассеяла части племени Найк, лояльных американских патриотов и людей, которые служат или служили в наших вооруженных силах, правительстве или учреждениях, которые во многом полагаются на здоровое правительство и национальную репутацию. Эти люди считают отказ от исполнения государственного гимна на спортивном мероприятии внешним признаком неуважения к идее Америки и всем жертвам, принесенным во имя нации. Они считают жесты Колина Каперника признаком сомнительного характера. Они считают его публичные жесты неуместными и неуместными.

Эта последняя версия «Просто сделай это» вызвала такой уровень социальных дебатов, что со временем повысит понимание в обществе риска, на который Nike пошла в рамках этой кампании. Эта кампания приблизит многих городских спортсменов и профессиональных спортсменов из числа меньшинств к бренду. Им нравится, что Nike поддерживает индивидуальные права спортсменов, акты нравственности, убеждений и протеста. Критика их свободы слова или выражения со стороны лиги или нации рассматривается смутно. Но то, что мы можем вести диалог о плюсах и минусах такого события и момента в нашей истории, громко говорит об американских ценностях и человеческих ценностях. Нынешние дебаты, вероятно, заставили бы основателей Соединенных Штатов гордиться.

Http://rpubs.com/Malvika30/Brand-Perception-Sentiment-Analysis-R