Programación científica (VI): Instalación de Matplot++ y mp-units con Mingw-w64

Artículos de la serie:

Las bibliotecas Matplot++ para la visualización gráfica de datos [1] y mp-units para la manipulación y el análisis dimensional de unidades en tiempo de compilación [2] constituyen dos herramientas de enorme valor para la computación científica en C++.

Supongamos instalado un entorno de trabajo en MS Windows basado en MSYS2, CMake y el compilador Mingw-w64, tal y como se explica en una serie de post anterior. Dada la ausencia, a día de publicación de este post, de las mencionadas bibliotecas en el repositorio de paquetes de MSYS2 [3], analizaremos el procedimiento a seguir para su instalación.

Programación científica (V): Comprobando la ley de Zipf

Artículos de la serie:
Nube de palabras para los sonetos de Shakespeare
En este artículo nos plantearemos un interesante problema de análisis estadístico de textos. Consideremos una obra literaria de cierta extensión --obtenida, por ejemplo, a través del proyecto Gutenberg [1]. Deseamos:

  1. Crear un mapa que asocie a cada frecuencia de ocurrencia en el texto un listado de aquellas palabras que se repitan dicho número de veces. Para ello, deberemos tokenizar el texto adecuadamente.
  2. Imprimir en la terminal, en orden decreciente, las cinco mayores frecuencias registradas junto a sus listas de términos asociadas.
  3. Registrar el conjunto de valores (ranking, frequency) para las palabras distintas del texto. La primera entrada indicará la posición en el ranking de una palabra, mientras que la segunda entrada contendrá su frecuencia de ocurrencia en el texto. Por ejemplo, si "the" fuese el término más empleado con una frecuencia de uso de 1345, deberemos registrar el punto (1, 1345) ; si "of" fuese el segundo término en el ranking con una frecuencia de 703, registraríamos (2, 703), etcétera. Si dos o más términos compartieran una misma frecuencia de uso, les asignaríamos posiciones de ranking consecutivas y la misma frecuencia.