Generación de nube de palabras en programación R

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. 
    1. 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())
    2.  Cargue los datos como un corpus:

      Python3

      # VectorSource() function 
      # creates a corpus of 
      # character vectors
      docs = Corpus(VectorSource(text))   
    3.  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, "#")
  • 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: 
 

output screen

output screen

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.

Publicación traducida automáticamente

Artículo escrito por ukasp y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *