Cómo redactar un buen esquema de extracción en lenguaje natural
El esquema no es más que una descripción de lo que quieres extraer de un documento. No necesitas aprender ninguna sintaxis para escribirlo, pero unos pocos hábitos marcan la diferencia entre obtener resultados en los que confías y resultados que tienes que vigilar. Aquí te explicamos cómo describir lo que buscas para que el motor acierte a la primera.
- tutorial
- schema design
Lo primero que hace la mayoría de la gente en Ztract es crear un proyecto. Lo segundo —y lo que de verdad decide qué tan buenos serán tus resultados— es decirnos qué quieres extraer de él. Esa descripción es tu esquema.
Aquí viene la parte que sorprende a muchos: no lo escribes en código. No hay sintaxis que aprender, ni tipos de campo que declarar, ni plantilla que dibujar en la página. Describes lo que quieres tal como se lo explicarías a un compañero nuevo: “Para cada factura, extrae el proveedor, el total y cada línea de detalle.” El motor se encarga del resto.
Esa libertad es justamente la idea, pero también significa que la calidad de tu resultado va de la mano con la calidad de tu descripción. Una petición vaga da resultados vagos. Una precisa da datos limpios en los que puedes confiar desde la primera pasada. Esta entrada trata sobre el puñado de hábitos que hacen que tu esquema en lenguaje natural sea preciso, sea cual sea el tipo de documento con el que trabajes.
Cómo es un buen esquema
Antes de las reglas, veamos la forma de una descripción que funciona bien. Supongamos que estás extrayendo facturas:
“Para cada factura, extrae el número de factura, la fecha de emisión, el nombre del proveedor y el importe total a pagar. Extrae también cada línea de detalle con su descripción, cantidad, precio unitario y total de línea. Si un campo no aparece en el documento, déjalo en blanco en lugar de adivinarlo.”
Fíjate en lo que hace. Nombra campos concretos, no “lo importante”. Separa lo que aparece una sola vez por documento (número de factura, total) de lo que aparece muchas veces (las líneas de detalle). Y dice qué hacer cuando falta algo. Nada de eso es técnico: simplemente es preciso. Los cinco hábitos que vienen a continuación son la forma de llegar ahí.
Cinco hábitos que hacen preciso a un esquema
1. Sé específico sobre qué valor quieres
Los documentos están llenos de números y fechas que se parecen entre sí. “El importe” de una factura podría ser el subtotal, los impuestos, el total antes del descuento o el importe final a pagar. Si escribes “extrae el importe”, estás dejando la elección al azar.
Nombra el exacto:
- ❌ “la fecha” → ✅ “la fecha de emisión de la factura (no la fecha de vencimiento)”
- ❌ “el importe” → ✅ “el importe total a pagar, con impuestos y descuentos ya aplicados”
- ❌ “el nombre” → ✅ “el nombre de la empresa proveedora (no el de la persona de contacto)”
Cuanto más abunden los campos parecidos en un documento, más importa esto.
2. Indica en qué formato lo quieres
El motor lee lo que hay en la página, pero a menudo querrás que quede normalizado en algo consistente, sobre todo en fechas, números y moneda. Si te importa el formato, pídelo:
- “Formatea todas las fechas como YYYY-MM-DD.”
- “Expresa los importes como números simples, sin símbolos de moneda ni separadores de miles.”
- “Registra los débitos como números negativos.”
- “Incluye el código de moneda (USD, EUR, etc.) como un campo aparte.”
Sin esto, obtienes lo que muestre el documento —$1,250.00,
1.250,00, (1,250.00)— y luego acabarás limpiándolo en la hoja de
cálculo. Una frase al principio te ahorra ese trabajo.
3. Separa lo “único por documento” de lo “único por fila”
Esto es lo que más confunde a la gente, y vale la pena ir despacio. Algunos campos aparecen una vez por documento: un número de factura, el periodo de un estado de cuenta bancario, un titular de la cuenta. Otros se repiten: cada línea de detalle, cada transacción, cada pasajero de un billete.
Si no los distingues, puedes terminar con un solo valor donde querías una lista, o con un revoltijo aplanado donde querías estructura. La solución es decirlo en voz alta:
“Extrae los campos a nivel de estado de cuenta una sola vez: titular de la cuenta, número de cuenta, saldo inicial, saldo final. Después extrae cada transacción como su propia fila, con fecha, descripción e importe.”
Las palabras “para cada” son tus aliadas. “Para cada línea de detalle…”, “para cada transacción…”: le dicen al motor que espere una lista y te devuelven filas limpias y repetidas en lugar de un amontonamiento.
4. Añade una palabra de aclaración para los campos que se confunden
Algunos campos son genuinamente ambiguos y por mucho que se lea la página no se resuelven: solo tu intención lo hace. Un documento aduanero puede contener tanto un número de factura como un número de orden de compra, tanto una dirección de envío como una de facturación, tanto un peso bruto como uno neto.
Cuando dos campos puedan confundirse, añade una breve aclaración:
- “el número de factura (el del vendedor, etiquetado como ‘INV’, no el número de PO)”
- “la dirección de envío (a dónde se entregan los bienes, no la dirección de facturación)”
Tú sabes cuál necesitas realmente. Decirlo elimina las conjeturas.
5. Decide qué pasa cuando falta un campo
Los documentos reales son inconsistentes. Una factura trae número de PO, la siguiente no. Si no dices qué hacer, lo dejas abierto, y para la extracción, el valor predeterminado seguro que casi siempre quieres es no inventar nada:
“Si un campo no aparece en el documento, déjalo en blanco. Nunca adivines ni rellenes con un valor de relleno.”
Esta única línea vale especialmente la pena en documentos financieros, legales y médicos, donde un valor erróneo presentado con seguridad es mucho más peligroso que una celda vacía que puedes ver y verificar después.
Tres formas de crear un esquema, y cuándo usar cada una
Ztract te ofrece tres puntos de partida. Los hábitos de arriba se aplican a todos; la única pregunta es por dónde empiezas.
- Parte de un esquema prediseñado. Para los documentos habituales —facturas, recibos, estados de cuenta bancarios, documentos de identidad, currículums, contratos, informes de laboratorio, trámites aduaneros— existe una plantilla que ya conoce los campos habituales. Ideal cuando tu documento es de un tipo estándar y quieres empezar rápido y luego ajustar.
- Describe tú mismo los campos. Escribe la descripción en lenguaje natural desde cero. Ideal cuando tu documento es poco común, o cuando quieres exactamente estos campos y ningún otro. Aquí es donde los cinco hábitos demuestran su valor.
- Inferir a partir de una muestra. Sube un documento representativo y deja que el motor proponga un esquema a partir de lo que ve. Ideal cuando aún no sabes qué campos contiene un documento hasta que has visto uno; luego refinas la propuesta en lenguaje natural.
La mayoría termina combinándolas: parten de una plantilla o una muestra y luego afinan la descripción a mano usando los hábitos de arriba.
Puedes consultar nuestra página de documentación sobre cómo diseñar tu esquema para más información.
Una tabla rápida de resolución de problemas
Cuando el resultado no es el que esperabas, la causa suele estar en la descripción. Las más comunes:
| Lo que ves | Causa probable | La solución |
|---|---|---|
| Se extrae el número equivocado para “importe” | El campo no era específico | Nombra el valor exacto: “total a pagar después de impuestos” |
| Fechas en formatos mezclados | No se pidió ningún formato | Añade “formatea todas las fechas como YYYY-MM-DD” |
| Un solo valor donde querías una lista | El campo repetido no se marcó | Usa “para cada … extrae …” |
| La lista se aplana en una sola celda | Lo mismo que arriba | Igual: nombra explícitamente los campos por fila |
| Un campo inventado de la nada | No hay regla para campos faltantes | Añade “deja en blanco si no aparece, nunca adivines” |
| Dos campos similares intercambiados | Falta de aclaración | Añade una aclaración: “el número de PO, no el número de factura” |
El esquema es solo la mitad del ciclo
Incluso un esquema bien redactado se beneficia de una segunda mirada, y Ztract está construido en torno a eso. Cada valor extraído está anclado a su posición en el documento de origen: haz clic en un valor y verás exactamente de dónde salió. Revisas los que parecen incorrectos, los corriges con un clic y listo. Las correcciones no cuestan nada; solo la extracción cuenta para tus páginas, no la edición posterior.
Así que el objetivo de un buen esquema no es la perfección al primer intento, sino acercarse lo suficiente para que el paso de revisión sea un vistazo rápido y no una repetición. Los cinco hábitos de arriba son lo que te lleva ahí.
Pruébalo con un documento real
La forma más rápida de hacerse una idea de esto es escribir una descripción para un documento con el que trabajes de verdad y ver qué devuelve. Las cuentas nuevas reciben 30 páginas gratis, sin tarjeta de crédito: de sobra para esbozar un esquema, refinarlo y ver cómo el resultado se va ajustando a medida que lo haces.
Y si un tipo de documento o un esquema que intentaste describir te dio problemas —si no encontraste las palabras para obtener el resultado que querías—, eso es exactamente la retroalimentación que buscamos. Cuéntanoslo; lograr que el diseño de esquemas resulte obvio para quienes no son ingenieros es la parte del producto que más nos importa hacer bien.