Contratos, albaranes y devoluciones: los documentos olvidados en la curación de datos para IA

Sectores regulados
Contratos, albaranes y devoluciones: los documentos olvidados en la curación de datos para IA

Respuesta rápida

¿Cómo extraer cláusulas de un contrato cuando no hay un formato fijo?

No confíes solo en expresiones regulares. Usa una combinación: detecta patrones de títulos (párrafos en negrita, mayúsculas), luego aplica reglas por palabras clave (penalización, plazo, indemnización). Y entrena un modelo de NLP con un ground truth de al menos 100 contratos anotados manualmente.

En los proyectos de curación de datos para IA, hay una tendencia natural a empezar por los documentos más estructurados: facturas electrónicas, órdenes de compra en XML. Son cómodos. Pero te pierdes lo más interesante.

Los contratos, los albaranes y las devoluciones son la mina de oro oculta. También son los más difíciles de curar. Pero si lo haces bien, tu modelo de IA tendrá una ventaja competitiva enorme.

Contratos: el infierno de las cláusulas en texto libre

Un contrato puede tener treinta páginas. Dentro, hay cláusulas importantes (plazos de pago, penalizaciones, renovaciones automáticas) escritas en lenguaje jurídico, a veces con referencias cruzadas a otras secciones. Extraer esos datos de forma fiable es un desafío.

Para curar un dataset de contratos para IA, necesitas:

  • Identificar las secciones del contrato (no todos usan los mismos títulos).
  • Extraer fechas clave: firma, inicio, fin, preaviso.
  • Detectar obligaciones y derechos (ej. «el proveedor se compromete a entregar en 15 días»).
  • Normalizar las partes contratantes (evitar que «Juan Pérez S.L.» y «JUAN PEREZ SL» se traten como distintos).
  • Anotar (etiquetar) un subconjunto de contratos manualmente para entrenar modelos de extracción.

Un error común es tratar el contrato como un texto plano e intentar extraer con expresiones regulares. Eso funciona para el 60% de los casos, pero falla estrepitosamente en el resto. La curación seria requiere una combinación de NLP, reglas específicas por tipo de contrato y, sobre todo, un buen ground truth.

Albaranes: el documento que nadie quiere curar

El albarán (o nota de entrega) es el patito feo de los documentos logísticos. No tiene el prestigio de la factura ni la solemnidad del contrato. Pero es el documento que prueba que la mercancía se entregó. Y contiene información muy valiosa para modelos de predicción de inventario, detección de fraudes y optimización de rutas.

Los problemas típicos de los albaranes:

  • Firmas manuscritas que interfieren con la extracción de texto.
  • Unidades de medida no estandarizadas («caja», «palé», «docena», «kg»).
  • Cantidades escritas en letra además de número («una docena» junto a «12»).
  • Referencias a pedido o factura que a veces faltan.
  • El estado de la entrega («conforme», «pendiente», «incidencia») suele estar en una casilla tachada o en una observación.

Para curar albaranes, la estrategia pasa por:

  • Aplicar OCR con detección de regiones (para evitar las firmas).
  • Normalizar unidades de medida a un código interno (ej. «unidad» = «PZ», «caja» = «BOX»).
  • Extraer cantidades numéricas priorizando las que aparecen junto a la unidad normalizada.
  • Si hay discrepancia entre cantidad escrita en letra y número, registrar ambas y marcar la incoherencia.
  • Vincular el albarán con su factura o pedido mediante algún identificador (número de pedido, fecha, proveedor).

Devoluciones: datos sucios con información limpia

Las devoluciones son un dolor de cabeza en logística, pero una fuente fantástica para modelos de IA que predicen fallos de calidad o comportamientos de clientes. El problema: los motivos de devolución suelen estar escritos a mano, en campos de texto libre mal diseñados, o con categorías genéricas («defecto», «no gusta»).

Curar un dataset de devoluciones requiere:

  • Clasificar los motivos en una taxonomía estándar (ej. defecto de fabricación, daño en transporte, error de picking, cambio de opinión).
  • Extraer la referencia del producto devuelto (a veces en un código de barras, a veces escrito a mano).
  • Registrar si la devolución afecta a un albarán o factura anterior, y si hay acuerdo de devolución firmado.
  • Anotar si el cliente aporta fotos o evidencias.

Un dataset bien curado de devoluciones puede reducir drásticamente los costes de atención al cliente y mejorar la detección temprana de lotes defectuosos.

Cómo integrar estos documentos en un mismo dataset

Lo ideal es que tu dataset para IA relacione varios tipos de documento. Por ejemplo, para un modelo de riesgo de proveedor, querrás cruzar:

  • Contrato (plazo de pago, penalizaciones).
  • Órdenes de compra (volumen comprometido).
  • Albaranes (entregas reales).
  • Devoluciones (problemas de calidad).
  • Facturas (pagos).

Para eso, la curación debe incluir un identificador de negocio común (número de proveedor, número de pedido, referencia de contrato). Y los metadatos de trazabilidad deben conservar la procedencia de cada dato: de qué tipo de documento se extrajo, con qué versión del extractor y con qué nivel de confianza.

Conclusión

No te quedes solo con las facturas. Los contratos, albaranes y devoluciones contienen información que ningún otro documento tiene. Curarlos es más caro y más lento, pero la ventaja para tu modelo de IA será enorme. Además, en un sector regulado, tener una trazabilidad impecable sobre estos documentos es un argumento de peso ante cualquier auditor.

Preguntas frecuentes

Si es posible, usa OCR con detección de regiones (ignora zonas donde hay trazos de tinta continua). Si no, aplica un filtro de umbral de color o de grosor de trazo. En casos extremos, necesitarás revisión manual de esos albaranes.

Crea una tabla de equivalencias: «caja» -> BOX, «palé» -> PALLET, «docena» -> DOZ (12 unidades). Para unidades ambiguas («unidad»), asigna un código estándar y documenta la conversión en la trazabilidad.

Para proyectos pequeños (menos de 100 contratos), puedes usar reglas heurísticas con validación manual posterior. Para proyectos grandes o críticos, sí necesitas un ground truth de al menos 200-300 contratos anotados para evaluar y ajustar tu modelo de extracción.

Aplica técnicas de limpieza de texto (corrección ortográfica, stemming) y luego clasifica mediante un modelo sencillo (por ejemplo, word embeddings + clasificador). Si el volumen es bajo, una taxonomía manual con reglas por palabras clave puede ser suficiente.