Estoy con un nuevo proyecto en el que empecé a adaptar un bot que hice hace unos años, es probable que los posteos en el blog comiencen a ser un poco erráticos. Espero poder seguir con un post por día pero no aseguro nada. Como no tengo ningún post preparado para hoy les dejo un “cuentito de un combito de una pantalla de búsqueda de un sitio que no existe más…”
Revisando el frontend donde se usaba el bot, me encontré con que el contenido de unos de los combos lo generaba de una manera poco usual.
El sitio era un buscador vertical, recopilaba información de muchos lugares y se podían hacer búsquedas sobre eso. Los usuarios podían filtrar según varios criterios, y uno de ellos eran según la ciudad.
La lista de ciudades no estaba predefinida, se creaba automáticamente usando lo que el bot producía. El problema era que no podía mostrarle al usuario todas las ciudades que tenía porque había muchas que eran variaciones de lo mismo (por ejemplo: Para Córdoba la mayoría tenía “Cordoba“, pero algunos usaban “Córdoba capital“, “Cdba“, “Córdoba, Córdoba“, etc ).
Como en general uno de los nombres era la versión más usada y después el resto eran variaciones con pocas ocurrencias, opté por generar la lista estadísticamente según las ocurrencias que tenían. Por ejemplo, si tenía algo como:
| Ciudad | Ocurrencias |
|---|---|
| Buenos Aires | 2000 |
| Capital Federal | 180 |
| Capital | 72 |
| CABA | 89 |
| Cordoba | 500 |
| Cordoba capital | 34 |
| Cdba | 15 |
| Mar del Plata | 800 |
| Mardel | 14 |
| Rosario | 539 |
Generaba el combo con todas las ciudades que aportaban al menos un X % al total de ocurrencias. El X era a ojo, lo seteaba la primera vez según los datos en la base. Por ejemplo, si selecciono los elementos que contribuyen al menos en un 5% al total, obtengo: Buenos Aires, Córdoba, Mar del Plata, Rosario.
El único momento en el que tenía que intervenir era para revisar de vez en cuando qué nombres quedaban fuera de la lista y agregarlos como casos especiales al parser apropiado. Como desventaja para esta solución, había algunas pocas ciudades con pocas ocurrencias que quedaban fuera de la lista, pero eran muy pocas y era mejor tener menos opciones que opciones repetidas.
No recuerdo como llegué a esa solución pero lo más probable es que fuera para trabajar lo menos posible manteniendo el sitio.
Categorías: Investigacion, Opinión
