Word Cloud es una técnica de visualización de datos utilizada para representar datos de texto en el que el tamaño de cada palabra indica su frecuencia o importancia. Los puntos de datos textuales significativos se pueden resaltar mediante una nube de palabras. Las nubes de palabras se utilizan ampliamente para analizar datos de sitios web de redes sociales.
¿Por qué Nube de Palabras?
Las razones por las que uno debería usar nubes de palabras para presentar los datos de texto son:
- Las nubes de palabras añaden simplicidad y claridad. Las palabras clave más utilizadas se destacan mejor en una nube de palabras
- Las nubes de palabras son una potente herramienta de comunicación. Son fáciles de entender, de compartir y son impactantes.
- Las nubes de palabras son visualmente más atractivas que los datos de una tabla.
Implementación en R
Estos son los pasos para crear una nube de palabras en Programación R.
Paso 1: crea un archivo de texto
Copie y pegue el texto en un archivo de texto sin formato (p. ej.: archivo.txt) y guarde el archivo.
Paso 2: instale y cargue los paquetes necesarios
Python3
# install the required packages install.packages("tm") # for text mining install.packages("SnowballC") # for text stemming install.packages("wordcloud") # word-cloud generator install.packages("RColorBrewer") # color palettes # load the packages library("tm") library("SnowballC") library("wordcloud") library("RColorBrewer")
Paso 3: Minería de texto
- Cargue el texto:
el texto se carga mediante la función Corpus() del paquete de minería de texto ™. Corpus es una lista de un documento.- Comience importando el archivo de texto creado en el paso 1:
Para importar el archivo guardado localmente en su computadora, escriba el siguiente código R. Se le pedirá que elija el archivo de texto de forma interactiva.Python3
text
=
readLines(
file
.choose())
- Cargue los datos como un corpus:
Python3
# VectorSource() function
# creates a corpus of
# character vectors
docs
=
Corpus(VectorSource(text))
- Transformación de texto: la
transformación se realiza mediante la función tm_map() para reemplazar, por ejemplo, caracteres especiales del texto como “@”, “#”, “/”.Python3
toSpace
=
content_transformer
(function (x, pattern)
gsub(pattern,
" "
, x))
docs1
=
tm_map(docs, toSpace,
"/"
)
docs1
=
tm_map(docs, toSpace,
"@"
)
docs1
=
tm_map(docs, toSpace,
"#"
)
- Comience importando el archivo de texto creado en el paso 1:
- Limpieza del texto:
la función tm_map() se utiliza para eliminar espacios en blanco innecesarios, convertir el texto a minúsculas y eliminar palabras vacías comunes. Los números se pueden eliminar usando removeNumbers.
Python3
# Convert the text to lower case
docs1
=
tm_map(docs1,
content_transformer(tolower))
# Remove numbers
docs1
=
tm_map(docs1, removeNumbers)
# Remove white spaces
docs1
=
tm_map(docs1, stripWhitespace)
Paso 4: Cree una Array de documento de términos
La array del documento es una tabla que contiene la frecuencia de las palabras. Los nombres de las columnas son palabras y los nombres de las filas son documentos. La función TermDocumentMatrix() del paquete de minería de texto se puede utilizar de la siguiente manera.
Python3
dtm = TermDocumentMatrix(docs) m = as.matrix(dtm) v = sort(rowSums(m), decreasing = TRUE) d = data.frame(word = names(v), freq = v) head(d, 10)
Paso 5: generar la nube de palabras
La importancia de las palabras se puede ilustrar como una nube de palabras de la siguiente manera.
Python3
wordcloud(words = d$word, freq = d$freq, min.freq = 1, max.words = 200, random.order = FALSE, rot.per = 0.35, colors = brewer.pal(8, "Dark2"))
El código completo para la nube de palabras en R se proporciona a continuación.
Python3
# R program to illustrate # Generating word cloud # Install the required packages install.packages("tm") # for text mining install.packages("SnowballC") # for text stemming install.packages("wordcloud") # word-cloud generator install.packages("RColorBrewer") # color palettes # Load the packages library("tm") library("SnowballC") library("wordcloud") library("RColorBrewer") # To choose the text file text = readLines(file.choose()) # VectorSource() function # creates a corpus of # character vectors docs = Corpus(VectorSource(text)) # Text transformation toSpace = content_transformer( function (x, pattern) gsub(pattern, " ", x)) docs1 = tm_map(docs, toSpace, "/") docs1 = tm_map(docs, toSpace, "@") docs1 = tm_map(docs, toSpace, "#") strwrap(docs1) # Cleaning the Text docs1 = tm_map(docs1, content_transformer(tolower)) docs1 = tm_map(docs1, removeNumbers) docs1 = tm_map(docs1, stripWhitespace) # Build a term-document matrix dtm = TermDocumentMatrix(docs) m = as.matrix(dtm) v = sort(rowSums(m), decreasing = TRUE) d = data.frame(word = names(v), freq = v) head(d, 10) # Generate the Word cloud wordcloud(words = d$word, freq = d$freq, min.freq = 1, max.words = 200, random.order = FALSE, rot.per = 0.35, colors = brewer.pal(8, "Dark2"))
Producción:
Ventajas de las nubes de palabras
- Analizar los comentarios de los clientes y empleados.
- Identificación de nuevas palabras clave de SEO a las que apuntar.
- Las nubes de palabras son excelentes herramientas de visualización. Presentan datos de texto en un formato simple y claro.
- Las nubes de palabras son excelentes herramientas de comunicación. Son increíblemente útiles para cualquier persona que desee comunicar una idea básica.
Inconvenientes de las nubes de palabras
- Las nubes de palabras no son perfectas para todas las situaciones.
- Los datos deben optimizarse para el contexto.
- Las nubes de palabras generalmente no brindan los conocimientos útiles que se necesitan para mejorar y hacer crecer el negocio.