Sentimentlexikon med 8 519 känsloladdade ord och deras intensitet. Uppdelade på åtta olika känslor:
- ilska
- förväntan
- avsky/äckel
- rädsla
- glädje
- vemod/sorgsenhet
- överraskning/förvåning
- tillit/förtroende
Annoterade för hand med best-worst scaling (maximum difference scaling).
- anger: 1 246 ord (CSV).
- anticipation: 813 ord (CSV).
- disgust: 949 ord (csv).
- fear: 1 503 ord (CSV).
- joy: 1 077 ord (CSV).
- sadness: 1 112 ord (CSV).
- surprise: 538 ord (CSV).
- trust: 1 281 ord (CSV).
I katalogen src finns originalfiler (TSV).
Notera: Ord kan förekomma bland flera emotioner (exempelvis, mörda
är både ilska och rädsla).
Kolumn | Beskrivning | Datatyp |
---|---|---|
word |
Känsloord (t ex mörda ) |
Text |
intensity |
Intensitet på känslan, från 0 (låg) till 1 (hög) |
Decimaltal (#.### ) |
The NRC Emotion Intensity Lexicon (NRC-EIL). Se källan för rättigheter vid kommersiell/icke-kommersiell användning. Referera följande papper om du använder lexikonet:
- Word Affect Intensities. Saif M. Mohammad. In Proceedings of the 11th Edition of the Language Resources and Evaluation Conference (LREC-2018), May 2018, Miyazaki, Japan.
NRC-lexikonet (och övriga lexikon från NRC) används även inom följande:
- TidyText - R-paket för textanalys där NRC-lexikonet finns inbyggt (se också Syuzhet-paketet).
- lexicon - R-paket för NRC-lexikonet.
- Shifterator - Python-bibliotek för "interpretable data visualizations for understanding how texts differ at the word level".
- AffectiveTweets - Java-bibliotek, mer specifikt "A WEKA package for analyzing emotion and sentiment of tweets".
# Import.
get_emotions <- function(emotion = NULL) {
valid_emotions <- c("anger", "anticipation", "disgust", "fear", "joy", "sadness", "surprise", "trust")
if (is.null(emotion)) {
# Get all emotions.
df <- data.frame(word=NULL, intensity=NULL, emotion=NULL)
for (emotion in valid_emotions) {
url <- paste0("https://github.com/peterdalle/svensktext/raw/master/emotioner/", emotion, ".csv")
df_emotion <- read.csv(url, na.strings="None", encoding="UTF-8", header=TRUE, sep=",", stringsAsFactors=FALSE)
df_emotion$emotion <- emotion
df <- rbind(df, df_emotion)
}
return(df)
} else {
# Get single emotion.
if (!(emotion %in% valid_emotions)) {
stop(paste0("'", emotion, "' is an invalid emotion. Must be one of: ", paste(valid_emotions, collapse=", "), "."), call.=FALSE)
}
url <- paste0("https://github.com/peterdalle/svensktext/raw/master/emotioner/", emotion, ".csv")
df <- read.csv(url, na.strings="None", encoding="UTF-8", header=TRUE, sep=",", stringsAsFactors=FALSE)
df$emotion <- emotion
return(df)
}
}
# Get all emotions.
df <- get_emotions()
head(df)
# Get single emotion.
df <- get_emotions(emotion = "fear")
head(df)