You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改tidytext get_sentiments()中特定词汇的情感倾向?

问题需求

需修正数据框sentiment_words中特定词汇的情感标签:"talent"和"prefer"在当前语境下属于负面,但被bing情感词典标记为正面,需手动调整以贴合实际语境。

解决方案

提供两种可行的实现方式,可根据实际流程选择:

方法一:自定义情感词典(推荐)

在匹配情感标签前,先复制并修改bing词典的指定词汇标签,再用自定义词典完成分析,避免后续重复修正:

# 加载所需包
library(dplyr)
library(tidytext)

# 复制bing词典,修改目标词汇的情感标签
custom_bing <- tidytext::get_sentiments("bing") %>%
  mutate(sentiment = case_when(
    word == "talent" ~ "negative",
    word == "prefer" ~ "negative",
    TRUE ~ sentiment  # 其他词汇保持原标签
  ))

# 使用自定义词典重新生成情感分析结果
sentiment_words <- df |>
  tidytext::unnest_tokens(output = "word", input = "post") |>
  dplyr::anti_join(tidytext::stop_words) |>
  dplyr::inner_join(custom_bing)

# 查看词频与情感标签统计
sentiment_words %>%
  count(word, sentiment, sort = TRUE)

方法二:直接修改现有数据框

若已生成sentiment_words数据框,可直接修改其中的情感列:

# 修正指定词汇的情感标签
sentiment_words <- sentiment_words %>%
  mutate(sentiment = case_when(
    word == "talent" ~ "negative",
    word == "prefer" ~ "negative",
    TRUE ~ sentiment
  ))

# 重新生成词频统计(可选)
bing_word_counts <- sentiment_words %>%
  count(word, sentiment, sort = TRUE)
验证修正结果

执行以下代码确认目标词汇的情感标签已更新:

sentiment_words %>%
  filter(word %in% c("talent", "prefer")) %>%
  select(word, sentiment, count) %>%
  distinct()

内容的提问来源于stack exchange,提问作者nesta1990

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 01:57:23