Визуализация результата анализа тональности текста

С помощью среды R можно анализировать различные данные, получать результат в различном виде: графики, гистограммы, тепловые карты и т. д. Построение гистограмм и облака точек не является новой задачей, так как она уже рассматривалась в данном курсе.

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

Для начала рассмотрим терминологию.

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

Получать текст для анализа мы будем из социальной сети Twitter с помощью библиотек для R и Twitter API. Библиотека для работы с Twitter API в среде R называется twitteR и подключается с помощью команды «library('twitteR')».

Перед написанием скрипта на R необходимо провести подготовительную работу:

1. регистрация на портале разработчиков приложений для Твиттера (https://developer. /), получение секретных ключей для разработки;

api_key = "Ваш ключ API"

api_secret = "Ваш api_secret пароль"

access_token = "Ваш токен доступа"

access_token_secret = "Ваш пароль токена доступа"

НЕ нашли? Не то? Что вы ищете?

Все ключи берутся все на том же портале, после регистрации приложения. Регистрация и получение ключей интуитивно понятны и просты и не требуют дополнительных пояснений.

2. создание или использование существующих словарей позитивных и негативных слов. Словарями являются обычные списки слов. Существующие словари можно легко найти в интернете.

Скрин словаря позитивных слов

После завершения подготовительных работ пишем скрипт на языке R, включающий в себя:

Подключение библиотек (twitteR, dplyr, stringr, ggplot2, tm, SnowballC, qdap); Введение ключей;

api_key = "Ваш ключ API"

api_secret = "Ваш api_secret пароль"

access_token = "Ваш токен доступа"

access_token_secret = "Ваш пароль токена доступа"

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

Авторизацию для получения доступа к Twitter API;

setup_twitter_oauth(api_key, api_secret, access_token, access_token_secret)

Загрузку словарей из текстовых файлов;

positive=scan('positive-words. txt',what='character',comment. char=';') negative=scan('negative-words. txt',what='character',comment. char=';')

Выполнение запроса на поиск постов на заданную тему;

findfd="hollywood" #тема запроса

number=5000 #количество выгружаемых записей

tweet=searchTwitter(findfd, number)

Получение текста твитов;

tweetT=lapply(tweet, function(t)t$getText())

head(tweetT,5) #результат выборки для первых 5 сообщений

Очистка текста и разбиение на отдельные слова;

# Функции очищения текста

# tolower() – приведение верхнего регистра к нижнему, выдает ошибку, встречая специальные символы

tryTolower = function(x){y = NA; try_error = tryCatch(tolower(x), error = function(e) e); if (!inherits(try_error, "error")) y = tolower(x); return(y)}

# clean – очищает твиты и разбивает на векторы слов

clean=function(t){ t=gsub('[[:punct:]]','',t); t=gsub('[[:cntrl:]]','',t); t=gsub('\\d+','',t); t=gsub('[[:digit:]]','',t); t=gsub('@\\w+','',t); t=gsub('http\\w+','',t); t=gsub("^\\s+|\\s+$","",t) t=gsub('“','',t); t=gsub('”','',t); t=gsub('*','',t); t=sapply(t, function(x) tryTolower(x)); t=str_split(t," "); t=unlist(t); return(t)}

# Очищение твитов и разбиение на слова

tweetclean=lapply(tweetT, function(x) clean(x))

head(tweetclean,5) #результат для первых 5 сообщений

Анализ твитов (поиск позитивных и негативных слов);

Построение графиков и облаков слов, с помощью библиотек и встроенных функций;

Скрипт построения гистограмм и облаков слов приводить не имеет смыла, так как он рассмотрен в основном курсе Анализа данных в среде R. Рассмотрим лишь результаты построения, не анализируя полученный результат.

1. Евровидение 2016


Облако позитивных слов по теме "eurovision 2016"

Облако негативных слов по теме "eurovision 2016"



2. Danger – опасность


Облако позитивных слов по теме "danger"

Облако негативных слов по теме "danger"


Данный инструмент создан для анализа данных полученных за последние 7 дней из социальной сети Twitter, выгруженных в момент запуска скрипта. К сожалению, нет возможности выгружать более ранние данные или за любой другой промежуток времени из-за официальной политики Twitter.

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