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
Instrucciones del ejercicio
Ya hemos creado una DTM limpia llamada ag_dtm para este ejercicio.
- Crea
ag_dtm_maplicandoas.matrix()aag_dtm. - Usando corchetes,
[y], indexaag_dtm_men la fila2206. - Aplica
tidy()aag_dtm. Llama al nuevo objetoag_tidy. - Examina
ag_tidyen las filas[831:835, ]para comparar el formato tidy. Verás una palabra común con la parte examinada deag_dtm_men 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[___, ]