分析文本情感的一种方法是将文本视为单个单词的组合,将整个文本的情感内容视为各个单词的情感内容的总和。这不是进行情绪分析的唯一方法,但它是一种常用的方法,也是一种自然利用整洁工具生态系统的方法。
1.情感数据集
如上所述,存在多种用于评估文本中的观点或情感的方法和字典。
tidytext
包提供了对几个情感词典的访问。三个通用词典是:
- AFINN
- bing
- nrc
所有这三个词典都基于一元词组(
unigram
),即单个单词。这些词典包含许多英语单词,并且这些单词被分配了正面/负面情绪的分数,也可能是喜悦、愤怒、悲伤等情绪。 nrc 词典以二进制方式(“是”/“否”)将单词分类为积极、消极、愤怒、预期、厌恶、恐惧、快乐、悲伤、惊讶和信任的类别。bing词典以二进制方式将单词分为正面和负面类别。 AFINN 词典为单词分配一个介于 -5 和 5 之间的分数,负分表示负面情绪,正分表示正面情绪。
在下载数据之前,我们可能会被要求同意许可。如果在jupyter-notebook里面运行的话会失败,建议大家在rstudio里面先运行下载。
函数 get_sentiments() 允许我们获取特定的情感词典,并为每个词典提供适当的度量。我们现在来看一下各个情绪词典的信息
library(`tidytext`)
library(dplyr)
get_sentiments("nrc") %>% head()
A tibble: 6 × 2
word | sentiment |
---|---|
abacus | trust |
abandon | fear |
abandon | negative |
abandon | sadness |
abandoned | anger |
abandoned | fear |
get_sentiments("bing") %>% head()
A tibble: 6 × 2
word | sentiment |
---|---|
2-faces | negative |
abnormal | negative |
abolish | negative |
abominable | negative |
abominably | negative |
abominate | negative |
get_sentiments("afinn") %>% head()
A tibble: 6 × 2
word | value |
---|---|
abandon | -2 |
abandoned | -2 |
abandons | -2 |
abducted | -2 |
abduction | -2 |
abductions | -2 |
这些词典都是通过整合云资源、餐厅或电影评论等数据的某种组合进行验证。鉴于这些信息,我们可能会犹豫将这些情感词典应用于与它们所验证的文本风格截然不同的文本风格,例如 200 年前的叙事小说,