Partager via


Analyse de document : extraire du contenu structuré

Aperçu

Les fonctionnalités d’analyse d’Azure Content Understanding vous aident à transformer des données non structurées en informations structurées et lisibles par l’ordinateur. En identifiant et en extrayant précisément les éléments tout en préservant leurs relations structurelles, vous pouvez créer des workflows de traitement puissants pour un large éventail d’applications.

L’objet contents avec le type document prend en charge la sortie pour une plage de différents fichiers d’entrée, notamment les fichiers document, image, texte et structurés. Vous pouvez utiliser ces sorties pour extraire du contenu significatif de vos fichiers, préserver les structures de documents et déverrouiller le plein potentiel de vos données.

Le type de contenu du document inclut la sortie des fichiers d’entrée tels que :

  • Documents : PDF, documents Word, présentations PowerPoint et feuilles de calcul Excel
  • Illustrations : photos, documents numérisés, graphiques et diagrammes
  • Fichiers texte : texte brut, HTML, Markdown et RTF
  • Contenu structuré : fichiers XML, JSON, CSV et TSV
  • E-mail : formats de message EML et MSG

Pour plus d’informations sur les types de fichiers pris en charge, les limites de taille de fichier et d’autres contraintes, consultez Quotas et limites de service.

Structure de réponse JSON

L’API Content Understanding retourne des résultats d’analyse dans un format JSON structuré. Voici la structure globale du conteneur :

{
  "id": "10a01d32-e21e-46e3-bb5c-361375f184de",
  "status": "Succeeded",
  "result": {
    "analyzerId": "my-analyzer",
    "apiVersion": "2025-05-01-preview",
    "createdAt": "2025-06-18T22:50:34Z",
    "warnings": [],
    "contents": [
      {
        "markdown": "# Example Document\n\n...",
        "fields": { /* extracted field values */ },
        "kind": "document",
        "startPageNumber": 1,
        "endPageNumber": 2,
        "unit": "inch",
        "pages": [ /* page-level elements */ ],
        "paragraphs": [ /* paragraph elements */ ],
        "sections": [ /* section elements */ ],
        "tables": [ /* table elements */ ],
        "figures": [ /* figure elements */ ],
        "hyperlinks": [ /* hyperlink elements */ ],
        "annotations": [ /* annotation elements */ ]
      }
    ]
  }
}

Éléments de document

Vous pouvez extraire les éléments de document suivants par le biais de l’analyse de document :

Tous les éléments de contenu et de disposition ne sont pas applicables ou actuellement pris en charge par tous les types de fichiers de document.

Éléments de contenu Markdown

Content Understanding génère un Markdown mis en forme richement qui conserve la structure du document d’origine. Pour cette raison, les modèles de langage volumineux peuvent mieux comprendre le contexte de document et les relations hiérarchiques pour les tâches d’analyse et de génération basées sur l’IA. En plus des mots, des marques de sélection, des codes-barres, des formules et des images en tant que contenu, Markdown inclut également des sections, des tableaux et des métadonnées de page pour le rendu visuel et le traitement automatique. En savoir plus sur la façon dont Content Understanding représente des éléments de contenu et de disposition dans Markdown.

Words

Un mot est un élément de contenu composé d’une séquence de caractères. L’annexe standard Unicode #29 définit les limites des mots. Pour les langues latines, les mots peuvent être divisés de ponctuation même sans espace intermédiaire. Dans certaines langues, telles que le chinois, les dictionnaires de mots supplémentaires sont utilisés pour permettre une rupture de mot aux limites sémantiques. Pour plus d’informations, consultez l’analyse des limites.

Exemple JSON :

{
  "words": [
    {
      "content": "Example",
      "span": {
        "length": 7
      },
      "confidence": 0.992,
      "source": "D(1,1.265,1.0836,2.4972,1.0816,2.4964,1.4117,1.2645,1.4117)"
    }
  ]
}

Capture d’écran montrant les mots détectés.

Marques de sélection

Une marque de sélection est un élément de contenu qui représente un glyphe visuel qui indique l’état d’une sélection. Les marques de sélection peuvent apparaître dans le document sous forme de cases à cocher, de coches ou de boutons. Vous pouvez sélectionner ou effacer une marque de sélection, avec une représentation visuelle différente pour indiquer l’état. Les marques de sélection sont encodées en tant que mots dans le résultat d’analyse du document à l’aide des caractères Unicode (sélectionnés) et (effacés).

Content Understanding détecte les coches à l’intérieur dune cellule de tableau comme marques de sélection dans l’état sélectionné. Il ne détecte pas les cellules de tableau vides en tant que marques de sélection dans l’état effacé.

Exemple JSON :

{
  "words": [
    {
      "content": "☒",
      "span": {
        "length": 1
      },
      "confidence": 0.983,
      "source": "D(1,1.258,2.7952,1.3705,2.7949,1.371,2.9098,1.2575,2.9089)"
    }
  ]
}

Capture d’écran montrant les marques de sélection détectées.

Codes-barres

Un code-barres est un élément de contenu qui décrit les codes-barres linéaires (par exemple, UPC ou EAN) et bidimensionnels (par exemple, QR ou MaxiCode). Content Understanding représente les codes-barres à laide de son type détecté et de sa valeur extraite. Les formats de codes-barres suivants sont actuellement pris en charge :

Type de code-barres Descriptif
QRCode Code QR, tel que défini dans ISO/IEC 18004:2015
PDF417 PDF417, tel que défini dans ISO 15438
UPCA Code de produit universel GS1 à 12 chiffres
UPCE Code de produit universel GS1 à 6 chiffres
Code39 Code-barres 39, tel que défini dans ISO/IEC 16388:2007
Code128 Code-barres 128, tel que défini dans ISO/IEC 15417:2007
EAN8 GS1 numéro d’article international à 8 chiffres (numéro d’article européen)
EAN13 GS1 à 13 chiffres Numéro d'article international (Numéro d’article européen)
DataBar Code-barres GS1 DataBar
Code93 Code-barres 93, tel que défini dans ANSI/AIM BC5-1995
Codabar Code-barres Codabar, tel que défini dans ANSI/AIM BC3-1995
DataBarExpanded Code-barres développé GS1 DataBar
ITF « Code à barres 2 sur 5 entrelacé (ITF) » tel que défini dans ANSI/AIM BC2-1995
MicroQRCode Code MICRO QR, tel que défini dans ISO/IEC 23941:2022
Aztec Code Aztec, tel que défini dans ISO/IEC 24778:2008
DataMatrix Code de matrice de données, tel que défini dans ISO/IEC 16022:2006
MaxiCode MaxiCode, tel que défini dans ISO/IEC 16023:2000

Exemple JSON :

{
  "barcodes": [
    {
      "kind": "Code39",
      "value": "Hello World",
      "source": "D(1,2.5738,4.8186,3.8617,4.8153,3.8621,4.9894,2.5743,4.9928)",
      "span": {"offset": 192, "length": 10 },
      "confidence": 0.977
    }
  ]
}

Formules

Une formule est un élément de contenu qui représente des expressions mathématiques dans le document. Il peut s’agir dune formule incorporée avec d’autres textes ou dune formule d’affichage qui occupe une ligne entière. Les formules multilignes sont représentées sous la forme de plusieurs éléments de formule d’affichage regroupés en paragraphes pour préserver les relations mathématiques.

La formule peut être de type inline ou display en fonction de l’emplacement de la formule dans le document.

Exemple JSON :

{
  "formulas": [
    {
      "kind": "inline",
      "value": "x = \\frac { - b \\pm \\sqrt { b ^ { 2 } - 4 a c } } { 2 a }",
      "confidence": 0.708,
      "source": "D(1,3.4282,7.0195,4.0452,7.0307,4.0425,7.1803,3.4255,7.1691)",
      "span": {
        "offset": 394,
        "length": 51
      }
    }
  ]
}

Figures

Une figure est un élément de contenu qui représente une image incorporée, une figure ou un graphique dans le document. Content Understanding génère un résumé des figures détectées, convertit les images sélectionnées en représentation chart.js et extrait tout texte incorporé des images et toutes les légendes et notes de bas de page associées. Les graphiques sont représentés dans le contenu de la figure à l’aide de la syntaxe de chart.js, et les diagrammes sont représentés dans le contenu de la figure à l’aide d’une chaîne en syntaxe mermaid. Il s’agit d’une fonctionnalité facultative que vous pouvez activer dans la configuration de l’analyseur en définissant enableFigureAnalysis et enableFigureDescription en tant que true.

Les types de figure suivants sont actuellement pris en charge :

Type de figure Représentation
Bar chart Chart.js
Line chart Chart.js
Pie chart Chart.js
Radar chart Chart.js
Scatter chart Chart.js
Bubble chart Chart.js
Quadrant chart Chart.js
Mixed chart (e.g. combined bar and line chart) Mermaid.js
Flow chart Mermaid.js
Sequence diagrams Mermaid.js
Gantt chart Mermaid.js

Exemple JSON :

{
  "figures": [
     {
      // enableFigureDescription = True
      "description": "This figure illustrates the sales revenue over the year 2023.",

      // enableFigureAnalysis = True
      "kind": "chart",
      "content": {
        "type": "line",
        "data": {
          "labels": ["January", "February", "March", "April", "May", "June", "July"],
          "datasets": [
            {
              "label": "A",
              "data": [93, -29, -17, -8, 73, 98, 40]
            },
            {
              "label": "B",
              "data": [20, 85, -79, 93, 27, -81, -22]
            }
          ]
        },
        "options": {
          "title": { "text": "Title" }
        }
      }
    },
    {
      "kind": "mermaid",
      "content": "xychart-beta\n    title \"Sales Revenue\"\n    x-axis [jan, feb, mar, apr]..."
    },
  ]
}

Un lien hypertexte est un élément de contenu qui représente un lien incorporé qui se connecte à une autre ressource telle que la page web du document. Content Understanding représente des liens hypertexte à l’aide de son lien incorporé.

Exemple JSON :

{
  "hyperlinks": [
        {
          "content": "Microsoft",
          "url": "https://www.microsoft.com",
          "span": {...},
          "source": "..."
        }
  ]
}

Annotations

Les annotations sont des métadonnées supplémentaires sur le document pour fournir des informations, des clarifications ou des commentaires supplémentaires sans modifier le contenu principal lui-même. Il existe de nombreux types d’annotations qui peuvent couvrir des plages de contenu spécifiques, ou même faire référence à des boîtes englobantes spécifiques. Vous trouverez ci-dessous la liste des types d’annotations que nous prenons en charge.

Remarque

Notez que les annotations ne sont actuellement prises en charge que dans les entrées PDF numériques.

Type d’annotation
highlight
underline
strikethrough
rectangle
circle
drawing
comments
other

Exemple JSON :

{
  "annotations": [
    {
      "id": "underline-1",
      "kind": "underline",
      "spans": [...],
      "source": "D(pageNumber,l,t,w,h)",
      "comments": [
        {
          "message": "Hi",
          "author": "johndoe",
          "createdAt": "2023-10-01T12:00:00Z",
          "tags": ["approved"]
        }
      ]
      "author": "paulhsu",
      "createdAt": "2023-10-01T12:00:00Z",
      "lastModifiedAt": "2023-10-02T12:00:00Z",
      "tags": [ ... ],
    }
  ]
}

Éléments de disposition

Les éléments de disposition de document sont des composants visuels et structurels, tels que des pages, des tables, des paragraphes, des lignes, des tables, des sections et une structure globale, qui aident à interpréter le contenu. L’extraction de ces éléments permet aux outils d’analyser efficacement les documents pour des tâches telles que la récupération d’informations, la compréhension sémantique et la structuration des données.

Pages

Une page est un regroupement de contenu qui correspond généralement à un côté d’une feuille de papier. Une page affichée est caractérisée par la largeur et la hauteur dans l’unité spécifiée. En général, les images utilisent des pixels tandis que les fichiers PDF utilisent des pouces. La angle propriété décrit l’angle de texte global en degrés pour les pages qui peuvent être pivotées.

Pour les feuilles de calcul comme Excel, chaque feuille est mappée à une page. Pour les présentations, comme PowerPoint, chaque diapositive est mappée à une page. Pour les formats de fichier tels que les documents HTML ou Word, qui n’ont pas de concept de page native sans rendu, le contenu principal entier est traité comme une seule page.

Exemple JSON :

{
  "pages": [
    {
      "pageNumber": 1,
      "angle": 0.0739153,
      "width": 8.5,
      "height": 11,
      "spans": [
        {
          "offset": 0,
          "length": 620
        }
      ],
      "words": [ /* array of word objects */ ],
      "barcodes": [ /* details of barcodes */ ],
      "lines": [ /* array of line objects */ ],
      "formulas": [ /* array of formula objects */ ]
    }
  ]
}

Paragraphes

Un paragraphe est une séquence ordonnée de lignes qui forment une unité logique. En général, les lignes partagent un alignement commun et un espacement entre les lignes. Les paragraphes sont souvent délimités par une mise en retrait, un espacement supplémentaire ou des puces/numérotations. Certains paragraphes ont des rôles fonctionnels spéciaux dans le document. Les rôles actuellement pris en charge incluent l’en-tête de page, le pied de page, le numéro de page, le titre, le titre de section, la note de bas de page et le bloc de formule.

Exemple JSON :

{
  "paragraphs": [
    {
      "role": "title",
      "content": "Example Document",
      "source": "D(1,1.264,1.0836,4.1584,1.0795,4.1589,1.4083,1.2644,1.4124)",
      "span": {
        "offset": 0,
        "length": 18
      }
    }
  ]
}

Lignes

Une ligne est une séquence ordonnée d’éléments de contenu consécutifs, qui sont souvent séparés par des espaces visuels. Les éléments de contenu dans le même plan horizontal (ligne), mais qui sont séparés par plus d’un espace visuel unique sont souvent divisés en plusieurs lignes. Cette fonctionnalité divise parfois le contenu contigu sémantiquement en lignes distinctes. Il permet également la représentation du contenu textuel divisé en plusieurs colonnes ou cellules. Les lignes en écriture verticale sont détectées dans le sens vertical.

Exemple JSON :

{
  "lines": [
    {
      "content": "Example Document",
      "source": "D(1,1.264,1.0836,4.1583,1.0795,4.1589,1.4083,1.2645,1.4117)",
      "span": {
        "offset": 0,
        "length": 16
      }
    }
  ]
}

Tableaux

Un tableau organise le contenu en un groupe de cellules dans une disposition de grille. Les lignes et colonnes peuvent être séparées visuellement par des lignes de grille, une bande de couleurs ou un espacement supérieur. La position d’une cellule de tableau est spécifiée par ses indices de ligne et de colonne. Une cellule peut s’étendre sur plusieurs lignes et colonnes.

En fonction de sa position et de son style, une cellule est classée comme contenu général, en-tête de ligne, en-tête de colonne, tête de stub ou description :

  • Une cellule d’en-tête de ligne est généralement la première cellule d’une ligne qui décrit les autres cellules de la ligne.
  • Une cellule d’en-tête de colonne est généralement la première cellule d’une colonne qui décrit les autres cellules de la colonne.
  • Une ligne ou une colonne peut contenir plusieurs cellules d’en-tête pour décrire le contenu hiérarchique.
  • Une cellule de tête stub est généralement la cellule située dans la première rangée et la première colonne. La cellule est vide ou décrit les valeurs des cellules den-tête dans la même ligne/colonne.
  • Une cellule de description apparaît généralement au niveau de la zone la plus haute ou la plus basse d’un tableau et décrit le contenu global de la table. Il peut parfois apparaître au milieu dune table pour décomposer la table en sections. En général, les cellules de description s’étendent sur plusieurs cellules d’une même ligne.

Une légende de tableau spécifie le contenu qui explique le tableau. Un tableau peut également avoir un ensemble de notes de bas de page. Contrairement à une cellule de description, une légende se trouve généralement en dehors de la disposition de la grille. Les notes de bas de page de tableau annotent le contenu à l’intérieur du tableau et sont souvent marquées avec des symboles de note de bas de page. Ils sont souvent trouvés sous la grille de table.

Une table peut s’étendre sur plusieurs pages consécutives d’un document. Dans ce cas, les continuations de tables dans les pages suivantes conservent généralement le même nombre de colonnes, la largeur et le style. Elles répètent souvent les en-têtes de colonne. En règle générale, aucun contenu intermédiaire n’intervient entre la table initiale et ses continuations, à l’exception des en-têtes de page, des pieds de page et des numéros de page.

Une table peut s’étendre sur plusieurs pages consécutives d’un document. Dans ce cas, les continuations de tables dans les pages suivantes conservent généralement le même nombre de colonnes, la largeur et le style. Elles répètent souvent les en-têtes de colonne. En dehors des en-têtes de page, des pieds de page et des numéros de page, il n’existe généralement aucun contenu intermédiaire entre la table initiale et ses continuations.

Remarque

L’étendue des tables couvre à la fois le contenu principal et ses légendes et notes de bas de page associées.

Exemple JSON :

{
  "tables": [
    {
      "rowCount": 6,
      "columnCount": 2,
      "cells": [
        {
          "kind": "columnHeader",
          "rowIndex": 0,
          "columnIndex": 0,
          "rowSpan": 1,
          "columnSpan": 1,
          "content": "Category",
          "source": "D(2,1.1674,5.0483,4.1733,5.0546,4.1733,5.2358,1.1674,5.2358)",
          "span": {
            "offset": 798,
            "length": 8
          },
          "elements": [
            "/paragraphs/7"
          ]
        }
      ],
      "source": "D(2,1.1566,5.0425,7.1855,5.0428,7.1862,6.1853,1.1574,6.1858)",
      "span": {
        "offset": 781,
        "length": 280
      },
      "caption": {
        "content": "Table 1: This is a table",
        "source": "D(2,1.1566,5.0425,7.1855,5.0428,7.1862,6.1853,1.1574,6.1858)",
        "span": {
          "offset": 335,
          "length": 30
        }
      }
    }
  ]
}

Capture d’écran montrant un tableau qui utilise la fonctionnalité de disposition.

Rubriques

Une section est un regroupement logique d’éléments de contenu connexes qui forment une structure hiérarchique dans le document. Il commence souvent par un titre de section comme premier paragraphe. Une section peut contenir des sous-sections pour créer une structure de document imbriquée qui préserve les relations sémantiques.

Exemple JSON :

{
  "sections": [
    {
      "span": {
        "offset": 113,
        "length": 77
      },
      "elements": [
        "/paragraphs/3",
        "/paragraphs/4"
      ]
    }
  ]
}

Propriétés de l’élément

Les documents se composent de différents composants classés en éléments structurels, textuels et liés aux formulaires. Ces éléments définissent l’organisation et la présentation du document. Vous pouvez identifier et extraire systématiquement les éléments pour une analyse ou une application supplémentaires.

Portées

La propriété span spécifie la position logique de l’élément dans le document via le décalage de caractères et la longueur indiquée dans la propriété de chaîne markdown de niveau supérieur. Par défaut, les décalages de caractères et les longueurs sont retournés dans les points de code Unicode, qui sont utilisés par Python 3. Pour prendre en charge différents environnements de développement utilisant différentes unités de caractères, vous pouvez spécifier le paramètre de requête stringEncoding afin de renvoyer les décalages et les longueurs de span en unités de code UTF16 (Java, JavaScript ou .NET) ou en octets UTF8 (Go, Rust, Ruby ou PHP).

Origine

La propriété source décrit la position visuelle de l’élément dans le fichier à l’aide d’une chaîne encodée. Pour les documents, la chaîne source se trouve dans l’un des formats suivants :

  • Polygone englobant : D({pageNumber},{x1},{y1},{x2},{y2},{x3},{y3},{x4},{y4})
  • Cadre englobant aligné sur l’axe : D({pageNumber},{left},{top},{width},{height})

Les numéros de page sont indexés. Le polygone englobant décrit une séquence de points, dans le sens des aiguilles d’une montre à partir de la gauche par rapport à l’orientation naturelle de l’élément. Pour les quadrilatéraux, les points représentent les angles supérieur gauche, supérieur droit, inférieur droit et inférieur gauche. Chaque point représente la coordonnée x,y dans l’unité de longueur spécifiée par la propriété unit. En général, l’unité de mesure pour les images est de pixels. Les fichiers PDF utilisent des pouces.

Capture d’écran montrant les régions englobantes détectées.

Remarque

Actuellement, Content Understanding ne retourne qu’un quadrilatère à quatre points comme polygone englobant. Les versions futures peuvent retourner un nombre différent de points pour décrire des formes plus complexes, telles que des lignes courbes ou des images non rectangulaires. Actuellement, la source est retournée uniquement pour les éléments provenant de fichiers rendus (PDF/image).

Exemple JSON complet

L’exemple suivant montre la structure de réponse JSON complète à partir de l’analyse d’un document. Ce code JSON représente la sortie complète de Content Understanding lorsque vous traitez un document PDF avec plusieurs types d’éléments :

Capture d’écran montrant le document PDF de démonstration montrant des exemples de contenu, notamment des cases à cocher, des codes-barres, des formules, des images et des tableaux.

{
  "id": "10a01d32-e21e-46e3-bb5c-361375f184de",
  "status": "Succeeded",
  "result": {
    "analyzerId": "auto-labeling-model-1750287025291-104",
    "apiVersion": "2025-05-01-preview",
    "createdAt": "2025-06-18T22:50:34Z",
    "warnings": [],
    "contents": [
      {
        "markdown": "# Example Document\n\n\n## 1. Selection Marks (Checkboxes)\n\nEmployee Preferences Form\n☐\nRemote\n☒\nHybrid\n☐\nOn-site\n\n\n## 2. Barcodes\n\nGo check out Azure Content Understanding at the below link\n\n\n## 3. Formulas\n\nBayesian Inference (Posterior Probability):\n\n$$P \\left( \\theta \\mid D \\right) = \\frac { P \\left( D \\mid \\theta \\right) \\cdot P \\left( \\theta \\right) } { P \\left( D \\right) }$$\n\nWhere:\n\n$$P \\left( \\theta \\mid D \\right)$$\nis the posterior\n\n$P \\left( D \\mid \\theta \\right)$ is the likelihood\n$P \\left( \\theta \\right)$ is the prior\n\n$$P \\left( D \\right) i s \\quad t h e \\quad e v i d e n c e$$\n\n<!-- PageBreak -->\n\n\n## 4. Images\n\nSample Product Image\n\n\n<figure>\n\nContent\nUnderstanding\n\n</figure>\n\n\nImage Description: \"A ceramic coffee mug with company logo.\"\n\n\n## 5. Tables\n\n\n<table>\n<tr>\n<th>Category</th>\n<th>Amount ($)</th>\n</tr>\n<tr>\n<td>Rent</td>\n<td>1,200</td>\n</tr>\n<tr>\n<td>Utilities</td>\n<td>150</td>\n</tr>\n<tr>\n<td>Groceries</td>\n<td>300</td>\n</tr>\n<tr>\n<td>Transportation</td>\n<td>100</td>\n</tr>\n<tr>\n<td>Total</td>\n<td>1,750</td>\n</tr>\n</table>\n\n\n## 6. Paragraphs\n\nOur company is committed to fostering a productive and inclusive work environment. All\nemployees are expected to comply with the outlined policies and demonstrate mutual\nrespect in day-to-day operations. Regular reviews will ensure that these policies remain\nrelevant and effective.\n",
        "fields": {
          "EmployeePreferences": {
            "type": "string",
            "valueString": "Hybrid",
            "spans": [
              {
                "offset": 94,
                "length": 6
              }
            ],
            "confidence": 0.987,
            "source": "D(1,1.4104,2.7836,1.8760,2.7823,1.8760,2.9377,1.4110,2.9396)"
          },
          "ImageDescription": {
            "type": "string",
            "valueString": "\"A ceramic coffee mug with company logo.\"",
            "spans": [
              {
                "offset": 722,
                "length": 41
              }
            ],
            "confidence": 0.958,
            "source": "D(2,2.5222,4.2511,5.3236,4.2497,5.3237,4.4422,2.5223,4.4436)"
          }
        },
        "kind": "document",
        "startPageNumber": 1,
        "endPageNumber": 2,
        "unit": "inch",
        "pages": [
          {
            "pageNumber": 1,
            "angle": 0.0739153,
            "width": 8.5,
            "height": 11,
            "spans": [
              {
                "offset": 0,
                "length": 620
              }
            ],
            "words": [
              {
                "content": "Example",
                "span": {
                  "length": 7
                },
                "confidence": 0.992,
                "source": "D(1,1.265,1.0836,2.4972,1.0816,2.4964,1.4117,1.2645,1.4117)"
              },
              {
                "content": "Document",
                "span": {
                  "length": 8
                },
                "confidence": 0.996,
                "source": "D(1,2.6252,1.084,4.1615,1.0886,4.1615,1.3993,2.6241,1.4117)"
              },
              {
                "content": "☒",
                "span": {
                  "length": 1
                },
                "confidence": 0.983,
                "source": "D(1,1.258,2.7952,1.3705,2.7949,1.371,2.9098,1.2575,2.9089)"
              },
              {
                "content": "Hybrid",
                "span": {
                  "length": 6
                },
                "confidence": 0.996,
                "source": "D(1,1.4104,2.7836,1.876,2.7823,1.876,2.9377,1.411,2.9396)"
              }
            ],
            "lines": [
              {
                "content": "Example Document",
                "source": "D(1,1.264,1.0836,4.1583,1.0795,4.1589,1.4083,1.2645,1.4117)",
                "span": {
                  "offset": 0,
                  "length": 16
                }
              }
            ],
            "formulas": [
              {
                "confidence": 0.583
              },
              {
                "confidence": 0.708
              }
            ]
          },
          {
            "pageNumber": 2,
            "angle": 0.1008425,
            "width": 8.5,
            "height": 11,
            "spans": [
              {
                "offset": 620,
                "length": 744
              }
            ],
            "words": [
              {
                "content": "Images",
                "source": "D(2,1.4516,1.0434,2.0254,1.0463,2.0254,1.229,1.4506,1.224)"
              },
              {
                "content": "ceramic",
                "source": "D(2,2.5230,4.2539,2.6591,4.2543,2.6584,4.4392,2.5223,4.4407)"
              }
            ],
            "lines": [
              {
                "content": "4. Images",
                "source": "D(2,1.24,1.0409,2.0238,1.0463,2.0226,1.2284,1.2387,1.223)"
              }
            ]
          }
        ],
        "paragraphs": [
          {
            "role": "title",
            "content": "Example Document",
            "source": "D(1,1.264,1.0836,4.1584,1.0795,4.1589,1.4083,1.2644,1.4124)",
            "span": {
              "offset": 0,
              "length": 18
            }
          },
          {
            "role": "sectionHeading",
            "content": "1. Selection Marks (Checkboxes)",
            "source": "D(1,1.2461,1.8719,3.8532,1.8731,3.8531,2.065,1.246,2.0638)",
            "span": {
              "offset": 21,
              "length": 34
            }
          },
          {
            "content": "Employee Preferences Form ☐ Remote ☒ Hybrid ☐ On-site",
            "source": "D(1,1.246,2.0993,3.1019,2.1007,3.101,3.2724,1.2451,3.2709)",
            "span": {
              "offset": 57,
              "length": 53
            }
          }
        ],
        "sections": [
          {
            "span": {
              "offset": 0,
              "length": 1364
            },
            "elements": [
              "/paragraphs/0",
              "/sections/1",
              "/sections/2",
              "/sections/3",
              "/sections/4",
              "/sections/5",
              "/sections/6"
            ]
          },
          {
            "span": {
              "offset": 21,
              "length": 89
            },
            "elements": [
              "/paragraphs/1",
              "/paragraphs/2"
            ]
          }
        ],
        "tables": [
          {
            "rowCount": 6,
            "columnCount": 2,
            "cells": [
              {
                "kind": "columnHeader",
                "rowIndex": 0,
                "columnIndex": 0,
                "rowSpan": 1,
                "columnSpan": 1,
                "content": "Category",
                "source": "D(2,1.1674,5.0483,4.1733,5.0546,4.1733,5.2358,1.1674,5.2358)",
                "span": {
                  "offset": 798,
                  "length": 8
                }
              },
              {
                "kind": "columnHeader",
                "rowIndex": 0,
                "columnIndex": 1,
                "rowSpan": 1,
                "columnSpan": 1,
                "content": "Amount ($)",
                "source": "D(2,4.1733,5.0546,7.1668,5.0546,7.1668,5.2358,4.1733,5.2358)",
                "span": {
                  "offset": 816,
                  "length": 10
                }
              }
            ],
            "source": "D(2,1.1566,5.0425,7.1855,5.0428,7.1862,6.1853,1.1574,6.1858)",
            "span": {
              "offset": 781,
              "length": 280
            }
          }
        ],
        "figures": [
          {
            "source": "D(2,1.3465,1.8481,3.4788,1.8484,3.4779,3.8286,1.3456,3.8282)",
            "span": {
              "offset": 658,
              "length": 42
            },
            "elements": [
              "/paragraphs/14"
            ],
            "id": "2.1"
          }
        ]
      }
    ]
  }
}

Cet exemple complet montre comment Content Understanding extrait et structure tous les différents types d’éléments d’un document. Il fournit à la fois le contenu brut et les informations positionnelles et structurelles détaillées qui permettent de traiter des documents avancés.