Automatizar documentos con IA: OCR, extracción, validación y revisión · Módulo 3: Extraer y validar datos
Diseñar el esquema y extraer datos
Diseño de contratos de extracción tipados que conservan valor observado, interpretación, normalización, evidencia y tratamiento de ambigüedad.
Objetivo de aprendizaje
Especificar un contrato de datos por clase que pueda ser producido por distintos extractores y validado antes de entrar en sistemas operativos.
«Extrae todos los datos importantes» no es un contrato. Obliga al extractor a decidir qué significa «importante» y produce salidas difíciles de validar, comparar y consumir. En un sistema empresarial, el esquema debe nacer del proceso: qué campos necesita una decisión, qué sistema los recibe y qué ocurre si faltan o son ambiguos.
La extracción puede apoyarse en reglas, modelos preconstruidos, modelos personalizados o modelos generativos. La elección del mecanismo viene después. Primero define con precisión qué salida sería aceptable.
Define cada campo como parte de un contrato
Para cada campo especifica:
- nombre canónico;
- significado empresarial;
- tipo;
- cardinalidad;
- obligatorio, opcional o condicional;
- representación observada;
- representación normalizada;
- evidencia necesaria;
- reglas de validación;
- tratamiento de ausencia;
- consecuencia de error.
Para tablas, define la estructura de filas y columnas, la clave que identifica cada fila y la relación con encabezados. Para entidades repetidas, conserva orden e identidad en lugar de devolver una bolsa de valores sin contexto.
JSON Schema puede utilizarse para expresar requisitos estructurales sobre documentos JSON. Su versión 2020-12 define vocabularios de core y validación. Utilizar un esquema no resuelve la exactitud semántica del dato, pero sí ayuda a impedir que una salida mal formada avance como si fuera válida.
Separa observado, interpretado y normalizado
Una extracción robusta conserva distintos niveles:
- texto observado: lo que aparece en el documento;
- valor interpretado: lo que el extractor propone que significa;
- valor normalizado: la representación que utiliza el sistema;
- evidencia: página y región o fragmento que sostiene el valor;
- estado: pendiente de validación, válido, ambiguo, ausente o rechazado.
Por ejemplo, el documento puede mostrar 1.250,50 €. El valor normalizado puede ser 1250.50 y la moneda EUR. No elimines la representación original: permite revisar la transformación y detectar errores de formato regional.
Representa ausencias y ambigüedad sin inventar
null no debe significar simultáneamente «no aparece», «no pude leerlo», «no aplica» y «el extractor falló». Define estados distintos cuando esas diferencias cambien el proceso.
Si existen dos fechas candidatas, no elijas silenciosamente la que «parece más probable» salvo que exista una regla documentada y evaluada. Devuelve candidatos con evidencia, aplica una regla determinista o deriva a revisión.
Tampoco infieras atributos no presentes como si fueran documentales. Si el país se deduce del dominio del email o del idioma, ese valor es derivado y debe identificarse como tal. No debe sustituir al dato leído del documento.
Elige el método mínimo suficiente por clase y campo
No existe un extractor universal que deba usarse para todas las clases. Una plantilla muy estable puede resolverse con reglas o posiciones. Una factura común puede beneficiarse de un analizador preconstruido. Un documento variable puede requerir un modelo personalizado o una extracción generativa con salida estructurada.
La pregunta relevante no es qué tecnología «parece más inteligente», sino cuál alcanza los requisitos con coste, latencia y operación aceptables.
Puedes incluso combinar métodos: reglas para campos deterministas, un extractor documental para tablas y un modelo generativo para una cláusula variable. La salida debe converger en el mismo contrato y pasar por las mismas validaciones.
Conserva evidencia por campo
Una salida como total = 1250 es difícil de auditar si no puedes mostrar de dónde salió. Conserva página, región o span textual suficiente para que la interfaz de revisión lleve a la persona directamente al fragmento.
La evidencia ayuda a detectar errores sutiles: subtotal confundido con total, fecha de vencimiento confundida con emisión o identificador del receptor tomado como emisor.
No necesitas conservar todo el razonamiento del modelo. Necesitas trazabilidad desde el dato hasta el documento.
Ejemplo: contrato de factura
El esquema puede incluir emisor, identificador fiscal, número, fecha, moneda, líneas, base, impuestos y total. El identificador fiscal se cruza con el maestro de proveedores. El total conserva texto y región. Las líneas tienen cantidad, unidad, descripción, precio e importe.
Si la suma no concuerda, la extracción no se «corrige» por confianza. El valor pasa a estado inconsistente y la capa de validación decide la siguiente acción.
Ejercicio: dos contratos de extracción
Elige dos clases del curso y crea para cada una:
- esquema tipado;
- campos condicionales;
- listas o tablas;
- estados de ausencia;
- evidencia requerida;
- método candidato de extracción;
- ejemplos válidos;
- ejemplos ambiguos;
- versión del esquema;
- consumidor y consecuencia por campo crítico.
Después prueba el esquema contra documentos reales. Si cada variante obliga a añadir un campo nuevo, quizá estés modelando la plantilla visual y no el significado empresarial.
Qué debes poder demostrar
La extracción está bien especificada cuando diferentes técnicas pueden producir la misma estructura y esa estructura conserva suficiente evidencia para ser validada. En la siguiente lección separarás precisamente esas responsabilidades: normalizar, comprobar reglas y contrastar con fuentes externas antes de convertir una predicción en dato operativo.

