O que é o modelo de layout de Inteligência de Documentos?

Este conteúdo aplica-se a:checkmarkv4.0 (GA) | Versões anteriores:blue-checkmarkv3.1 (GA)red-checkmarkv3.0 (em retirada)red-checkmarkv2.1 (em retirada)

O modelo de layout Azure Document Intelligence no Foundry Tools é uma API avançada de análise de documentos baseada em aprendizagem automática. O modelo está disponível na nuvem de Inteligência de Documentos. Pode usá-lo para processar documentos em diferentes formatos e devolver representações estruturadas dos documentos. O modelo combina uma versão melhorada das poderosas capacidades de reconhecimento ótico de caracteres (OCR) com modelos de aprendizagem profunda para extrair texto, tabelas, marcas de seleção e estrutura do documento.

Análise da estrutura do documento

A análise de layout estrutural de documentos é o processo de analisar um documento para extrair regiões de interesse e as suas inter-relações. O objetivo é extrair texto e elementos estruturais da página para construir melhores modelos de compreensão semântica. Existem dois tipos de funções no layout de um documento:

  • Papéis geométricos: Texto, tabelas, figuras e marcas de seleção são exemplos de papéis geométricos.
  • Papéis lógicos: Títulos, cabeçalhos e rodapés são exemplos de papéis lógicos dos textos.

A ilustração seguinte mostra os componentes típicos numa imagem de uma página de exemplo.

Ilustração que mostra um exemplo de layout de documento.

Opções de desenvolvimento

Document Intelligence v4.0: 2024-11-30 (GA) suporta as seguintes ferramentas, aplicações e bibliotecas.

Destaque Recursos ID do modelo
Modelo de disposição Document Intelligence Studio
REST API
C# SDK
Python SDK
Java SDK
JavaScript SDK
prebuilt-layout

Línguas suportadas

Para uma lista completa de linguagens suportadas, consulte Suporte de linguagem: Modelos de análise documental.

Tipos de ficheiros suportados

O modelo de layout Document Intelligence v4.0: 2024-11-30 (GA) suporta os seguintes formatos de ficheiro:

Modelo PDF Imagem:
JPEG/JPG, PNG, BMP, TIFF, HEIF
Office:
Word (DOCX), Excel (XLS), PowerPoint (PPTX), HTML
Disposição

Requisitos de entrada

  • Fotografias e digitalizações: Para melhores resultados, forneça uma foto clara ou uma digitalização de alta qualidade por documento.
  • PDFs e TIFFs: Para PDFs e TIFFs, podem ser processadas até 2.000 páginas. (Com uma subscrição gratuita, apenas as duas primeiras páginas são processadas.)
  • Bloqueios por palavra-passe: Se os seus PDFs estiverem bloqueados por palavra-passe, deve remover o bloqueio antes da submissão.
  • Tamanho do ficheiro: O tamanho do ficheiro para análise de documentos é de 500 MB para o nível pago (S0) e 4 MB para o nível gratuito (F0).
  • Dimensões da imagem: As dimensões da imagem devem estar entre 50 pixels x 50 pixels e 10.000 pixels x 10.000 pixels.
  • Altura do texto: A altura mínima do texto a extrair é de 12 píxeis para uma imagem de 1024 x 768 píxeis. Esta dimensão corresponde a cerca de texto de 8 pontos a 150 pontos por polegada.
  • Treino de modelos personalizados: O número máximo de páginas para dados de treino é 500 para o modelo modelo personalizado e 50.000 para o modelo neural personalizado.
  • Treino personalizado do modelo de extração: O tamanho total dos dados de treino é de 50 MB para o modelo modelo e 1 GB para o modelo neural.
  • Treino personalizado do modelo de classificação: O tamanho total dos dados de treino é de 1 GB com um máximo de 10.000 páginas. Para 2024-11-30 (GA), o tamanho total dos dados de treino é de 2 GB com um máximo de 10.000 páginas.
  • Tipos de ficheiros Office (DOCX, XLSX, PPTX): O limite máximo de comprimento de string é de 8 milhões de caracteres.

Para mais informações sobre utilização de modelos, quotas e limites de serviço, consulte Limites de serviço.

Comece com o modelo de layout

Veja como os dados, incluindo texto, tabelas, cabeçalhos de tabela, marcas de seleção e informação estrutural, são extraídos dos documentos através da Inteligência de Documentos. Precisa dos seguintes recursos:

  • Uma subscrição do Azure. Podes criar um gratuitamente.

  • Uma instância Document Intelligence no portal Azure. Pode usar o escalão de preços gratuito (F0) para experimentar o serviço. Depois de o seu recurso ser implementado, selecione Ir para o recurso para obter a sua chave e endpoint.

    Captura de ecrã que mostra as chaves e a localização do endpoint no portal Azure.

Depois de recuperar a sua chave e endpoint, utilize as seguintes opções de desenvolvimento para construir e implementar as suas aplicações de Inteligência de Documentos.

Extração de dados

O modelo de layout extrai elementos estruturais dos seus documentos. Os seguintes elementos estruturais são descritos no restante deste artigo, juntamente com orientações sobre como os extrair da entrada do seu documento:

Corra a análise de layout do documento de exemplo no Document Intelligence Studio. Depois vai ao separador de resultados e acede à saída JSON completa.

Captura de ecrã que mostra os resultados no separador de saída JSON no Document Intelligence Studio.

Páginas

A pages coleção é uma lista de páginas dentro do documento. Cada página é representada sequencialmente dentro do documento e inclui o ângulo de orientação, que indica se a página está rodada, e a largura e altura (dimensões em píxeis). As unidades de página na saída do modelo são calculadas conforme mostrado na tabela seguinte.

Formato de ficheiro Unidade de página calculada Total de páginas
Imagens (JPEG/JPG, PNG, BMP, HEIF) Cada imagem = 1 unidade de página. Imagens totais
PDF Cada página no PDF = 1 unidade de página. Total de páginas no PDF
TIFF Cada imagem no TIFF = 1 unidade de página. Total de imagens no TIFF
Word (DOCX) Até 3.000 caracteres = 1 unidade de página. Imagens incorporadas ou ligadas não são suportadas. Páginas totais de até 3.000 caracteres cada
Excel (XLSX) Cada folha de exercícios = 1 unidade de página. Imagens incorporadas ou ligadas não são suportadas. Folhas de cálculo totais
PowerPoint (PPTX) Cada diapositivo = 1 unidade de página. Imagens incorporadas ou ligadas não são suportadas. Total de diapositivos
HTML Até 3.000 caracteres = 1 unidade de página. Imagens incorporadas ou ligadas não são suportadas. Páginas totais de até 3.000 caracteres cada
# 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}")

Extrair páginas selecionadas

Para documentos grandes de várias páginas, use o pages parâmetro de consulta para indicar números ou intervalos de páginas específicos para extração de texto.

Parágrafos

O modelo de layout extrai todos os blocos de texto identificados na paragraphs coleção como um objeto de nível superior dentro de analyzeResults. Cada entrada nesta coleção representa um bloco de texto e inclui o texto extraído como content e as coordenadas delimitadoras polygon . A spans informação aponta para o fragmento de texto dentro da propriedade de nível superior content que contém todo o texto do 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"
    }
]

Funções dos parágrafos

A nova deteção de objetos de página baseada em aprendizagem automática extrai papéis lógicos como títulos, cabeçalhos de secção, cabeçalhos de página, rodapés e mais. O modelo de layout de Inteligência de Documentos atribui certos blocos de texto na coleção paragraphs, atribuindo-lhes o papel ou tipo especializado previsto pelo modelo.

É melhor usar funções de parágrafo com documentos não estruturados e assim ajudar a compreender o layout do conteúdo extraído, proporcionando uma análise semântica mais rica. Os papéis dos parágrafos seguintes são suportados.

Papel previsto Descrição Tipos de ficheiros suportados
title Os títulos principais na página PDF, Imagem, DOCX, PPTX, XLSX, HTML
sectionHeading Um ou mais subtítulos na página PDF, Image, DOCX, XLSX, HTML
footnote Texto perto do final da página PDF, Imagem
pageHeader Texto perto da borda superior da página PDF, Imagem, DOCX
pageFooter Texto perto da borda inferior da página PDF, Imagem, DOCX, PPTX, HTML
pageNumber Número da página PDF, Imagem
{
    "paragraphs": [
                {
                    "spans": [],
                    "boundingRegions": [],
                    "role": "title",
                    "content": "NEWS TODAY"
                },
                {
                    "spans": [],
                    "boundingRegions": [],
                    "role": "sectionHeading",
                    "content": "Mirjam Nilsson"
                }
    ]
}

Texto, linhas e palavras

O modelo de layout de documentos no Document Intelligence extrai texto impresso e manuscrito como lines e words. A styles coleção inclui qualquer estilo manuscrito para linhas, se detetado, juntamente com os intervalos que apontam para o texto associado. Esta funcionalidade aplica-se a línguas manuscritas suportadas.

Para Microsoft Word, Excel, PowerPoint e HTML, o modelo de layout do Document Intelligence v4.0 2024-11-30 (GA) extrai todo o texto incorporado tal como está. Os textos são extraídos como palavras e parágrafos. Imagens embutidas não são suportadas.

# 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}")

Estilo de escrita manual para linhas de texto

A resposta inclui se cada linha de texto está em estilo manuscrito ou não, juntamente com uma pontuação de confiança. Para mais informações, consulte suporte à linguagem manuscrita. O exemplo seguinte mostra um exemplo de excerto JSON.

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

Se ativares a funcionalidade de fonte/estilo, também obténs o resultado da fonte/estilo como parte do objeto styles.

Marcas de seleção

O modelo de layout também extrai marcas de seleção dos documentos. As marcas de seleção extraídas aparecem na pages coleção de cada página. Incluem o delimitador polygon, confidence e a seleção state (selected/unselected). A representação do texto (isto é, :selected: e :unselected) também está incluída como índice inicial (offset) e length que faz referência à propriedade de topo content que contém o texto completo do 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}"
        )

Tabelas

Extrair tabelas é um requisito fundamental para processar documentos que contenham grandes volumes de dados, normalmente formatados como tabelas. O modelo de layout extrai tabelas na pageResults secção da saída JSON. A informação extraída das tabelas inclui o número de colunas e linhas, o envergadura das linhas e a extensão das colunas.

Cada célula com o seu polígono limitador é gerada juntamente com a informação sobre se a área é reconhecida como columnHeader ou não. O modelo suporta a extração de tabelas que são rotacionadas. Cada célula da tabela contém o índice de linha e de coluna, assim como as coordenadas do polígono delimitador. Para o texto da célula, o modelo gera a informação span que contém o índice inicial offset. O modelo também gera o conteúdo de nível superior length que contém o texto completo do documento.

Aqui estão alguns fatores a considerar ao utilizar a capacidade de extração de dados do Document Intelligence:

  • Os dados que pretende extrair são apresentados como uma tabela, e a estrutura da tabela é significativa?
  • Os dados cabem numa grelha bidimensional se os dados não estiverem em formato de tabela?
  • As suas tabelas ocupam várias páginas? Se sim, para evitar ter de rotular todas as páginas, divida o PDF em páginas antes de o enviar para a Inteligência de Documentos. Após a análise, pós-processa as páginas para uma única tabela.
  • Consulte os Campos Tabular ao criar modelos personalizados. As tabelas dinâmicas têm um número variável de linhas para cada coluna. As tabelas fixas têm um número constante de linhas para cada coluna.

Nota

A análise de tabelas não é suportada se o ficheiro de entrada for XLSX. Para 2024-11-30 (GA), as regiões delimitadoras para figuras e tabelas cobrem apenas o conteúdo principal e excluem a legenda e notas de rodapé associadas.

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}'")

Resposta de saída ao formato Markdown

A API de layout pode gerar o texto extraído em formato Markdown. Use o outputContentFormat=markdown para especificar o formato de saída no Markdown. O conteúdo Markdown é produzido como parte da content secção.

Nota

Para a v4.0 2024-11-30 (GA), a representação das tabelas foi alterada para tabelas HTML para permitir a renderização de itens como células fundidas e cabeçalhos de várias linhas. Outra alteração relacionada é usar os caracteres de caixa de verificação Unicode ☒ e ☐ para as marcas de seleção em vez de :selected: e :unselected:. Esta atualização significa que o conteúdo dos campos de selection-mark contém :selected: mesmo que os seus spans se refiram a caracteres Unicode no span de nível superior. Para uma definição completa dos elementos Markdown, veja formato de saída 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,
)

Números

Figuras (gráficos e imagens) nos documentos desempenham um papel crucial no complemento e valorização do conteúdo textual. Fornecem representações visuais que ajudam na compreensão de informação complexa. O figures objeto detetado pelo modelo de layout tem propriedades-chave como:

  • boundingRegions: As localizações espaciais da figura nas páginas do documento, incluindo o número da página e as coordenadas do polígono que delineiam o limite da figura.
  • spans: As passagens de texto relacionadas com a figura que especificam os seus deslocamentos e comprimentos dentro do texto do documento. Esta ligação ajuda a associar a figura ao seu contexto textual relevante.
  • elements: Os identificadores para elementos de texto ou parágrafos dentro do documento que estão associados ou descrevem a figura.
  • caption: A descrição, se houver.

Quando output=figures é especificado durante a operação inicial de análise, o serviço gera imagens recortadas para todas as figuras detetadas que podem ser acedidas via /analyeResults/{resultId}/figures/{figureId}. O FigureId valor é o ID incluído em cada objeto figura, seguindo uma convenção não documentada de {pageNumber}.{figureIndex} onde figureIndex se reinicia para um por página.

Para a v4.0 2024-11-30 (GA), as regiões delimitadoras para figuras e tabelas cobrem apenas o conteúdo central e excluem a legenda e notas de rodapé associadas.

# 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}'")

Secções

A análise hierárquica da estrutura documental é fundamental na organização, compreensão e processamento de documentos extensos. Esta abordagem é vital para segmentar semanticamente documentos longos, de modo a melhorar a compreensão, facilitar a navegação e melhorar a recuperação de informação. O advento da geração aumentada por recuperação (RAG) na IA gerativa de documentos sublinha a importância da análise hierárquica da estrutura documental.

O modelo de layout suporta secções e subsecções na saída, o que identifica a relação entre secções e objetos dentro de cada secção. A estrutura hierárquica é mantida em elements para cada secção. Podes usar a resposta de saída para o formato Markdown para obter facilmente as secções e subsecções no 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,
)

Este conteúdo aplica-se a:marca de verificaçãov3.1 (GA) | Última versão:marca de verificação roxav4.0 (GA) | Versões anteriores:marca de verificação azulv3.0marca de verificação azulv2.1

Este conteúdo aplica-se a:red-checkmarkv3.0 (em descontinuação) | Últimas versões:purple-checkmarkv4.0 (GA)purple-checkmarkv3.1 | Versão anterior:blue-checkmarkv2.1 (em descontinuação)

Este conteúdo aplica-se a:red-checkmarkv2.1 | Última versão:blue-checkmarkv4.0 (GA)

O modelo de layout Document Intelligence é uma API avançada de análise documental. O modelo baseia-se em aprendizagem automática e está disponível na nuvem Document Intelligence. Pode usá-lo para processar documentos em diferentes formatos e devolver representações estruturadas dos documentos. Combina uma versão melhorada das poderosas capacidades de OCR com modelos de aprendizagem profunda. Podes usá-lo para extrair texto, tabelas, marcas de seleção e estrutura do documento.

Análise do layout do documento

A análise de layout estrutural de documentos é o processo de analisar um documento para extrair regiões de interesse e as suas inter-relações. O objetivo é extrair texto e elementos estruturais da página para construir melhores modelos de compreensão semântica. Existem dois tipos de funções no layout de um documento:

  • Papéis geométricos: Texto, tabelas, figuras e marcas de seleção são exemplos de papéis geométricos.
  • Papéis lógicos: Títulos, cabeçalhos e rodapés são exemplos de papéis lógicos dos textos.

A ilustração seguinte mostra os componentes típicos numa imagem de uma página de exemplo.

Ilustração que mostra um exemplo de layout de documento.

Línguas e locais suportados

Para uma lista completa de linguagens suportadas, consulte Suporte de linguagem: Modelos de análise documental.

O Document Intelligence v2.1 suporta as seguintes ferramentas, aplicações e bibliotecas.

Destaque Recursos
Modelo de disposição • Ferramenta de rotulagem Document Intelligence • REST API • SDK de biblioteca cliente • Contentor Document Intelligence Docker

Guia de entrada

Formatos de ficheiro suportados:

Modelo PDF Imagem:
JPEG/JPG, PNG, BMP, TIFF, HEIF
Office:
Word (DOCX), Excel (XLSX), PowerPoint (PPTX), HTML
Leia
Disposição
Documento geral
Pré-fabricado
Extração personalizada
Classificação personalizada
  • Fotografias e digitalizações: Para melhores resultados, forneça uma foto clara ou uma digitalização de alta qualidade por documento.
  • PDFs e TIFFs: Para PDFs e TIFFs, podem ser processadas até 2.000 páginas com uma subscrição gratuita. Apenas as duas primeiras páginas são processadas.
  • Tamanho do ficheiro: O tamanho do ficheiro para análise de documentos é de 500 MB para o nível pago (S0) e 4 MB para o nível gratuito (F0).
  • Dimensões da imagem: As dimensões da imagem devem estar entre 50 pixels x 50 pixels e 10.000 pixels x 10.000 pixels.
  • Bloqueios por palavra-passe: Se os seus PDFs estiverem bloqueados por palavra-passe, deve remover o bloqueio antes da submissão.
  • Altura do texto: A altura mínima do texto a extrair é de 12 píxeis para uma imagem de 1024 x 768 píxeis. Esta dimensão corresponde a cerca de texto de 8 pontos a 150 pontos por polegada.
  • Treino de modelos personalizados: O número máximo de páginas para dados de treino é 500 para o modelo modelo personalizado e 50.000 para o modelo neural personalizado.
  • Treino personalizado do modelo de extração: O tamanho total dos dados de treino é de 50 MB para o modelo modelo e 1 GB para o modelo neural.
  • Treino personalizado do modelo de classificação: O tamanho total dos dados de treino é de 1 GB com um máximo de 10.000 páginas. Para 2024-11-30 (GA), o tamanho total dos dados de treino é de 2 GB com um máximo de 10.000 páginas.
  • Tipos de ficheiros Office (DOCX, XLSX, PPTX): O limite máximo de comprimento de string é de 8 milhões de caracteres.

Guia de dados de entrada

  • Formatos de ficheiro suportados: JPEG, PNG, PDF e TIFF.
  • Número suportado de páginas: Para PDF e TIFF, são processadas até 2.000 páginas. Para subscritores da franquia gratuita, apenas as duas primeiras páginas são processadas.
  • Tamanho do ficheiro suportado: O tamanho do ficheiro deve ser inferior a 50 MB, e as dimensões devem ser pelo menos 50 x 50 píxeis e, no máximo, 10.000 x 10.000 píxeis.

Introdução

Pode usar a Inteligência de Documentos para extrair dados como texto, tabelas, cabeçalhos de tabelas, marcas de seleção e informações estruturais de documentos. Precisa dos seguintes recursos:

  • Uma subscrição do Azure. Podes criar um gratuitamente.
  • Uma instância Document Intelligence no portal Azure. Pode usar o escalão de preços gratuito (F0) para experimentar o serviço. Depois de o seu recurso ser implementado, selecione Ir para o recurso para obter a sua chave e endpoint.

Captura de ecrã que mostra as chaves e a localização do endpoint no portal Azure.

Depois de recuperar a sua chave e endpoint, pode usar as seguintes opções de desenvolvimento para construir e implementar as suas aplicações de Inteligência de Documentos.

Nota

O Document Intelligence Studio está disponível com APIs v3.0 e versões posteriores.

API REST

Ferramenta de Rotulagem de Amostras para Inteligência de Documentos

  1. Aceda à ferramenta de etiquetagem de amostras de inteligência documental.

  2. Na página inicial da ferramenta de exemplo, selecione Usar Layout para obter texto, tabelas e marcas de seleção.

    Captura de ecrã que mostra as definições de ligação para o processo de layout do Document Intelligence.

  3. No campo endpoint do serviço Document Intelligence , cole o endpoint que obteve com a sua subscrição Document Intelligence.

  4. No campo-chave , cole a chave que obteve do seu recurso de Inteligência Documental.

  5. No campo Fonte , selecione URL no menu suspenso. Pode usar o documento de exemplo:

  6. Selecione Executar Layout. A ferramenta Document Intelligence Sample Labeling chama a API Analyze Layout para analisar o documento.

    Captura de ecrã que mostra o painel pendente de Layout.

  7. Veja os resultados. Veja o texto extraído destacado, as marcas de seleção detetadas e as tabelas detetadas.

    Captura de ecrã que mostra as definições de ligação para a ferramenta Document Intelligence Sample Labeling.

O Document Intelligence v2.1 suporta as seguintes ferramentas, aplicações e bibliotecas.

Destaque Recursos
Layout API • Ferramenta de rotulagem Document Intelligence • REST API • SDK de biblioteca cliente • Contentor Document Intelligence Docker

Extrair dados

O modelo de layout extrai elementos estruturais dos seus documentos. Os elementos estruturais são descritos aqui, e as orientações seguintes mostram-lhe como extraí-los da entrada do seu documento.

Extrair dados

O modelo de layout extrai elementos estruturais dos seus documentos. Os elementos estruturais são descritos aqui, e as orientações seguintes mostram-lhe como extraí-los da entrada do seu documento.

Página

A pages coleção é uma lista de páginas dentro do documento. Cada página é representada sequencialmente dentro do documento e inclui o ângulo de orientação que indica se a página está rodada e a largura e altura (dimensões em pixels). As unidades de página na saída do modelo são calculadas conforme mostrado na tabela seguinte.

Formato de ficheiro Unidade de página calculada Total de páginas
Imagens (JPEG/JPG, PNG, BMP, HEIF) Cada imagem = 1 unidade de página. Imagens totais
PDF Cada página no PDF = 1 unidade de página. Total de páginas no PDF
TIFF Cada imagem no TIFF = 1 unidade de página. Total de imagens no TIFF
Word (DOCX) Até 3.000 caracteres = 1 unidade de página. Imagens incorporadas ou ligadas não são suportadas. Páginas totais de até 3.000 caracteres cada
Excel (XLSX) Cada folha de exercícios = 1 unidade de página. Imagens incorporadas ou ligadas não são suportadas. Folhas de cálculo totais
PowerPoint (PPTX) Cada diapositivo = 1 unidade de página. Imagens incorporadas ou ligadas não são suportadas. Total de diapositivos
HTML Até 3.000 caracteres = 1 unidade de página. Imagens incorporadas ou ligadas não são suportadas. Páginas totais de até 3.000 caracteres cada
"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}"
    )

Extrair páginas selecionadas de documentos

Para documentos grandes de várias páginas, use o pages parâmetro de consulta para indicar números ou intervalos de páginas específicos para extração de texto.

Parágrafo

O modelo de layout extrai todos os blocos de texto identificados na paragraphs coleção como um objeto de nível superior dentro de analyzeResults. Cada entrada nesta coleção representa um bloco de texto e inclui o texto extraído como contente as coordenadas delimitadoras polygon . A span informação aponta para o fragmento de texto dentro da propriedade de nível superior content que contém todo o texto do 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"
    }
]

Papel do parágrafo

A nova deteção de objetos de página baseada em aprendizagem automática extrai papéis lógicos como títulos, cabeçalhos de secção, cabeçalhos de página, rodapés e mais. O modelo de layout de Inteligência de Documentos atribui certos blocos de texto na coleção paragraphs, atribuindo-lhes o papel ou tipo especializado previsto pelo modelo. É melhor usar funções de parágrafo com documentos não estruturados e assim ajudar a compreender o layout do conteúdo extraído, proporcionando uma análise semântica mais rica. Os papéis dos parágrafos seguintes são suportados.

Papel previsto Descrição Tipos de ficheiros suportados
title Os títulos principais na página PDF, Imagem, DOCX, PPTX, XLSX, HTML
sectionHeading Um ou mais subtítulos na página PDF, Image, DOCX, XLSX, HTML
footnote Texto perto do final da página PDF, Imagem
pageHeader Texto perto da borda superior da página PDF, Imagem, DOCX
pageFooter Texto perto da borda inferior da página PDF, Imagem, DOCX, PPTX, HTML
pageNumber Número da página PDF, Imagem
{
    "paragraphs": [
                {
                    "spans": [],
                    "boundingRegions": [],
                    "role": "title",
                    "content": "NEWS TODAY"
                },
                {
                    "spans": [],
                    "boundingRegions": [],
                    "role": "sectionHeading",
                    "content": "Mirjam Nilsson"
                }
    ]
}

Texto, linha e palavra

O modelo de layout de documentos no Document Intelligence extrai texto impresso e manuscrito sob forma de linhas e palavras. A coleção styles inclui qualquer estilo manuscrito para linhas, caso sejam detetadas, juntamente com os trechos que apontam para o texto associado. Esta funcionalidade aplica-se a línguas manuscritas suportadas.

Para Word, Excel, PowerPoint e HTML, o modelo de layout do Document Intelligence v4.0 2024-11-30 (GA) extrai todo o texto incorporado tal como está. Os textos são extraídos como palavras e parágrafos. Imagens embutidas não são suportadas.

"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}"
        )

Estilo manuscrito

A resposta inclui classificar se cada linha de texto é de estilo de escrita manual ou não, juntamente com uma pontuação de confiança. Para mais informações, consulte suporte à linguagem manuscrita. O exemplo seguinte mostra um exemplo de excerto JSON.

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

Se ativares a funcionalidade de fonte/estilo, também obténs o resultado da fonte/estilo como parte do objeto styles.

Marca de seleção

O modelo de layout também extrai marcas de seleção dos documentos. As marcas de seleção extraídas aparecem na pages coleção de cada página. Incluem o delimitador polygon, confidence e a seleção state (selected/unselected). A representação do texto (isto é, :selected: e :unselected) também está incluída como índice inicial (offset) e length que faz referência à propriedade de topo content que contém o texto completo do 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}"
    )

Tabela

Extrair tabelas é um requisito fundamental para processar documentos que contenham grandes volumes de dados, normalmente formatados como tabelas. O modelo de layout extrai tabelas na pageResults secção da saída JSON. A informação extraída das tabelas inclui o número de colunas e linhas, o envergadura das linhas e a extensão das colunas. Cada célula com o seu polígono limitador é gerada juntamente com a informação sobre se a área é reconhecida como columnHeader ou não.

O modelo suporta a extração de tabelas que são rotacionadas. Cada célula da tabela contém o índice de linha e de coluna, assim como as coordenadas do polígono delimitador. Para o texto da célula, o modelo gera a informação span que contém o índice inicial offset. O modelo também gera o conteúdo de nível superior length que contém o texto completo do documento.

Aqui estão alguns fatores a considerar ao utilizar a capacidade de extração de dados do Document Intelligence:

  • Os dados que pretende extrair são apresentados como uma tabela, e a estrutura da tabela é significativa?
  • Os dados cabem numa grelha bidimensional se os dados não estiverem em formato de tabela?
  • As suas tabelas ocupam várias páginas? Se sim, para evitar ter de rotular todas as páginas, divida o PDF em páginas antes de o enviar para a Inteligência de Documentos. Após a análise, pós-processa as páginas para uma única tabela.
  • Consulte os Campos Tabular ao criar modelos personalizados. As tabelas dinâmicas têm um número variável de linhas para cada coluna. As tabelas fixas têm um número constante de linhas para cada coluna.

Nota

A análise de tabelas não é suportada se o ficheiro de entrada for XLSX. Document Intelligence v4.0 2024-11-30 (GA) suporta regiões delimitadoras para figuras e tabelas que cobrem apenas o conteúdo central e exclui a legenda e notas de rodapé associadas.

{
    "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)}'"
            )

Anotações

O modelo de layout extrai anotações nos documentos, como verificações e cruzes. A resposta inclui o tipo de anotação, juntamente com uma pontuação de confiança e um polígono delimitador.

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

Ordem de leitura natural (somente alfabeto latino)

Pode especificar a ordem em que as linhas de texto são produzidas com o readingOrder parâmetro de consulta. Use natural para uma ordem de leitura mais amigável para as pessoas, como mostrado no exemplo seguinte. Esta funcionalidade é suportada apenas para línguas latinas.

Captura de ecrã do processamento da ordem de leitura do modelo de layout.

Selecione o número ou intervalo da página para extração de texto

Para documentos grandes de várias páginas, use o pages parâmetro de consulta para indicar números ou intervalos de páginas específicos para extração de texto. O exemplo seguinte mostra um documento com 10 páginas, com texto extraído para ambos os casos, todas as páginas (1-10) e páginas selecionadas (3-6).

Captura de ecrã que mostra o modelo de layout das páginas de saída selecionadas.

A operação de obter o resultado da análise de layout

O segundo passo é chamar a operação Get Analyze Layout Result. Esta operação recebe como entrada o ID do Resultado que a Analyze Layout operação criou. Devolve uma resposta JSON que contém um campo de estado com os seguintes valores possíveis.

Campo Tipo Valores possíveis
Estado cadeia (de caracteres) notStarted: A operação de análise não foi iniciada.

running: A operação de análise está em andamento.

failed: A operação de análise falhou.

succeeded: A operação de análise foi bem-sucedida.

Chame esta operação iterativamente até devolver o succeeded valor. Para evitar ultrapassar a taxa de pedidos por segundo, utilize um intervalo de três a cinco segundos.

Quando o campo de estado tem esse succeeded valor, a resposta JSON inclui o layout extraído, texto, tabelas e marcas de seleção. Os dados extraídos incluem linhas e palavras de texto extraídas, caixas delimitadoras, aparência do texto com indicação de escrita manual, tabelas e marcas de seleção, indicando selecionado/não selecionado.

Classificação manuscrita para linhas de texto (apenas latim)

A resposta inclui classificar se cada linha de texto é de estilo manuscrito ou não, juntamente com uma pontuação de confiança. Esta funcionalidade é suportada apenas para línguas latinas. O exemplo seguinte mostra a classificação manuscrita do texto na imagem.

Captura de ecrã que mostra o processo de classificação da escrita manual do modelo layout.

Exemplo de saída JSON

A resposta à Get Analyze Layout Result operação é uma representação estruturada do documento com toda a informação extraída. Veja um ficheiro de documento exemplo e a sua saída estruturada saída de layout de amostra.

A saída JSON tem duas partes:

  • O readResults nó contém todo o texto reconhecido e a marca de seleção. A hierarquia de apresentação do texto é página, depois linha e depois palavras individuais.
  • O pageResults nó contém as tabelas e células extraídas com as suas caixas delimitadoras, confiança e uma referência às linhas e palavras no readResults campo.

Saída de exemplo

Texto

A API de layout extrai texto de documentos e imagens com múltiplos ângulos e cores de texto. Aceita fotografias de documentos, faxes, textos impressos e/ou manuscritos (apenas em inglês) e modos mistos. O texto é extraído com informação fornecida sobre linhas, palavras, caixas delimitadoras, pontuações de confiança e estilo (manuscrito ou outro). Toda a informação textual está incluída na readResults secção da saída JSON.

Tabelas com cabeçalhos

A API Layout extrai tabelas na pageResults secção da saída JSON. Pode digitalizar, fotografar ou digitalizar documentos. As tabelas podem ser complexas com células ou colunas fundidas, com ou sem bordas, e com ângulos ímpares.

A informação extraída das tabelas inclui o número de colunas e linhas, o envergadura das linhas e a extensão das colunas. Cada célula com a sua caixa delimitadora é produzida juntamente com a indicação de se a área é reconhecida como parte de um cabeçalho ou não. As células de cabeçalho previstas pelo modelo podem abranger várias linhas e não são necessariamente as primeiras linhas de uma tabela. Também trabalham com mesas giradas. Cada célula da tabela inclui também o texto completo com referências às palavras individuais da readResults secção.

Ilustração que mostra um exemplo de Tabelas.

Marcas de seleção (documentos)

A API de layout também extrai marcas de seleção dos documentos. As marcas de seleção extraídas incluem a caixa delimitadora, a confiança e o estado (selecionado/não selecionado). A informação da marca de seleção é extraída na readResults secção da saída JSON.

Guia de migração