¿Pueden los LLM baratos convertir mensajes financieros en español en registros estructurados?

Pregunta de investigación: con qué exactitud por atributo (RQ1), cuándo se abstienen ante ambigüedad (RQ2), cómo afectan temporalidad relativa y multioperación (RQ3) y qué trade-off exactitud–latencia–costo existe (RQ4).

CFA (campos críticos = tipo ∧ monto ∧ fecha ∧ moneda, n=112): Gemini 3.1 Flash Lite 0.786 · Gemini 3.5 Flash Lite 0.777 · Mistral Small 4 0.607 · baseline reglas 0.634.

Leer paper (PDF) Ver dataset

Resultados

CFA = movement_type ∧ amount ∧ fecha ∧ currency. FullRecord = CFA ∧ category. n=112 no-multiop. Mismos números que paper.tex Tablas 1–2.

CFA por modelo × condición
Condición3.1 Flash Lite3.5 Flash LiteMistral Small 4rule-baseline
A (sin taxonomía)0.7860.7770.6070.634
B (con taxonomía)0.7770.7860.536
FullRecord por modelo × condición
Condición3.1 Flash Lite3.5 Flash LiteMistral Small 4rule-baseline
A (sin taxonomía)0.5180.6160.3390.366
B (con taxonomía)0.5890.6340.411

FullRecord A→B por modelo (McNemar exacto, pHolm=1.00 en los tres; sin significancia: inyectar la taxonomía no mejora contra el mismo target canónico): 3.1 0.518→0.589 · 3.5 0.616→0.634 · Mistral 0.339→0.411.

Dataset v1.2 (140 mensajes)

5 tipologías × 28: simple, coloquial, temporal, ambiguo, múltiples operaciones. Moneda ARS, base_date 2026-08-18.

idtextotipologíatipomontofechacategoría

Datos: dataset.json.

Baseline de reglas

Extractor determinista (Algoritmo 1 del paper): regex de montos con sufijos coloquiales (lucas/mil/k ×10³, palos ×10⁶), vocabulario de superficie para tipo, diccionario fijo de 18 sinónimos → 9 categorías canónicas, fecha relativa contra base_date, fragmentación por “y”/“e” para multioperación. CFA 0.634, FullRecord 0.366: compite en campos críticos, pierde en categoría y fechas relativas.

AMOUNT_RE = re.compile(r"\$?\s?(\d{1,3}(?:[.,]\d{3})+|\d[\d.,]*)\s*(palos?|lucas|mil|k)?", re.I)
MULT = {"lucas": 1000, "mil": 1000, "k": 1000, "palo": 1_000_000, "palos": 1_000_000}
# Extracto de experiments/rule_baseline.py — archivo completo descargable abajo.

Descargar rule_baseline.py

Metodología y reproducibilidad

  1. Diseño pareado 140×k: cada mensaje atraviesa todos los sistemas bajo el mismo GT.
  2. Condición A: contexto solo con FECHA ACTUAL. Condición B: mismo prompt + taxonomía de 9 canónicas.
  3. Ambas condiciones evaluadas contra un mismo target canónico (mapa taxonomy_map.json v2, congelado a priori).
  4. Estadística: Wilson IC95%, McNemar exacto + Holm-Bonferroni; consistencia R=3 réplicas en condición A.
  5. Manifiesto reproducible: experiment_manifest.json (hashes sha256 de dataset, prompt, scripts y configuración).

Cita (sin BibTeX en el repo; referencia de paper.tex): Anónimo. “Exactitud, abstención y confiabilidad de LLM de bajo costo para la interpretación de mensajes financieros en español rioplatense”. 2026.

Licencias: datos CC-BY-4.0 · código MIT. Caso de aplicación: repositorio oficial de LUKA.