Clase 5 - Text Mining en R

Objetivos de Aprendizaje

  • Explicar el proceso de text mining tidy utilizando R.

  • Definir e identificar que es token y stop words.

  • Identificar los paquetes de R que permiten realizar una analisis de texto de forma tidy.

  • Ejercitar las acciones basicas de un analisis de texto utilizando R.

Slides

Live Coding

Se inicia el live coding en un nuevo documento rmarkdown. El codigo que se presenta a continuacion se encuentra en su version final. Se va construyendo paso a paso. Se necesita el archivo corpus_mistral.csv para realizar este live coding. Este live cosing esta basado en un ejemplo presentado en un meetup de R-Ladies Buenos Aires por Maria Nanton.

Cargamos los paquetes que necesitamos

library(tidyverse)
library(tidytext)

Leo los datos que necesito


library(readr)
corpus_mistral <- read_delim("corpus_mistral.csv", 
    ";", escape_double = FALSE, locale = locale(encoding = "ISO-8859-1"), 
    trim_ws = TRUE)

Vamos a tokenizar


poemas_palabras <- corpus_mistral %>%
  select(text) %>%
  unnest_tokens(palabras, text)

Vamos a contar palabras


poemas_palabras %>%
  count(palabras, sort = TRUE)

stopwords <- tm::stopwords(kind = "es")

stopwords_web<- read.csv("https://bitsandbricks.github.io/data/stopwords_es.csv",
                      stringsAsFactors = FALSE)

palabras_sin_stopwords <- poemas_palabras %>%
  anti_join(stopwords_web, by = c("palabras" = "STOPWORD"))
  
palabras_sin_stopwords %>%
  group_by(palabras) %>%
  summarise(cantidad = n()) %>%
  arrange(desc(cantidad))

palabras_sin_stopwords %>%
  count(palabras) %>%
  filter(n > 30 & !is.na(palabras)) %>%
  mutate(palabras = reorder(palabras,-n)) %>%
  ggplot(aes(n, palabras)) +
  geom_col()

Construimos la nube de palabras

library(wordcloud2)

frecuencia <- palabras_sin_stopwords %>%
  count(palabras, sort = TRUE)

wordcloud2(frecuencia)

Ejercicios

1) Chequeando que tenemos todo instalado

Duración: ~15 minutos

  1. Ingresen a su RStudio

  2. Ejecuten el siguiente código (de a una linea por vez):

library(tidyverse)

library(tidytext)

library(learnr)

library(remotes)

library(wordcloud2)

library(tm)

library(readr)
  1. Si alguno de estas líneas de código les da error (que el paquete no existe) entonces deben instalarlo con
install.packages(nombre_del_paquete)

por ejemplo:

install.packages(remotes)

2) Tutorial interactivo de Introducción a Text Mining

Duración: ~30 minutos

Instalar el tutorial learnr de Introducción a Text Mining con R.

Para instalar la versión de desarrollo desde GitHub tenés que tener instalado el paquete remotes, si no lo tenés instalalo con:

install.packages("remotes")

y luego usá el siguiente código para instalar el tutorial:

remotes::install_github("yabellini/TextMiningTutorial")

Puede ser que si hay versiones más nuevas de los paquetes que necesitas en la consola te aparezca un mensaje similar a este:

These packages have more recent versions available.
It is recommended to update all of them.
Which would you like to update?

 1: All                                 
 2: CRAN packages only                  
 3: None                                
 4: colorspace (1.4-1  -> 2.0-1 ) [CRAN]
 5: rlang      (0.4.2  -> 0.4.11) [CRAN]
 6: glue       (1.4.0  -> 1.4.2 ) [CRAN]
 
 Enter one or more numbers, or an empty line to skip updates:

Ese mensaje nos indica que paquetes podríamos actualizar. Si no queremos actualizar podemos presionar Enter o bien seleccionar el número que dice None, en este caso el 3.

Si no tenes la ultima versión de RStudio entonces tenés que instalar el paquete learnr utilizando el siguiente código:

install.packages("learnr")

y luego ejecutar de esta manera el Tutorial:

learnr::run_tutorial("TextMining", package = "TextMiningTutorial")

3) Completar los blancos en el código

Duración: ~30 minutos

  1. Descargar los archivos EjercicioNubeDePalabras.Rmd y rladies_meetups.csv

  2. Abrir el archivo EjercicioNubeDePalabras.Rmd.

  3. Seguir las instrucciones para completar el código y que el mismo funcione.

Ejercicios con R
  1. El ejercicio anterior tambien se puede realizar con un Proyecto de RStudio, para esto se puede subir un archivo zipeado llamado Ejercicio Text Mining en R.zip que contiene el proyecto y está subido al campus en la clase correspondiente.

  2. La otra opcion es tener un proyecto en RStudio Cloud (ahora Posit Cloud) con el proyecto y todos los archivos y paquetes necesarios instalados.