Compartilhar via


Análise de documento: representação de Markdown

O Azure Content Understanding in Foundry Tools converte documentos não estruturados no GitHub Flavored Markdown, mantendo o conteúdo e o layout para uso downstream preciso. Este artigo descreve como cada elemento de conteúdo e layout é representado no Markdown.

Palavras e marcas de seleção

Palavras reconhecidas e marcas de seleção detectadas são representadas no Markdown como texto sem formatação. As marcas de seleção são codificadas pelos caracteres Unicode (selecionados) e (limpos). É possível fazer escape do conteúdo para evitar a ambiguidade com a sintaxe da formatação Markdown.

Códigos de barras

Os códigos de barras são representados como imagens markdown com texto alt e título: ![alt text](url "title").

Tipo de conteúdo Padrão markdown Exemplo
Código de barras ![{barcode.kind}]({barcode.path} "{barcode.value}") ![QRCode](barcodes/1.2 "https://www.microsoft.com")

Fórmulas

Fórmulas matemáticas são codificadas usando LaTeX no Markdown:

  • As fórmulas embutidas são delimitadas por sinais de cifrão simples ($...$) para manter o fluxo de texto.
  • As fórmulas de visualização usam sinais de dólar duplo ($$...$$) para exibição independente.
  • Fórmulas de várias linhas são representadas como fórmulas de exibição consecutivas sem intervir em linhas vazias. Essa estrutura preserva relações matemáticas.
Tipo de fórmula Markdown Visualização
Embutido $\sqrt { -1 } $ is $i$ $\sqrt { -1 } $ é $i$
Exibição $$a^2 + b^2 = c^2$$ $a^2 + b^2 = c^2$
Várias linhas $$( x + 2 ) ^ 2 = x ^ 2 + 4 x + 4$$
$$= x ( x + 4 ) + 4$$
$$( x + 2 ) ^ 2 = x ^ 2 + 4 x + 4$$ $$= x ( x + 4 ) + 4$$

Imagens

Imagens detectadas, incluindo figuras e gráficos, são representadas usando a sintaxe de imagem markdown padrão. O texto alt contém o texto detectado dentro da figura e a sintaxe varia de acordo com as opções de configuração.

Padrões de representação de imagem

Configuração Padrão markdown Description
Básico ![detected text](figures/path) Imagem padrão sem descrição
habilitarDescriçãoDaFigura ![detected text](figures/path "description") Inclui a descrição da imagem gerada
enableFigureDescription + enableFigureAnalysis ![detected text](figures/path "description") seguido por um gráfico, tabela Markdown ou diagrama Mermaid Imagem com descrição e análise de figura acrescentada (gráfico, tabela ou diagrama)
somente enableFigureAnalysis ![detected text](figures/path) seguido por um gráfico, tabela Markdown ou diagrama Mermaid Imagem sem descrição e análise de figura acrescentada (gráfico, tabela ou diagrama)

Exemplos

Imagem sem enableFigureDescription

![Line1 Line2](figures/1.1)

Imagem com enableFigureDescription

![Line1 Line2](figures/1.1 "This is a generated image description.")

Imagem com enableFigureDescription e enableFigureAnalysis

![Line1 Line2](figures/1.1 "This is a generated image description.")
Opção 1: análise da figura do gráfico
{ ...chart config... }
Opção 2: análise de figuras em tabelas Markdown
| Month | Value |
|-------|-------|
| Jan   | 100   |
| Feb   | 150   |
| Mar   | 200   |
| Apr   | 250   |
| May   | 300   |
| Jun   | 275   |

Imagem sem enableFigureDescription e enableFigureAnalysis

![Line1 Line2](figures/1.1)

```mermaid
{ ...mermaid diagram... }

Análise de Figura

Gráficos e diagramas detectados em documentos são representados como conteúdo de figura estruturada com formatos de renderização especializados.

Gráficos

Os gráficos são representados no conteúdo das figuras usando a sintaxe do Chart.js no formato JSON. Dependendo da config.chartFormat configuração (chartJs ou markdown), os gráficos podem ser representados como Chart.js blocos de código ou tabelas markdown.

formato Chart.js (chartFormat=chartJs)

{
  "type": "bar",
  "data": {
    "labels": ["Jan", "Feb", "Mar", "Apr", "May", "Jun"],
    "datasets": [{
      "label": "Values",
      "data": [100, 150, 200, 250, 300, 275],
      "backgroundColor": "rgba(54, 162, 235, 0.2)",
      "borderColor": "rgba(54, 162, 235, 1)",
      "borderWidth": 1
    }]
  },
  "options": {
    "scales": {
      "y": {
        "beginAtZero": true
      }
    }
  }
}

Formato da tabela Markdown (chartFormat=markdown)

Mês Valores
Jan 100
Fevereiro 150
Março 200
Abr 250
Maio 300
Jun 275

Diagramas

Os diagramas são representados no corpo da figura usando a sintaxe Mermaid e renderizados como blocos de código Mermaid no Markdown.

graph TD
    A[Start] --> B{Decision}
    B -->|Yes| C[Action 1]
    B -->|No| D[Action 2]
    C --> E[End]
    D --> E

Suporte à renderização

Extensões populares do Markdown e visualizadores dão suporte à renderização visual de blocos de código Chart.js e Mermaid.

  • Chart.js: renderiza gráficos e gráficos interativos
  • Mermaid: renderiza fluxogramas, diagramas de sequência e outros tipos de diagrama
  • A maioria dos processadores markdown modernos inclui plug-ins para ambos os formatos

Linhas e parágrafos

Os parágrafos são representados no Markdown como um bloco de texto separado por linhas em branco. Quando as linhas estão disponíveis, cada linha de documento é mapeada para uma linha separada no Markdown.

Seções

Parágrafos com título ou função de título de seção são convertidos em títulos Markdown. O título, se houver, é atribuído com o título de nível 1. Os níveis de título de todas as outras seções são atribuídos para preservar a estrutura hierárquica detectada.

Tabelas

Atualmente, as tabelas são representadas no Markdown usando a marcação de tabela HTML (<table>, <tr>, <th> e <td>) para habilitar o suporte para células mescladas por meio dos atributos rowspan e colspan, e cabeçalhos avançados por meio de <th>. Qualquer legenda é representada por meio de um <caption> elemento. As notas de rodapé associadas aparecem como texto imediatamente após a tabela.

<table>
<caption>Table 1. Example</caption>
<tr><th>Header A</th><th>Header B</th></tr>
<tr><td>Cell 1A</td><td>Cell 1B</td></tr>
<tr><td>Cell 2A</td><td>Cell 2B</td></tr>
</table>
This is a footnote.
Tabela 1. Exemplo
Cabeçalho ACabeçalho B
Célula 1ACélula 1B
Célula 2ACélula 2B
Esta é uma nota de rodapé.

Metadados da página

O Markdown não codifica nativamente metadados de página, como números de página, cabeçalhos, rodapés e quebras. Como essas informações podem ser úteis para aplicativos downstream, codificamos metadados como comentários HTML.

Metadados Markdown
Número da página <!-- PageNumber="1" -->
Cabeçalho da página <!-- PageHeader="Header" -->
Rodapé <!-- PageNumber="Footer" -->
Quebra de página <!-- PageBreak -->

Os hiperlinks detectados do conteúdo digital são representados usando a sintaxe de link markdown padrão. O serviço preserva o texto de exibição e a URL de destino do documento original.

Tipo de link Padrão markdown Exemplo
Link padrão [display text](url) [Visit Microsoft](https://www.microsoft.com)

Exemplos

For more information, visit the [Microsoft Foundry](https://aka.ms/ai-foundry) portal.

Contact our support team at [support@contoso.com](mailto:support@contoso.com "Email support").

See the [official documentation][docs] for detailed instructions.

[docs]: https://docs.microsoft.com

Annotations

Anotações de documento, como realces, sublinhados e comentários, podem ser representadas no Markdown usando formatos diferentes controlados pelo annotationFormat parâmetro.

Formatos de anotação

Formato Description Caso de uso
none Nenhuma informação de anotação no Markdown Controle total sobre a representação de anotação
frontMatter Anotações em front matter YAML com spans HTML Cenários de RAG simples com contexto de documento completo
markdown Sintaxe de anotação de Markdown nativa Compatibilidade padrão do Markdown

Formato: nenhum

Quando você define annotationFormat=none, o Markdown não contém nenhuma informação de anotação. Defina ambos enableAnnotation e returnDetails para true para extrair anotações.

This is the document content without any annotation markers.
Use the annotations JSON property to customize representation.

Formato: frontMatter (padrão)

Codifica anotações no front matter YAML com spans HTML que contêm atributos id que fazem referência aos detalhes da anotação.

---
fields:
  title: "Document Title"
annotations:
- id: underline-1
  author: Paul
  type: underline
  comments:
  - message: "Please review this section"
    author: Paul
    tags: "approved,👍3"
- id: highlight-2
  author: Sarah
  type: highlight
  comments:
  - message: "Important information"
    author: Sarah
---

This is <span id="underline-1">underlined text</span> in the document.

This section contains <span id="highlight-2">highlighted content</span> for emphasis.

<!-- Annotations without spans appear at page end -->
<span id="note-3" />

Formato: markdown

Usa a sintaxe markdown nativa para anotações quando compatível com o processador Markdown de destino.

This text has ==highlighted content== for emphasis.

This text has ++underlined content++ for attention.

> **Note:** This is an annotation comment.

Conclusão

Os elementos markdown de compreensão de conteúdo fornecem uma maneira poderosa de representar a estrutura e o conteúdo dos documentos analisados. Quando você entende e usa esses elementos markdown corretamente, você pode aprimorar seus fluxos de trabalho de processamento de documentos. Você também pode criar aplicativos de extração de conteúdo mais sofisticados.