Como hacer nubes de palabras – Algoritmo de nubes mejorado

Hace un par de días estuvimos hablando de como hacer nubes de palabras.

Hoy he querido traer una mejora al algoritmo que propuse en ese artículo.

El proceso es básicamente el mismo, pero ahora el algoritmo nos permite elegir el tamaño mínimo y el máximo de las letras.
Cosa que nos ayudará a la hora de diseñar nuestra nube de palabras.

Las variables

Las variables que vamos a necesitar para nuestra nube son las siguientes:

  • TAM_MAX
  • Tamaño máximo de la fuente

  • TAM_MIN
  • Tamaño mínimo.

  • ELEMENTOS
  • Cantidad de elementos diferentes.

  • TOTALES
  • Cantidad total de elementos (repetidos)

Los cálculos

Sabiendo esas variables podremos determinar los siguientes cálculos:

MAX_MATCHS : apariciones máximas que puede tener una palabra.

Elementos – Totales

Ahora aplicamos una regla de tres para saber que porcentaje representa una cantidad x de coincidencias.

%coincidencias = x*100/Totales

Pasamos el mismo porcentaje a pixeles para determinar el tamaño de la fuente:

PixelesCoincidencias = %coincidencias* TAM_MAX / 100

Ahora solo nos falta sumar el tamaño mínimo:

TamañoX = PixelesCoincidencias+ TAM_MIN

El algoritmo de las nubes de palabras

El algoritmo final será el siguiente:

Tamaño en Px = (x*100/(Totales-Elementos-1) ) * Totales/100

Nota: Hay que truncar el resultado para que no salgan decimales.

Algoritmo de nubes aplicado en PHP

Siguiendo el mismo ejemplo del post anterior:

$tam_max = 30;
$tam_min = 12;
$elementos = mysql_num_rows(mysql_query("SELECT count(item) FROM tabla GROUP BY item") );
$totales = mysql_num_rows(mysql_query("SELECT count(item) FROM tabla") );


while ($dato = mysql_fetch_array($datos)) {
  $size = (int) ($dato['hits'] * 100 / ($totales-$elementos-1) )* totales/100;
  echo '
'.$dato['item'].'
'; }

Así nos han encontrado!

  • crear nube de palabras online
  • nube de palabras online

Deja un comentario

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

Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" cssfile="">