如何手动将单词添加到nrc情感词典?

时间:2019-07-26 16:11:36

标签: r tidytext

我计划在Twitter上使用nrc情感词典,但我意识到缺少很多单词。有人可以指导我如何用他们对R的特定情感添加一些单词吗? (我已经将nrc下载到我的环境中,并且还使用rbind添加了单词和情感)。

现在,我不知道要使用我修改过的nrc词典。请帮助我

我已将nrc下载到我的环境中,并且还使用r bind添加了单词和情感。现在我不知道如何使用我修改过的nrc词典。请帮助我

1 个答案:

答案 0 :(得分:0)

NRC单词情感协会词典的构建方式使其非常适合社交媒体数据,因为它已经存在,因此我建议在taking a look at the details of where it comes from进行更改之前进行分析。但是,如果您决定出于自己的目的,则需要向此类情感词典中添加单词,第一步是通过bind_rows()将单词逐行添加到数据集中。假设您认为“达西”是一个肯定词,而“威克汉姆”是一个否定词。

library(tidyverse)
library(tidytext)

nrc_lexicon <- get_sentiments("nrc")

custom_lexicon <- nrc_lexicon %>%
  bind_rows(tribble(~word, ~sentiment,
                    "darcy", "positive",
                    "wickham", "negative"))

现在,当您要执行情感分析时,可以以相同的方式处理这些数据框之一。如果您有文本数据(例如傲慢与偏见的文本),则可以首先使用unnest_tokens()对其进行整理,然后使用inner_join()进行情感分析。

tidy_PandP <- tibble(text = janeaustenr::prideprejudice) %>%
  unnest_tokens(word, text)

tidy_PandP %>%
  inner_join(nrc_lexicon)
#> Joining, by = "word"
#> # A tibble: 29,651 x 2
#>    word       sentiment
#>    <chr>      <chr>    
#>  1 pride      joy      
#>  2 pride      positive 
#>  3 prejudice  anger    
#>  4 prejudice  negative 
#>  5 truth      positive 
#>  6 truth      trust    
#>  7 possession anger    
#>  8 possession disgust  
#>  9 possession fear     
#> 10 possession negative 
#> # … with 29,641 more rows

tidy_PandP %>%
  inner_join(custom_lexicon)
#> Joining, by = "word"
#> # A tibble: 30,186 x 2
#>    word       sentiment
#>    <chr>      <chr>    
#>  1 pride      joy      
#>  2 pride      positive 
#>  3 prejudice  anger    
#>  4 prejudice  negative 
#>  5 truth      positive 
#>  6 truth      trust    
#>  7 possession anger    
#>  8 possession disgust  
#>  9 possession fear     
#> 10 possession negative 
#> # … with 30,176 more rows

reprex package(v0.3.0)于2019-08-03创建

请注意,您可以用相同的方式对任一词典(原始词典或添加了单词的词典)执行情感分析。

我确实要注意,NRC词典的许可证允许将其免费用于研究目的,但是出于商业目的,您必须联系NRC研究人员并支付商业许可证。