开始使用免费开始使用

情绪自省

在本练习中,您将不再只根据正面或负面用语来筛选文本,而是根据 Plutchik 情绪之轮中的 8 种情绪分别筛选文本并构建可视化。通过这种方式,您可以将词语映射到具体情绪,而不仅仅是正负极性,从而更清晰地理解用词。

使用 tidytext 的主观性词典 "nrc",对您的文本执行一次 inner_join()。"nrc" 词典包含 8 种情绪以及正面与负面两类词。因此在完成 inner_join() 后,您需要去掉正面和负面词。一种做法是结合取反符号 !grepl()

全局正则表达式匹配逻辑函数 grepl() 会在每一行中检测是否匹配到给定的字符串模式,返回 True 或 False。在本练习中,您将使用 | 运算符搜索 positive 或 negative(表示"或"),如下所示。这个竖线通常位于键盘回车键上方。由于在 grepl() 前加了取反 !,返回的 T 或 F 被反转,从而会丢弃匹配 "positive|negative" 的项,而不是保留它们。

Object <- tibble %>%
  filter(!grepl("positive|negative", column_name))

接着,您对识别到的词使用 count() 计数,并结合 pivot_wider() 整理数据框的结构。

comparison.cloud() 要求输入含有行名,因此您需要将对象转换为基础 R 的 data.frame,调用 data.frame() 并设置 row.names 参数。

本练习是课程的一部分

R 中的情感分析

查看课程

交互式实操练习

通过完成这段示例代码来试试这个练习。

moby_tidy <- moby %>%
  # Inner join to nrc lexicon
  ___(___, by = c("term" = "word")) %>% 
  # Drop positive or negative
  ___(!___("___", sentiment)) %>% 
  # Count by sentiment and term
  ___(___, ___) %>% 
  # Pivot sentiment, using n for values
  ___(names_from = ___, values_from = ___, values_fill = ___) %>%
  # Convert to data.frame, making term the row names
  data.frame(row.names = "___")

# Examine
head(moby_tidy)
编辑并运行代码