Qu’est-ce que le modèle de disposition Document Intelligence ?

Ce contenu s’applique à :checkmarkv4.0 (GA) | Versions antérieures :blue-checkmarkv3.1 (GA)red-checkmarkv3.0 (retrait)red-checkmarkv2.1 (mise hors service)

Le modèle de disposition Azure Document Intelligence dans Foundry Tools est une API d’analyse de document avancée basée sur le Machine Learning. Le modèle est disponible dans le cloud Document Intelligence. Vous pouvez l’utiliser pour prendre des documents dans différents formats et retourner des représentations structurées des données des documents. Le modèle combine une version améliorée des puissantes fonctionnalités de reconnaissance optique de caractères (OCR) avec des modèles d’apprentissage profond pour extraire du texte, des tableaux, des marques de sélection et une structure de document.

Analyse de la mise en page de la structure du document

L’analyse de la disposition de structure de document est le processus d’analyse d’un document pour extraire des régions d’intérêt et leurs interconnexions. L’objectif est d’extraire du texte et des éléments structurels de la page pour créer de meilleurs modèles de compréhension sémantique. Il existe deux types de rôles dans une disposition de document :

  • Rôles géométriques : le texte, les tableaux, les figures et les marques de sélection sont des exemples de rôles géométriques.
  • Rôles logiques : titres, titres et pieds de page sont des exemples de rôles logiques de textes.

L’illustration suivante montre les composants typiques d’une image d’un exemple de page.

Illustration montrant un exemple de disposition de document.

Options de développement

Document Intelligence v4.0 : 2024-11-30 (GA) prend en charge les outils, applications et bibliothèques suivants.

Fonction Ressources ID de modèle
Modèle de disposition Document Intelligence Studio
REST API
C# SDK
Python SDK
Java SDK
JavaScript SDK
prebuilt-layout

Langues prises en charge

Pour obtenir la liste complète des langues prises en charge, consultez Prise en charge des langues : Modèles d’analyse de documents.

Types de fichiers pris en charge

Document Intelligence v4.0 : 2024-11-30 (GA) prend en charge les formats de fichier suivants :

Modèle PDF Image :
JPEG/JPG, PNG, BMP, TIFF, HEIF
Office :
Word (DOCX), Excel (XLS), PowerPoint (PPTX), HTML
Mise en page

Exigences pour les données

  • Photos et analyses : pour obtenir de meilleurs résultats, fournissez une photo claire ou une analyse de haute qualité par document.
  • PDF et TIFFs : pour les fichiers PDF et les TIFF, jusqu’à 2 000 pages peuvent être traitées. (Avec un abonnement de niveau gratuit, seules les deux premières pages sont traitées.)
  • Verrous de mot de passe : si vos fichiers PDF sont verrouillés par mot de passe, vous devez supprimer le verrou avant la soumission.
  • Taille du fichier : la taille de fichier pour l’analyse des documents est de 500 Mo pour le niveau payant (S0) et de 4 Mo pour le niveau gratuit (F0).
  • Dimensions de l’image : les dimensions de l’image doivent être comprises entre 50 pixels x 50 pixels et 10 000 pixels x 10 000 pixels.
  • Hauteur du texte : la hauteur minimale du texte à extraire est de 12 pixels pour une image de 1 024 x 768 pixels. Cette dimension correspond à environ 8 points de texte à 150 points par pouce.
  • Entraînement de modèle personnalisé : le nombre maximal de pages pour les données d’apprentissage est de 500 pour le modèle de modèle personnalisé et de 50 000 pour le modèle neuronal personnalisé.
  • Entraînement du modèle d’extraction personnalisé : la taille totale des données d’entraînement est de 50 Mo pour le modèle de modèle et de 1 Go pour le modèle neuronal.
  • Entraînement du modèle de classification personnalisé : la taille totale des données d’apprentissage est de 1 Go avec un maximum de 10 000 pages. Pour 2024-11-30 (GA), la taille totale des données d’apprentissage est de 2 Go avec un maximum de 10 000 pages.
  • Types de fichiers Office (DOCX, XLSX, PPTX) : la limite maximale de longueur de chaîne est de 8 millions de caractères.

Pour plus d’informations sur l’utilisation du modèle, les quotas et les limites de service, consultez Limites de service.

Prise en main du modèle de mise en page

Découvrez comment les données, y compris du texte, des tableaux, des en-têtes de tableau, des marques de sélection et des informations de structure, sont extraites de documents à l’aide de Document Intelligence. Vous avez besoin des ressources suivantes :

  • Un abonnement Azure. Vous pouvez en créer un gratuitement.

  • Une instance Document Intelligence dans le portail Azure. Vous pouvez utiliser le niveau tarifaire gratuit (F0) pour essayer le service. Une fois votre ressource déployée, sélectionnez Accéder à la ressource pour obtenir votre clé et votre point de terminaison.

    Screenshot qui affiche les clés et l’emplacement du point de terminaison dans le portail Azure.

Après avoir récupéré votre clé et votre point de terminaison, utilisez les options de développement suivantes pour générer et déployer vos applications Document Intelligence.

Extraction de données

Le modèle de disposition extrait des éléments structurels de vos documents. Les éléments structurels suivants sont décrits dans le reste de cet article, ainsi que des conseils sur la façon de les extraire de votre entrée de document :

Exécutez l’analyse de document de mise en page exemple dans Document Intelligence Studio. Accédez ensuite à l’onglet résultats et accédez à la sortie JSON complète.

Capture d’écran montrant les résultats sous l’onglet sortie JSON dans Document Intelligence Studio.

Pages

La pages collection est une liste de pages dans le document. Chaque page est représentée séquentiellement dans le document et inclut l’angle d’orientation, qui indique si la page est pivotée et la largeur et la hauteur (dimensions en pixels). Les unités de page dans la sortie du modèle sont calculées comme indiqué dans le tableau suivant.

Format de fichier Unité de page calculée Nombre total de pages
Images (JPEG/JPG, PNG, BMP, HEIF) Chaque image = 1 unité de page. Nombre total d’images
PDF Chaque page au format PDF = 1 unité de page. Nombre total de pages au format PDF
TIFF Chaque image dans le TIFF = 1 unité de page. Total des images dans le TIFF
Word (DOCX) Jusqu’à 3 000 caractères = 1 unité de page. Les images incorporées ou liées ne sont pas prises en charge. Nombre total de pages allant jusqu’à 3 000 caractères chacun
Excel (XLSX) Chaque feuille de calcul = 1 unité de page. Les images incorporées ou liées ne sont pas prises en charge. Nombre total de feuilles de calcul
PowerPoint (PPTX) Chaque diapositive = 1 unité de page. Les images incorporées ou liées ne sont pas prises en charge. Nombre total de diapositives
HTML Jusqu’à 3 000 caractères = 1 unité de page. Les images incorporées ou liées ne sont pas prises en charge. Nombre total de pages allant jusqu’à 3 000 caractères chacun
# 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}")

Extraire les pages sélectionnées

Pour les documents multipage volumineux, utilisez le pages paramètre de requête pour indiquer des numéros de page ou des plages de pages spécifiques pour l’extraction de texte.

Paragraphes

Le modèle de disposition extrait tous les blocs de texte identifiés dans la paragraphs collection en tant qu’objet de niveau supérieur sous analyzeResults. Chaque entrée de cette collection représente un bloc de texte et inclut le texte extrait sous la forme de content et les coordonnées englobantes polygon. L'information spans pointe vers le fragment de texte dans la propriété de niveau supérieur content qui contient le texte intégral du document.


"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"
    }
]

Rôles de paragraphe

La nouvelle détection d’objets de page basée sur le Machine Learning extrait des rôles logiques tels que les titres, les en-têtes de section, les en-têtes de page, les pieds de page, etc. Le modèle de disposition Document Intelligence affecte certains blocs de texte de la paragraphs collection avec leur rôle ou type spécialisé prédit par le modèle.

Il est préférable d’utiliser des rôles de paragraphe avec des documents non structurés pour mieux comprendre la disposition du contenu extrait pour une analyse sémantique plus riche. Les rôles de paragraphe suivants sont pris en charge.

Rôle prédit Description Types de fichiers pris en charge
title Les principaux en-têtes de la page PDF, Image, DOCX, PPTX, XLSX, HTML
sectionHeading Un ou plusieurs sous-titres sur la page PDF, Image, DOCX, XLSX, HTML
footnote Texte proche du bas de la page PDF, Image
pageHeader Texte proche du bord supérieur de la page PDF, Image, DOCX
pageFooter Texte proche du bord inférieur de la page PDF, Image, DOCX, PPTX, HTML
pageNumber Numéro de page PDF, Image
{
    "paragraphs": [
                {
                    "spans": [],
                    "boundingRegions": [],
                    "role": "title",
                    "content": "NEWS TODAY"
                },
                {
                    "spans": [],
                    "boundingRegions": [],
                    "role": "sectionHeading",
                    "content": "Mirjam Nilsson"
                }
    ]
}

Texte, lignes et mots

Le modèle de disposition de document dans Document Intelligence extrait le texte imprimé et manuscrit en tant que lines et words. La collection styles inclut tout style manuscrit détecté pour les lignes ainsi que les étendues pointant vers le texte associé. Cette fonctionnalité s’applique aux langues manuscrites prises en charge.

Pour Microsoft Word, Excel, PowerPoint et HTML, le modèle de disposition Document Intelligence v4.0 2024-11-30 (GA) extrait tout le texte incorporé tel quel. Les textes sont extraits sous forme de mots et de paragraphes. Les images incorporées ne sont pas prises en charge.

# 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}")

Style manuscrit pour les lignes de texte

La réponse inclut si chaque ligne de texte est dans un style manuscrit ou non, ainsi qu’un score de confiance. Pour plus d’informations, consultez la prise en charge de la langue manuscrite. L’exemple suivant montre un exemple d’extrait de code JSON.

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

Si vous activez la fonctionnalité de complément de police/style, vous obtenez également le résultat de police/style dans le cadre de l’objet styles.

Marques de sélection

Le modèle de disposition extrait également les marques de sélection des documents. Les marques de sélection extraites apparaissent dans la pages collection pour chaque page. Elles incluent le polygon limitrophe, confidence et la sélection state (selected/unselected). La représentation textuelle (autrement dit, :selected: et :unselected) est également incluse en tant qu’index de départ (offset) et length qui fait référence à la propriété de niveau content supérieur qui contient le texte intégral du document.

# 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}"
        )

Tables

L’extraction de tables est une condition essentielle pour le traitement des documents qui contiennent de grands volumes de données généralement mis en forme en tant que tables. Le modèle de disposition extrait les tables de la pageResults section de la sortie JSON. Les informations de table extraites incluent le nombre de colonnes et de lignes, l’étendue de ligne et l’étendue de colonne.

Chaque cellule avec son polygone limitrophe est une sortie avec des informations que la zone soit reconnue comme columnHeader ou non. Le modèle prend en charge l’extraction de tableaux pivotés. Chaque cellule de tableau contient l’index de ligne et de colonne et les coordonnées du polygone de délimitation. Pour le texte de cellule, le modèle génère les informations span contenant l’index de démarrage (offset). Le modèle génère également le length au sein du contenu de niveau supérieur, lequel contient le texte intégral du document.

Voici quelques facteurs à prendre en compte lorsque vous utilisez la fonctionnalité d’extraction de documents avec l'intelligence artificielle :

  • Les données que vous souhaitez extraire sont-elles présentées sous forme de table et la structure de la table est-elle significative ?
  • Les données peuvent-elles s’adapter à une grille à deux dimensions si les données ne sont pas au format de tableau ?
  • Vos tables s’étendent-elles sur plusieurs pages ? Dans ce cas, pour éviter d’avoir à étiqueter toutes les pages, fractionnez le PDF en pages avant de l’envoyer à Document Intelligence. Après l’analyse, effectuez un post-traitement des pages dans un tableau unique.
  • Consultez les champs tabulaires si vous créez des modèles personnalisés. Les tables dynamiques ont un nombre variable de lignes pour chaque colonne. Les tables fixes ont un nombre constant de lignes pour chaque colonne.

Note

L’analyse de table n’est pas prise en charge si le fichier d’entrée est XLSX. Pour 2024-11-30 (GA), les régions englobantes pour les figures et les tableaux couvrent uniquement le contenu principal et excluent la légende et les notes de bas de page associées.

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}'")

Réponse de sortie au format Markdown

L’API de disposition peut générer le texte extrait au format Markdown. Utilisez la outputContentFormat=markdown commande pour spécifier le format de sortie dans Markdown. Le contenu Markdown est généré dans le cadre de la content section.

Note

Pour v4.0 2024-11-30 (GA), la représentation des tables est modifiée en tables HTML pour permettre le rendu d’éléments tels que les cellules fusionnées et les en-têtes multirow. Une autre modification associée consiste à utiliser les caractères ☒ de case à cocher Unicode et ☐ pour les marques de sélection au lieu de :selected: et :unselected:. Cette mise à jour signifie que le contenu des champs de marque de sélection contient :selected: même si leurs étendues font référence aux caractères Unicode dans l’étendue de niveau supérieur. Pour obtenir une définition complète des éléments Markdown, consultez le format de sortie 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,
)

Figures

Les figures (graphiques et images) dans les documents jouent un rôle crucial dans le complément et l’amélioration du contenu textuel. Ils fournissent des représentations visuelles qui facilitent la compréhension des informations complexes. L’objet figures détecté par le modèle de disposition a des propriétés clés telles que :

  • boundingRegions: emplacements spatiaux de la figure sur les pages de document, y compris le numéro de page et les coordonnées de polygones qui décrivent la limite de la figure.
  • spans : le texte s’étend en fonction de la figure qui spécifie 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.
  • caption: description s’il en existe une.

Lorsqu’on spécifie output=figures lors de l’opération d’analyse initiale, le service génère des images rognées pour toutes les figures détectées accessibles via /analyeResults/{resultId}/figures/{figureId}. La valeur FigureId est l’ID inclus dans chaque objet figure, suivant une convention non documentée de {pageNumber}.{figureIndex}figureIndex réinitialise à une par page.

Pour v4.0 2024-11-30 (GA), les régions englobantes pour les figures et les tableaux couvrent uniquement le contenu principal et excluent la légende et les notes de bas de page associées.

# 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}'")

Rubriques

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 les sous-sections de la sortie, qui identifient la relation des sections et des objets dans chaque section. La structure hiérarchique est conservée dans elements pour chaque section. Vous pouvez utiliser la réponse de sortie au format Markdown pour obtenir facilement les sections et les sous-sections dans 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,
)

Ce contenu s’applique à :checkmarkv3.1 (GA) | Dernière version :purple-checkmarkv4.0 (GA) | Versions antérieures :blue-checkmarkv3.0blue-checkmarkv2.1

Ce contenu s’applique à :red-checkmarkv3.0 (mise hors service) | Versions les plus récentes:coche-violettev4.0 (Disponibilité générale)coche-violettev3.1 | Version antérieure :coche-bleuev2.1 (mise hors service)

Ce contenu s’applique à :red-checkmarkv2.1 | Dernière version :blue-checkmarkv4.0 (GA)

Le modèle de disposition Document Intelligence est une API d’analyse de document avancée. Le modèle est basé sur le Machine Learning et est disponible dans le cloud Document Intelligence. Vous pouvez l’utiliser pour prendre des documents dans différents formats et retourner des représentations structurées des données des documents. Il combine une version améliorée des puissantes fonctionnalités OCR avec des modèles d’apprentissage profond. Vous pouvez l’utiliser pour extraire du texte, des tableaux, des marques de sélection et une structure de document.

Analyse de la disposition du document

L’analyse de la disposition de structure de document est le processus d’analyse d’un document pour extraire des régions d’intérêt et leurs interconnexions. L’objectif est d’extraire du texte et des éléments structurels de la page pour créer de meilleurs modèles de compréhension sémantique. Il existe deux types de rôles dans une disposition de document :

  • Rôles géométriques : le texte, les tableaux, les figures et les marques de sélection sont des exemples de rôles géométriques.
  • Rôles logiques : titres, titres et pieds de page sont des exemples de rôles logiques de textes.

L’illustration suivante montre les composants typiques d’une image d’un exemple de page.

Illustration montrant un exemple de disposition de document.

Langues et paramètres régionaux pris en charge

Pour obtenir la liste complète des langues prises en charge, consultez Prise en charge des langues : Modèles d’analyse de documents.

Document Intelligence v2.1 prend en charge les outils, applications et bibliothèques suivants.

Fonction Ressources
Modèle de disposition Outil d’annotation de Document Intelligence
API REST
SDK de bibliothèque cliente
Conteneur Docker Document Intelligence

Conseils d’entrée

Formats de fichiers pris en charge :

Modèle PDF Image :
JPEG/JPG, PNG, BMP, TIFF, HEIF
Office :
Word (DOCX), Excel (XLSX), PowerPoint (PPTX), HTML
Lire
Mise en page
Document général
Préassemblé
Extraction personnalisée
Classification personnalisée
  • Photos et analyses : pour obtenir de meilleurs résultats, fournissez une photo claire ou une analyse de haute qualité par document.
  • PDF et TIFFs : Pour les fichiers PDF et les TIFF, jusqu’à 2 000 pages peuvent être traitées avec un abonnement de niveau gratuit. Seules les deux premières pages sont traitées.
  • Taille du fichier : la taille de fichier pour l’analyse des documents est de 500 Mo pour le niveau payant (S0) et de 4 Mo pour le niveau gratuit (F0).
  • Dimensions de l’image : les dimensions de l’image doivent être comprises entre 50 pixels x 50 pixels et 10 000 pixels x 10 000 pixels.
  • Verrous de mot de passe : si vos fichiers PDF sont verrouillés par mot de passe, vous devez supprimer le verrou avant la soumission.
  • Hauteur du texte : la hauteur minimale du texte à extraire est de 12 pixels pour une image de 1 024 x 768 pixels. Cette dimension correspond à environ 8 points de texte à 150 points par pouce.
  • Entraînement de modèle personnalisé : le nombre maximal de pages pour les données d’apprentissage est de 500 pour le modèle de modèle personnalisé et de 50 000 pour le modèle neuronal personnalisé.
  • Entraînement du modèle d’extraction personnalisé : la taille totale des données d’entraînement est de 50 Mo pour le modèle de modèle et de 1 Go pour le modèle neuronal.
  • Entraînement du modèle de classification personnalisé : la taille totale des données d’apprentissage est de 1 Go avec un maximum de 10 000 pages. Pour 2024-11-30 (GA), la taille totale des données d’apprentissage est de 2 Go avec un maximum de 10 000 pages.
  • Types de fichiers Office (DOCX, XLSX, PPTX) : la limite maximale de longueur de chaîne est de 8 millions de caractères.

Guide de saisie

  • Formats de fichiers pris en charge : JPEG, PNG, PDF et TIFF.
  • Nombre de pages pris en charge : pour PDF et TIFF, jusqu’à 2 000 pages sont traitées. Pour les abonnés de niveau gratuit, seules les deux premières pages sont traitées.
  • Taille de fichier prise en charge : la taille du fichier doit être inférieure à 50 Mo, et les dimensions doivent être d’au moins 50 x 50 pixels et au maximum 10 000 x 10 000 pixels.

Commencez

Vous pouvez utiliser Document Intelligence pour extraire des données telles que du texte, des tableaux, des en-têtes de tableau, des marques de sélection et des informations de structure à partir de documents. Vous avez besoin des ressources suivantes :

  • Un abonnement Azure. Vous pouvez en créer un gratuitement.
  • Une instance Document Intelligence dans le portail Azure. Vous pouvez utiliser le niveau tarifaire gratuit (F0) pour essayer le service. Une fois votre ressource déployée, sélectionnez Accéder à la ressource pour obtenir votre clé et votre point de terminaison.

Screenshot qui affiche les clés et l’emplacement du point de terminaison dans le portail Azure.

Après avoir récupéré votre clé et votre point de terminaison, vous pouvez utiliser les options de développement suivantes pour générer et déployer vos applications Document Intelligence.

Note

Document Intelligence Studio est disponible avec les API v3.0 et versions ultérieures.

REST API

Outil d’étiquetage d’exemples pour Document Intelligence

  1. Accédez à l’outil d’étiquetage des échantillons Document Intelligence.

  2. Dans l’exemple de page d’accueil de l’outil, sélectionnez Utiliser la disposition pour obtenir du texte, des tableaux et des marques de sélection.

    Capture d’écran montrant les paramètres de connexion pour le processus de disposition Document Intelligence.

  3. Dans le champ point de terminaison du service Document Intelligence , collez le point de terminaison que vous avez obtenu avec votre abonnement Document Intelligence.

  4. Dans le champ clé , collez la clé que vous avez obtenue à partir de votre ressource Document Intelligence.

  5. Dans le champ Source , sélectionnez l’URL dans le menu déroulant. Vous pouvez utiliser l’exemple de document :

  6. Sélectionnez Lancer la mise en page. L’outil d’étiquetage des exemples d’Intelligence Documentaire appelle l’API Analyze Layout pour analyser le document.

    Capture d’écran montrant le volet déroulant Disposition.

  7. Affichez les résultats. Consultez le texte extrait en surbrillance, les marques de sélection détectées et les tables détectées.

    Capture d’écran montrant les paramètres de connexion de l’outil d'étiquetage pour Document Intelligence Sample.

Document Intelligence v2.1 prend en charge les outils, applications et bibliothèques suivants.

Fonction Ressources
API d'agencement Outil d’annotation de Document Intelligence
API REST
SDK de bibliothèque cliente
Conteneur Docker Document Intelligence

Extraire des données

Le modèle de disposition extrait des éléments structurels de vos documents. Les éléments structurels sont décrits ici, et les instructions suivantes vous montrent comment les extraire de votre entrée de document.

Extraire des données

Le modèle de disposition extrait des éléments structurels de vos documents. Les éléments structurels sont décrits ici, et les instructions suivantes vous montrent comment les extraire de votre entrée de document.

Page

La pages collection est une liste de pages dans le document. Chaque page est représentée séquentiellement dans le document et inclut l’angle d’orientation qui indique si la page est pivotée et la largeur et la hauteur (dimensions en pixels). Les unités de page dans la sortie du modèle sont calculées comme indiqué dans le tableau suivant.

Format de fichier Unité de page calculée Nombre total de pages
Images (JPEG/JPG, PNG, BMP, HEIF) Chaque image = 1 unité de page. Nombre total d’images
PDF Chaque page au format PDF = 1 unité de page. Nombre total de pages au format PDF
TIFF Chaque image dans le TIFF = 1 unité de page. Total des images dans le TIFF
Word (DOCX) Jusqu’à 3 000 caractères = 1 unité de page. Les images incorporées ou liées ne sont pas prises en charge. Nombre total de pages allant jusqu’à 3 000 caractères chacun
Excel (XLSX) Chaque feuille de calcul = 1 unité de page. Les images incorporées ou liées ne sont pas prises en charge. Nombre total de feuilles de calcul
PowerPoint (PPTX) Chaque diapositive = 1 unité de page. Les images incorporées ou liées ne sont pas prises en charge. Nombre total de diapositives
HTML Jusqu’à 3 000 caractères = 1 unité de page. Les images incorporées ou liées ne sont pas prises en charge. Nombre total de pages allant jusqu’à 3 000 caractères chacun
"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}"
    )

Extraire des pages sélectionnées à partir de documents

Pour les documents multipage volumineux, utilisez le pages paramètre de requête pour indiquer des numéros de page ou des plages de pages spécifiques pour l’extraction de texte.

Paragraphe

Le modèle de disposition extrait tous les blocs de texte identifiés dans la paragraphs collection en tant qu’objet de niveau supérieur sous analyzeResults. Chaque entrée de cette collection représente un bloc de texte et inclut le texte extrait sous la forme content et les coordonnées polygon limitrophes. L'information span pointe vers le fragment de texte dans la propriété de niveau supérieur content qui contient le texte intégral du document.


"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"
    }
]

Rôle de paragraphe

La nouvelle détection d’objets de page basée sur le Machine Learning extrait des rôles logiques tels que les titres, les en-têtes de section, les en-têtes de page, les pieds de page, etc. Le modèle de disposition Document Intelligence affecte certains blocs de texte de la paragraphs collection avec leur rôle ou type spécialisé prédit par le modèle. Il est préférable d’utiliser des rôles de paragraphe avec des documents non structurés pour mieux comprendre la disposition du contenu extrait pour une analyse sémantique plus riche. Les rôles de paragraphe suivants sont pris en charge.

Rôle prédit Description Types de fichiers pris en charge
title Les en-têtes principaux de la page PDF, Image, DOCX, PPTX, XLSX, HTML
sectionHeading Un ou plusieurs sous-titres sur la page PDF, Image, DOCX, XLSX, HTML
footnote Texte proche du bas de la page PDF, Image
pageHeader Texte proche du bord supérieur de la page PDF, Image, DOCX
pageFooter Texte proche du bord inférieur de la page PDF, Image, DOCX, PPTX, HTML
pageNumber Numéro de page PDF, Image
{
    "paragraphs": [
                {
                    "spans": [],
                    "boundingRegions": [],
                    "role": "title",
                    "content": "NEWS TODAY"
                },
                {
                    "spans": [],
                    "boundingRegions": [],
                    "role": "sectionHeading",
                    "content": "Mirjam Nilsson"
                }
    ]
}

Texte, ligne et mot

Le modèle de disposition de document dans Document Intelligence extrait le texte imprimé et manuscrit sous forme de lignes et de mots. La collection styles inclut un style manuscrit pour les lignes si détectées, ainsi que les étendues qui pointent vers le texte associé. Cette fonctionnalité s’applique aux langues manuscrites prises en charge.

Pour Word, Excel, PowerPoint et HTML, le modèle de disposition Document Intelligence v4.0 2024-11-30 (GA) extrait tout le texte incorporé tel quel. Les textes sont extraits sous forme de mots et de paragraphes. Les images incorporées ne sont pas prises en charge.

"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}"
        )

Style manuscrit

La réponse inclut la classification si chaque ligne de texte est de style d’écriture manuscrite ou non, ainsi qu’un score de confiance. Pour plus d’informations, consultez la prise en charge de la langue manuscrite. L’exemple suivant montre un exemple d’extrait de code JSON.

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

Si vous activez la fonctionnalité de complément de police/style, vous obtenez également le résultat de police/style dans le cadre de l’objet styles.

Marque de sélection

Le modèle de disposition extrait également les marques de sélection des documents. Les marques de sélection extraites apparaissent dans la pages collection pour chaque page. Elles incluent le polygon limitrophe, confidence et la sélection state (selected/unselected). La représentation textuelle (autrement dit, :selected: et :unselected) est également incluse en tant qu’index de départ (offset) et length qui fait référence à la propriété de niveau content supérieur qui contient le texte intégral du document.

{
    "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}"
    )

Tableau

L’extraction de tables est une condition essentielle pour le traitement des documents qui contiennent de grands volumes de données généralement mis en forme en tant que tables. Le modèle de disposition extrait les tables de la pageResults section de la sortie JSON. Les informations de table extraites incluent le nombre de colonnes et de lignes, l’étendue de ligne et l’étendue de colonne. Chaque cellule avec son polygone limitrophe est une sortie avec des informations que la zone soit reconnue comme columnHeader ou non.

Le modèle prend en charge l’extraction de tableaux pivotés. Chaque cellule de tableau contient l’index de ligne et de colonne et les coordonnées du polygone de délimitation. Pour le texte de cellule, le modèle génère les informations span contenant l’index de démarrage (offset). Le modèle génère également le length au sein du contenu de niveau supérieur, lequel contient le texte intégral du document.

Voici quelques facteurs à prendre en compte lorsque vous utilisez la fonctionnalité d’extraction de documents avec l'intelligence artificielle :

  • Les données que vous souhaitez extraire sont-elles présentées sous forme de table et la structure de la table est-elle significative ?
  • Les données peuvent-elles s’adapter à une grille à deux dimensions si les données ne sont pas au format de tableau ?
  • Vos tables s’étendent-elles sur plusieurs pages ? Dans ce cas, pour éviter d’avoir à étiqueter toutes les pages, fractionnez le PDF en pages avant de l’envoyer à Document Intelligence. Après l’analyse, effectuez un post-traitement des pages dans un tableau unique.
  • Consultez les champs tabulaires si vous créez des modèles personnalisés. Les tables dynamiques ont un nombre variable de lignes pour chaque colonne. Les tables fixes ont un nombre constant de lignes pour chaque colonne.

Note

L’analyse de table n’est pas prise en charge si le fichier d’entrée est XLSX. Document Intelligence v4.0 2024-11-30 (GA) prend en charge les régions englobantes pour les figures et les tableaux qui couvrent uniquement le contenu principal et exclut la légende et les notes de bas de page associées.

{
    "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)}'"
            )

Annotations

Le modèle de disposition extrait les annotations dans les documents, telles que les vérifications et les croisements. La réponse inclut le type d’annotation, ainsi qu’un score de confiance et un polygone englobant.

    {
    "pages": [
    {
        "annotations": [
        {
            "kind": "cross",
            "polygon": [...],
            "confidence": 1
        }
        ]
    }
    ]
}

Résultat de l’ordre de lecture naturel (Latin uniquement)

Vous pouvez spécifier l’ordre dans lequel les lignes de texte sont générées avec le readingOrder paramètre de requête. Utilisez natural pour une sortie d’ordre de lecture plus conviviale, comme illustré dans l’exemple suivant. Cette fonctionnalité est prise en charge uniquement pour les langues latines.

Capture d'écran du traitement des commandes de lecture selon le modèle de disposition.

Sélectionner le numéro de page ou la plage pour l’extraction de texte

Pour les documents multipage volumineux, utilisez le pages paramètre de requête pour indiquer des numéros de page ou des plages de pages spécifiques pour l’extraction de texte. L’exemple suivant montre un document avec 10 pages, avec du texte extrait pour les deux cas, toutes les pages (1 à 10) et les pages sélectionnées (3-6).

Capture d’écran montrant la sortie des pages sélectionnées du modèle de disposition.

Opération pour obtenir le résultat de l'analyse de mise en page

La deuxième étape consiste à appeler l’opération Get Analyze Layout Result . Cette opération prend comme entrée l’ID de résultat que l’opération Analyze Layout a créée. Elle retourne une réponse JSON qui contient un champ d’état avec les valeurs possibles suivantes.

Champ Type Valeurs possibles
Statut string notStarted: L’opération d’analyse n’est pas démarrée.

running : L’opération d’analyse est en cours.

failed : L’opération d’analyse a échoué.

succeeded : L’opération d’analyse a réussi.

Appelez cette opération de manière itérative jusqu’à ce qu’elle retourne la succeeded valeur. Pour éviter de dépasser le taux de requêtes par seconde, utilisez un intervalle de trois à cinq secondes.

Lorsque le champ d’état a la succeeded valeur, la réponse JSON inclut la disposition extraite, le texte, les tableaux et les marques de sélection. Les données extraites comprennent les lignes de texte et les mots extraits, les cadres englobants, l’aspect du texte avec indication manuscrite, les tableaux et les marques de sélection avec indication de sélection/non sélection.

Classification manuscrite pour les lignes de texte (latin uniquement)

La réponse inclut la classification si chaque ligne de texte est d’un style manuscrit ou non, ainsi qu’un score de confiance. Cette fonctionnalité est prise en charge uniquement pour les langues latines. L’exemple suivant montre la classification manuscrite du texte dans l’image.

Capture d’écran montrant le processus de classification de l’écriture manuscrite du modèle de disposition.

Exemple de sortie JSON

La réponse à l’opération Get Analyze Layout Result est une représentation structurée du document avec toutes les informations extraites. Reportez-vous à cet exemple de fichier de document et cet exemple de sortie de disposition structurée.

La sortie JSON comporte deux parties :

  • Le readResults nœud contient tout le texte reconnu et la marque de sélection. La hiérarchie de présentation de texte est la page, la ligne, puis les mots individuels.
  • Le nœud pageResults contient les tables et les cellules extraites avec leurs cadres englobants, la confiance et une référence aux lignes et aux mots dans le champ readResults.

Exemple de sortie

Texte

L’API de disposition extrait le texte de documents et d’images avec plusieurs angles de texte et couleurs. Il accepte des photos de documents, de télécopies, de texte imprimé et/ou manuscrit (anglais uniquement) et de modes mixtes. Le texte est extrait avec des informations fournies sur les lignes, les mots, les cadres englobants, les scores de confiance et le style (manuscrit ou autre). Toutes les informations de texte sont incluses dans la readResults section de la sortie JSON.

Tables avec en-têtes

L’API Layout extrait des tables dans la pageResults section de la sortie JSON. Vous pouvez scanner, photographier ou numériser des documents. Les tableaux peuvent être complexes avec des cellules ou des colonnes fusionnées, avec ou sans bordures, et avec des angles impairs.

Les informations de table extraites incluent le nombre de colonnes et de lignes, l’étendue de ligne et l’étendue de colonne. Chaque cellule avec son cadre englobant est une sortie avec la zone qui est reconnue comme faisant partie, ou non, d’un en-tête. Les cellules d’en-tête prédites par modèle peuvent s’étendre sur plusieurs lignes et ne sont pas nécessairement les premières lignes d’un tableau. Ils fonctionnent également avec des tables pivotées. Chaque cellule de tableau inclut également le texte intégral avec des références aux mots individuels de la readResults section.

Illustration montrant un exemple de tables.

Marques de sélection (documents)

L’API de disposition extrait également les marques de sélection des documents. Les marques de sélection extraites incluent le cadre englobant, la confiance et l’état (sélectionné/non sélectionné). Les informations de marque de sélection sont extraites dans la readResults section de la sortie JSON.

Guide de migration