如何在R语言中删除nrc、bing、afinn情感词典中的指定词汇?
解决R中情感分析词典的词汇删除问题
我来帮你搞定这个问题!核心思路是先把词典加载到你的工作环境中变成可编辑的数据框,之后就能轻松删除你不需要的特定词汇了。下面是具体步骤和示例代码:
步骤1:将词典加载到工作环境
get_sentiments()函数每次调用都会返回新的词典数据,所以你需要先把它赋值给一个变量,这样才能修改:
# 加载并保存各个词典到工作环境 nrc_dict <- get_sentiments("nrc") bing_dict <- get_sentiments("bing") afinn_dict <- get_sentiments("afinn")
步骤2:删除特定词汇
根据你的需求,用dplyr的filter()函数剔除不需要的词汇。比如假设你想删除nrc词典中的"sad"和"frustrated"这两个词:
# 清理nrc词典:删除指定词汇 nrc_clean <- nrc_dict %>% filter(!word %in% c("sad", "frustrated")) # 如果是要删除特定情感下的词汇(比如nrc中的"anger"类的某个词),可以加条件: # nrc_clean <- nrc_dict %>% # filter(!(word == "hate" & sentiment == "anger"))
针对不同词典的结构,操作逻辑一致:
- Bing词典是二元情感(positive/negative),删除词汇的方式和上面完全一样
- Afinn词典带有情感分值,删除时同样用
filter(!word %in% ...)即可
步骤3:用清理后的词典做情感分析
把你原来代码里的get_sentiments("nrc")替换成清理后的词典变量就行:
# 用清理后的nrc词典分析你的文本 MyTextFile %>% inner_join(nrc_clean) %>% count(sentiment, sort = TRUE)
这样就能确保你的情感分析不会包含那些你想排除的词汇了。如果需要清理其他词典(bing/afinn),只需要重复步骤2和3,替换对应的词典变量即可。
内容的提问来源于stack exchange,提问作者J. Doe
相关产品推荐
相关产品推荐

