Partilhar via


O que é o modelo de layout do Document Intelligence?

Este conteúdo aplica-se a:checkmarkmarca de verificaçãoblue-checkmarkv3.1 (GA)blue-checkmarkv3.0 (GA)blue-checkmarkv2.1 (GA)

O modelo de layout Azure Document Intelligence in Foundry Tools é uma API avançada de análise documental baseada em aprendizagem automática. O modelo está disponível na nuvem Document Intelligence. Você pode usá-lo para tirar documentos em vários formatos e retornar representações de dados estruturados dos documentos. O modelo combina uma versão melhorada das poderosas capacidades de reconhecimento ótico de carateres (OCR) com modelos de aprendizagem profunda para extrair texto, tabelas, marcas de seleção e estrutura do documento.

Análise do layout da estrutura do documento

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

  • Funções geométricas: texto, tabelas, figuras e marcas de seleção são exemplos de funções geométricas.
  • Funções lógicas: títulos, títulos e rodapés são exemplos de funções lógicas de textos.

A ilustração a seguir mostra os componentes típicos em uma imagem de uma página de exemplo.

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

Opções de desenvolvimento

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

Característica Recursos ID do modelo
Modelo de layout Document Intelligence Studio
API REST
C# SDK
Python SDK
Java SDK
JavaScript SDK
prebuilt-layout

Idiomas suportados

Para obter uma lista completa dos idiomas suportados, consulte Suporte de idiomas: modelos de análise de documentos.

Tipos de ficheiro suportados

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

Modelo PDF Imagem:
JPEG/JPG, PNG, BMP, TIFF, HEIF
Escritório:
Word (DOCX), Excel (XLS), PowerPoint (PPTX), HTML
Esquema

Requisitos de entrada

  • Fotos e digitalizações: para obter melhores resultados, forneça uma foto nítida ou uma digitalização de alta qualidade por documento.
  • PDFs e TIFFs: Para PDFs e TIFFs, até 2.000 páginas podem ser processadas. (Com uma assinatura de nível gratuito, apenas as duas primeiras páginas são processadas.)
  • Bloqueios de senha: se seus PDFs estiverem bloqueados por senha, você deverá remover o bloqueio antes do envio.
  • Tamanho do arquivo: O tamanho do arquivo para analisar documentos é de 500 MB para a camada paga (S0) e 4 MB para a camada gratuita (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 ser extraído é de 12 pixels para uma imagem de 1024 x 768 pixels. Esta dimensão corresponde a um texto de cerca de 8 pontos a 150 pontos por polegada.
  • Treinamento de modelo personalizado: o número máximo de páginas para dados de treinamento é 500 para o modelo de modelo personalizado e 50.000 para o modelo neural personalizado.
  • Treinamento de modelo de extração personalizado: O tamanho total dos dados de treinamento é de 50 MB para o modelo de modelo e 1 GB para o modelo neural.
  • Treinamento de modelo de classificação personalizado: o tamanho total dos dados de treinamento é de 1 GB com um máximo de 10.000 páginas. Para 2024-11-30 (GA), o tamanho total dos dados de treinamento é de 2 GB com um máximo de 10.000 páginas.
  • Tipos de ficheiro do Office (DOCX, XLSX, PPTX): O limite máximo de comprimento de cadeia de caracteres é de 8 milhões de caracteres.

Para obter mais informações sobre o uso do modelo, cotas e limites de serviço, consulte Limites de serviço.

Introdução ao modelo de layout

Veja como os dados, incluindo texto, tabelas, cabeçalhos de tabelas, marcas de seleção e informações de estrutura, são extraídos de documentos usando o Document Intelligence. Você precisa dos seguintes recursos:

  • Uma assinatura do Azure. Você pode criar um gratuitamente.

  • Uma instância de Document Intelligence no portal do Azure. Você pode usar o nível de preço gratuito (F0) para experimentar o serviço. Depois que o recurso for implantado, selecione Ir para o recurso para obter sua chave e o ponto de extremidade.

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

Depois de recuperar sua chave e seu ponto de extremidade, use as seguintes opções de desenvolvimento para criar e implantar seus aplicativos de Document Intelligence.

Extração de dados

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

Execute a análise de documento de layout de exemplo no Document Intelligence Studio. Em seguida, vá para a guia de resultados e acesse a saída JSON completa.

Captura de tela que mostra os resultados na guia 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 é girada, 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 a seguir.

Formato do ficheiro Unidade de página computada Total de páginas
Imagens (JPEG/JPG, PNG, BMP, HEIF) Cada imagem = 1 unidade de página. Total de imagens
PDF Cada página no PDF = 1 unidade de página. Total de páginas no PDF
TIFF Cada imagem no TIFF = unidade de 1 página. Total de imagens no TIFF
Palavra (DOCX) Até 3.000 caracteres = 1 unidade de página. Não há suporte para imagens incorporadas ou vinculadas. Total de páginas de até 3.000 caracteres cada
Excel (XLSX) Cada planilha = 1 unidade de página. Não há suporte para imagens incorporadas ou vinculadas. Total de planilhas
PowerPoint (PPTX) Cada slide = 1 unidade de página. Não há suporte para imagens incorporadas ou vinculadas. Total de slides
HTML Até 3.000 caracteres = 1 unidade de página. Não há suporte para imagens incorporadas ou vinculadas. Total de páginas 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 query para indicar números de página específicos ou intervalos de páginas 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 em analyzeResults. Cada entrada nesta coleção representa um bloco de texto e inclui o texto extraído como content e as coordenadas delimitadoras polygon . As spans informações apontam para o fragmento de texto dentro da propriedade de nível content superior que contém o texto completo 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 de parágrafos

A deteção de novos objetos de página com base no aprendizado de máquina extrai funções lógicas, como títulos, títulos de seção, cabeçalhos de página, rodapés de página e muito mais. O modelo de layout do Document Intelligence atribui determinados blocos de texto na paragraphs coleção com sua função ou tipo especializado previsto pelo modelo.

É melhor usar funções de parágrafo com documentos não estruturados para ajudar a entender o layout do conteúdo extraído para uma análise semântica mais rica. As funções de parágrafo a seguir são suportadas.

Papel previsto Description Tipos de ficheiro suportados
title Os títulos principais da página PDF, Imagem, DOCX, PPTX, XLSX, HTML
sectionHeading Um ou mais subtítulos na página PDF, Imagem, DOCX, XLSX, HTML
footnote Texto na parte inferior 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 documento 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 as extensões que apontam para o texto associado. Este recurso aplica-se aos idiomas manuscritos suportados.

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 como está. Os textos são extraídos sob a forma de palavras e parágrafos. Não há suporte para imagens incorporadas.

# 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 manuscrito para linhas de texto

A resposta inclui se cada linha de texto está em um estilo manuscrito ou não, juntamente com uma pontuação de confiança. Para obter mais informações, consulte Suporte a idiomas manuscritos. O exemplo a seguir mostra um trecho JSON de exemplo.

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

Se você habilitar o recurso de complemento fonte/estilo, também obterá o resultado fonte/estilo como parte do styles objeto.

Marcas de seleção

O modelo de layout também extrai marcas de seleção de documentos. As marcas de seleção extraídas aparecem dentro da pages coleção para cada página. Eles incluem o delimitador polygon, confidence, e seleção state (selected/unselected). A representação de texto (ou seja, :selected: e :unselected) também é incluída como o índice inicial (offset) e length faz referência à propriedade de nível content superior 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

A extração de tabelas é um requisito fundamental para o processamento de documentos que contêm grandes volumes de dados normalmente formatados como tabelas. O modelo de layout extrai tabelas na pageResults seção da saída JSON. As informações extraídas da tabela incluem o número de colunas e linhas, a extensão da linha e a extensão da coluna.

Cada célula com seu polígono delimitador é saída junto com informações se a área é reconhecida como columnHeader ou não. O modelo suporta a extração de tabelas que são giradas. Cada célula da tabela contém o índice de linha e coluna e as coordenadas do polígono delimitador. Para o texto da célula, o modelo produz as span informações 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 serem considerados ao usar o recurso de extração de fardos do Document Intelligence:

  • Os dados que você deseja extrair são apresentados como uma tabela e a estrutura da tabela é significativa?
  • Os dados podem caber em uma grade bidimensional se os dados não estiverem em um formato de tabela?
  • As suas tabelas abrangem várias páginas? Em caso afirmativo, para evitar ter que rotular todas as páginas, divida o PDF em páginas antes de enviá-lo para o Document Intelligence. Após a análise, transforme as páginas numa única tabela.
  • Consulte Campos tabulares se você 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.

Observação

A análise de tabela não é suportada se o arquivo de entrada for XLSX. Para 2024-11-30 (GA), as regiões delimitadoras de figuras e tabelas cobrem apenas o conteúdo principal e excluem a legenda e as 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 para o formato Markdown

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

Observação

Para v4.0 2024-11-30 (GA), a representação de tabelas é alterada para tabelas HTML para permitir a renderização de itens como células mescladas e cabeçalhos de várias linhas. Outra alteração relacionada é usar os caracteres ☒ da caixa de seleção Unicode e ☐ para marcas de seleção em vez de :selected: e :unselected:. Esta atualização significa que o conteúdo dos campos de marca de seleção contém :selected: mesmo que suas extensões se refiram a caracteres Unicode na extensão de nível superior. Para obter uma definição completa dos elementos Markdown, consulte Markdown output format.

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

As figuras (gráficos e imagens) nos documentos desempenham um papel crucial na complementação e melhoria do conteúdo textual. Eles fornecem representações visuais que auxiliam na compreensão de informações complexas. 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 delimitam o limite da figura.
  • spans: O texto abrange a figura que especifica 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 relacionados ou descrevem a figura.
  • caption: A descrição, se houver.

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

Para v4.0 2024-11-30 (GA), as regiões delimitadoras de figuras e tabelas cobrem apenas o conteúdo principal e excluem a legenda e as 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. Essa abordagem é vital para segmentar semanticamente documentos longos para aumentar a compreensão, facilitar a navegação e melhorar a recuperação de informações. O advento da geração aumentada de recuperação (RAG) na IA geradora de documentos ressalta a importância da análise hierárquica da estrutura de documentos.

O modelo de layout suporta seções e subseções na saída, que identifica a relação de seções e objetos dentro de cada seção. A estrutura hierárquica é mantida em elements cada seção. Você pode usar a resposta de saída para o formato Markdown para obter facilmente as seções e subseçõ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:checkmarkmarca de verificaçãov3.1 (GA) | Última versão:purple-checkmark v4.0 (GA)Versões anteriores: Marca de verificação azulv3.0Marca de verificação azulv2.1

Este conteúdo aplica-se a: | marca de verificação roxapurple-checkmark v4.0 (GA) Versão anterior:Marca de verificação azulv2.1

Este conteúdo aplica-se a:checkmarkmarca de verificaçãoblue-checkmarkv4.0 (GA)

O modelo de layout Document Intelligence é uma API avançada de análise de documentos. O modelo é baseado em machine learning e está disponível na nuvem Document Intelligence. Você pode usá-lo para tirar documentos em vários formatos e retornar representações de dados estruturados dos documentos. Ele combina uma versão aprimorada dos poderosos recursos de OCR com modelos de aprendizagem profunda. Você pode usá-lo para extrair texto, tabelas, marcas de seleção e estrutura do documento.

Análise de layout de documentos

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

  • Funções geométricas: texto, tabelas, figuras e marcas de seleção são exemplos de funções geométricas.
  • Funções lógicas: títulos, títulos e rodapés são exemplos de funções lógicas de textos.

A ilustração a seguir mostra os componentes típicos em uma imagem de uma página de exemplo.

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

Idiomas e localidades suportados

Para obter uma lista completa dos idiomas suportados, consulte Suporte de idiomas: modelos de análise de documentos.

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

Característica Recursos
Modelo de layout • Ferramenta
API REST
SDK
de biblioteca cliente• Contêiner Docker de Inteligência Documental

Orientações de entrada

Formatos de ficheiro suportados:

Modelo PDF Imagem:
JPEG/JPG, PNG, BMP, TIFF, HEIF
Escritório:
Word (DOCX), Excel (XLSX), PowerPoint (PPTX), HTML
Leitura
Esquema
Documento geral
Pré-criado
Extração personalizada
Classificação personalizada
  • Fotos e digitalizações: para obter melhores resultados, forneça uma foto nítida ou uma digitalização de alta qualidade por documento.
  • PDFs e TIFFs: Para PDFs e TIFFs, até 2.000 páginas podem ser processadas com uma assinatura gratuita. Apenas as duas primeiras páginas são processadas.
  • Tamanho do arquivo: O tamanho do arquivo para analisar documentos é de 500 MB para a camada paga (S0) e 4 MB para a camada gratuita (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 de senha: se seus PDFs estiverem bloqueados por senha, você deverá remover o bloqueio antes do envio.
  • Altura do texto: a altura mínima do texto a ser extraído é de 12 pixels para uma imagem de 1024 x 768 pixels. Esta dimensão corresponde a um texto de cerca de 8 pontos a 150 pontos por polegada.
  • Treinamento de modelo personalizado: o número máximo de páginas para dados de treinamento é 500 para o modelo de modelo personalizado e 50.000 para o modelo neural personalizado.
  • Treinamento de modelo de extração personalizado: O tamanho total dos dados de treinamento é de 50 MB para o modelo de modelo e 1 GB para o modelo neural.
  • Treinamento de modelo de classificação personalizado: o tamanho total dos dados de treinamento é de 1 GB com um máximo de 10.000 páginas. Para 2024-11-30 (GA), o tamanho total dos dados de treinamento é de 2 GB com um máximo de 10.000 páginas.
  • Tipos de ficheiro do Office (DOCX, XLSX, PPTX): O limite máximo de comprimento de cadeia de caracteres é de 8 milhões de caracteres.

Guia de entrada

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

Introdução

Você pode usar o Document Intelligence para extrair dados como texto, tabelas, cabeçalhos de tabelas, marcas de seleção e informações de estrutura de documentos. Você precisa dos seguintes recursos:

  • Uma assinatura do Azure. Você pode criar um gratuitamente.
  • Uma instância de Document Intelligence no portal do Azure. Você pode usar o nível de preço gratuito (F0) para experimentar o serviço. Depois que o recurso for implantado, selecione Ir para o recurso para obter sua chave e o ponto de extremidade.

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

Depois de recuperar sua chave e seu ponto de extremidade, você pode usar as seguintes opções de desenvolvimento para criar e implantar seus aplicativos de Document Intelligence.

Observação

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

API REST

Ferramenta de etiquetagem de amostras de inteligência de documentos

  1. Vá para a ferramenta Document Intelligence Sample Labeling.

  2. Na home page da ferramenta de exemplo, selecione Usar layout para obter texto, tabelas e marcas de seleção.

    Captura de tela que mostra as configurações de conexão para o processo de layout do Document Intelligence.

  3. No campo Ponto de extremidade do serviço de Inteligência Documental, cole o ponto de extremidade obtido com a sua assinatura do Document Intelligence.

  4. No campo chave , cole a chave obtida do recurso Document Intelligence.

  5. No campo Origem , selecione URL no menu suspenso. Você 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 tela que mostra o painel suspenso Layout.

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

    Captura de tela que mostra as configurações de conexão para a ferramenta Document Intelligence Sample Labeling.

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

Característica Recursos
Layout API • Ferramenta
API REST
SDK
de biblioteca cliente• Contêiner Docker de Inteligência Documental

Extrair dados

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

Extrair dados

O modelo de layout extrai elementos estruturais de seus documentos. Os elementos estruturais são descritos aqui, e as orientações a seguir mostram como extraí-los da entrada do 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 é girada 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 a seguir.

Formato do ficheiro Unidade de página computada Total de páginas
Imagens (JPEG/JPG, PNG, BMP, HEIF) Cada imagem = 1 unidade de página. Total de imagens
PDF Cada página no PDF = 1 unidade de página. Total de páginas no PDF
TIFF Cada imagem no TIFF = unidade de 1 página. Total de imagens no TIFF
Palavra (DOCX) Até 3.000 caracteres = 1 unidade de página. Não há suporte para imagens incorporadas ou vinculadas. Total de páginas de até 3.000 caracteres cada
Excel (XLSX) Cada planilha = 1 unidade de página. Não há suporte para imagens incorporadas ou vinculadas. Total de planilhas
PowerPoint (PPTX) Cada slide = 1 unidade de página. Não há suporte para imagens incorporadas ou vinculadas. Total de slides
HTML Até 3.000 caracteres = 1 unidade de página. Não há suporte para imagens incorporadas ou vinculadas. Total de páginas 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 query para indicar números de página específicos ou intervalos de páginas 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 em analyzeResults. Cada entrada nesta coleção representa um bloco de texto e inclui o texto extraído como contente as coordenadas delimitadoras polygon . As span informações apontam para o fragmento de texto dentro da propriedade de nível content superior que contém o texto completo 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ção do parágrafo

A deteção de novos objetos de página com base no aprendizado de máquina extrai funções lógicas, como títulos, títulos de seção, cabeçalhos de página, rodapés de página e muito mais. O modelo de layout do Document Intelligence atribui determinados blocos de texto na paragraphs coleção com sua função ou tipo especializado previsto pelo modelo. É melhor usar funções de parágrafo com documentos não estruturados para ajudar a entender o layout do conteúdo extraído para uma análise semântica mais rica. As funções de parágrafo a seguir são suportadas.

Papel previsto Description Tipos de ficheiro suportados
title Os títulos principais da página PDF, Imagem, DOCX, PPTX, XLSX, HTML
sectionHeading Um ou mais subtítulos na página PDF, Imagem, DOCX, XLSX, HTML
footnote Texto na parte inferior 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 documento no Document Intelligence extrai texto impresso e manuscrito como linhas e palavras. A styles coleção inclui qualquer estilo manuscrito para linhas, se detetado junto com as extensões que apontam para o texto associado. Este recurso aplica-se aos idiomas manuscritos suportados.

Para Word, Excel, PowerPoint e HTML, o modelo de layout Document Intelligence v4.0 2024-11-30 (GA) extrai todo o texto incorporado como está. Os textos são extraídos sob a forma de palavras e parágrafos. Não há suporte para imagens incorporadas.

"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 caligrafia ou não, juntamente com uma pontuação de confiança. Para obter mais informações, consulte Suporte a idiomas manuscritos. O exemplo a seguir mostra um trecho JSON de exemplo.

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

Se você habilitar o recurso de complemento fonte/estilo, também obterá o resultado fonte/estilo como parte do styles objeto.

Marca de seleção

O modelo de layout também extrai marcas de seleção de documentos. As marcas de seleção extraídas aparecem dentro da pages coleção para cada página. Eles incluem o delimitador polygon, confidence, e seleção state (selected/unselected). A representação de texto (ou seja, :selected: e :unselected) também é incluída como o índice inicial (offset) e length faz referência à propriedade de nível content superior 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

A extração de tabelas é um requisito fundamental para o processamento de documentos que contêm grandes volumes de dados normalmente formatados como tabelas. O modelo de layout extrai tabelas na pageResults seção da saída JSON. As informações extraídas da tabela incluem o número de colunas e linhas, a extensão da linha e a extensão da coluna. Cada célula com seu polígono delimitador é saída junto com informações se a área é reconhecida como columnHeader ou não.

O modelo suporta a extração de tabelas que são giradas. Cada célula da tabela contém o índice de linha e coluna e as coordenadas do polígono delimitador. Para o texto da célula, o modelo produz as span informações 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 serem considerados ao usar o recurso de extração de fardos do Document Intelligence:

  • Os dados que você deseja extrair são apresentados como uma tabela e a estrutura da tabela é significativa?
  • Os dados podem caber em uma grade bidimensional se os dados não estiverem em um formato de tabela?
  • As suas tabelas abrangem várias páginas? Em caso afirmativo, para evitar ter que rotular todas as páginas, divida o PDF em páginas antes de enviá-lo para o Document Intelligence. Após a análise, transforme as páginas numa única tabela.
  • Consulte Campos tabulares se você 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.

Observação

A análise de tabela não é suportada se o arquivo de entrada for XLSX. O Document Intelligence v4.0 2024-11-30 (GA) suporta regiões delimitadoras para figuras e tabelas que cobrem apenas o conteúdo principal e excluem a legenda e as 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 em documentos, como cheques e cruzes. A resposta inclui o tipo de anotação, juntamente com uma pontuação de confiança e polígono delimitador.

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

Ordem natural de leitura (apenas caracteres latinos)

Você pode especificar a ordem em que as linhas de texto são exibidas com o parâmetro de consulta readingOrder. Use natural para uma saída de ordem de leitura mais amigável para o ser humano, conforme mostrado no exemplo a seguir. Este recurso é suportado apenas para idiomas latinos.

Captura de tela do modelo de layout, processamento da ordem de leitura.

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

Para documentos grandes de várias páginas, use o pages parâmetro query para indicar números de página específicos ou intervalos de páginas para extração de texto. O exemplo a seguir 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 tela que mostra a saída de páginas selecionadas do modelo de layout.

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

A segunda etapa é chamar a operação Obter Resultado da Análise de Layout. Esta operação toma como entrada o ID de resultado que a Analyze Layout operação criou. Ele retorna uma resposta JSON que contém um campo de status com os seguintes valores possíveis.

Campo Tipo Valores possíveis
Situação 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 essa operação iterativamente até que ela retorne o succeeded valor. Para evitar exceder a taxa de solicitações por segundo, use um intervalo de três a cinco segundos.

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

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

A resposta inclui classificar se cada linha de texto é de estilo manuscrito ou não, juntamente com uma pontuação de confiança. Este recurso é suportado apenas para idiomas latinos. O exemplo a seguir mostra a classificação manuscrita para o texto na imagem.

Captura de tela que mostra o processo de classificação de manuscrito do modelo de layout.

Exemplo de saída JSON

A resposta à Get Analyze Layout Result operação é uma representação estruturada do documento com todas as informações extraídas. Veja um arquivo de documento de exemplo e sua saída de layout de exemplo de saída estruturada.

A saída JSON tem duas partes:

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

Exemplo de saída

Texto

A API de layout extrai texto de documentos e imagens com vários ângulos de texto e cores. Aceita fotos de documentos, faxes, texto impresso e/ou manuscrito (somente em inglês) e modos mistos. O texto é extraído com informações fornecidas em linhas, palavras, caixas delimitadoras, pontuações de confiança e estilo (manuscrito ou outro). Todas as informações de texto são incluídas na readResults seção da saída JSON.

Tabelas com cabeçalhos

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

As informações extraídas da tabela incluem o número de colunas e linhas, a extensão da linha e a extensão da coluna. Cada célula com a sua caixa delimitadora é apresentada, acompanhada de informação sobre 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. Eles também trabalham com mesas giratórias. Cada célula da readResults tabela também inclui o texto completo com referências às palavras individuais na seçã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 de documentos. As marcas de seleção extraídas incluem a caixa delimitadora, a confiança e o estado (selecionado/não selecionado). As informações da marca de seleção são extraídas na readResults seção da saída JSON.

Guia de migração