Compartilhar via


Modelo de layout da Informação de Documentos

Importante

  • As versões preliminares públicas da Informação de Documentos oferecem acesso antecipado a recursos que estão em desenvolvimento ativo. Recursos, abordagens e processos podem ser alterados, antes da Disponibilidade Geral (GA), com base nos comentários do usuário.
  • A versão de visualização pública das bibliotecas de clientes da Informação de Documentos usa como padrão a versão da API REST 2024-07-31-preview.
  • Atualmente, a versão de visualização pública 2024-07-31-preview só está disponível nas regiões do Azure a seguir. Observe que o modelo generativo personalizado (extração de campos do documento) no Estúdio de IA está disponível somente na região Centro-Norte dos EUA:
    • Leste dos EUA
    • Oeste dos EUA 2
    • Oeste da Europa
    • Centro-Norte dos EUA

Esse conteúdo se aplica a: marca de seleção v4.0 (versão prévia) | Versões prévias: marca de seleção azul v3.1 (GA) marca de seleção azul v3.0 (GA) marca de seleção azul v2.1 (GA)

O modelo de layout da Informação de Documentos é uma API avançada de análise de documentos baseada em aprendizado de máquina, disponível na nuvem da Informação de Documentos. Ela permite que você obtenha documentos em diversos formatos e retorne representações de dados estruturados desses documentos. Ela combina uma versão aprimorada de nossos poderosos recursos de OCR (reconhecimento óptico de caracteres) com modelos de aprendizado profundo para extrair texto, tabelas, marcas de seleção e estrutura do documento.

Análise de layout do documento (v4)

Análise de layout de 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 do exemplo de layout do documento.

Opções de desenvolvimento (v4)

A Informação de Documentos v4.0 (2024-07-31-preview) dá suporte às seguintes ferramentas, aplicativos e bibliotecas:

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

Requisitos de entrada (v4)

  • Formatos de arquivo com suporte:

    Modelar PDF Image,:
    JPEG/JPG, PNG, BMP, TIFF, HEIF
    Microsoft Office:
    Word (DOCX), Excel (XLSX), PowerPoint (PPTX), HTML
    Ler
    Layout ✔ (2024-07-31-preview, 2024-02-29-preview, 2023-10-31-preview)
    Documento geral
    Predefinida
    Extração personalizada
    Classificação personalizada ✔ (2024-07-31-preview, 2024-02-29-preview)
  • Para ter melhores resultados, forneça uma foto clara ou uma digitalização de alta qualidade por documento.

  • Para PDF e TIFF, até 2.000 páginas podem ser processadas (com uma assinatura de camada gratuita, apenas as duas primeiras páginas são processadas).

  • O tamanho do arquivo para análise de documentos é de 500 MB para a camada paga (S0) e 4 MB para a camada gratuita (F0).

  • As dimensões da imagem devem estar entre 50 x 50 pixels e 10.000 x 10.000 pixels.

  • Se os PDFs estiverem com bloqueio de senha, você deverá remover o bloqueio antes do envio.

  • 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 aproximadamente 8 pontos de texto a 150 pontos por polegada (DPI).

  • Para 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.

    • Para o treinamento do 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.

    • Para o 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 a versão 2024-07-31-preview e posteriores, o tamanho total dos dados de treinamento é de 2 GB, com um máximo de 10.000 páginas.

Introdução ao modelo 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 — você pode 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 da localização das chaves e do ponto de extremidade no portal do Azure.

Observação

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

Amostra de documento processado com o Estúdio da Informação de Documentos

Captura de tela do `Layout` processando uma página de jornal no Estúdio de Informação de Documentos.

  1. Na página inicial do Estúdio da Informação de Documentos, selecione Layout.

  2. Você pode analisar o documento de amostra ou carregar seus próprios arquivos.

  3. Selecione o botão Executar análise e, se necessário, configure as opções Analisar :

    Captura de tela dos botões de opções Executar análise e Analisar no Document Intelligence Studio.

Idiomas e localidades com suporte (ocr)

Confira nossa página Suporte a Idiomas – modelos de análise de documentos, para obter uma lista completa dos idiomas com suporte.

Extração de dados (v4)

O modelo de layout extrai textos, marcas de seleção, tabelas, parágrafos e tipos de parágrafo (roles) dos documentos.

Observação

As versões 2024-02-29-preview, 2023-10-31-previewe posteriores dão suporte a arquivos HTML e Microsoft Office (DOCX, XLSX, PPTX). Não há suporte para os seguintes recursos:

  • Não há ângulo, largura/altura e unidade em cada objeto de página.
  • Para cada objeto detectado, não há polígono nem região com limites.
  • Não há suporte para o intervalo de páginas (pages) como parâmetro.
  • Nenhum objeto lines.

Pages (Páginas)

A coleção de páginas é uma lista de páginas dentro do documento. Cada página é representada sequencialmente no documento e ../inclui o ângulo de orientação, indicando se a página foi 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:

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, imagens inseridas ou vinculadas sem suporte Total de páginas de até 3.000 caracteres cada
Excel (XLSX) Cada planilha = 1 unidade de página, imagens inseridas ou vinculadas sem suporte Total de planilhas
PowerPoint (PPTX) Cada slide = 1 unidade de página, imagens inseridas ou vinculadas sem suporte Total de slides
HTML Até 3.000 caracteres = 1 unidade de página, imagens inseridas ou vinculadas sem suporte 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 de documentos

Para grandes documentos com várias páginas, use o parâmetro de consulta pages para indicar números de página ou intervalos de página específicos para a 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 do polygon delimitador. 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ções de parágrafo

A nova detecção de objeto de página baseada em 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 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 Descrição 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, 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 detectado), juntamente com os intervalos apontando para o texto associado. Esse recurso se aplica a linguagens manuscritas com suporte.

Para o Microsoft Word, Excel, PowerPoint e HTML, nas versões 2024-02-29-versão prévia e 2023-10-31-versão prévia da Informação de Documentos, o modelo de Layout extrai todo o texto inserido como está. Os textos são extraídos como 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 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. Consulte 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
    ]
}

Se você habilitar o recurso adicional 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 de nível superior 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 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 é uma saída, juntamente com informações, seja 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 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 não estiverem em um formato de tabela?

  • Suas tabelas abrangem várias páginas? Nesse caso, para evitar 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ê estiver criando 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 analisar tabelas se o arquivo de entrada for XLSX.
  • Começando com 2024-07-31-preview, as regiões delimitadas para figuras e tabelas abrangem apenas o conteúdo principal e excluem 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}'")

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

A partir de 2024-07-31-preview, a representação de tabelas é alterada nas tabelas HTML para habilitar a renderização de células mescladas, cabeçalhos de várias linhas, etc. Outra alteração relacionada é usar caracteres ☒ da caixa de seleção Unicode e ☐ das marcas de seleção em vez de :selected: e :unselected:. Observe que isso significa que o conteúdo dos campos de marca de seleção conterá :selected: mesmo que seus intervalos se refiram aos caracteres Unicode no intervalo de nível superior.

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

Figuras (gráficos, imagens) em documentos desempenham um papel crucial na complementação e no aprimoramento do conteúdo textual, fornecendo representações visuais que ajudam na compreensão de informações complexas. O objeto figuras detectado pelo modelo layout tem propriedades importantes 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 (detalha os intervalos de texto relacionados à figura, especificando seus deslocamentos e comprimentos dentro do texto do documento. Essa conexão ajuda na associação da figura com seu contexto textual relevante), elements (os identificadores de elementos de texto ou parágrafos dentro do documento relacionados ou descrevem a figura) e caption se houver algum.

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 usando /analyeResults/{resultId}/figures/{figureId}. FigureId é incluído nos objetos de figura, seguindo uma convenção não documentada de {pageNumber}.{figureIndex} em que figureIndex é redefinido para um por página.

Observação

Começando com 2024-07-31-preview, as regiões delimitadas para figuras e tabelas abrangem apenas o conteúdo principal e excluem legendas 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}'")

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 layout dá suporte a seções e subseções na saída, que identifica a relação de seções e objeto em cada seção. A estrutura hierárquica é mantida em elements de cada seção. Você pode usar 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,
)

Esse conteúdo se aplica a: marca de seleção v3.1 (GA) | Ultima versão: marca de seleção púrpura v4.0 (versão prévia) | Versões prévia: marca de seleção azul v3.0 marca de seleção azul v2.1

Esse conteúdo se aplica a: marca de seleção v3.0 (GA) | Ultimas versões: marca de seleção púrpura v4.0 (versão prévia) marca de seleção púrpura v3.1 | Versões prévia: marca de seleção azul v2.1

Esse conteúdo se aplica a: marca de seleção v2.1 | ais recente: marca de seleção azul v4.0 (versão prévia)

O modelo de layout da Informação de Documentos é uma API avançada de análise de documentos baseada em aprendizado de máquina, disponível na nuvem da Informação de Documentos. Ela permite que você obtenha documentos em diversos formatos e retorne representações de dados estruturados desses documentos. Ela combina uma versão aprimorada de nossos poderosos recursos de OCR (reconhecimento óptico de caracteres) com modelos de aprendizado profundo para extrair texto, tabelas, marcas de seleção e estrutura do documento.

Análise de layout do documento

Análise de layout de 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 do exemplo de layout do documento.

Opções de desenvolvimento

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

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

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

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

O Document Intelligence v2.1 dá suporte às seguintes ferramentas, aplicativos e bibliotecas:

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

Requisitos de entrada

  • Formatos de arquivo com suporte:

    Modelar PDF Image,:
    JPEG/JPG, PNG, BMP, TIFF, HEIF
    Microsoft Office:
    Word (DOCX), Excel (XLSX), PowerPoint (PPTX), HTML
    Ler
    Layout ✔ (2024-07-31-preview, 2024-02-29-preview, 2023-10-31-preview)
    Documento geral
    Predefinida
    Extração personalizada
    Classificação personalizada ✔ (2024-07-31-preview, 2024-02-29-preview)
  • Para ter melhores resultados, forneça uma foto clara ou uma digitalização de alta qualidade por documento.

  • Para PDF e TIFF, até 2.000 páginas podem ser processadas (com uma assinatura de camada gratuita, apenas as duas primeiras páginas são processadas).

  • O tamanho do arquivo para análise de documentos é de 500 MB para a camada paga (S0) e 4 MB para a camada gratuita (F0).

  • As dimensões da imagem devem estar entre 50 x 50 pixels e 10.000 x 10.000 pixels.

  • Se os PDFs estiverem com bloqueio de senha, você deverá remover o bloqueio antes do envio.

  • 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 aproximadamente 8 pontos de texto a 150 pontos por polegada (DPI).

  • Para 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.

    • Para o treinamento do 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.

    • Para o 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 a visualização de 31/07/2024 e posteriores, o tamanho total dos dados de treinamento é de 2 GB com um máximo de 10.000 páginas.

  • 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 de arquivo com suporte: o tamanho do arquivo deve ser inferior a 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 ao modelo 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 — você pode 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 da localização das chaves e do ponto de extremidade no portal do Azure.

Observação

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

Amostra de documento processado com o Estúdio da Informação de Documentos

Captura de tela do `Layout` processando uma página de jornal no Estúdio de Informação de Documentos.

  1. Na página inicial do Estúdio da Informação de Documentos, selecione Layout.

  2. Você pode analisar o documento de amostra ou carregar seus próprios arquivos.

  3. Selecione o botão Executar análise e, se necessário, configure as opções Analisar :

    Captura de tela dos botões de opções Executar análise e Analisar no Document Intelligence Studio.

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

  1. Navegue até a Ferramenta 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 das configurações de conexão para o processo de layout da Informação de Documentos.

  3. No campo Ponto de extremidade do serviço 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 Informação de Documentos.

  5. No campo Origem, selecione URL no menu suspenso Você pode usar o documento de exemplo:

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

    Captura de tela da janela suspensa `Layout`.

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

    Captura de tela das configurações de conexão para a Ferramenta de Rotulagem de Amostra da Informação de Documentos.

Idiomas e localidades com suporte

Confira nossa página Suporte a Idiomas – modelos de análise de documentos, para obter uma lista completa dos idiomas com suporte.

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

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

Extração de dados

O modelo de layout extrai textos, marcas de seleção, tabelas, parágrafos e tipos de parágrafo (roles) dos documentos.

Observação

As versões 2024-02-29-preview, 2023-10-31-previewe posteriores dão suporte a arquivos HTML e Microsoft Office (DOCX, XLSX, PPTX). Não há suporte para os seguintes recursos:

  • Não há ângulo, largura/altura e unidade em cada objeto de página.
  • Para cada objeto detectado, não há polígono nem região com limites.
  • Não há suporte para o intervalo de páginas (pages) como parâmetro.
  • Nenhum objeto lines.

Pages (Páginas)

A coleção de páginas é uma lista de páginas dentro do documento. Cada página é representada sequencialmente no documento e ../inclui o ângulo de orientação, indicando se a página foi 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:

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, imagens inseridas ou vinculadas sem suporte Total de páginas de até 3.000 caracteres cada
Excel (XLSX) Cada planilha = 1 unidade de página, imagens inseridas ou vinculadas sem suporte Total de planilhas
PowerPoint (PPTX) Cada slide = 1 unidade de página, imagens inseridas ou vinculadas sem suporte Total de slides
HTML Até 3.000 caracteres = 1 unidade de página, imagens inseridas ou vinculadas sem suporte 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 grandes documentos com várias páginas, use o parâmetro de consulta pages para indicar números de página ou intervalos de página específicos para a 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 do polygon delimitador. 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ções de parágrafo

A nova detecção de objeto de página baseada em 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 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 Descrição 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, 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 detectado), juntamente com os intervalos apontando para o texto associado. Esse recurso se aplica a linguagens manuscritas com suporte.

Para o Microsoft Word, Excel, PowerPoint e HTML, nas versões 2024-02-29-versão prévia e 2023-10-31-versão prévia da Informação de Documentos, o modelo de Layout extrai todo o texto inserido como está. Os textos são extraídos como 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 para linhas de texto

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. Consulte 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
    ]
}

Se você habilitar o recurso adicional 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 de nível superior 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}"
    )

Tabelas

Extrair tabelas é um requisito fundamental para processar 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 é uma saída, juntamente com informações, seja 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 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 não estiverem em um formato de tabela?

  • Suas tabelas abrangem várias páginas? Nesse caso, para evitar 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ê estiver criando 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 analisar tabelas se o arquivo de entrada for XLSX.
  • Começando com 2024-07-31-preview, as regiões delimitadas para figuras e tabelas abrangem apenas o conteúdo principal e excluem 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 (disponíveis somente na API 2023-02-28-preview.)

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 da ordem de leitura do modelo de `layout`.

Selecionar números de página ou intervalos para extração de texto

Para grandes documentos com várias páginas, use o parâmetro de consulta pages para indicar números de página ou intervalos de página específicos para a 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 da 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 criada pela operação Analyze Layout. Ela retorna uma resposta JSON que contém um campo de status com os seguintes valores possíveis.

Campo Tipo Valores possíveis
status string 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 (RPS), use um intervalo de 3 a 5 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 tem um estilo manuscrito ou não, junto 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 do processo de classificação de manuscrito do modelo de `layout`.

Saída JSON de exemplo

A resposta para a operação Obter Resultado de Analisar Layout é uma representação estruturada do documento com todas as informações extraídas. Confira aqui um arquivo de documento de exemplo e a respectiva saída de layout de exemplo de saída estruturada.

A saída JSON tem duas partes:

  • O nó readResults contém todas as marcas de texto e seleção reconhecidas. A hierarquia de apresentação de texto é página, linha e, em seguida, palavras individuais.
  • O nó pageResults contém tabelas e células extraídas com as caixas delimitadoras, a 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árias cores e ângulos de texto. 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. Os documentos podem ser fotografados ou digitalizados. 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.

Exemplo de tabelas

Marcas de seleção

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

Próximas etapas