Skip to main content
DocLang es un formato de documento abierto diseñado para sistemas de IA, no para personas ni impresoras. Es el formato de salida que recomendamos para FineParser.

Qué es DocLang

La mayoría de los formatos de documento se diseñaron para la representación visual. PDF describe dónde dibujar los píxeles y HTML indica al navegador cómo maquetar una página, pero ninguno le dice a un modelo de lenguaje qué contiene un documento. Los analizadores que los convierten para su uso con IA acaban adivinando el orden de lectura, reduciendo las tablas a cadenas de texto y descartando figuras y metadatos. DocLang es un formato XML restringido creado para los tokenizadores de los LLM, de modo que cada elemento se corresponde con un único token del modelo. Todos los elementos incluyen un rol semántico, las coordenadas de su rectángulo delimitador y una posición dentro del orden de lectura, y las tablas conservan íntegra su estructura de cuadrícula. Se trata de una especificación, no de un producto, por lo que cualquier analizador puede generarla y cualquier herramienta puede consumirla. El grupo de trabajo fue fundado por IBM, NVIDIA, Red Hat, ABBYY, HumanSignal y Forgis, y la especificación se desarrolla en el marco de Joint Development Foundation Projects como proyecto de LF AI & Data.

Por qué FineParser lo genera

El texto sin formato resulta económico para alimentar un modelo porque descarta la estructura, mientras que HTML y Markdown la conservan, pero gastan muchos tokens en describirla. DocLang conserva la estructura a una fracción del costo. Una tabla codificada con el scheme OTSL de DocLang necesita cinco tokens estructurales, mientras que el HTML equivalente necesita veintiocho. DocLang también define una representación canónica única para cada tipo de contenido, de modo que toda herramienta compatible produce el mismo resultado para un mismo documento. El código escrito para el resultado de FineParser funcionará con cualquier otro producer de DocLang, y sus documentos seguirán siendo portables si más adelante cambia de analizador.

Ejemplo

El siguiente fragmento de DocLang describe un encabezado y una tabla pequeña, cada uno con su rectángulo delimitador en la página.
Los cuatro elementos <location> indican las esquinas del rectángulo delimitador. Dentro de la tabla, <ched/> introduce una celda de encabezado de columna, <fcel/> introduce una celda de datos y <nl/> finaliza la fila.

Archivos

FineParser escribe DocLang como un único archivo .doclang que contiene el markup. La especificación de DocLang también define un archivo .dclx, un paquete ZIP que agrupa el markup junto con las imágenes extraídas y otros activos, pero FineParser no genera ese formato.

Más información

El sitio doclang.ai incluye una descripción general del proyecto y un visor interactivo. La especificación completa y el kit de herramientas de referencia están disponibles en el repositorio doclang-project de GitHub, que además ofrece el paquete de Python doclang para validar y empaquetar archivos DocLang.