¿Qué es la nube de palabras? Guía para crear una nube de palabras en Python

Contenidos

Este artículo fue publicado como parte del Blogatón de ciencia de datos.

Introducción

Siempre he estado enamorado de la visualización de datos desde el día en que comencé a trabajar en ella. Siempre disfruto obteniendo información útil a partir de los datos. Antes de esto, solo conocía gráficos básicos como gráficos de barras, diagramas de dispersión, histogramas, etc.que están incorporados en Tableau y Power BI en la visualización de datos. Al trabajar todos los días en esta tarea, me encontré con muchos gráficos nuevos, como gráficos de calibre radial, gráficos de gofres, etc.

Entonces, por curiosidad, recientemente estaba buscando todos los tipos de gráficos que se utilizan en la visualización de datos, donde esta nube de palabras me llamó la atención y me pareció muy interesante. Hasta ahora, ver estas imágenes de nubes de palabras me obligó a pensar que estas son solo imágenes aleatorias donde esas palabras están ordenadas al azar, pero estaba equivocado, y dónde comenzó todo. Después de esto, intenté crear una nube de palabras a partir de datos pequeños en Tableau y Power BI. Después de ese intento exitoso, quise probarlo por código haciendo gráficos de barras, gráficos circulares y otros gráficos.

¿Qué es básicamente una nube de palabras?

Definición: Una nube de palabras es un objeto de representación visual simple pero poderoso para el procesamiento de texto, que muestra la palabra más frecuente con letras más grandes y en negrita, y con diferentes colores. Cuanto menor sea el tamaño de la palabra, menor será la importancia.

62760image1b-7335727
Muestra Wor Cloud

Usos de Tag Cloud

1) Top hashtags en las redes sociales (Instagram, Twitter): En todo el mundo, las redes sociales están en tendencia para las últimas actualizaciones, por lo que podemos obtener los Hashtags más utilizados que la gente usa en sus publicaciones.

2) Temas candentes en los medios: Al analizar los artículos de noticias, podemos encontrar las palabras clave en los titulares y extraer los n temas más exigentes y obtener el resultado deseado, es decir, los n temas de medios de mayor tendencia.

3)Término de búsqueda en un comercio electrónico: En un sitio web de compras de comercio electrónico, el propietario puede crear la nube de palabras de los artículos de compra que más se han buscado. Por lo tanto, puede hacerse una idea de qué compras tienen una gran demanda durante un período específico.

Comencemos a codificar en python para lograr este tipo de nube de palabras

En primer lugar, necesitamos instalar todas las bibliotecas en el cuaderno jupyter.

Entonces, en Python, hay una biblioteca incorporada wordcloud que instalaremos. En el símbolo del sistema de Anaconda, escriba el siguiente código:

pip install wordcloud

Si su entorno anaconda admite conda, escriba:

conda install wordcloud

Aunque, esto se puede lograr directamente en el propio portátil, simplemente agregando ‘!’ al principio del código

Igual que:

!pip install wordcloud

Ahora, aquí generaré la nube de palabras del texto de Wikipedia de cualquier tema. Por lo tanto, necesitaré una biblioteca de Wikipedia para acceder a la API de Wikipedia, lo que se puede hacer instalando Wikipedia en el símbolo del sistema anaconda de la siguiente manera:

pip install wikipedia

Ahora hay algunas otras bibliotecas que necesitamos, son numerosas. matplotlib y pandas.

A partir de ahora, tenemos todas las bibliotecas para crear la nube de etiquetas.

import wikipedia
result= wikipedia.page("MachineLearning")
final_result = result.content
print(final_result)
66158blogimage1-2743206

El resultado de la página de Wikipedia de Machine Learning

Lo anterior es la imagen del resultado que obtuvimos al recuperar la página de aprendizaje automático de Wikipedia. Allí también podremos ver el desplazamiento hacia abajo, lo que significa que se recupera toda la página.

Aquí, también podemos obtener el resumen de la página mediante el método de resumen como se muestra a continuación: y

result= wikipedia.summary("MachineLearning", sentences=5)
print(result)

Aquí tenemos el parámetro de oraciones, por lo que podemos usarlo para recuperar un número específico de líneas.

90844blogimage2-5807874

La salida de 5 oraciones

Tengamos la nube de palabras ahora

from wordcloud import WordCloud, StopWords
import matplotlib.pyplot as plt 
def plot_cloud(wordcloud):
    plt.figure(figsize=(10, 10))
    plt.imshow(wordcloud) 
    plt.axis("off");
wordcloud = WordCloud(width = 500, height = 500, background_color="pink", random_state=10).generate(final_result)
plot_cloud(wordcloud)

Las palabras vacías son las palabras que no tienen ningún significado como ‘es’, ‘son’, ‘una’, ‘yo’ y muchas más.

Wordcloud viene con una biblioteca incorporada de palabras vacías, que eliminará automáticamente las palabras vacías del texto.

Pero, algo interesante que viene aquí es que podemos agregar nuestra elección de palabras vacías en Python mediante la función stopwords.add ().

El método de Wordcloud tendrá ancho y alto para configurar, he configurado ambos como 500, el color de fondo como rosa. Si no agrega un estado aleatorio, cada vez que ejecute su código, su nube de palabras se verá diferente. Debe establecerse como un valor int.

Aquí está la nube de palabras deseada, obtendremos del código anterior:

28980blogimage3-1096241

Al ver la figura anterior, vemos que el aprendizaje automático es la palabra más utilizada, y hay algunas otras palabras que se utilizan con frecuencia como modelo, tarea, entrenamiento, datos. Entonces podemos concluir que el aprendizaje automático es la tarea de entrenar el modelo de datos.

También podemos cambiar el color de fondo color de fondo método y los colores de fuente por mapa de colores método aquí y también podemos agregar los códigos hash de los colores en el color de fondo, pero el mapcolor viene con los colores específicos incorporados.

Cambiemos el color de fondo a turquesa usando su código hash y los colores de fuente a azul:

from wordcloud import WordCloud, StopWords
import matplotlib.pyplot as plt
def plot_cloud(wordcloud):
    plt.figure(figsize=(10, 10))
    plt.imshow(wordcloud)
    plt.axis("off");
wordcloud = WordCloud(width = 500, height = 500, background_color="#40E0D0", colormap="ocean",  random_state=10).generate(final_result)
plot_cloud(wordcloud)
67701blog1-3901289

Aquí, he especificado océano, si agrego un mapa de color incorrecto, jupyter arrojará un error de valor y me mostrará las opciones disponibles para el mapa de color como se muestra a continuación:

33699blog2-6317331

Wor cloud también se puede implementar en cualquier imagen utilizando la biblioteca PIL.

Notas finales

En este artículo, discutimos sobre la nube de palabras, su definición, sus áreas de aplicación y su ejemplo en python usando jupyter notebook.

Suscribite a nuestro Newsletter

No te enviaremos correo SPAM. Lo odiamos tanto como tú.