Extracción de información de documentos

Completado

Nota:

Consulte la pestaña Texto e imágenes para obtener más detalles.

Los procesos empresariales actuales dependen en gran medida de los datos contenidos en documentos como formularios, recibos y facturas. El procesamiento manual puede introducir retrasos y errores, lo que hace que la automatización de la extracción de datos sea más importante que nunca.

Funcionamiento de Azure Content Understanding

Azure Content Understanding sigue un flujo de trabajo de extracción controlado por modelos en el que se ingiere, analiza y devuelve contenido no estructurado como datos estructurados.

  1. Ingesta de contenido: envíe contenido a Azure Content Understanding.

  2. Análisis con tecnología de inteligencia artificial: el servicio usa una combinación de: Reconocimiento óptico de caracteres (OCR), reconocimiento de voz, comprensión del lenguaje natural y modelos de inteligencia artificial bidireccional para analizar el contenido.

  3. Salida estructurada: el servicio devuelve resultados estructurados (por ejemplo, en JSON) que coinciden con el modelo, lo que facilita el almacenamiento, la búsqueda o la integración de los datos en sistemas de bajada.

Nota:

JSON (notación de objetos JavaScript) es un formato de datos basado en texto que se usa para almacenar e intercambiar datos estructurados entre sistemas. Es fácil para los seres humanos leer y escribir, y es fácil para que las máquinas analicen y generen.

Descripción de los esquemas

OCR (reconocimiento óptico de caracteres) permite a un equipo "leer" texto de imágenes, como documentos escaneados, fotos de recibos o imágenes de páginas impresas, y convertir ese texto en texto digital editable y buscable. OCR básico ayuda a reconocer texto impreso, se centra en la extracción de texto y no entiende el significado, el contexto o las relaciones entre palabras.

Las funcionalidades de análisis de documentos de Azure Content Understanding van más allá de la simple extracción de texto basada en OCR para incluir la extracción basada en esquemas de campos y sus valores. El enfoque controlado por esquemas es lo que diferencia Azure Content Understanding de los servicios básicos de OCR o transcripción.

Un esquema describe qué información desea extraer y cómo se debe estructurar esa información. Al definir un esquema, se especifican los campos que se van a extraer. Un esquema enumera los campos o entidades específicos que le interesan.

Por ejemplo, supongamos que define un esquema que incluye los campos comunes que normalmente se encuentran en una factura, como:

  • Nombre de proveedor
  • Número de factura
  • Fecha de la factura
  • Nombre del cliente
  • Dirección personalizada
  • Elementos: los elementos ordenados, cada uno de los cuales incluye:
    • Descripción del producto
    • Precio unitario
    • Cantidad ordenada
    • Total de elementos de línea
  • Subtotal de factura
  • Impuestos
  • Cargo de envío
  • Total de factura

Ahora supongamos que necesita extraer esta información de la siguiente factura:

Fotografía de una factura.

Azure Content Understanding puede aplicar el esquema de factura a la factura e identificar los campos correspondientes, incluso cuando se etiquetan con nombres diferentes (o no están etiquetados). El análisis resultante genera un resultado similar al siguiente:

Fotografía de una factura analizada con campos detectados resaltados.

El esquema también define la estructura de campo. Los esquemas admiten campos estructurados y anidados, no solo texto plano. Por ejemplo:

  • Items es una colección
  • Cada elemento tiene description, unit price, quantityy line total

La identificación de campos estructurados permite a Azure Content Understanding comprender las relaciones entre valores, algo que solo OCR no puede hacer.

En el ejemplo de factura, para cada campo detectado, puede extraer valores anidados:

  • Nombre del proveedor: Adventure Works Cycles
  • Número de factura: 1234
  • Fecha de factura: 07/03/2025
  • Nombre del cliente: John Smith
  • Dirección personalizada: 123 River Street, Marshtown, Inglaterra, GL1 234
  • Elementos:
    • Elemento 1:
      • Descripción del artículo: 38" Racing Bike (Rojo)
      • Precio unitario: 1299,00
      • Cantidad ordenada: 1
      • Total del artículo del pedido: 1299,00
    • Elemento 2:
      • Descripción del artículo: Casco de ciclismo (negro)
      • Precio unitario: 25,99
      • Cantidad ordenada: 1
      • Total del artículo del pedido: 25,99
    • Artículo 3:
      • Descripción del elemento: Camiseta de ciclismo (L)
      • Precio unitario: 42,50
      • Cantidad ordenada: 2
      • Total del artículo del pedido: 85,00
  • Subtotal de factura: 1409.99
  • Impuesto: 140.99
  • Cargo de envío: 35.00
  • Total de factura: 1585,98

Azure Content Understanding extrae el significado esperado, no solo las etiquetas. Los esquemas se aplican semánticamente, lo que significa:

  • Los campos se pueden extraer incluso si las etiquetas difieren
  • Los campos se pueden extraer incluso si faltan etiquetas

Por ejemplo, Invoice No., Invoice #, o un número sin etiquetar se pueden asignar todos a InvoiceNumber si el analizador determina que representan el mismo concepto.

Comprender los analizadores

Un analizador es una unidad de Azure Content Understanding que toma la entrada, aplica el análisis de IA y genera resultados estructurados. Los analizadores aplican de forma coherente la misma lógica de extracción a todo el contenido entrante. Una vez configurado, un analizador garantiza que un esquema se reutiliza de forma coherente para cada solicitud de análisis. Los analizadores también generan resultados JSON predecibles. Los resultados estructurados facilitan el procesamiento posterior (almacenamiento, búsqueda, automatización).

Azure Content Understanding ofrece analizadores creados previamente para escenarios comunes y admite analizadores personalizados adaptados a sus necesidades. En un alto nivel:

  1. Elija o cree un analizador.
  2. El analizador incluye un esquema que define campos y estructura.
  3. Envía contenido para su análisis.
  4. El servicio aplica el esquema
  5. Recibe resultados JSON estructurados que coinciden con el esquema.

Uso de Azure Content Understanding en el portal de Foundry

Nota:

El portal de Foundry tiene una interfaz de usuario (UI) clásica y una nueva interfaz de usuario.

Después de crear un recurso de Microsoft Foundry, puede usar la interfaz clásica del portal de Foundry para probar Azure Content Understanding. El portal de Foundry proporciona ejemplos de contenido y le permite cargar su propio material para su análisis.

Puede usar la interfaz visual para seleccionar un documento de origen y extraer campos de información predeterminados. Por ejemplo, al probar Azure Content Understanding en una imagen de un documento, el servicio devuelve el texto del documento y la información de diseño de texto.

Captura de pantalla del portal de Foundry clásico con un documento analizado con Azure Content Understanding.

Los analizadores de Azure Content Understanding identifican los valores de texto de los documentos y los asignan a campos específicos. Por ejemplo, dada una factura, el servicio devuelve los campos (como la dirección del proveedor) y los datos de los campos (como 123 456th Street).

Captura de pantalla del portal de Foundry clásico con una factura analizada con Azure Content Understanding.

En el portal de Foundry, también puede ver los resultados JSON del procesamiento.

Captura de pantalla del portal de Foundry clásico con el resultado JSON de una factura analizada con Azure Content Understanding.

Creación de una aplicación cliente con Azure Content Understanding

Puede usar Content Understanding API para crear una aplicación cliente ligera que extraiga datos mediante programación.

Nota:

Una aplicación cliente es un programa de software que se ejecuta en el dispositivo de un usuario y solicita servicios o datos de otro sistema, normalmente un servidor, a través de una red. El cliente es la parte de una aplicación con la que interactúan los usuarios, mientras que el servidor realiza el trabajo pesado en segundo plano. Las aplicaciones pueden solicitar datos o acciones de un servicio y recibir una respuesta estructurada mediante una API.

Al usar Content Understanding API, puede elegir un analizador precompilado o crear un analizador personalizado. Los analizadores creados previamente incluyen: prebuilt-invoice, prebuilt-imageSearch, prebuilt-audioSearchy prebuilt-videoSearch. Al enviar contenido para su análisis al analizador, el análisis es asincrónico, lo que significa que obtendrá el resultado más adelante cuando esté listo. Dado que el análisis es asincrónico, debe sondear la dirección URL de Operation-Location (o analyzerResults) hasta que el trabajo se realice correctamente.

Uso del SDK de Python para Azure Content Understanding

Echemos un vistazo al proceso de uso del SDK de Python para analizar una factura desde una dirección URL.

  1. Instale el SDK de Python de Azure Content Understanding.
python -m pip install azure-ai-contentunderstanding
  1. Identifique el punto de conexión de recursos de Foundry y la clave de API o el identificador de Microsoft Entra. Normalmente, el punto de conexión tiene el siguiente aspecto: https://<your-resource-name>.services.ai.azure.com/

  2. Cree y ejecute el código de la aplicación cliente. analzyer_id es el identificador del analizador precompilado. Puede encontrar una lista de valores de identificador de analizador precompilados aquí.

import os
from azure.ai.contentunderstanding import ContentUnderstandingClient
from azure.core.credentials import AzureKeyCredential

endpoint = os.environ["FOUNDRY_ENDPOINT"]
key = os.environ["FOUNDRY_KEY"]

client = ContentUnderstandingClient(endpoint=endpoint, credential=AzureKeyCredential(key))

# 1) start analysis with analyzer id + inputs
analyzer_id = "prebuilt-invoice"
inputs = [
    {"url": "https://github.com/Azure-Samples/azure-ai-content-understanding-python/raw/refs/heads/main/data/invoice.pdf"}
]

# 2) wait for the Long Running Operation (LRO) to complete
poller = client.begin_analyze(analyzer_id=analyzer_id, inputs=inputs)  # starts LRO
result = poller.result()  # waits for completion (polling handled by SDK)

# 3) read structured fields + markdown
# The result typically includes extracted "fields" and "markdown" per input content item.
for content in result.contents:
    print(content.markdown)
    print(content.fields)

La salida resultante es JSON que muestra el markdown extraído, los campos, los datos en los campos y la puntuación de confianza. Por ejemplo:

{
	"status": "Succeeded",
	"result": {
		"analyzerId": "prebuilt-invoice",
		"apiVersion": "2025-05-01-preview",
		"contents": [
			{
				"markdown": "# INVOICE\n\nCONTOSO LTD.\n\nContoso Headquarters\n123 456th St\nNew York, NY, 10001\n\nINVOICE: INV-100\n\nINVOICE DATE: 11/15/2019\n\nDUE DATE: 12/15/2019\n\nCUSTOMER NAME: MICROSOFT CORPORATION\n",
				"fields": {
					"CustomerName": {
						"type": "string",
						"valueString": "MICROSOFT CORPORATION",
						"confidence": 0.95,
					},
					"InvoiceDate": {
						"type": "date",
						"valueDate": "2019-11-15",
						"confidence": 0.994,
					}
                }
            }
        ]
    }
}

A continuación, aprenda a usar analizadores de Azure Content Understanding para extraer datos estructurados de audio y vídeo.