¿Qué es el modelo de diseño de Document Intelligence?

Este contenido se aplica a:checkmarkv4.0 (GA) | Versiones anteriores:blue-checkmarkv3.1 (GA)red-checkmarkv3.0 (retirada)red-checkmarkv2.1 (retirada)

El modelo de diseño Azure Document Intelligence en Foundry Tools es una API de análisis de documentos avanzada basada en el aprendizaje automático. El modelo está disponible en la nube de Document Intelligence. Puede usarlo para tomar documentos en varios formatos y devolver representaciones de datos estructuradas de los documentos. El modelo combina una versión mejorada de las eficaces funcionalidades de reconocimiento óptico de caracteres (OCR) con modelos de aprendizaje profundo para extraer texto, tablas, marcas de selección y estructura de documentos.

Análisis de diseño de estructura de documentos

El análisis de diseño de estructura de documentos es el proceso de analizar un documento para extraer regiones de interés y sus interrelaciones. El objetivo es extraer texto y elementos estructurales de la página para crear mejores modelos de comprensión semántica. Hay dos tipos de roles en un diseño de documento:

  • Roles geométricos: texto, tablas, figuras y marcas de selección son ejemplos de roles geométricos.
  • Roles lógicos: los títulos, los encabezados y los pies de página son ejemplos de roles lógicos de textos.

En la ilustración siguiente se muestran los componentes típicos de una imagen de una página de ejemplo.

Ilustración que muestra un ejemplo de diseño de documento.

Opciones de desarrollo

Document Intelligence v4.0: 2024-11-30 (GA) admite las siguientes herramientas, aplicaciones y bibliotecas.

Característica Recursos Id. de modelo
Modelo de diseño Document Intelligence Studio
API REST
SDK de C#
SDK de Python
SDK de Java
SDK de JavaScript
prebuilt-layout

Idiomas admitidos

Para obtener una lista completa de los idiomas admitidos, consulte Compatibilidad con idiomas: Modelos de análisis de documentos.

Tipos de archivo admitidos

Document Intelligence v4.0: el modelo de diseño 2024-11-30 (GA) admite los siguientes formatos de archivo:

Modelo PDF Imagen:
JPEG/JPG, PNG, BMP, TIFF, HEIF
Office:
Word (DOCX), Excel (XLS), PowerPoint (PPTX), HTML
Diseño

Requisitos de entrada

  • Fotos y escaneos: Para obtener mejores resultados, proporcione una foto clara o un escaneo de alta calidad por documento.
  • ARCHIVOS PDF y TIFF: para archivos PDF y TIFF, se pueden procesar hasta 2000 páginas. (Con una suscripción de nivel gratuito, solo se procesan las dos primeras páginas).
  • Bloqueos de contraseña: si los archivos PDF están bloqueados con contraseña, debe quitar el bloqueo antes del envío.
  • Tamaño del archivo: el tamaño de archivo para analizar documentos es de 500 MB para el nivel de pago (S0) y 4 MB para el nivel gratis (F0).
  • Dimensiones de imagen: las dimensiones de imagen deben estar entre 50 píxeles x 50 píxeles y 10 000 píxeles x 10 000 píxeles.
  • Alto del texto: el alto mínimo del texto que se va a extraer es de 12 píxeles para una imagen de 1024 x 768 píxeles. Esta dimensión corresponde aproximadamente a un texto de 8 puntos a 150 puntos por pulgada.
  • Entrenamiento de modelos personalizados: el número máximo de páginas para los datos de entrenamiento es 500 para el modelo de plantilla personalizado y 50 000 para el modelo neuronal personalizado.
  • Entrenamiento del modelo de extracción personalizada: el tamaño total de los datos de entrenamiento es de 50 MB para el modelo de plantilla y 1 GB para el modelo neuronal.
  • Entrenamiento del modelo de clasificación personalizada: el tamaño total de los datos de entrenamiento es de 1 GB con un máximo de 10 000 páginas. Para 2024-11-30 (GA), el tamaño total de los datos de entrenamiento es de 2 GB con un máximo de 10 000 páginas.
  • Tipos de archivo de Office (DOCX, XLSX, PPTX): el límite máximo de longitud de cadena es de 8 millones de caracteres.

Para obtener más información sobre el uso del modelo, las cuotas y los límites de servicio, consulte Límites de servicio.

Introducción al modelo de diseño

Vea cómo se extraen los datos, incluidos texto, tablas, encabezados de tabla, marcas de selección e información de estructura, de documentos mediante Document Intelligence. Necesita los siguientes recursos:

  • Una suscripción Azure. Puede crear uno de forma gratuita.

  • Una instancia de Document Intelligence en el portal de Azure. Puede usar el plan de tarifa gratis (F0) para probar el servicio. Después de implementar el recurso, seleccione Ir al recurso para obtener la clave y el punto de conexión.

    Screenshot que muestra las claves y la ubicación del punto de conexión en el portal de Azure.

Después de recuperar la clave y el punto de conexión, use las siguientes opciones de desarrollo para compilar e implementar las aplicaciones de Document Intelligence.

Extracción de datos

El modelo de diseño extrae elementos estructurales de los documentos. Los siguientes elementos estructurales se describen en el resto de este artículo junto con instrucciones sobre cómo extraerlos de la entrada del documento:

Ejecute el análisis de documentos de diseño de ejemplo en Document Intelligence Studio. A continuación, vaya a la pestaña de resultados y acceda a la salida JSON completa.

Captura de pantalla que muestra los resultados en la pestaña de salida JSON en Document Intelligence Studio.

Páginas

La pages colección es una lista de páginas dentro del documento. Cada página se representa secuencialmente dentro del documento e incluye el ángulo de orientación, que indica si se gira la página y el ancho y alto (dimensiones en píxeles). Las unidades de página de la salida del modelo se calculan como se muestra en la tabla siguiente.

Formato de archivo Unidad de página calculada Total de páginas
Imágenes (JPEG/JPG, PNG, BMP, HEIF) Cada imagen = 1 unidad de página. Total de imágenes
PDF Cada página del PDF = 1 unidad de página. Total de páginas en el PDF
TIFF Cada imagen del TIFF = 1 unidad de página. Total de imágenes en el TIFF
Documento de Word (DOCX) Hasta 3000 caracteres = 1 unidad de página. No se admiten imágenes incrustadas o vinculadas. Total de páginas de hasta 3000 caracteres cada una
Excel (XLSX) Cada hoja de cálculo = 1 unidad de página. No se admiten imágenes incrustadas o vinculadas. Total de hojas de cálculo
PowerPoint (PPTX) Cada diapositiva = 1 unidad de página. No se admiten imágenes incrustadas o vinculadas. Total de diapositivas
HTML Hasta 3000 caracteres = 1 unidad de página. No se admiten imágenes incrustadas o vinculadas. Total de páginas de hasta 3000 caracteres cada una
# Analyze pages.
for page in result.pages:
print(f"----Analyzing layout from page #{page.page_number}----")
print(f"Page has width: {page.width} and height: {page.height}, measured with unit: {page.unit}")

ejemplos de View en GitHub.

Extracción de páginas seleccionadas

Para documentos de varias páginas grandes, use el pages parámetro de consulta para indicar números de página específicos o intervalos de página para la extracción de texto.

Párrafos

El modelo de diseño extrae todos los bloques de texto identificados de la paragraphs colección como un objeto de nivel superior en analyzeResults. Cada entrada de esta colección representa un bloque de texto e incluye el texto extraído como content y las coordenadas polygon de delimitador. La spans información apunta al fragmento de texto dentro de la propiedad de nivel content superior que contiene el texto completo del documento.


"paragraphs": [
    {
        "spans": [],
        "boundingRegions": [],
        "content": "While healthcare is still in the early stages of its Al journey, we are seeing pharmaceutical and other life sciences organizations making major investments in Al and related technologies.\" TOM LAWRY | National Director for Al, Health and Life Sciences | Microsoft"
    }
]

Roles de párrafo

La nueva detección de objetos de página basada en el aprendizaje automático extrae roles lógicos como títulos, encabezados de sección, encabezados de página, pies de página, etc. El modelo de diseño de Document Intelligence asigna determinados bloques de texto de la paragraphs colección con su rol o tipo especializado previsto por el modelo.

Es mejor usar roles de párrafo con documentos no estructurados para ayudar a comprender el diseño del contenido extraído para un análisis semántico más completo. Se admiten los siguientes roles de párrafo.

Rol predicho Descripción Tipos de archivo admitidos
title Encabezados principales de la página PDF, Image, DOCX, PPTX, XLSX, HTML
sectionHeading Uno o varios subtítulos de la página PDF, Image, DOCX, XLSX, HTML
footnote Texto situado cerca de la parte inferior de la página PDF, imagen
pageHeader Texto cerca del borde superior de la página PDF, Image, DOCX
pageFooter Texto cerca del borde inferior de la página PDF, Image, DOCX, PPTX, HTML
pageNumber Número de página PDF, imagen
{
    "paragraphs": [
                {
                    "spans": [],
                    "boundingRegions": [],
                    "role": "title",
                    "content": "NEWS TODAY"
                },
                {
                    "spans": [],
                    "boundingRegions": [],
                    "role": "sectionHeading",
                    "content": "Mirjam Nilsson"
                }
    ]
}

Texto, líneas y palabras

El modelo de diseño de documento de Document Intelligence extrae texto de estilo manuscrito y impreso como lines y words. La colección styles incluye cualquier estilo manuscrito para líneas, si se detecta, junto con los intervalos que apuntan al texto asociado. Esta característica se aplica a los idiomas manuscritos admitidos.

Para Microsoft Word, Excel, PowerPoint y HTML, el modelo de diseño de Document Intelligence v4.0 2024-11-30 (GA) extrae todo el texto incrustado tal como está. Los textos se extraen como palabras y párrafos. No se admiten imágenes incrustadas.

# Analyze lines.
if page.lines:
    for line_idx, line in enumerate(page.lines):
    words = get_words(page, line)
    print(
        f"...Line # {line_idx} has word count {len(words)} and text '{line.content}' "
        f"within bounding polygon '{line.polygon}'"
    )

    # Analyze words.
    for word in words:
        print(f"......Word '{word.content}' has a confidence of {word.confidence}")

ejemplos de View en GitHub.

Estilo manuscrito para líneas de texto

La respuesta incluye si cada línea de texto está en un estilo manuscrito o no, junto con una puntuación de confianza. Para obtener más información, consulte Compatibilidad con idiomas manuscritos. En el ejemplo siguiente se muestra un fragmento de código JSON de ejemplo.

"styles": [
{
    "confidence": 0.95,
    "spans": [
    {
        "offset": 509,
        "length": 24
    }
    "isHandwritten": true
    ]
}

Si habilita la funcionalidad del complemento de fuente/estilo, también obtendrá el resultado de fuente/estilo como parte del objeto styles.

Marcas de selección

El modelo de diseño también extrae marcas de selección de documentos. Las marcas de selección extraídas aparecen dentro de la pages colección para cada página. Incluyen polygon delimitador, confidence y state de la selección (selected/unselected). La representación de texto (es decir, :selected: y :unselected) también se incluye como índice inicial (offset) y length que hace referencia a la propiedad content de nivel superior que contiene el texto completo del documento.

# Analyze selection marks.
if page.selection_marks:
    for selection_mark in page.selection_marks:
        print(
            f"Selection mark is '{selection_mark.state}' within bounding polygon "
            f"'{selection_mark.polygon}' and has a confidence of {selection_mark.confidence}"
        )

ejemplos de View en GitHub.

Tablas

La extracción de tablas es un requisito clave para procesar documentos que contienen grandes volúmenes de datos con formato normalmente como tablas. El modelo de diseño extrae tablas en la pageResults sección de la salida JSON. La información de tabla extraída incluye el número de columnas y filas, intervalo de filas y intervalo de columnas.

Cada celda con su polígono delimitador se genera junto con información sobre si el área se reconoce como columnHeader o no. El modelo admite la extracción de tablas que se rotan. Cada celda de la tabla contiene las coordenadas de índice de fila y columna y polígono delimitador. Para el texto de la celda, el modelo genera la información span que contiene el índice inicial (offset). El modelo también genera el length elemento dentro del contenido de nivel superior que contiene el texto completo del documento.

Estos son algunos factores que se deben tener en cuenta al usar la funcionalidad de extracción de tablas de Documento de inteligencia:

  • ¿Son significativos los datos que desea extraer como una tabla y es significativa la estructura de la tabla?
  • ¿Los datos caben en una cuadrícula bidimensional si los datos no están en formato de tabla?
  • ¿Las tablas abarcan varias páginas? Si es así, para evitar tener que etiquetar todas las páginas, divida el PDF en páginas antes de enviarlo a Document Intelligence. Después del análisis, vuelva a procesar las páginas en una sola tabla.
  • Consulte Campos tabulares si crea modelos personalizados. Las tablas dinámicas tienen un número variable de filas para cada columna. Las tablas fijas tienen un número constante de filas para cada columna.

Nota

No se admite el análisis de tablas si el archivo de entrada es XLSX. Para 2024-11-30 (GA), las regiones delimitadoras de figuras y tablas cubren solo el contenido principal y excluyen el título y las notas al pie asociados.

if result.tables:
    for table_idx, table in enumerate(result.tables):
        print(f"Table # {table_idx} has {table.row_count} rows and " f"{table.column_count} columns")
        if table.bounding_regions:
            for region in table.bounding_regions:
                print(f"Table # {table_idx} location on page: {region.page_number} is {region.polygon}")
        # Analyze cells.
        for cell in table.cells:
            print(f"...Cell[{cell.row_index}][{cell.column_index}] has text '{cell.content}'")
            if cell.bounding_regions:
                for region in cell.bounding_regions:
                print(f"...content on page {region.page_number} is within bounding polygon '{region.polygon}'")

ejemplos de View en GitHub.

Respuesta de salida al formato Markdown

La API de diseño puede generar el texto extraído en formato Markdown. Use el outputContentFormat=markdown para especificar el formato de salida en Markdown. El contenido de Markdown se genera como parte de la content sección.

Nota

Para la versión 4.0 2024-11-30 (GA), la representación de las tablas se cambia a tablas HTML para permitir la representación de elementos como celdas combinadas y encabezados multirow. Otro cambio relacionado consiste en usar los caracteres ☒ de casilla Unicode y ☐ para las marcas de selección en lugar de :selected: y :unselected:. Esta actualización significa que el contenido de los campos de marca de selección contiene :selected: aunque sus intervalos hagan referencia a caracteres Unicode en el intervalo de nivel superior. Para obtener una definición completa de los elementos Markdown, consulte Formato de salida de Markdown.

document_intelligence_client = DocumentIntelligenceClient(endpoint=endpoint, credential=AzureKeyCredential(key))
poller = document_intelligence_client.begin_analyze_document(
    "prebuilt-layout",
    AnalyzeDocumentRequest(url_source=url),
    output_content_format=ContentFormat.MARKDOWN,
)

ejemplos de View en GitHub.

Figuras

Las figuras (gráficos e imágenes) de los documentos desempeñan un papel fundamental en complementar y mejorar el contenido textual. Proporcionan representaciones visuales que ayudan a comprender la información compleja. El figures objeto detectado por el modelo de diseño tiene propiedades clave como:

  • boundingRegions: las ubicaciones espaciales de la figura en las páginas del documento, incluido el número de página y las coordenadas de polígono que describen el límite de la figura.
  • spans: el texto abarca los intervalos relacionados con la figura que especifican sus desplazamientos y longitudes dentro del texto del documento. Esta conexión ayuda a asociar la figura con su contexto textual pertinente.
  • elements: los identificadores de los elementos de texto o párrafos del documento que están relacionados con o describen la figura.
  • caption: La descripción si hay una.

Cuando output=figures se especifica durante la operación de análisis inicial, el servicio genera imágenes recortadas para todas las figuras detectadas a las que se puede acceder a través de /analyeResults/{resultId}/figures/{figureId}. El valor FigureId es el identificador incluido en cada objeto de figura, siguiendo una convención no documentada de {pageNumber}.{figureIndex} donde figureIndex se restablece a uno por página.

Para la versión 4.0 2024-11-30 (GA), las regiones de límite de ilustraciones y tablas solo cubren el contenido principal y excluyen el título y las notas al pie asociados.

# Analyze figures.
if result.figures:
    for figures_idx,figures in enumerate(result.figures):
        print(f"Figure # {figures_idx} has the following spans:{figures.spans}")
        for region in figures.bounding_regions:
            print(f"Figure # {figures_idx} location on page:{region.page_number} is within bounding polygon '{region.polygon}'")

ejemplos de View en GitHub.

Secciones

El análisis jerárquico de la estructura de documentos es fundamental para organizar, comprender y procesar documentos extensos. Este enfoque es fundamental para segmentar semánticamente documentos largos para aumentar la comprensión, facilitar la navegación y mejorar la recuperación de información. La llegada de la generación aumentada por recuperación (RAG) en la inteligencia artificial generativa de documentos subraya la importancia del análisis jerárquico de la estructura de documentos.

El modelo de diseño admite secciones y subsecciones en la salida, que identifica la relación de secciones y objetos dentro de cada sección. La estructura jerárquica se mantiene en elements para cada sección. Puede usar la respuesta de salida en formato Markdown para obtener fácilmente las secciones y subsecciones de Markdown.

document_intelligence_client = DocumentIntelligenceClient(endpoint=endpoint, credential=AzureKeyCredential(key))
poller = document_intelligence_client.begin_analyze_document(
    "prebuilt-layout",
    AnalyzeDocumentRequest(url_source=url),
    output_content_format=ContentFormat.MARKDOWN,
)

ejemplos de View en GitHub.

Este contenido se aplica a:checkmarkv3.1 (GA) | Versión más reciente:purple-checkmarkv4.0 (GA) | Versiones anteriores:blue-checkmarkv3.0blue-checkmarkv2.1

Este contenido se aplica a:red-checkmarkv3.0 (retirada) | Versiones más recientes:purple-checkmarkv4.0 (GA)purple-checkmarkv3.1 | Versión anterior:blue-checkmarkv2.1 (retirada)

Importante

La API de Azure Document Intelligence v3.0 (2022-08-31) llega al fin del soporte el 30 de marzo de 2029. Para evitar interrupciones de producción, use Azure Document Intelligence 2024-11-30 v4.0 para todo el desarrollo nuevo y migre las cargas de trabajo existentes a Azure Document Intelligence 2024-11-30 v4.0 antes de esta fecha. Para obtener instrucciones sobre la migración, consulte la guía de migración de Document Intelligence.

Este contenido se aplica a:red-checkmarkv2.1 | Versión más reciente:blue-checkmarkv4.0 (GA)

El modelo de diseño de Document Intelligence es una API avanzada de análisis de documentos. El modelo se basa en el aprendizaje automático y está disponible en la nube de Document Intelligence. Puede usarlo para tomar documentos en varios formatos y devolver representaciones de datos estructuradas de los documentos. Combina una versión mejorada de las eficaces funcionalidades de OCR con modelos de aprendizaje profundo. Puede usarlo para extraer texto, tablas, marcas de selección y estructura de documentos.

Análisis de diseño de documentos

El análisis de diseño de estructura de documentos es el proceso de analizar un documento para extraer regiones de interés y sus interrelaciones. El objetivo es extraer texto y elementos estructurales de la página para crear mejores modelos de comprensión semántica. Hay dos tipos de roles en un diseño de documento:

  • Roles geométricos: texto, tablas, figuras y marcas de selección son ejemplos de roles geométricos.
  • Roles lógicos: los títulos, los encabezados y los pies de página son ejemplos de roles lógicos de textos.

En la ilustración siguiente se muestran los componentes típicos de una imagen de una página de ejemplo.

Ilustración que muestra un ejemplo de diseño de documento.

Idiomas y configuraciones regionales admitidos

Para obtener una lista completa de los idiomas admitidos, consulte Compatibilidad con idiomas: Modelos de análisis de documentos.

Document Intelligence v2.1 admite las siguientes herramientas, aplicaciones y bibliotecas.

Característica Recursos
Modelo de diseño Herramienta de etiquetado de Document Intelligence
REST API
SDK de biblioteca cliente
Contenedor Docker de Document Intelligence

Guía de entrada

Formatos de archivo admitidos:

Modelo PDF Imagen:
JPEG/JPG, PNG, BMP, TIFF, HEIF
Office:
Word (DOCX), Excel (XLSX), PowerPoint (PPTX), HTML
Lectura
Diseño
Documento general
Prefabricado
Extracción personalizada
Clasificación personalizada
  • Fotos y escaneos: Para obtener mejores resultados, proporcione una foto clara o un escaneo de alta calidad por documento.
  • ARCHIVOS PDF y TIFF: para archivos PDF y TIFF, se pueden procesar hasta 2000 páginas con una suscripción de nivel gratuito. Solo se procesan las dos primeras páginas.
  • Tamaño del archivo: el tamaño de archivo para analizar documentos es de 500 MB para el nivel de pago (S0) y 4 MB para el nivel gratis (F0).
  • Dimensiones de imagen: las dimensiones de imagen deben estar entre 50 píxeles x 50 píxeles y 10 000 píxeles x 10 000 píxeles.
  • Bloqueos de contraseña: si los archivos PDF están bloqueados con contraseña, debe quitar el bloqueo antes del envío.
  • Alto del texto: el alto mínimo del texto que se va a extraer es de 12 píxeles para una imagen de 1024 x 768 píxeles. Esta dimensión corresponde aproximadamente a un texto de 8 puntos a 150 puntos por pulgada.
  • Entrenamiento de modelos personalizados: el número máximo de páginas para los datos de entrenamiento es 500 para el modelo de plantilla personalizado y 50 000 para el modelo neuronal personalizado.
  • Entrenamiento del modelo de extracción personalizada: el tamaño total de los datos de entrenamiento es de 50 MB para el modelo de plantilla y 1 GB para el modelo neuronal.
  • Entrenamiento del modelo de clasificación personalizada: el tamaño total de los datos de entrenamiento es de 1 GB con un máximo de 10 000 páginas. Para 2024-11-30 (GA), el tamaño total de los datos de entrenamiento es de 2 GB con un máximo de 10 000 páginas.
  • Tipos de archivo de Office (DOCX, XLSX, PPTX): el límite máximo de longitud de cadena es de 8 millones de caracteres.

Guía de entrada

  • Formatos de archivo admitidos: JPEG, PNG, PDF y TIFF.
  • Número admitido de páginas: para PDF y TIFF, se procesan hasta 2000 páginas. Para suscriptores de nivel gratis, solo se procesan las dos primeras páginas.
  • Tamaño de archivo admitido: el tamaño de archivo debe ser inferior a 50 MB y las dimensiones deben ser al menos 50 x 50 píxeles y como máximo 10 000 x 10 000 píxeles.

Comenzar

Puede usar La inteligencia de documentos para extraer datos como texto, tablas, encabezados de tabla, marcas de selección e información de estructura de documentos. Necesita los siguientes recursos:

  • Una suscripción Azure. Puede crear uno de forma gratuita.
  • Una instancia de Document Intelligence en el portal de Azure. Puede usar el plan de tarifa gratis (F0) para probar el servicio. Después de implementar el recurso, seleccione Ir al recurso para obtener la clave y el punto de conexión.

Screenshot que muestra las claves y la ubicación del punto de conexión en el portal de Azure.

Después de recuperar la clave y el punto de conexión, puede usar las siguientes opciones de desarrollo para compilar e implementar las aplicaciones de Document Intelligence.

Nota

Document Intelligence Studio está disponible con las API v3.0 y versiones posteriores.

REST API

Herramienta de etiquetado de muestras de Inteligencia Documental

  1. Vaya a la herramienta de etiquetado de ejemplo de Documento de inteligencia.

  2. En la página principal de la herramienta de ejemplo, seleccione Usar diseño para obtener texto, tablas y marcas de selección.

    Captura de pantalla que muestra la configuración de conexión para el proceso de diseño de Document Intelligence.

  3. En el campo Punto de conexión del servicio de Document Intelligence, pegue el punto de conexión que obtuvo con la suscripción de Document Intelligence.

  4. En el campo clave , pegue la clave que obtuvo del recurso de Document Intelligence.

  5. En el campo Origen , seleccione URL en el menú desplegable. Puede usar el documento de ejemplo:

  6. Seleccione Ejecutar diseño. La herramienta de etiquetado de ejemplos de Inteligencia de Documentos llama a la API de Analyze Layout para analizar el documento.

    Captura de pantalla que muestra el panel desplegable Diseño.

  7. Vea los resultados. Consulte el texto extraído resaltado, las marcas de selección detectadas y las tablas detectadas.

    Recorte de pantalla en el que se muestra la configuración de conexión de la herramienta de etiquetado de ejemplo de Documento de inteligencia.

Document Intelligence v2.1 admite las siguientes herramientas, aplicaciones y bibliotecas.

Característica Recursos
API de diseño Herramienta de etiquetado de Document Intelligence
REST API
SDK de biblioteca cliente
Contenedor Docker de Document Intelligence

Extracción de datos

El modelo de diseño extrae elementos estructurales de los documentos. Los elementos estructurales se describen aquí y en las instrucciones siguientes se muestra cómo extraerlos de la entrada del documento.

Extracción de datos

El modelo de diseño extrae elementos estructurales de los documentos. Los elementos estructurales se describen aquí y en las instrucciones siguientes se muestra cómo extraerlos de la entrada del documento.

Página

La pages colección es una lista de páginas dentro del documento. Cada página se representa secuencialmente dentro del documento e incluye el ángulo de orientación que indica si la página se gira y el ancho y alto (dimensiones en píxeles). Las unidades de página de la salida del modelo se calculan como se muestra en la tabla siguiente.

Formato de archivo Unidad de página calculada Total de páginas
Imágenes (JPEG/JPG, PNG, BMP, HEIF) Cada imagen = 1 unidad de página. Total de imágenes
PDF Cada página del PDF = 1 unidad de página. Total de páginas en el PDF
TIFF Cada imagen del TIFF = 1 unidad de página. Total de imágenes en el TIFF
Documento de Word (DOCX) Hasta 3000 caracteres = 1 unidad de página. No se admiten imágenes incrustadas o vinculadas. Total de páginas de hasta 3000 caracteres cada una
Excel (XLSX) Cada hoja de cálculo = 1 unidad de página. No se admiten imágenes incrustadas o vinculadas. Total de hojas de cálculo
PowerPoint (PPTX) Cada diapositiva = 1 unidad de página. No se admiten imágenes incrustadas o vinculadas. Total de diapositivas
HTML Hasta 3000 caracteres = 1 unidad de página. No se admiten imágenes incrustadas o vinculadas. Total de páginas de hasta 3000 caracteres cada una
"pages": [
    {
        "pageNumber": 1,
        "angle": 0,
        "width": 915,
        "height": 1190,
        "unit": "pixel",
        "words": [],
        "lines": [],
        "spans": []
    }
]
# Analyze pages.
for page in result.pages:
    print(f"----Analyzing layout from page #{page.page_number}----")
    print(
        f"Page has width: {page.width} and height: {page.height}, measured with unit: {page.unit}"
    )

ejemplos de View en GitHub.

Extracción de páginas seleccionadas de documentos

Para documentos de varias páginas grandes, use el pages parámetro de consulta para indicar números de página específicos o intervalos de página para la extracción de texto.

Párrafo

El modelo de diseño extrae todos los bloques de texto identificados de la paragraphs colección como un objeto de nivel superior en analyzeResults. Cada entrada de esta colección representa un bloque de texto e incluye el texto extraído como content, y las coordenadas delimitadoras polygon. La span información apunta al fragmento de texto dentro de la propiedad de nivel content superior que contiene el texto completo del documento.


"paragraphs": [
    {
        "spans": [],
        "boundingRegions": [],
        "content": "While healthcare is still in the early stages of its Al journey, we are seeing pharmaceutical and other life sciences organizations making major investments in Al and related technologies.\" TOM LAWRY | National Director for Al, Health and Life Sciences | Microsoft"
    }
]

Rol de párrafo

La nueva detección de objetos de página basada en el aprendizaje automático extrae roles lógicos como títulos, encabezados de sección, encabezados de página, pies de página, etc. El modelo de diseño de Document Intelligence asigna determinados bloques de texto de la paragraphs colección con su rol o tipo especializado previsto por el modelo. Es mejor usar roles de párrafo con documentos no estructurados para ayudar a comprender el diseño del contenido extraído para un análisis semántico más completo. Se admiten los siguientes roles de párrafo.

Rol predicho Descripción Tipos de archivo admitidos
title Encabezados principales de la página PDF, Image, DOCX, PPTX, XLSX, HTML
sectionHeading Uno o varios subtítulos de la página PDF, Image, DOCX, XLSX, HTML
footnote Texto situado cerca de la parte inferior de la página PDF, imagen
pageHeader Texto cerca del borde superior de la página PDF, Image, DOCX
pageFooter Texto cerca del borde inferior de la página PDF, Image, DOCX, PPTX, HTML
pageNumber Número de página PDF, imagen
{
    "paragraphs": [
                {
                    "spans": [],
                    "boundingRegions": [],
                    "role": "title",
                    "content": "NEWS TODAY"
                },
                {
                    "spans": [],
                    "boundingRegions": [],
                    "role": "sectionHeading",
                    "content": "Mirjam Nilsson"
                }
    ]
}

Texto, línea y palabra

El modelo de diseño de documento de Document Intelligence extrae texto de estilo manuscrito y impreso como líneas y palabras. La colección styles incluye cualquier estilo manuscrito para las líneas si se detecta junto con los intervalos que apuntan al texto asociado. Esta característica se aplica a los idiomas manuscritos admitidos.

Para Word, Excel, PowerPoint y HTML, el modelo de diseño de Document Intelligence v4.0 2024-11-30 (GA) extrae todo el texto incrustado tal como está. Los textos se extraen como palabras y párrafos. No se admiten imágenes incrustadas.

"words": [
    {
        "content": "While",
        "polygon": [],
        "confidence": 0.997,
        "span": {}
    },
],
"lines": [
    {
        "content": "While healthcare is still in the early stages of its Al journey, we",
        "polygon": [],
        "spans": [],
    }
]
# Analyze lines.
for line_idx, line in enumerate(page.lines):
    words = line.get_words()
    print(
        f"...Line # {line_idx} has word count {len(words)} and text '{line.content}' "
        f"within bounding polygon '{format_polygon(line.polygon)}'"
    )

    # Analyze words.
    for word in words:
        print(
            f"......Word '{word.content}' has a confidence of {word.confidence}"
        )

ejemplos de View en GitHub.

Estilo manuscrito

La respuesta incluye la clasificación de si cada línea de texto es de estilo de escritura a mano o no, junto con una puntuación de confianza. Para obtener más información, consulte Compatibilidad con idiomas manuscritos. En el ejemplo siguiente se muestra un fragmento de código JSON de ejemplo.

"styles": [
{
    "confidence": 0.95,
    "spans": [
    {
        "offset": 509,
        "length": 24
    }
    "isHandwritten": true
    ]
}

Si habilita la funcionalidad del complemento de fuente/estilo, también obtendrá el resultado de fuente/estilo como parte del objeto styles.

Marca de selección

El modelo de diseño también extrae marcas de selección de documentos. Las marcas de selección extraídas aparecen dentro de la pages colección para cada página. Incluyen polygon delimitador, confidence y state de la selección (selected/unselected). La representación de texto (es decir, :selected: y :unselected) también se incluye como índice inicial (offset) y length que hace referencia a la propiedad content de nivel superior que contiene el texto completo del documento.

{
    "selectionMarks": [
        {
            "state": "unselected",
            "polygon": [],
            "confidence": 0.995,
            "span": {
                "offset": 1421,
                "length": 12
            }
        }
    ]
}
# Analyze selection marks.
for selection_mark in page.selection_marks:
    print(
        f"Selection mark is '{selection_mark.state}' within bounding polygon "
        f"'{format_polygon(selection_mark.polygon)}' and has a confidence of {selection_mark.confidence}"
    )

ejemplos de View en GitHub.

Tabla

La extracción de tablas es un requisito clave para procesar documentos que contienen grandes volúmenes de datos con formato normalmente como tablas. El modelo de diseño extrae tablas en la pageResults sección de la salida JSON. La información de tabla extraída incluye el número de columnas y filas, intervalo de filas y intervalo de columnas. Cada celda con su polígono delimitador se genera junto con información sobre si el área se reconoce como columnHeader o no.

El modelo admite la extracción de tablas que se rotan. Cada celda de la tabla contiene las coordenadas de índice de fila y columna y polígono delimitador. Para el texto de la celda, el modelo genera la información span que contiene el índice inicial (offset). El modelo también genera el length elemento dentro del contenido de nivel superior que contiene el texto completo del documento.

Estos son algunos factores que se deben tener en cuenta al usar la funcionalidad de extracción de tablas de Documento de inteligencia:

  • ¿Son significativos los datos que desea extraer como una tabla y es significativa la estructura de la tabla?
  • ¿Los datos caben en una cuadrícula bidimensional si los datos no están en formato de tabla?
  • ¿Las tablas abarcan varias páginas? Si es así, para evitar tener que etiquetar todas las páginas, divida el PDF en páginas antes de enviarlo a Document Intelligence. Después del análisis, vuelva a procesar las páginas en una sola tabla.
  • Consulte Campos tabulares si crea modelos personalizados. Las tablas dinámicas tienen un número variable de filas para cada columna. Las tablas fijas tienen un número constante de filas para cada columna.

Nota

No se admite el análisis de tablas si el archivo de entrada es XLSX. Document Intelligence v4.0 2024-11-30 (GA) admite regiones de límite para ilustraciones y tablas que cubren solo el contenido principal y excluye los títulos y notas al pie asociados.

{
    "tables": [
        {
            "rowCount": 9,
            "columnCount": 4,
            "cells": [
                {
                    "kind": "columnHeader",
                    "rowIndex": 0,
                    "columnIndex": 0,
                    "columnSpan": 4,
                    "content": "(In millions, except earnings per share)",
                    "boundingRegions": [],
                    "spans": []
                    },
            ]
        }
    ]
}

# Analyze tables.
for table_idx, table in enumerate(result.tables):
    print(
        f"Table # {table_idx} has {table.row_count} rows and "
        f"{table.column_count} columns"
    )
    for region in table.bounding_regions:
        print(
            f"Table # {table_idx} location on page: {region.page_number} is {format_polygon(region.polygon)}"
        )
    for cell in table.cells:
        print(
            f"...Cell[{cell.row_index}][{cell.column_index}] has text '{cell.content}'"
        )
        for region in cell.bounding_regions:
            print(
                f"...content on page {region.page_number} is within bounding polygon '{format_polygon(region.polygon)}'"
            )

ejemplos de View en GitHub.

Anotaciones

El modelo de diseño extrae anotaciones en documentos, como comprobaciones y cruces. La respuesta incluye el tipo de anotación, junto con una puntuación de confianza y un polígono delimitador.

    {
    "pages": [
    {
        "annotations": [
        {
            "kind": "cross",
            "polygon": [...],
            "confidence": 1
        }
        ]
    }
    ]
}

Salida de orden de lectura natural (solo idiomas procedentes del latín)

Puede especificar el orden en el que se generan las líneas de texto con el readingOrder parámetro de consulta. Use natural para obtener una salida de orden de lectura más amigable para el ser humano, como se ilustra en el ejemplo siguiente. Esta característica solo se admite para idiomas latinos.

Captura de pantalla del procesamiento del orden de lectura del modelo de diseño.

Seleccionar el número de página o el intervalo para la extracción de texto

Para documentos de varias páginas grandes, use el pages parámetro de consulta para indicar números de página específicos o intervalos de página para la extracción de texto. En el ejemplo siguiente se muestra un documento con 10 páginas, con texto extraído para ambos casos, todas las páginas (1-10) y páginas seleccionadas (3-6).

Captura de pantalla que muestra la salida del modelo de diseño de las páginas seleccionadas.

La operación Get Analyze Layout Result

El segundo paso es llamar a la operación Get Analyze Layout Result. Esta operación toma como entrada el identificador de resultado que creó la Analyze Layout operación. Devuelve una respuesta JSON que contiene un campo de estado con los siguientes valores posibles.

Campo Tipo Valores posibles
estado string notStarted: no se ha iniciado la operación de análisis.

running La operación de análisis está en curso.

failed: Error en la operación

succeeded de análisis: la operación de análisis se realizó correctamente.

Llame a esta operación de forma iterativa hasta que devuelva el succeeded valor. Para evitar superar la tasa de solicitudes por segundo, use un intervalo de tres a cinco segundos.

Cuando el campo de estado tiene el succeeded valor , la respuesta JSON incluye el diseño extraído, el texto, las tablas y las marcas de selección. Los datos extraídos incluyen las líneas de texto y palabras extraídas, los rectángulos delimitadores, la aparición de texto con una indicación de texto manuscrito, las tablas y las marcas de selección indicando si se ha seleccionado o no.

Clasificación manuscrita para líneas de texto (solo latín)

La respuesta incluye la clasificación de si cada línea de texto es de un estilo manuscrito o no, junto con una puntuación de confianza. Esta característica solo se admite para idiomas latinos. En el ejemplo siguiente se muestra la clasificación manuscrita del texto de la imagen.

Captura de pantalla que muestra el proceso de clasificación del modelo de disposición de escritura a mano.

Salida JSON de ejemplo

La respuesta a la Get Analyze Layout Result operación es una representación estructurada del documento con toda la información extraída. Vea un archivo de documento de ejemplo y su salida estructurada de diseño de ejemplo.

La salida JSON tiene dos partes:

  • El readResults nodo contiene todo el texto reconocido y la marca de selección. La jerarquía de presentación de texto es página, línea y luego palabras individuales.
  • El nodo pageResults contiene las tablas y celdas extraídas con sus cuadros de límite, la confianza y una referencia a las líneas y palabras del campo readResults.

Salida de ejemplo

Texto

La API de diseño extrae texto de documentos e imágenes con varios ángulos de texto y colores. Acepta fotos de documentos, faxes, texto impreso o manuscrito (solo inglés) y modos mixtos. El texto se extrae con información sobre las líneas, palabras, rectángulos delimitadores, puntuaciones de confianza y estilo (manuscrito u otro). Toda la información de texto se incluye en la readResults sección de la salida JSON.

Tablas con encabezados

Layout API extrae tablas en la pageResults sección de la salida JSON. Puede escanear, fotografía o digitalizar documentos. Las tablas pueden ser complejas con celdas o columnas combinadas, con o sin bordes, y con ángulos impares.

La información de tabla extraída incluye el número de columnas y filas, intervalo de filas y intervalo de columnas. Se representa cada celda con su rectángulo de selección y se indica si el área se reconoce como parte de un encabezado o no. Las celdas de encabezado predichas por el modelo pueden abarcar varias filas y no son necesariamente las primeras filas de una tabla. También funcionan con tablas rotadas. Cada celda de tabla también incluye el texto completo con referencias a las palabras individuales de la readResults sección.

Ilustración que muestra un ejemplo de tablas.

Marcas de selección (documentos)

La API de diseño también extrae marcas de selección de documentos. Entre las marcas de selección extraídas se incluyen el rectángulo delimitador, la confianza y el estado (seleccionado o no seleccionado). La información de la marca de selección se extrae en la readResults sección de la salida JSON.

Guía de migración