Анализ настроений с использованием R
Есть ли пакеты R, которые фокусируются на анализе настроений? У меня есть небольшой опрос, где пользователи могут написать комментарий о своем опыте использования веб-инструмента. Я прошу числовой рейтинг, и есть возможность включить комментарий.
Мне интересно, каков наилучший способ оценить позитивность или негативность комментария. Я хотел бы иметь возможность сравнить его с числовым рейтингом, который предоставляет пользователь, используя R.
5 ответов
И есть этот пакет:
sentiment: Tools for Sentiment Analysis
sentiment - это пакет R с инструментами для анализа настроений, включая байесовские классификаторы для классификации позитивности / негатива и эмоций.
Обновление 14 декабря 2012: удалено в архив...
Обновление 15 марта 2013: пакет qdap имеет polarity
функция, основанная на работе Джеффри Брина
Вот работа, которую я сделал по анализу настроений в R.
Код ни в коем случае не отшлифован или хорошо упакован, но я разместил его на Github с базовой документацией. Я использовал API-интерфейс ViralHeat, который просто возвращает JSON, поэтому фактическая функция для анализа настроений довольно тривиальна (см. Код здесь).
Не стесняйтесь связаться со мной, если у вас возникли проблемы с его использованием. И обратите внимание, что вам нужно будет зарегистрировать ключ API в ViralHeat, прежде чем вы сможете его использовать. Если вы считаете, что квоты слишком ограничены, я связался с ними, и они были рады дать мне еще несколько запросов в течение нескольких месяцев, пока я играл с API.
Пошаговое руководство по использованию 1) Viral Heat API 2) Подход Джеффри Брина 3) Используя Sentiment Package, перейдите по этой ссылке: https://sites.google.com/site/miningtwitter/questions/sentiment
Я попытался реорганизовать и предоставить комплексный пакет для анализа настроений здесь. SentR включает в себя обработку слов и предварительную обработку и предоставляет доступ к API-интерфейсу ViralHeat, функции агрегирования по умолчанию, а также к более продвинутому наивному байесовскому методу.
Установка относительно проста:
install.packages('devtools')
require('devtools')
install_github('mananshah99/sentR')
require('sentR')
И простой пример классификации:
# Create small vectors for happy and sad words (useful in aggregate(...) function)
positive <- c('happy', 'well-off', 'good', 'happiness')
negative <- c('sad', 'bad', 'miserable', 'terrible')
# Words to test sentiment
test <- c('I am a very happy person.', 'I am a very sad person',
'I’ve always understood happiness to be appreciation. There is no greater happiness than appreciation for what one has- both physically and in the way of relationships and ideologies. The unhappy seek that which they do not have and can not fully appreciate the things around them. I don’t expect much from life. I don’t need a high paying job, a big house or fancy cars. I simply wish to be able to live my life appreciating everything around me.
')
# 1. Simple Summation
out <- classify.aggregate(test, positive, negative)
out
# 2. Naive Bayes
out <- classify.naivebayes(test)
out
Который обеспечивает следующий вывод:
score
1 1
2 -1
3 2
POS NEG POS/NEG SENT
[1,] "9.47547003995745" "0.445453222112551" "21.2715265477714" "positive"
[2,] "1.03127774142571" "9.47547003995745" "0.108836578774127" "negative"
[3,] "67.1985217685598" "35.1792261323723" "1.9101762362738" "positive"
Пожалуйста, не стесняйтесь вносить свой вклад:) Надеюсь, что это помогает!
Вы все еще можете использовать пакет настроений. Установите его, следуя сценарию ниже.
Вам может понадобиться R 3.x.
require(devtools)
install_url("http://cran.r-project.org/src/contrib/Archive/sentiment/sentiment_0.2.tar.gz")
require(sentiment)
ls("package:sentiment")