Анализ настроений включает в себя широкую категорию методов, предназначенных для измерения положительного или отрицательного настроения из текста, поэтому это довольно сложный вопрос, чтобы ответить просто. Но вот простой ответ: вы можете применить словарь к своей матрице документов и затем объединить положительные и отрицательные ключевые категории вашего словаря, чтобы создать меру настроения.
Я предлагаю попробовать это в пакете для анализа текста 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, это должно заставить вас начать. Вы можете узнать больше о методах добычи настроения (и извинениях, если вы уже встречались с ними) от:
Как это отличается от вашего [предыдущего вопроса] (http://stackoverflow.com/questions/32576046/text-mining-with-r)? –