0

我一直在使用情绪数据集,发现 bing 和 nrc 数据集包含一些既有正面情绪又有负面情绪的词。

** bing – 三个带有正面和负面情绪的词 **

env_test_bing_raw <- get_sentiments("bing") %>%
  filter(word %in% c("envious", "enviously","enviousness"))

# A tibble: 6 x 2
         word sentiment
        <chr>     <chr>
1     envious  positive
2     envious  negative
3   enviously  positive
4   enviously  negative
5 enviousness  positive
6 enviousness  negative

** nrc – 81 个带有正面和负面情绪的词 **

test_nrc <- as.data.frame(
        get_sentiments("nrc") %>%
        filter(sentiment %in% c("positive","negative")) %>%
        group_by(word) %>%
        summarize(count = n()) %>%
        filter(count > 1))

env_test_nrc <- get_sentiments("nrc") %>%
  filter(sentiment %in% c("positive","negative")) %>%
  filter(word %in% test_nrc$word)

# A tibble: 162 x 2
         word sentiment
        <chr>     <chr>
 1  abundance  negative
 2  abundance  positive
 3      armed  negative
 4      armed  positive
 5       balm  negative
 6       balm  positive
 7      boast  negative
 8      boast  positive
 9 boisterous  negative
10 boisterous  positive
# ... with 152 more rows

我很好奇我是否做错了什么,或者一个词如何在单个源数据集中同时具有消极和积极的情绪。处理这些情况的标准做法是什么?

谢谢!

4

1 回答 1

2

没有!你没有做错任何事。

这些词典是以不同的方式构建的。例如,NRC 词典是通过 Amazon Mechanical Turk 构建的,向人类展示了很多单词,并询问他们是否将每个单词与快乐、悲伤、积极或消极影响等联系起来。然后研究人员进行了仔细的验证工作,校准等。作为人类语言用户,我们可以将一些英语单词与积极和消极的感觉联系起来,例如“boisterous”,而构建这些特定词典的研究人员决定将这些词同时包含在内。

如果你有一个文本数据集,其中包含“喧闹”这个词,并使用像这样的词典,它将在积极和消极的方向上做出贡献(在这种特殊情况下,也会导致愤怒、期待和快乐)。如果您最终为某些情绪、部分或文档计算净情绪(正负负),则该特定单词的效果将被抵消。

library(tidytext)
library(dplyr)

get_sentiments("nrc") %>%
  filter(word == "boisterous")

#> # A tibble: 5 x 2
#>         word    sentiment
#>        <chr>        <chr>
#> 1 boisterous        anger
#> 2 boisterous anticipation
#> 3 boisterous          joy
#> 4 boisterous     negative
#> 5 boisterous     positive
于 2017-09-03T22:36:47.307 回答