Fuente original: https://towardsdatascience.com/simple-wordcloud-in-python-2ae54a9f58e5
La idea de wordcloud o "nube de palabras" se basa en una técnica de visualización de palabras en un texto de acuerdo a la frecuencia con que aparecen en el mismo. Aunque el ejemplo original citado en la fuente se refiere a textos que se consultan en la Internet, para efectos de este post se busca entender lo mismo a partir de una variable y luego un archivo de texto.
En los requisitos plantearemos entonces:
1. Python: Instalar una versión reciente de Python, es decir versión 3 o superior. Se requieren las librerías wordcloud, PIL (para aplicar la nube de palabras a la forma de una imagen PNG).
from PIL import Image
2. Datos: Inicialmente una variable en forma de texto para demostrar y luego un archivo de texto
3. Nube de palabras: El concepto final de este post en términos demostrativos.
Se comienza definiendo una función para lanzar la nube de palabras:
print("Nube de palabras generada!")
plt.figure(figsize=(20,20)) #Set figure size (ancho x largo en pulgadas)
plt.imshow(wordcloud) #Display image
plt.axis("off"); #No axis details
plt.show() #Show the plot image
Luego procedemos a definir una variable tipo texto y separada por para iniciar con el concepto:
En este sentido ya tenemos la materia prima para definir la nube de palabras, por lo que necesitamos solamente definir el objeto tipo wordcloud así:
Y ya con esta definición entenderemos las propiedades o atributos de este objeto wordcloud definidos de la siguiente manera:
- width/height: Hace referencia a las dimensiones finales del wordcloud generado. Esto es Ancho/Alto en número de pixeles. 1pixel = 0.2645833mm.
- random_state: Se ajusta a un valor de 1 con el fin de asegurar que la nube de palabras generada sea repetitiva. Se puede jugar o probar con valores distintos hasta encontrar el de su preferencia.
- background_color: Los colores black y white son los más usados pero en la página de colores para TKinter encuentra una lista completa para su preferencia.
- colormap: Con este argumento puede escoger una paleta de colores en la cual se distribuirá la nube de palabras generada. Puede encontrar una lista completa en el mapa de colores de matplotlib.
- collocations: Este valor se debe poner en False para evitar que en la nube de palabras parezca como si tuviera duplicados. En caso contrario verás palabras como 'web', 'scrapping' y 'web scrapping' como un set dentro de la misma nube de palabras.
- stopwords: Es la lista de palabras anexadas que no ameritan importancia dentro del conteo para visualización por frecuencia. Por ejemplo: 'nosotros', 'los', 'las', etc. Son palabras innecesarias para un wordcloud. La lista de palabras incluidas en stopwords se pueden visualizar en código con print(STOPWORDS) y se le puede agregar en código mediante STOPWORDS.update(['palabra1', 'palabra2', 'los', 'las'])
Y con ello estamos así listos para generar nuestro wordcloud con la siguiente línea:
plot_cloud(wordcloud)
El resultado es como el de la siguiente imagen:
No hay comentarios.:
Publicar un comentario
Agradecemos sus respetuosos comentarios: