Analyser la réponse de l’API de document

Ce contenu s’applique à :checkmarkv4.0 (préversion)checkmarkv3.1 (GA)checkmarkv3.0 (GA)

Dans cet article, nous examinerons les différents objets renvoyés dans le cadre de la réponse de AnalyzeDocument et de la façon dont vous pouvez utiliser la réponse d’analyse de document API dans vos applications.

Demande d’analyse de document

Les API Intelligence documentaire analysent les images, les PDF et d’autres fichiers de documents pour extraire et détecter divers éléments de contenu, de disposition, de style et de sémantique. L’opération d’analyse est une API asynchrone. L’envoi d’un document renvoie un en-tête Operation-Location qui contient l’URL à interroger pour l’achèvement. Lorsqu’une demande d’analyse se termine correctement, la réponse contient les éléments décrits dans l’extraction des données du modèle.

Éléments de réponse

  • Les éléments de contenu sont les éléments de texte de base extraits du document.

  • Les éléments de disposition regroupent les éléments de contenu en unités structurelles.

  • Les éléments de style décrivent la police et la langue des éléments de contenu.

  • Les éléments sémantiques attribuent une signification aux éléments de contenu spécifiés.

Tous les éléments de contenu sont regroupés par pages, spécifiées par le numéro de page (1 indexé). Ils sont également triés par ordre de lecture qui classe ensemble les éléments sémantiquement contigus, même s’ils traversent les limites des lignes ou des colonnes. Lorsque l’ordre de lecture entre les paragraphes et autres éléments de disposition est ambigu, le service renvoie généralement le contenu dans un ordre de gauche à droite et de haut en bas.

Remarque

Actuellement, Intelligence documentaire ne prend pas en charge l’ordre de lecture au-delà des limites de page. Les marques de sélection ne sont pas positionnées à l’intérieur des mots qui les entourent.

La propriété de contenu de niveau supérieur contient une concaténation de tous les éléments de contenu dans l’ordre de lecture. Tous les éléments précisent leur position dans l’ordre de lecture par le biais d’intervalles dans cette chaîne de contenu. Le contenu de certains éléments n’est pas toujours contigu.

Réponse d’analyse

La réponse d’analyse pour chaque API renvoie des objets différents. Les réponses de l’API contiennent des éléments des modèles de composants, le cas échéant.

Contenu de la réponse Description API
pages Mots, lignes et intervalles reconnus à partir de chaque page du document d’entrée. Modèles de lecture, de disposition, de document général, préétablis et personnalisés
paragraphes Contenu reconnu en tant que paragraphes. Modèles de lecture, de disposition, de document général, préétablis et personnalisés
styles Propriétés d’élément de texte identifiées. Modèles de lecture, de disposition, de document général, préétablis et personnalisés
langues Langue identifiée associée à chaque intervalle du texte extrait Lire
tables Contenu tabulaire identifié et extrait du document. Les tableaux sont liés aux tableaux identifiés par le modèle de disposition pré-entraîné. Le contenu étiqueté en tant que tableaux est extrait en tant que champs structurés dans l’objet documents. Modèles de disposition, de document général, de facture et personnalisés
figures Figures (graphiques, images) identifiées et extraites du document, fournissant des représentations visuelles qui facilitent la compréhension des informations complexes. Modèle de disposition
sections Structure de document hiérarchique identifiée et extraite du document. Section ou sous-section avec les éléments correspondants (paragraphe, tableau, figure) qui lui sont attachés. Modèle de disposition
keyValuePairs Paires clé-valeur reconnues par un modèle pré-entraîné. La clé est un intervalle de texte du document avec la valeur associée. Modèles de document général et de facture
documents Les champs reconnus sont renvoyés dans le dictionnaire fields dans la liste des documents Modèles prédéfinis, modèles personnalisés.

Pour plus d’informations sur les objets renvoyés par chaque API, consultez Extraction de données de modèle.

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

Étendues

Les intervalles précisent la position logique de chaque élément dans l’ordre de lecture global, chaque intervalle spécifiant un décalage et une longueur de caractère dans la propriété de chaîne de contenu de niveau supérieur. Par défaut, les décalages et longueurs de caractères sont renvoyés en unités de caractères perçus par l’utilisateur (également appelés grapheme clusters ou éléments de texte). Pour prendre en charge différents environnements de développement qui utilisent différentes unités de caractères, l’utilisateur peut également spécifier le paramètre de requête stringIndexIndex pour renvoyer des décalages et des longueurs d’intervalle dans des points de code Unicode (Python 3) ou des unités de code UTF16 (Java, JavaScript, .NET). Pour plus d’informations, consultezPrise en charge multilingue/emoji.

Screenshot of detected span example.

Région limite

Les régions limites décrivent la position visuelle de chaque élément dans le fichier. Lorsque les éléments ne sont pas visuellement contigus ou croisés (tables), les positions de la plupart des éléments sont décrites via un tableau de régions englobantes. Chaque région spécifie le numéro de page (1 indexé) et le polygone limite. Le polygone limite est décrit comme 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ères, les points de tracé sont les coins haut-gauche, haut-droit, bas-droit et bas-gauche. Chaque point représente ses coordonnées x, y dans l’unité de page spécifiée par la propriété unité. En général, l’unité de mesure des images est le pixel, tandis que les fichiers PDF utilisent le pouce.

Screenshot of detected bounding regions example.

Remarque

Actuellement, Intelligence documentaire retourne uniquement des quadrilatères à 4 sommets en tant que polygones englobants. Les versions ultérieures pourront renvoyer un nombre différent de points pour décrire des formes plus complexes, comme des lignes courbes ou des images non rectangulaires. Les régions limites s’appliquent uniquement aux fichiers affichés. Si le fichier n’est pas rendu, les régions limites ne sont pas renvoyées. Actuellement, les fichiers au format docx/xlsx/pptx/html ne sont pas affichés.

Éléments de contenu

Word

Un mot est un élément de contenu composé d’une séquence de caractères. Dans Intelligence documentaire, un mot est défini comme séquence de caractères adjacents, où des espaces blancs séparent les mots les uns des autres. Pour les langues qui n’utilisent pas de séparateurs d’espace entre les mots, chaque caractère est renvoyé comme un mot distinct, même s’il ne représente pas une unité de mot sémantique.

Screenshot of detected words example.

Marques de sélection

Une marque de sélection est un élément de contenu qui représente un glyphe visuel indiquant l’état d’une sélection. La case à cocher est une forme courante de marques de sélection. Toutefois, elles sont également représentées via des cases d’option ou une cellule boxed sous forme visuelle. L’état d’une marque de sélection peut être sélectionné ou non sélectionné, avec une représentation visuelle différente pour indiquer l’état.

Screenshot of detected selection marks example.

Éléments de disposition

Courbes

Une ligne est une séquence ordonnée d’éléments de contenu consécutifs séparés par un espace visuel, ou d’éléments immédiatement adjacents pour les langues ne comportant pas de délimiteurs d’espace entre les mots. Les éléments de contenu situés dans le même plan horizontal (rangée) mais séparés par plus d’un espace visuel seront généralement divisés en plusieurs lignes. Si cette fonctionnalité permet parfois de diviser un contenu sémantiquement contigu en lignes distinctes, elle permet aussi de représenter un contenu textuel divisé en plusieurs colonnes ou cellules. Les lignes en écriture verticale sont détectées dans le sens vertical.

Screenshot of detected lines example.

Paragraph

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. Un contenu ne peut être affecté qu’à un seul paragraphe. Vous pouvez également associer des paragraphes à un rôle fonctionnel dans le document. Les rôles actuellement pris en charge sont l’en-tête de page, le pied de page, le numéro de page, le titre, le titre de section et la note de bas de page.

Screenshot of detected paragraphs example.

Page

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 le pixel tandis que les fichiers PDF utilisent le pouce. La propriété d’angle décrit l’angle de texte global en degrés pour les pages qui peuvent être pivotées.

Remarque

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 fichiers sans concept natif de pages sans rendu comme les documents HTML ou Word, le contenu principal du fichier est considéré comme une seule page.

Table de charge de travail

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 peut être classée comme contenu général, en-tête de ligne, en-tête de colonne, en-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. Elle peut être vide ou décrire les valeurs dans les cellules d’en-tête dans la même ligne/colonne.

  • Une cellule de description apparaît généralement dans la partie supérieure ou inférieure d’un tableau, décrivant le contenu global du tableau. Toutefois, elle peut parfois apparaître au milieu d’un tableau pour décomposer le tableau 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 une légende associée et 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. Une note de bas de page de tableau annote le contenu à l’intérieur du tableau, souvent marqué avec un symbole de note de bas de page souvent trouvé sous la grille du tableau.

Les tableaux de disposition diffèrent des champs de document extraits des données tabulaires. Les tableaux de disposition sont extraits du contenu visuel tabulaire du document sans tenir compte de la sémantique du contenu. En fait, certains tableaux de disposition sont conçus uniquement pour la disposition visuelle et ne contiennent pas toujours de données structurées. La méthode d’extraction de données structurées à partir de documents dont la disposition visuelle varie, comme les détails d’un reçu, nécessite généralement un post-traitement important. Il est essentiel de mapper les en-têtes de ligne ou de colonne à des champs structurés avec des noms de champ normalisés. En fonction du type de document, utilisez des modèles préétablis ou formez un modèle personnalisé pour extraire ce contenu structuré. Les informations qui en résultent sont exposées sous forme de champs de document. Ces modèles entraînés peuvent également traiter des données tabulaires sans en-tête et des données structurées sous des formes non tabulaires, par exemple la section « expérience professionnelle » d'un CV.

Layout table

Figures

Les figures (graphiques, images) dans les documents jouent un rôle crucial dans le complément et l’amélioration du contenu textuel, fournissant des représentations visuelles qui aident à comprendre les informations complexes. L’objet figures détecté par le Modèle de disposition possède des propriétés clés telles que boundingRegions (les emplacements spatiaux de la figure sur les pages du document, y compris le numéro de page et les coordonnées de polygone qui définissent les limites de la figure), spans (détaille les étendues de texte liées à la figure, en spécifiant leurs décalages et longueurs dans le texte du document. Cette connexion permet d’associer la figure à son contexte textuel pertinent), elements (identificateurs pour les éléments de texte ou les paragraphes du document qui sont liés ou décrivent la figure) et caption le cas échéant.

{
    "figures": [
      {
        "boundingRegions": [],
        "spans": [],
        "elements": [
          "/paragraphs/15",
          ...
        ],
        "caption": {
          "content": "Here is a figure with some text",
          "boundingRegions": [],
          "spans": [],
          "elements": [
            "/paragraphs/15"
          ]
        }
      }
    ]
}

Sections

L’analyse hiérarchique de la structure des documents est essentielle pour organiser, comprendre et traiter des documents étendus. Cette approche est essentielle pour segmenter sémantiquement des documents longs afin d’améliorer la compréhension, de faciliter la navigation et d’améliorer la récupération des informations. L’avènement de la génération augmentée de récupération (RAG) dans l’IA générative de document souligne l’importance de l’analyse hiérarchique de la structure de document. Le Modèle de disposition prend en charge les sections et sous-sections de la sortie, qui identifie la relation des sections et des objets dans chaque section. La structure hiérarchique est conservée dans elements de chaque section.

{
    "sections": [
      {
        "spans": [],
        "elements": [
          "/paragraphs/0",
          "/sections/1",
          "/sections/2",
          "/sections/5"
        ]
      },
...
}

Champ de formulaire (paire clé-valeur)

Un champ de formulaire se compose d’une étiquette de champ (clé) et d’une valeur. L’étiquette de champ est généralement une chaîne de texte descriptive qui décrit la signification du champ. Elle apparaît souvent à gauche de la valeur, mais elle peut aussi apparaître au-dessus ou en dessous de la valeur. La valeur du champ contient la valeur du contenu d’une instance de champ spécifique. La valeur peut se composer de mots, de marques de sélection et d’autres éléments de contenu. Il peut également être vide pour les champs de formulaire non remplis. Un type particulier de champ de formulaire comporte une valeur de marque de sélection avec l’étiquette du champ à sa droite. Le champ de document est un concept similaire mais distinct des champs de formulaire généraux. L’étiquette (clé) d’un champ de formulaire général doit apparaître dans le document. Ainsi, elle ne peut généralement pas saisir des informations telles que le nom du commerçant sur un reçu. Les champs de document sont étiquetés et n’extraient pas de clé. Les champs de document mappent uniquement une valeur extraite à une clé étiquetée. Pour plus d’informations, consultezChamps de document.

Screenshot of detected key-value pairs example.

Éléments de style

Style

Un élément de style décrit le style de police à appliquer au contenu textuel. Le contenu est spécifié via des intervalles dans la propriété globale du contenu. Actuellement, le seul style de police détecté est l’écriture manuelle. Comme d’autres styles sont ajoutés, le texte peut être décrit via plusieurs objets de style non-conflictuel. Pour des raisons de compacité, tous les textes partageant un style de police particulier (avec la même confiance) sont décrits par un seul objet de style.

Screenshot of detected style handwritten text example.


{
    "confidence": 1,
    "spans": [
        {
            "offset": 2402,
            "length": 7
        }
    ],
    "isHandwritten": true
}

Langage

Un élément de langue décrit la langue détectée pour le contenu spécifié via des intervalles dans la propriété de contenu global. La langue détectée est spécifiée via une balise de langue BCP-47 pour indiquer la langue principale, ainsi que les informations de script et de région facultatives. Par exemple, l’anglais et le chinois traditionnel sont reconnus comme « en » et zh-Hant, respectivement. Les différences d’orthographe régionales pour l’anglais britannique peuvent entraîner la détection de texte telle que En-GB. Les éléments linguistiques n’englobent pas les textes sans langue dominante (ex. : les chiffres).

Éléments sémantiques

Remarque

Les éléments sémantiques décrits ici s’appliquent aux modèles prédéfinis d’Intelligence documentaire. Vos modèles personnalisés peuvent retourner des représentations de données différentes. Par exemple, la date et l’heure retournées par un modèle personnalisé peuvent être représentées dans un modèle différent de la mise en forme ISO 8601 standard.

Document

Un document est une unité sémantiquement complète. Un fichier peut contenir plusieurs documents, tels que plusieurs formulaires fiscaux au sein d’un fichier PDF ou plusieurs reçus dans une seule page. Cependant, l’ordre des documents au sein du fichier n’affecte pas fondamentalement les informations qu’il transmet.

Remarque

Intelligence documentaire ne prend pas actuellement en charge plusieurs documents sur une seule page.

Le type de document décrit des documents partageant un ensemble commun de champs sémantiques, représentés par un schéma structuré, indépendamment de son modèle visuel ou de sa disposition. Par exemple, tous les documents de type « reçu » peuvent contenir le nom du marchand, la date de transaction et le total des transactions, bien que les reçus de restaurant et d’hôtel diffèrent souvent en apparence.

Un élément de document comprend la liste des champs reconnus parmi les champs spécifiés par le schéma sémantique du type de document détecté :

  • Un champ de document peut être extrait ou déduit. Les champs extraits sont représentés par le contenu extrait et éventuellement sa valeur normalisée, si elle est interprétable.

  • Un champ déduit ne contient aucune propriété de contenu et est représenté uniquement par sa valeur.

  • Un champ de tableau ne contient aucune propriété de contenu. Le contenu peut être concaténé à partir du contenu des éléments du tableau.

  • Un champ d’objet contient une propriété de contenu qui spécifie le contenu complet représentant l’objet pouvant être un sur-ensemble des sous-champs extraits.

Le schéma sémantique d’un type de document est décrit par le biais des champs qu’il contient. Chaque schéma de champ est spécifié par son nom canonique et son type de valeur. Les types de valeurs de champ comprennent les types de base (ex. : chaîne), composés (ex. : adresse) et structurés (ex. : tableau, objet). Le type de valeur du champ spécifie également la normalisation sémantique effectuée pour convertir le contenu détecté en une représentation de normalisation. La normalisation peut être dépendante des paramètres régionaux.

Types de base

Type de valeur de champ Description Représentation normalisée Exemple (Contenu du champ -> Valeur)
string Texte brut Identique au contenu MerchantName : « Contoso » → « Contoso »
date Date ISO 8601 - AAAA-MM-JJ InvoiceDate : « 07/05/2022 » → « 2022-05-07 »
time Temps ISO 8601 - hh:mm:ss TransactionTime : « 21:45 » → « 21:45:00 »
phoneNumber Numéro de téléphone E.164 - +{CountryCode}{SubscriberNumber} WorkPhone : « (800) 555-7676 » → « +18005557676 »
countryRegion Pays/région ISO 3166-1 alpha-3 CountryRegion : « États-Unis » → « EUA »
selectionMark Est sélectionné « signé » ou « non signé » AcceptEula : ☑ → « sélectionné »
signature Est signé Identique au contenu LendeeSignature : {signature} → « signé »
nombre Nombre à virgule flottante Nombre à virgule flottante Quantity : « 1.20 » → 1.2
entier Nombre entier Numéro signé 64 bits Count : « 123 » → 123
boolean Valeur booléenne true/false IsStatutoryEmployee : ☑ → vrai

Types composés

  • Devise : montant monétaire avec unité monétaire facultative. Une valeur, par exemple : InvoiceTotal: $123.45

    {
        "amount": 123.45,
        "currencySymbol": "$"
    }
    
  • Address : adresse analysée. Par exemple : ShipToAddress: 123 Main St., Redmond, WA 98052

    {
    "poBox": "PO Box 12",
    "houseNumber": "123",
    "streetName": "Main St.",
    "city": "Redmond",
    "state": "WA",
    "postalCode": "98052",
    "countryRegion": "USA",
    "streetAddress": "123 Main St."
    }
    

Types structurés

  • Array : liste de champs du même type

    "Items": {
        "type": "array",
        "valueArray": [
    
        ]
    }
    
  • Object : liste nommée de sous-champs de types potentiellement différents

    "InvoiceTotal": {
      "type": "currency",
      "valueCurrency": {
          "currencySymbol": "$",
          "amount": 110
      },
      "content": "$110.00",
      "boundingRegions": [
          {
              "pageNumber": 1,
              "polygon": [
                  7.3842,
                  7.465,
                  7.9181,
                  7.465,
                  7.9181,
                  7.6089,
                  7.3842,
                  7.6089
              ]
          }
      ],
      "confidence": 0.945,
      "spans": [
          {
              "offset": 806,
              "length": 7
          }
      ]
    }
    

Étapes suivantes