开始使用免费开始使用

DTM 与 tidytext 矩阵

tidyverse 是一组遵循共同哲学、并可协同工作的 R 包。本章将介绍若干 tidy 函数来处理数据。在本练习中,您将把 DTM 与一种称为 tibble 的整洁文本数据框进行比较。 在 tidyverse 中,每一条观测都是数据框中的一行。这使在不同包中工作更容易,因为底层的数据结构一致。本课程的部分内容大量借鉴了使用该数据组织方式的 tidytext 包。

例如,您可能已经熟悉来自 magrittr 包的 %>% 运算符。它会将左侧对象作为右侧函数的第一个参数传递。

在下面的示例中,您将对象 data 传递给 function1()。请注意括号为空。然后结果再传递给 function2()。在最后一个函数中,您无需再添加 data 对象,因为它来自 function1() 的输出。不过,您添加了一个虚构参数 some_parameter = TRUE。这些管道传递最终创建了 object

object <- data %>% 
           function1() %>%
           function2(some_parameter = TRUE)

要使用 %>% 运算符,不一定要加载 magrittr 包,因为 dplyr 包中同样提供了该运算符。dplyr 还包含用于连接数据的 inner_join()(您稍后会学习更多)以及用于计数的 count()。您还需要的另一个函数是 mutate(),用于创建新变量或修改已有变量。

object <- data %>%
  mutate(new_Var_name = Var1 - Var2)

或者修改变量:

object <- data %>%
  mutate(Var1 = as.factor(Var1))

您还将使用 tidyrpivot_wider() 函数整理数据,使每一行对应书中的一行文本,正向与负向的值作为列。

index negative positive
42 2 0
43 0 1
44 1 0

要将 DTM 转换为整洁格式,请使用 broom 包中的 tidy()

tidy_format <- tidy(Document_Term_Matrix)

本练习使用希腊悲剧《Agamemnon》中的文本。《Agamemnon》讲述了婚姻不忠与谋杀的故事。您可以在此处下载副本。

本练习是课程的一部分

R 中的情感分析

查看课程

练习说明

我们已为本练习创建了清洗后的 DTM,命名为 ag_dtm

  • 使用 as.matrix() 作用于 ag_dtm,创建 ag_dtm_m
  • 使用中括号 [],将 ag_dtm_m 按行索引到第 2206 行。
  • ag_dtm 应用 tidy(),将新对象命名为 ag_tidy
  • 查看 ag_tidy 的行 [831:835, ],以比较整洁格式。您会在第 2 步查看的 ag_dtm_m 片段中看到一个常见的词。

交互式实操练习

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

# As matrix
ag_dtm_m <- ___

# Examine line 2206 and columns 245:250
ag_dtm_m[___, 245:250]

# Tidy up the DTM
ag_tidy <- ___

# Examine tidy with a word you saw
ag_tidy[___, ]
编辑并运行代码