2015-09-16 1 views
4

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

У меня есть набор данных, состоящих из мнений, и хотел бы проанализировать мнения.

Title  Date   Content  
Boy  May 13 2015  "She is pretty", Tom said. 
Animal  June 14 2015 The penguin is cute, lion added. 
Human  March 09 2015 Mr Koh predicted that every human is smart.. 
Monster Jan 22 2015  Ms May, a student, said that John has $10.80. 

спасибо.

+0

Как это отличается от вашего [предыдущего вопроса] (http://stackoverflow.com/questions/32576046/text-mining-with-r)? –

ответ

4

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

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

Например:

require(quanteda) 
mycorpus <- subset(inaugCorpus, Year>1980) 
mydict <- dictionary(list(negative = c("detriment*", "bad*", "awful*", "terrib*", "horribl*"), 
          postive = c("good", "great", "super*", "excellent"))) 
myDfm <- dfm(mycorpus, dictionary = mydict) 
## Creating a dfm from a corpus ... 
## ... lowercasing 
## ... tokenizing 
## ... indexing documents: 9 documents 
## ... indexing features: 3,113 feature types 
## ... applying a dictionary consisting of 2 keys 
## ... created a 9 x 2 sparse dfm 
## ... complete. 
## Elapsed time: 0.057 seconds. 
myDfm 
## Document-feature matrix of: 9 documents, 2 features. 
## 9 x 2 sparse Matrix of class "dfmSparse" 
##    features 
## docs   negative postive 
## 1981-Reagan   0  6 
## 1985-Reagan   0  6 
## 1989-Bush   0  18 
## 1993-Clinton  1  2 
## 1997-Clinton  2  8 
## 2001-Bush   1  6 
## 2005-Bush   0  8 
## 2009-Obama   2  3 
## 2013-Obama   1  3 

# use a LIWC dictionary - obviously you need this file 
liwcdict <- dictionary(file = "LIWC2001_English.dic", format = "LIWC") 
myDfmLIWC <- dfm(mycorpus, dictionary = liwcdict) 
## Creating a dfm from a corpus ... 
## ... lowercasing 
## ... tokenizing 
## ... indexing documents: 9 documents 
## ... indexing features: 3,113 feature types 
## ... applying a dictionary consisting of 68 keys 
## ... created a 9 x 68 sparse dfm 
## ... complete. 
## Elapsed time: 1.844 seconds. 
myDfmLIWC[, grep("^Pos|^Neg", features(myDfmLIWC))] 
## Document-feature matrix of: 9 documents, 4 features. 
## 9 x 4 sparse Matrix of class "dfmSparse" 
##    features 
## docs   Negate Posemo Posfeel Negemo 
## 1981-Reagan  46  89  5  24 
## 1985-Reagan  28 104  7  33 
## 1989-Bush  40 102  10  8 
## 1993-Clinton  25  51  3  23 
## 1997-Clinton  27  64  5  22 
## 2001-Bush  40  80  6  27 
## 2005-Bush  25 117  5  31 
## 2009-Obama  40  83  5  46 
## 2013-Obama  42  80  13  22 

для вашего корпуса, при условии, что вы получите его в data.frame называется data, вы можете создать quanteda корпус с помощью:

mycorpus <- corpus(data$Content, docvars = data[, 1:2]) 

Смотрите также ?textfile для загрузка содержимого из файлов в одной простой команде. Это работает, например, с файлами .csv, хотя у вас возникнут проблемы с этим файлом, потому что поле «Содержимое» содержит текст, содержащий запятые.

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

+0

Привет, спасибо. Я пытаюсь выполнить код, и я получил ошибку в validObject (.Object): недопустимый объект класса «dfmSprase» при запуске строки: dictDFM <- dfm (mycorpus, dictionary = mydict) @KenBenoit – poppp

+0

Я могу сделать это после загрузки версия 3.2. Однако я не могу открыть словарь LIWC. @KenBenoit – poppp

+0

А также я читал о многих методах интеллектуального анализа, но я не знаю, как их применять. Не могли бы вы направить меня? Огромное спасибо. @KenBenoit – poppp