Compartilhar via


O que é o modelo de layout de Informação de Documentos?

Esse conteúdo se aplica a:marca de seleçãov4.0 (GA) | Versões anteriores:marca de seleção azulv3.1 (GA)marca de seleção azulv3.0 (GA)marca de seleção azulv2.1 (GA)

O modelo de layout do Azure Document Intelligence in Foundry Tools é uma API avançada de análise de documentos com base no aprendizado de máquina. O modelo está disponível na nuvem da Informação de Documentos. Você pode usá-lo para obter documentos em vários formatos e retornar representações de dados estruturados dos documentos. O modelo combina uma versão aprimorada dos recursos avançados de OCR (reconhecimento óptico de caracteres) com modelos de aprendizado profundo para extrair texto, tabelas, marcas de seleção e estrutura de documentos.

Análise de layout de estrutura do documento

A análise de layout da estrutura do documento é o processo de análise de um documento para extrair regiões de interesse e suas inter-relações. A meta é extrair texto e elementos estruturais da página para criar melhores modelos de reconhecimento de 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, cabeçalhos 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

A Informação de Documentos v4.0: 2024-11-30 (GA) oferece suporte às seguintes ferramentas, aplicativos e bibliotecas.

Recurso Recursos ID do modelo
Modelo de layout Estúdio da Informação de Documentos
REST API
SDK do C#
SDK do Python
SDK do Java
SDK do JavaScript
prebuilt-layout

Idiomas com suporte

Para obter uma lista completa dos idiomas com suporte, consulte Suporte a linguagem de computador: modelos de análise de documentos.

Tipos de arquivo com suporte

Informação de Documentos v4.0: modelo de layout 2024-11-30 (GA) dá suporte aos seguintes formatos de arquivo:

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

Requisitos de entrada

  • Fotos e digitalizações: para obter melhores resultados, forneça uma foto clara 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, somente as duas primeiras páginas são processadas.)
  • Bloqueios de senha: se seus PDFs estiverem bloqueados por senha, remova o bloqueio antes do envio.
  • Tamanho do arquivo: o tamanho do arquivo 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 ser extraído é de 12 pixels para uma imagem de 1.024 x 768 pixels. Essa dimensão corresponde a cerca de 8 pontos de texto a 150 dpi.
  • 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 personalizada: 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 arquivo do Office (DOCX, XLSX, PPTX): o limite máximo de comprimento de cadeia é de 8 milhões de caracteres.

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

Introdução ao modelo de layout

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

  • Uma assinatura do Azure. É possível criar uma gratuitamente.

  • Uma instância da Informação de Documentos no portal do Azure. Você pode usar o tipo de preço gratuito (F0) para experimentar o serviço. Depois que o recurso for implantado, selecione Ir para o recurso para obter a chave e o ponto de extremidade.

    Captura de tela que mostra as chaves e o local do ponto de extremidade no portal do Azure.

Depois de recuperar sua chave e ponto de extremidade, use as seguintes opções de desenvolvimento para criar e implantar seus aplicativos da Informação de Documentos.

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 diretrizes sobre como extraí-los da entrada do documento:

Execute a análise de documento de layout de amostra no Estúdio da Informação de Documentos. Em seguida, acesse 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 Estúdio da Informação de Documentos.

Pages (Páginas)

A coleção pages é 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 a altura (dimensões em pixels). As unidades de página na saída do modelo são computadas conforme mostrado na tabela a seguir.

Formato de arquivo 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 = 1 unidade de página. Total de imagens no TIFF
Word (DOCX) Até 3.000 caracteres = 1 unidade de página. Não há suporte para imagens inseridas 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 inseridas ou vinculadas. Total de planilhas
PowerPoint (PPTX) Cada slide = 1 unidade de página. Não há suporte para imagens inseridas ou vinculadas. Total de slides
HTML Até 3.000 caracteres = 1 unidade de página. Não há suporte para imagens inseridas 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 de várias páginas grandes, use o parâmetro de consulta pages para indicar números de página ou intervalos de páginas específicos para extração de texto.

Parágrafos

O modelo do layout extrai todos os blocos de texto identificados na coleção paragraphs como um objeto de nível superior sob analyzeResults. Cada entrada dessa coleção representa um bloco de texto e inclui o texto extraído como content e as coordenadas polygon de limitação. As informações de spans apontam para o fragmento de texto dentro da propriedade content de nível 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ágrafo

A nova detecção de objeto 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 da Informação de Documentos atribui determinados blocos de texto na coleção paragraphs com a função especializada ou o tipo 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. Há suporte para as seguintes funções de parágrafo.

Função prevista Description Tipos de arquivo com suporte
title Os títulos principais na página PDF, Imagem, DOCX, PPTX, XLSX, HTML
sectionHeading Um ou mais subtítulos na página PDF, Imagem, DOCX, XLSX, HTML
footnote Texto próximo à parte inferior da página PDF, Imagem
pageHeader Texto próximo à borda superior da página PDF, Imagem, DOCX
pageFooter Texto próximo à 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 do documento na Informação de Documentos extrai texto de estilo impresso e manuscrito como lines e words. A coleção styles inclui qualquer estilo manuscrito para linhas, se detectadas, juntamente com os intervalos que apontam para o texto associado. Esse recurso se aplica a linguagens manuscritas com suporte.

Para o Microsoft Word, Excel, PowerPoint e HTML, o modelo de layout da Informação de Documentos v4.0 2024-11-30 (GA) extrai todo o texto inserido como está. Os textos são extraídos como palavras e parágrafos. Não há suporte para imagens inseridas.

# 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, confira o Suporte para idiomas manuscritos. O exemplo a seguir mostra um snippet JSON de exemplo.

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

Caso habilite a funcionalidade de complemento de fonte/estilo, também obterá 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 de documentos. As marcas de seleção extraídas aparecem na coleção pages de cada página. Elas incluem os delimitadores polygon e confidence e a seleção state (selected/unselected). A representação do texto (ou seja, :selected: e :unselected) também está incluída como o índice inicial (offset) e length que faz referência à propriedade content de nível 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 seção pageResults da saída JSON. As informações extraídas da tabela incluem o número de colunas e linhas e a extensão de linhas e de colunas.

Cada célula com seu polígono delimitador é saída juntamente com informações se a área é reconhecida como columnHeader ou não. O modelo dá suporte à extração de tabelas giradas. Cada célula de tabela contém o índice de linha e coluna e as coordenadas do polygon delimitador. Para o texto da célula, o modelo gera as informações span que contêm o índice inicial (offset). O modelo também gera o length no conteúdo de nível superior que contém o texto completo do documento.

Aqui estão alguns fatores a serem considerados ao usar a funcionalidade de extração de dados da Informação de Documentos:

  • 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 não estiverem em um formato de tabela?
  • Suas tabelas abrangem várias páginas? Nesse caso, para evitar a necessidade de rotular todas as páginas, divida o PDF em páginas antes de enviá-lo para a Informação de Documentos. Após a análise, faça o pós-processamento das páginas em uma tabela única.
  • Consulte Campos tabulares se você criar modelos personalizados. As tabelas dinâmicas possuem um número variável de linhas para cada coluna. As tabelas fixas possuem um número constante de linhas para cada coluna.

Observação

Não há suporte para análise de tabela se o arquivo de entrada for XLSX. Para 2024-11-30 (GA), as regiões delimitadoras de figuras e tabelas abrangem apenas o conteúdo principal e excluem as legendas 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 para o formato Markdown

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

Observação

Para a v4.0 2024-11-30 (GA), a representação de tabelas é alterada para tabelas HTML para habilitar a renderização de itens como células mescladas e cabeçalhos multilinha. 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:. Essa atualização significa que o conteúdo dos campos de marca de seleção contém :selected: mesmo que seus intervalos se refiram a caracteres Unicode no intervalo de nível superior. Para obter uma definição completa dos elementos Markdown, consulte o formato de saída do 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,
)

Figuras

As figuras (gráficos e imagens) em documentos desempenham um papel crucial para complementar e aprimorar o conteúdo textual. Eles fornecem representações visuais que ajudam na compreensão de informações complexas. O objeto figures detectado pelo modelo de layout tem propriedades principais como:

  • boundingRegions: os locais espaciais da figura nas páginas do documento, incluindo o número da página e as coordenadas de polígono que descrevem o limite da figura.
  • spans: o texto se estende relacionado à figura que especifica seus deslocamentos e comprimentos no texto do documento. Essa conexã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 uma.

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

Para a v4.0 2024-11-30 (GA), as regiões delimitadoras de figuras e tabelas abrangem apenas o conteúdo principal e excluem as legendas 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}'")

Seções

A análise hierárquica da estrutura de documentos é 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 de RAG (geração aumentada de recuperação) na IA generativa do documento ressalta a importância da análise hierárquica da estrutura de documentos.

O modelo de layout dá suporte a seções e subseções na saída, que identifica a relação de seções e objetos em cada seção. A estrutura hierárquica é mantida em elements para cada seção. Use a resposta de saída para o formato Markdown para obter facilmente as seções e subseções em 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,
)

Esse conteúdo se aplica a:marca de seleçãov3.1 (GA) | Última versão:marca de seleção púrpurav4.0 (GA) | Versões anteriores:marca de seleção azulv3.0marca de seleção azulv2.1

Esse conteúdo se aplica a:marca de seleçãov3.0 (GA) | Últimas versões:marca de seleção púrpurav4.0 (GA)marca de seleção púrpurav3.1 | Versão anterior:marca de seleção azulv2.1

Esse conteúdo se aplica a:marca de seleçãov2.1 | Última versão:marca de seleção azulv4.0 (GA)

O modelo de layout da Informação de Documentos é uma API avançada de análise de documentos. O modelo é baseado no aprendizado de máquina e está disponível na nuvem da Informação de Documentos. Você pode usá-lo para obter documentos em vários formatos e retornar representações de dados estruturados dos documentos. Ele combina uma versão aprimorada das funcionalidade avançadas de OCR com modelos de aprendizado profundo. É possível usá-lo para extrair texto, tabelas, marcas de seleção e estrutura de documentos.

Análise de layout do documento

A análise de layout da estrutura do documento é o processo de análise de um documento para extrair regiões de interesse e suas inter-relações. A meta é extrair texto e elementos estruturais da página para criar melhores modelos de reconhecimento de 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, cabeçalhos 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 com suporte

Para obter uma lista completa dos idiomas com suporte, consulte Suporte a linguagem de computador: modelos de análise de documentos.

A Informação de Documentos v2.1 dá suporte às seguintes ferramentas, aplicativos e bibliotecas:

Recurso Recursos
Modelo de layout Ferramenta de rotulagem do recurso Informação de Documentos
API REST
SDK da biblioteca de clientes
Contêiner do Docker da Informação de Documentos

Diretrizes de entrada

Formatos de arquivo com suporte:

Modelo PDF Imagem:
JPEG/JPG, PNG, BMP, TIFF, HEIF
Office:
Word (DOCX), Excel (XLSX), PowerPoint (PPTX), HTML
Ler
Layout
Documentação Geral
Predefinido
Extração personalizada
Classificação personalizada
  • Fotos e digitalizações: para obter melhores resultados, forneça uma foto clara 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 camada gratuita. Somente as duas primeiras páginas são processadas.
  • Tamanho do arquivo: o tamanho do arquivo 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 de senha: se seus PDFs estiverem bloqueados por senha, remova 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 1.024 x 768 pixels. Essa dimensão corresponde a cerca de 8 pontos de texto a 150 dpi.
  • 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 personalizada: 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 arquivo do Office (DOCX, XLSX, PPTX): o limite máximo de comprimento de cadeia é de 8 milhões de caracteres.

Guia de entrada

  • Formatos de arquivo com suporte: JPEG, PNG, PDF e TIFF.
  • Número de páginas com suporte: para PDF e TIFF, são processadas até 2.000 páginas. Para assinantes de camada gratuita, somente as duas primeiras páginas são processadas.
  • Tamanho do arquivo com suporte: o tamanho do arquivo deve ser menor que 50 MB e as dimensões devem ter pelo menos 50 x 50 pixels e no máximo 10.000 x 10.000 pixels.

Introdução

Use a Informação de Documentos para extrair dados como texto, tabelas, cabeçalhos de tabela, marcas de seleção e informações de estrutura de documentos. Você precisa dos seguintes recursos:

  • Uma assinatura do Azure. É possível criar uma gratuitamente.
  • Uma instância da Informação de Documentos no portal do Azure. Você pode usar o tipo de preço gratuito (F0) para experimentar o serviço. Depois que o recurso for implantado, selecione Ir para o recurso para obter a chave e o ponto de extremidade.

Captura de tela que mostra as chaves e o local do ponto de extremidade no portal do Azure.

Depois de recuperar a chave e o ponto de extremidade, use as opções de desenvolvimento a seguir para criar e implantar seus aplicativos da Informação de Documentos.

Observação

O Estúdio da Informação de Documentos está disponível com APIs v3.0 e versões posteriores.

API REST

Ferramenta de Rotulagem de Amostra da Informação de Documentos

  1. Acesse a ferramenta de Rotulagem de Amostra da Informação de Documentos.

  2. Na home page da ferramenta de exemplos, 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 da Informação de Documentos.

  3. No campo Ponto de extremidade de serviço da Informação de Documentos, cole o ponto de extremidade obtido com a assinatura da Informação de Documentos.

  4. No campo chave, cole a chave obtida do recurso da Informação de Documentos.

  5. No campo Origem, selecione a URL no menu suspenso. É possível usar o documento de exemplo:

  6. Selecione Executar Layout. A ferramenta de Rotulagem de Amostra da Informação de Documentos chama a API Analisar Layout para analisar o documento.

    Captura de tela que mostra o painel suspenso Layout.

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

    Captura de tela que mostra as configurações de conexão para a ferramenta de Rotulagem de Amostra da Informação de Documentos.

A Informação de Documentos v2.1 dá suporte às seguintes ferramentas, aplicativos e bibliotecas:

Recurso Recursos
API de layout Ferramenta de rotulagem do recurso Informação de Documentos
API REST
SDK da biblioteca de clientes
Contêiner do Docker da Informação de Documentos

Extrair dados

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

Página

A coleção pages é 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 a altura (dimensões em pixels). As unidades de página na saída do modelo são computadas conforme mostrado na tabela a seguir.

Formato de arquivo 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 = 1 unidade de página. Total de imagens no TIFF
Word (DOCX) Até 3.000 caracteres = 1 unidade de página. Não há suporte para imagens inseridas 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 inseridas ou vinculadas. Total de planilhas
PowerPoint (PPTX) Cada slide = 1 unidade de página. Não há suporte para imagens inseridas ou vinculadas. Total de slides
HTML Até 3.000 caracteres = 1 unidade de página. Não há suporte para imagens inseridas 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 de várias páginas grandes, use o parâmetro de consulta pages para indicar números de página ou intervalos de páginas específicos para extração de texto.

Paragraph

O modelo do layout extrai todos os blocos de texto identificados na coleção paragraphs como um objeto de nível superior sob analyzeResults. Cada entrada dessa coleção representa um bloco de texto e inclui o texto extraído como content e as coordenadas polygon de limitação. As informações de span apontam para o fragmento de texto dentro da propriedade content de nível 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 de parágrafo

A nova detecção de objeto 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 da Informação de Documentos atribui determinados blocos de texto na coleção paragraphs com a função especializada ou o tipo 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. Há suporte para as seguintes funções de parágrafo.

Função prevista Description Tipos de arquivo com suporte
title Os principais títulos 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 próximo à parte inferior da página PDF, Imagem
pageHeader Texto próximo à borda superior da página PDF, Imagem, DOCX
pageFooter Texto próximo à 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 na Informação de Documentos extrai texto de estilo manuscrito e de impressão como linhas e palavras. A coleção styles inclui qualquer estilo manuscrito para linhas, se detectado junto com os intervalos que apontam para o texto associado. Esse recurso se aplica a linguagens manuscritas com suporte.

Para Word, Excel, PowerPoint e HTML, o modelo de layout da Informação de Documentos v4.0 2024-11-30 (GA) extrai todo o texto inserido como está. Os textos são extraídos como palavras e parágrafos. Não há suporte para imagens inseridas.

"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 tem um estilo manuscrito ou não, junto com uma pontuação de confiança. Para obter mais informações, confira o Suporte para idiomas manuscritos. O exemplo a seguir mostra um snippet JSON de exemplo.

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

Caso habilite a funcionalidade de complemento de fonte/estilo, também obterá 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 de documentos. As marcas de seleção extraídas aparecem na coleção pages de cada página. Elas incluem os delimitadores polygon e confidence e a seleção state (selected/unselected). A representação do texto (ou seja, :selected: e :unselected) também está incluída como o índice inicial (offset) e length que faz referência à propriedade content de nível 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 seção pageResults da saída JSON. As informações extraídas da tabela incluem o número de colunas e linhas e a extensão de linhas e de colunas. Cada célula com seu polígono delimitador é saída juntamente com informações se a área é reconhecida como columnHeader ou não.

O modelo dá suporte à extração de tabelas giradas. Cada célula de tabela contém o índice de linha e coluna e as coordenadas do polygon delimitador. Para o texto da célula, o modelo gera as informações span que contêm o índice inicial (offset). O modelo também gera o length no conteúdo de nível superior que contém o texto completo do documento.

Aqui estão alguns fatores a serem considerados ao usar a funcionalidade de extração de dados da Informação de Documentos:

  • 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 não estiverem em um formato de tabela?
  • Suas tabelas abrangem várias páginas? Nesse caso, para evitar a necessidade de rotular todas as páginas, divida o PDF em páginas antes de enviá-lo para a Informação de Documentos. Após a análise, faça o pós-processamento das páginas em uma tabela única.
  • Consulte Campos tabulares se você criar modelos personalizados. As tabelas dinâmicas possuem um número variável de linhas para cada coluna. As tabelas fixas possuem um número constante de linhas para cada coluna.

Observação

Não há suporte para análise de tabela se o arquivo de entrada for XLSX. A Informação de Documentos v4.0 2024-11-30 (GA) dá suporte a regiões delimitadoras para figuras e tabelas que abrangem apenas o conteúdo principal e exclui as legendas 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 layout extrai anotações em 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
        }
        ]
    }
    ]
}

Saída em ordem de leitura natural (somente idiomas latinos)

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

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

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

Para documentos de várias páginas grandes, use o parâmetro de consulta pages para indicar números de página ou intervalos de páginas específicos 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 a 10) e páginas selecionadas (3 a 6).

Captura de tela que mostra a saída de páginas selecionadas do modelo de layout.

A operação Obter Resultado de Analisar Layout

A segunda etapa é chamar a operação Obter Resultado de Analisar Layout. Essa operação usa como entrada a ID de Resultado que a operação Analyze Layout criou. Ela retorna uma resposta JSON que contém um campo de status com os valores possíveis a seguir.

Campo Tipo Valores possíveis
status cadeia notStarted: a operação de análise não foi iniciada.

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

failed: falha na operação de análise.

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

Chame essa operação iterativamente até que ela retorne o valor succeeded. Para evitar exceder a taxa de solicitações por segundo, use um intervalo de três a cinco segundos.

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

Classificação manuscrita para linhas de texto (somente idiomas latinos)

A resposta inclui classificar se cada linha de texto é de um estilo manuscrito ou não, juntamente com uma pontuação de confiança. Esse recurso é compatível apenas com 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.

Saída JSON de exemplo

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

A saída JSON tem duas partes:

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

Saída de exemplo

Texto

A API de layout extrai texto de documentos e imagens com vários ângulos de texto e cores. Ela 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 seção readResults da saída JSON.

Tabelas com cabeçalhos

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

As informações extraídas da tabela incluem o número de colunas e linhas e a extensão de linhas e de colunas. Cada célula com sua caixa delimitadora é gerada junto com o fato da área ser reconhecida como parte de um cabeçalho ou não. As células do cabeçalho previsto do modelo podem abranger várias linhas e não são necessariamente as primeiras linhas em uma tabela. Eles também funcionam com tabelas giradas. Cada célula de tabela também inclui o texto completo com referências às palavras individuais na seção readResults.

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 seção readResults da saída JSON.

Guia de migração