Postal IA (III): un romance con las sílabas contadas por Python, no por la IA
Esta entrada continúa las dos anteriores sobre Postal IA. Hasta ahora la aplicación solo sabía pedir un micropoema suelto, sin forma fija. La petición para esta sesión fue añadir una segunda forma, mucho más exigente: el romance, la composición tradicional española de versos octosílabos con rima asonante en los versos pares (el segundo y el cuarto; el primero y el tercero quedan sueltos). Y, ya puestos, comprobar si el modelo realmente la cumple, en vez de darlo por hecho.
Por qué el romance es un salto de dificultad
Pedir un haiku suelto es barato: cualquier micropoema breve encaja, no hay una regla exacta que romper. Un romance es otra cosa. Requiere contar sílabas —y contar bien, con sinalefas entre palabras y con la regla del acento final— y encima hacer rimar el sonido final de dos versos que no son consecutivos. Es exactamente el tipo de tarea en la que un modelo de 3.000 millones de parámetros, sin GPU detrás, falla con frecuencia: la misma limitación que ya obligó, en PINSAPIA, a que las cuentas aritméticas las resuelva Python y no el modelo. Aquí pasa lo mismo, pero con sílabas en vez de con sumas.
La decisión: pedirlo una vez, y enseñarlo tal cual salga
Había una tentación obvia: si el romance no sale bien medido, volver a pedírselo al modelo hasta que acierte. Se descartó a propósito. Un romance perfecto a la primera oculta justo lo que tiene más valor para enseñarlo en clase: que escribir en verso medido es difícil, y que una IA generalista tampoco lo resuelve gratis. Así que Postal IA le pide el romance al modelo una sola vez, sin reintentos, y muestra el resultado con sus aciertos y sus fallos, en vez de fingir que siempre sale perfecto.
Por la misma razón de no complicar de más lo que no hacía falta, la rima asonante se le pide al modelo en el texto de la instrucción, pero no se comprueba con código: solo se verifica la métrica (el número de sílabas), que es lo que se puede calcular con una regla clara y sin ambigüedad. Comprobar una rima asonante de verdad —qué vocales cuentan, qué consonantes se ignoran— es un problema bastante más impreciso, y se ha dejado fuera de esta versión.
Cómo se cuenta una sílaba de verdad
Contar letras no es contar sílabas de un verso, ni siquiera contando las sílabas de cada palabra por separado. Hacen falta dos reglas más:
- Sinalefa: si una palabra acaba en vocal y la siguiente empieza por vocal, esas dos vocales se funden en una sola sílaba al recitar el verso. «No hay» suena como una sola sílaba, no dos, aunque la palabra «hay» empiece «por escrito» con una consonante muda: la hache no cuenta.
- Regla del acento final: si la última palabra del verso es aguda, se cuenta una sílaba más de las que tiene sobre el papel; si es esdrújula, una menos; si es llana, no cambia nada.
El nuevo módulo metrica.py reutiliza el contador de sílabas por palabra de analizar_legibilidad.py (el mismo que ya usa PINSAPIA para medir la dificultad de los apuntes) y le añade estas dos reglas para trabajar verso a verso, no palabra a palabra. Antes de darlo por bueno se comprobó contra ocho versos de referencia real —incluidos dos de «Canción del pirata», de Espronceda— y acertó los ocho, hache muda incluida.
Cómo se usa
Arrancar Postal IA no ha cambiado:
pip install -r requirements.txt
uvicorn main:app --reload --port 8002
y abrir http://127.0.0.1:8002. Ahora, debajo del campo del tema, hay dos opciones: «Haiku» y «Romance (4 versos octosílabos)». Con el haiku, todo sigue igual que antes. Con el romance, además del poema aparece una línea con la comprobación de la métrica, por ejemplo: «Comprobación de métrica (heurística, no perfecta): 8, 8, 8, 9 sílabas por verso — objetivo: 8. 3 de 4 versos exactos.» — sin adornar el resultado ni ocultar el verso que no ha salido bien medido.
Para quien quiera reproducir la idea del contador de sílabas en su propio proyecto, la receta es esta:
- Partir de un contador de sílabas por palabra (vocales seguidas cuentan como una sílaba, salvo hiato: dos vocales fuertes juntas, o una vocal débil con tilde, sí separan).
- Sumar las sílabas de todas las palabras del verso.
- Restar una sílaba por cada frontera entre dos palabras donde la primera acabe en vocal y la segunda empiece por vocal (ignorando una hache muda al principio de la segunda palabra): eso es la sinalefa.
- Mirar solo la última palabra del verso: si es aguda, sumar una sílaba; si es esdrújula, restar una; si es llana, no tocar nada.
Límites honestos
- La rima asonante no se comprueba, solo se pide en el prompt: puede que el modelo la acierte o no, y Postal IA no lo verifica.
- La heurística de acentuación (aguda/llana/esdrújula) cubre las reglas generales del español y las palabras con tilde, pero no es un analizador lingüístico completo.
- Se ha verificado contra ocho versos de referencia, no contra un corpus grande: es una comprobación razonable para un uso educativo, no una garantía absoluta.
Siguiente paso
Que José Luis pruebe el romance con varios temas y valore si el resultado —y la comprobación honesta de la métrica— tiene sentido para llevarlo al aula, por ejemplo como disparador de una conversación sobre lo que le cuesta a una IA (y a cualquiera) escribir en verso medido. Si el modo romance convence, verificar también la rima asonante sería la mejora natural siguiente; si no, ajustar el prompt o dejarlo como está es igual de válido.





