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)
<- read_delim("corpus_mistral.csv",
corpus_mistral ";", escape_double = FALSE, locale = locale(encoding = "ISO-8859-1"),
trim_ws = TRUE)
Vamos a tokenizar
<- corpus_mistral %>%
poemas_palabras select(text) %>%
unnest_tokens(palabras, text)
Vamos a contar palabras
%>%
poemas_palabras count(palabras, sort = TRUE)
<- tm::stopwords(kind = "es")
stopwords
<- read.csv("https://bitsandbricks.github.io/data/stopwords_es.csv",
stopwords_webstringsAsFactors = FALSE)
<- poemas_palabras %>%
palabras_sin_stopwords 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)
<- palabras_sin_stopwords %>%
frecuencia count(palabras, sort = TRUE)
wordcloud2(frecuencia)
Ejercicios
1) Chequeando que tenemos todo instalado
Duración: ~15 minutos
Ingresen a su RStudio
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)
- 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:
::install_github("yabellini/TextMiningTutorial") remotes
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:
::run_tutorial("TextMining", package = "TextMiningTutorial") learnr
3) Completar los blancos en el código
Duración: ~30 minutos
Descargar los archivos EjercicioNubeDePalabras.Rmd y rladies_meetups.csv
Abrir el archivo EjercicioNubeDePalabras.Rmd.
Seguir las instrucciones para completar el código y que el mismo funcione.
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.
La otra opcion es tener un proyecto en RStudio Cloud (ahora Posit Cloud) con el proyecto y todos los archivos y paquetes necesarios instalados.