| as_key {sentimentr} | R Documentation |
as_key - Create your own hash keys from a data frame for use in key
arguments such as polarity_dt in the sentiment function.
update_key - Add/remove terms to a current key.
update_polarity_table - Wrapper for update_key specifically for
updating polarity tables.
update_valence_shifter_table - Wrapper for update_key
specifically for updating valence shifter tables.
is_key - Logical check if an object is a key.
as_key(x, comparison = lexicon::hash_valence_shifters, sentiment = TRUE, ...) update_key(key, drop = NULL, x = NULL, comparison = lexicon::hash_valence_shifters, sentiment = FALSE, ...) update_polarity_table(key, drop = NULL, x = NULL, comparison = lexicon::hash_valence_shifters, sentiment = FALSE, ...) update_valence_shifter_table(key, drop = NULL, x = NULL, comparison = lexicon::hash_sentiment_jockers_rinker, sentiment = FALSE, ...) is_key(key, sentiment = TRUE)
x |
A |
comparison |
A |
sentiment |
logical. If |
key |
A sentimentr hash key. |
drop |
A vector of terms to drop. |
... |
ignored. |
For updating keys via update_key note that a
polarity_dt and valence_shifters_dt are the primary dictionary
keys used in the sentimentr package. The polarity_dt takes a
2 column data.frame (named x and y) with the first column being
character and containing the words and the second column being numeric values
that are positive or negative. valence_shifters_dt takes a 2 column
data.frame (named x and y) with the first column being character and
containing the words and the second column being integer corresponding to:
(1) negators, (2) amplifiers, (3) de-amplifiers, and (4) dversative
conjunctions (i.e., 'but', 'however', and 'although'). Also, note that if
you are updating a valence_shifters_dt you need an appropriate
comparison; most likely, comparison = sentimentr::polarity_dt.
Returns a data.table object that can be used as a hash key.
key <- data.frame(
words = sample(letters),
polarity = rnorm(26),
stringsAsFactors = FALSE
)
(mykey <- as_key(key))
## Looking up values
mykey[c("a", "k")][[2]]
## Drop terms from key
update_key(mykey, drop = c("f", "h"))
## Add terms to key
update_key(mykey, x = data.frame(x = c("dog", "cat"), y = c(1, -1)))
## Add terms & drop to/from a key
update_key(mykey, drop = c("f", "h"), x = data.frame(x = c("dog", "cat"), y = c(1, -1)))
## Explicity key type (wrapper for `update_key` for sentiment table.
## See `update_valence_shifter_table` a corresponding valence shifter updater.
library(lexicon)
updated_hash_sentiment <- sentimentr:::update_polarity_table(lexicon::hash_sentiment_huliu,
x = data.frame(
words = c('frickin', 'hairy'),
polarity = c(-1, -1),
stringsAsFactors = FALSE
)
)
## Checking if you have a key
is_key(mykey)
is_key(key)
is_key(mtcars)
is_key(update_key(mykey, drop = c("f", "h")))
## Using syuzhet's sentiment lexicons
## Not run:
library(syuzhet)
as_key(syuzhet:::bing)
as_key(syuzhet:::afinn)
as_key(syuzhet:::syuzhet_dict)
nrc <- data.frame(
words = rownames(syuzhet:::nrc),
polarity = syuzhet:::nrc[, "positive"] - syuzhet:::nrc[, "negative"],
stringsAsFactors = FALSE
)
as_key(nrc[nrc[["polarity"]] != 0, ])
sentiment(gsub("Sam-I-am", "Sam I am", sam_i_am), as_key(syuzhet:::bing))
## End(Not run)
## Using 2 vectors of words
## Not run:
install.packages("tm.lexicon.GeneralInquirer", repos="http://datacube.wu.ac.at", type="source")
require("tm.lexicon.GeneralInquirer")
positive <- terms_in_General_Inquirer_categories("Positiv")
negative <- terms_in_General_Inquirer_categories("Negativ")
geninq <- data.frame(
x = c(positive, negative),
y = c(rep(1, length(positive)), rep(-1, length(negative))),
stringsAsFactors = FALSE
) %>%
as_key()
geninq_pol <- with(presidential_debates_2012,
sentiment_by(dialogue,
person,
polarity_dt = geninq
))
geninq_pol %>% plot()
## End(Not run)