2017-09-02 4 views
0

J'ai travaillé avec l'ensemble de données sur les sentiments et constaté que les ensembles de données bing et nrc contiennent quelques mots qui ont à la fois un sentiment positif et un sentiment négatif.Mots tidytext avec sentiment positif et négatif

** bing - trois mots avec un sentiment positif et négatif **

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 mots avec un sentiment positif et négatif **

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 

J'étais curieux de savoir si je fait quelque chose de mal ou comment un mot peut avoir des sentiments négatifs et positifs dans un ensemble de données source unique. Quelles sont les pratiques standard pour gérer ces situations?

Merci!

Répondre

0

Non! Vous n'avez rien fait de mal.

Ces lexiques ont été construits de différentes façons. Par exemple, le NRC lexicon a été construit via Amazon Mechanical Turk, montrant aux êtres humains beaucoup de mots et leur demandant s'ils associaient chaque mot avec joie, tristesse, affect positif ou négatif, etc. Puis les chercheurs ont fait un travail minutieux de validation, d'étalonnage Il y a des mots anglais que nous, les utilisateurs de langage humain, pouvons associer aux sentiments positifs et négatifs, tels que «bruyants», et les chercheurs qui ont construit ces lexiques particuliers ont décidé d'inclure ces mots comme les deux. Si vous avez un jeu de texte contenant le mot «bruyant» et utilisez un lexique comme celui-ci, il contribuera à la fois dans le sens positif et dans le sens négatif (et aussi dans la colère, l'anticipation et la joie). cas particulier). Si vous finissez par calculer un sentiment net (positif moins négatif) pour un sentiment, une section ou un document, l'effet de ce mot particulier s'annulera.

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