• Notebook
  • Librerías
  1. Word cloud
  • Introducción
  • Boxplot
  • Word cloud
  • Diagrama de parlamento
  • Gráfico de dispersión
  • Gatitos e inflacción
  • Gráfico de Gannt
  • Gráfico de Radar o Araña
  • Mapa iteractivo
  • Geovisualización
  • Sin nombre todavía
  • Otros

Word cloud

Portafolio
Dataviz
Resumen

Una visualización de datos correcta puede expresar de forma resumida y clara gran cantidad de información, ayudando a interpretar y asimilar la información más facilmente.

Word cloud de las primeras diez mil palabras del Quijote.

INCLUIR LINK NLP

Incluir link al repositorio de NLP

Librerías específicas.

Código
library(stringr)
library(wordcloud)
library(tm)
library(stopwords)
library(ggwordcloud)

(Funcional paquete ‘wordcloud’)[https://cran.r-project.org/web/packages/wordcloud/wordcloud.pdf] (Más ejemplos de ggwordcloud)https://cran.r-project.org/web/packages/ggwordcloud/vignettes/ggwordcloud.html

Datos.

Fuente: https://www.gutenberg.org/cache/epub/2000/pg2000.txt

Código.

Código
# Leo el Quijote
quijote <- readLines("../data/quijote.txt", encoding = "UTF-8")

# Concateno todas las líneas en una sola cadena
quijote <- paste(quijote, collapse = " ")

# Convierto el Quijote a minúsculas, elimino caracteres especiales
quijote <- tolower(quijote)
quijote <- str_replace_all(quijote, "[^a-záéíóúüñ]", " ")

# Dividir el texto en palabras y eliminar stop words
quijote_words <- unlist(strsplit(quijote, "\\s+"))
quijote_words <- quijote_words[!quijote_words %in% tm::stopwords("spanish")] # análogo: quijote_words <- quijote_words[!quijote_words %in% stopwords::stopwords("spanish")]
quijote_words <- quijote_words[!quijote_words %in% tm::stopwords("spanish")]

# Filtrar las palabras vacías (espacios en blanco) y obtener las primeras 1000 palabras
quijote_words <- quijote_words[quijote_words != ""]
first_1000_words <- quijote_words[1:10000]
Código
wordcloud(words = first_1000_words, min.freq = 10, colors = brewer.pal(8, "Dark2"))

Código
# first_1000_words |> table() |> as.data.frame() |> 
# ggplot(aes(label = first_1000_words, size = Freq)) +
#   geom_text_wordcloud() +
#   scale_size_area(max_size = 30) +
#   theme_minimal()
Código
data("love_words_small")
 
  • License