Algunas pruebas realizadas para hacer una nube de texto. Para éstos ejemplos utilicé la última circular del Congreso Nacional de Geografía de Universidades Públicas. El principal objetivo de ésto fue practicar un poco de DataViz con Python tratando de ver cuales eran las palabras más frecuentes en los títulos de las ponencias .

Cómo todo trabajo con Datos, la parte más dura es la de limpieza. En este caso, se intentó quitar de la circular la mayor cantidad de texto que meta ruido. Luego de ésto, se realizó un listado de stopwords que se fue depurando a medida que se realizaban las imágenes.

El repositorio se encuentra acá para utilizar tanto el texto cómo el notebook.

Algunas de las imágenes generadas:

wordcloud = WordCloud(width=800, height=400, relative_scaling=0.5,
                     background_color="black",
              max_font_size = 42, min_font_size = 6,
              colormap = "tab20c",
              #max_words = 3,
              #contour_width = .1, contour_color = "grey",
              stopwords = stopwords_total).generate(text)

# Muestra la WordCloud con matplotlib
plt.figure(figsize=(10, 5))
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis('off')

plt.title("Nube Dark", fontsize=16, color="#ff7f0e")

# Guarda la figura antes de mostrarla
plt.savefig('/content/drive/MyDrive/datasets_colab/imagenes/wordDark.jpg', bbox_inches='tight', dpi=75)

# Muestra la figura después de guardarla
plt.show()


mask = np.array(Image.open("/content/drive/MyDrive/datasets_colab/argentina.jpg"))

wc = WordCloud(height=300, width=300, background_color="black", repeat=True,
              mask=mask,
              max_font_size=42, min_font_size=6,
              colormap="tab20c",
              stopwords=stopwords_total)
wc.generate(text)

plt.figure(figsize=(20, 10))
plt.axis("off")
plt.imshow(wc, interpolation="bilinear")

plt.title("Nube Argentina Dark", fontsize=16, color="#ff7f0e")

# Guarda la figura antes de mostrarla
plt.savefig('/content/drive/MyDrive/datasets_colab/imagenes/wordArgDark1.jpg', bbox_inches='tight', dpi=75)

# Muestra la figura después de guardarla
plt.show()
#Forma Imagen
mask = np.array(Image.open("/content/drive/MyDrive/datasets_colab/argentina.jpg"))

wc = WordCloud(height = 300, width = 300, background_color="white", repeat=True,
              mask=mask,
              max_font_size = 42, min_font_size = 6,
              #colormap = "magma",
              #max_words = 3,
              #contour_width = .1, contour_color = "grey",
              stopwords = stopwords_total)
wc.generate(text)


plt.figure(figsize=(20, 10))


plt.axis("off")
plt.imshow(wc, interpolation="bilinear")

plt.title("Nube Argentina", fontsize=16, color="#440154")

# Guarda la figura antes de mostrarla
plt.savefig('/content/drive/MyDrive/datasets_colab/imagenes/argentina.jpg', bbox_inches='tight', dpi=75)

# Muestra la figura después de guardarla
plt.show()
#Forma de Circulo
x, y = np.ogrid[:300, :300]
mask = (x - 150) ** 2 + (y - 150) ** 2 > 130 ** 2
mask = 255 * mask.astype(int)


wc = WordCloud(height = 300, width = 300, background_color="white", repeat=True,
              mask=mask,
              max_font_size = 42, min_font_size = 6,
              #colormap = "magma",
              max_words = 20,
              #contour_width = .1, contour_color = "grey",
              stopwords = stopwords_total)
wc.generate(text)


plt.figure(figsize=(6, 6))
plt.axis("off")
plt.imshow(wc, interpolation="bilinear")

plt.title("Nube con stopwords - 20 palabras", fontsize=12, color="#440154")

# Guarda la figura antes de mostrarla
plt.savefig('/content/drive/MyDrive/datasets_colab/imagenes/circulo20.jpg', bbox_inches='tight', dpi=75)

# Muestra la figura después de guardarla
plt.show()