EmpezarEmpieza gratis

Matriz DTM vs. tidytext

El tidyverse es un conjunto de paquetes de R que comparten una misma filosofía y están diseñados para funcionar juntos. En este capítulo verás algunas funciones tidy para manipular datos. En este ejercicio compararás una DTM con un marco de datos de texto en formato tidy llamado tibble. Dentro del tidyverse, cada observación ocupa una única fila en un marco de datos. Esto facilita trabajar con paquetes distintos, ya que la estructura de datos fundamental es la misma. Partes de este curso se basan en gran medida en el paquete tidytext, que usa esta organización de datos.

Por ejemplo, quizá ya conozcas el operador %>% del paquete magrittr. Este envía el objeto de su lado izquierdo como primer argumento de la función de su lado derecho.

En el ejemplo de abajo, estás encadenando el objeto data a function1(). Fíjate en que los paréntesis están vacíos. A su vez, eso se encadena a function2(). En la última función no necesitas añadir el objeto data porque llega como salida de function1(). Sin embargo, sí añades un parámetro ficticio, some_parameter, como TRUE. Estas canalizaciones con pipes acaban creando el object.

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

Para usar el operador %>%, no es necesario cargar el paquete magrittr, ya que también está disponible en el paquete dplyr. dplyr también incluye las funciones inner_join() (sobre la que aprenderás más adelante) y count() para contar datos. La última función que necesitarás es mutate() para crear variables nuevas o modificar las existentes.

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

o para modificar una variable

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

También usarás pivot_wider() de tidyr para organizar los datos con cada fila como una línea del libro y los valores positivos y negativos como columnas.

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

Para cambiar una DTM a formato tidy, usa tidy() del paquete broom.

tidy_format <- tidy(Document_Term_Matrix)

Este ejercicio usa texto de la tragedia griega, Agamemnon. Agamemnon es una historia sobre infidelidad matrimonial y asesinato. Puedes descargar una copia aquí.

Este ejercicio forma parte del curso

Análisis de sentimiento en R

Ver curso

Instrucciones del ejercicio

Ya hemos creado una DTM limpia llamada ag_dtm para este ejercicio.

  • Crea ag_dtm_m aplicando as.matrix() a ag_dtm.
  • Usando corchetes, [ y ], indexa ag_dtm_m en la fila 2206.
  • Aplica tidy() a ag_dtm. Llama al nuevo objeto ag_tidy.
  • Examina ag_tidy en las filas [831:835, ] para comparar el formato tidy. Verás una palabra común con la parte examinada de ag_dtm_m en el paso 2.

ejercicio interactivo práctico

Prueba este ejercicio completando este código de ejemplo.

# 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[___, ]
Editar y ejecutar código