

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Fonctionnement d'Amazon Textract
<a name="how-it-works"></a>

Amazon Textract vous permet de détecter et d'analyser du texte dans des documents d'entrée sur une ou plusieurs pages (voir[Documents de saisie](how-it-works-documents.md)). 

Amazon Textract fournit des opérations pour les actions suivantes.
+ Détection du texte uniquement. Pour plus d'informations, consultez la section .[Détection de texte](how-it-works-detecting.md).
+ Détecter et analyser les relations entre le texte. Pour plus d'informations, consultez la section .[Analyse des documents](how-it-works-analyzing.md).
+ Détection et analyse du texte dans les factures et les reçus. Pour plus d'informations, consultez la section .[Analyse des factures et des reçus](invoices-receipts.md).
+ Détection et analyse de texte dans les documents d'identité gouvernementaux. Pour plus d'informations, consultez la section .[Analyse des documents d'identité](how-it-works-identity.md).

Amazon Textract fournit des opérations synchrone pour le traitement de petits documents d'une seule page et avec des réponses quasi en temps réel. Pour plus d'informations, consultez [Traitement de documents avec des opérations synchrone](sync.md). Amazon Textract fournit également des opérations asynchrones que vous pouvez utiliser pour traiter des documents plus volumineux sur plusieurs pages. Les réponses asynchrones ne sont pas en temps réel. Pour plus d'informations, consultez [Traitement de documents avec des opérations asynchrones](async.md). 

Lorsqu'une opération Amazon Textract traite un document, les résultats sont renvoyés dans un tableau de[Block](API_Block.md)ou tableau d'objets[ExpenseDocument](API_ExpenseDocument.md)objets. Les deux objets contiennent des informations détectées sur les éléments, y compris leur emplacement sur le document et leur relation avec d'autres éléments du document. Pour plus d'informations, consultez [Objets de réponse Amazon Textract](how-it-works-document-response.md). Pour obtenir des exemples illustrant l'utilisation`Block`objets, voir[Tutoriels](examples-blocks.md).

**Topics**
+ [

# Détection de texte
](how-it-works-detecting.md)
+ [

# Analyse des documents
](how-it-works-analyzing.md)
+ [

# Analyse des factures et des reçus
](invoices-receipts.md)
+ [

# Analyse des documents d'identité
](how-it-works-identity.md)
+ [

# Documents de saisie
](how-it-works-documents.md)
+ [

# Objets de réponse Amazon Textract
](how-it-works-document-response.md)
+ [

# Emplacement de l'article sur une page de document
](text-location.md)

# Détection de texte
<a name="how-it-works-detecting"></a>

Amazon Textract fournit des opérations synchrone et asynchrone qui renvoient uniquement le texte détecté dans un document. Pour les deux ensembles d'opérations, les informations suivantes sont renvoyées en plusieurs[Block](API_Block.md)objets.
+ Les lignes et les mots du texte détecté
+ Les relations entre les lignes et les mots du texte détecté
+ La page sur laquelle le texte détecté apparaît
+ L'emplacement des lignes et des mots de texte sur la page de document

Pour plus d'informations, consultez [Lignes et mots de texte](how-it-works-lines-words.md).

Pour détecter le texte de manière synchrone, utilisez le[DetectDocumentText](API_DetectDocumentText.md)Fonctionnement de l'API et transmet un fichier de document en entrée. L'ensemble des résultats est renvoyé par l'opération. Pour plus d'informations et pour voir un exemple, consultez [Traitement de documents avec des opérations synchrone](sync.md). 

**Note**  
Opération d'API Amazon Rekognition`DetectText`est différent de`DetectDocumentText`. Vous utilisez`DetectText`pour détecter du texte dans des scènes en direct, telles que des affiches ou des panneaux de signalisation routière.

Pour détecter du texte de manière asynchrone, utilisez[StartDocumentTextDetection](API_StartDocumentTextDetection.md)pour commencer le traitement d'un fichier de document d'entrée. Pour obtenir les résultats, appelez[GetDocumentTextDetection](API_GetDocumentTextDetection.md). Les résultats sont renvoyés dans une ou plusieurs réponses de`GetDocumentTextDetection`. Pour plus d'informations et pour voir un exemple, consultez [Traitement de documents avec des opérations asynchrones](async.md). 

# Analyse des documents
<a name="how-it-works-analyzing"></a>

Amazon Textract analyse les documents et les formulaires à la recherche de relations entre le texte détecté. Les opérations d'analyse Amazon Textract renvoient trois catégories d'extraction de documents : texte, formulaires et tableaux. L'analyse des factures et des reçus est gérée par un processus différent. Pour plus d'informations, voir[Analyse des factures et des reçus](invoices-receipts.md).

**Extraction de texte**  
Texte brut extrait d'un document. Pour de plus amples informations, veuillez consulter[Lignes et mots de texte](how-it-works-lines-words.md).

**Extraction de formulaire**  
Les données de formulaire sont liées à des éléments de texte extraits d'un document. Amazon Textract représente les données de formulaire sous forme de paires clé-valeur. Dans l'exemple suivant, l'une des lignes de texte détectées par Amazon Textract est*Name : Jane Die*. Amazon Textract identifie également une clé (*Name :*) et une valeur (*Jane Die*). Pour de plus amples informations, veuillez consulter[Données de formulaire (paires clé-valeur)](how-it-works-kvp.md).

*Name : Jane Die*

*Adresse : 123 Any Street, Anytown, États-Unis*

*Date de naissance : 26-1980*

Les paires clé-valeur sont également utilisées pour représenter des cases à cocher ou des boutons d'option (boutons radio) extraits des formulaires.

*Homme :*☑

Pour de plus amples informations, veuillez consulter[Éléments de sélection](how-it-works-selectables.md).

**Extraction de table**  
Amazon Textract peut extraire des tables, des cellules de tableau et les éléments contenus dans des cellules de tableau et peut être programmé pour renvoyer les résultats dans un fichier JSON, .csv ou .txt.


| Nom | Address | 
| --- | --- | 
|  Ana Caroline  |  123 Any Town  | 

Pour de plus amples informations, veuillez consulter [Tables](how-it-works-tables.md). Les éléments de sélection peuvent également être extraits des tableaux. Pour de plus amples informations, veuillez consulter[Éléments de sélection](how-it-works-selectables.md).

Pour les articles analysés, Amazon Textract renvoie ce qui suit en plusieurs[Block](API_Block.md)objets :
+ Les lignes et les mots du texte détecté
+ Le contenu des éléments détectés
+ La relation entre les éléments détectés
+ La page sur laquelle l'élément a été détecté
+ L'emplacement de l'élément sur la page de document

Vous pouvez utiliser des opérations synchrone ou asynchrone pour analyser du texte dans un document. Pour analyser du texte de manière synchrone, utilisez le[AnalyzeDocument](API_AnalyzeDocument.md)et transmettez un document en entrée.`AnalyzeDocument`renvoie l'ensemble des résultats. Pour plus d'informations, consultez [Analyse du texte du document avec Amazon Textract](analyzing-document-text.md). 

Pour détecter du texte de manière asynchrone, utilisez[StartDocumentAnalysis](API_StartDocumentAnalysis.md)pour commencer le traitement. Pour obtenir les résultats, appelez[GetDocumentAnalysis](API_GetDocumentAnalysis.md). Les résultats sont renvoyés dans une ou plusieurs réponses de`GetDocumentAnalysis`. Pour plus d'informations et pour voir un exemple, consultez [Détection ou analyse de texte dans un document multipage](async-analyzing-with-sqs.md). 

Pour spécifier le type d'analyse à effectuer, vous pouvez utiliser le`FeatureTypes`paramètre d'entrée de liste. Ajoutez TABLES à la liste pour renvoyer des informations sur les tables détectées dans le document en entrée, par exemple les cellules du tableau, le texte de cellule et les éléments de sélection dans les cellules. Ajoutez FORMS pour renvoyer des relations entre mots, telles que des paires clé-valeur et des éléments de sélection. Pour effectuer les deux types d'analyse, ajoutez TABLES et FORMS à`FeatureTypes`. 

Toutes les lignes et tous les mots détectés dans le document sont inclus dans la réponse (y compris le texte non lié à la valeur de`FeatureTypes`).

# Analyse des factures et des reçus
<a name="invoices-receipts"></a>

Amazon Textract extrait des données pertinentes telles que les informations de contact, les articles achetés et le nom du fournisseur, à partir de presque n'importe quelle facture ou reçu sans aucun modèle ni configuration. Les factures et les reçus utilisent souvent diverses mises en page, ce qui rend difficile et chronophage l'extraction manuelle des données à grande échelle. Amazon Textract utilise ML pour comprendre le contexte des factures et des reçus et extrait automatiquement des données telles que la date de facture ou de réception, le numéro de facture ou de réception, le prix des articles, le montant total et les conditions de paiement pour répondre aux besoins de votre entreprise.

Amazon Textract identifie également les noms de fournisseurs critiques pour vos flux de travail, mais peuvent ne pas être explicitement étiquetés. Par exemple, Amazon Textract peut trouver le nom du fournisseur sur un reçu même s'il n'est indiqué que dans un logo en haut de la page sans combinaison clé-valeur explicite. Amazon Textract vous permet également de consolider facilement les entrées provenant de divers reçus et factures utilisant différents mots pour le même concept. Par exemple, Amazon Textract met en correspondance les relations entre les noms de champs dans différents documents tels que le numéro de client, le numéro de client et l'ID de compte, en affichant une taxonomie standard comme`INVOICE_RECEIPT_ID`. Dans ce cas, Amazon Textract représente les données de manière cohérente entre différents types de documents. Les champs qui ne sont pas alignés sur la taxonomie standard sont classés comme suit :`OTHER`. 

Voici une liste des champs standard pris en charge actuellement par AnalyzeExpense :
+ Nom du fournisseur :`VENDOR_NAME`
+ Total :`TOTAL`
+ Adresse du destinataire :`RECEIVER_ADDRESS`
+ Date de facturation/réception :`INVOICE_RECEIPT_DATE`
+ ID de facturation/reçu :`INVOICE_RECEIPT_ID`
+ Conditions de paiement :`PAYMENT_TERMS`
+ Total partiel :`SUBTOTAL`
+ Date d'échéance :`DUE_DATE`
+ Taxe :`TAX`
+ ID du contribuable sur facture (SSN/ITIN ou EIN) :`TAX_PAYER_ID`
+ Nom de l'article :`ITEM_NAME`
+ Prix de l'article :`PRICE`
+ Quantité de l'article :`QUANTITY`

L'API AnalyzeExpense renvoie les éléments suivants pour une page de document donnée :
+ Le nombre de reçus ou de factures dans une page représentée par`ExpenseIndex`
+ Le nom normalisé des champs individuels représentés par`Type`
+ Nom réel du champ tel qu'il apparaît sur le document, représenté sous forme de`LabelDetection`
+ La valeur du champ correspondant représentée par`ValueDetection`
+ Le nombre de pages dans le document soumis représenté par`Pages`
+ Numéro de page sur lequel le champ, la valeur ou les éléments de ligne ont été détectés, représenté par`PageNumber`
+ La géométrie, qui inclut le cadre de sélection et les coordonnées de l'emplacement du champ, de la valeur ou des éléments de ligne individuels sur la page, représentée par`Geometry`
+ Le score de confiance associé à chaque élément de données détecté sur le document, représenté par`Confidence`
+ La ligne complète des articles de ligne individuels achetés, représentée par`EXPENSE_ROW`

Ce qui suit est une partie de la sortie de l'API pour un reçu traité par AnalyzeExpense qui affiche le total : 55,64\$1 dans le champ Document extrait en tant que standard`TOTAL`, texte réel sur le document sous la forme « Total », Score de confiance de « 97,1 », Numéro de page « 1 », Valeur totale « 55,64\$1 » et le cadre de sélection et les coordonnées surfaciques : 

```
{
    "Type": {
        "Text": "TOTAL",
        "Confidence": 99.94717407226562
    },
    "LabelDetection": {
        "Text": "Total:",
        "Geometry": {
            "BoundingBox": {
                "Width": 0.09809663146734238,
                "Height": 0.0234375,
                "Left": 0.36822840571403503,
                "Top": 0.8017578125
            },
            "Polygon": [
                {
                    "X": 0.36822840571403503,
                    "Y": 0.8017578125
                },
                {
                    "X": 0.466325044631958,
                    "Y": 0.8017578125
                },
                {
                    "X": 0.466325044631958,
                    "Y": 0.8251953125
                },
                {
                    "X": 0.36822840571403503,
                    "Y": 0.8251953125
                }
        ]
    },
    "Confidence": 97.10792541503906
},
    "ValueDetection": {
        "Text": "$55.64",
        "Geometry": {
            "BoundingBox": {
                "Width": 0.10395314544439316,
                "Height": 0.0244140625,
                "Left": 0.66837477684021,
                "Top": 0.802734375
            },
            "Polygon": [
                {
                    "X": 0.66837477684021,
                    "Y": 0.802734375
                },
                {
                    "X": 0.7723279595375061,
                    "Y": 0.802734375
                },
                {
                    "X": 0.7723279595375061,
                    "Y": 0.8271484375
                },
                {
                    "X": 0.66837477684021,
                    "Y": 0.8271484375
                }
            ]
        },
    "Confidence": 99.85165405273438
},
"PageNumber": 1
}
```

Vous pouvez utiliser des opérations synchrone pour analyser une facture ou un reçu. Pour analyser ces documents, vous utilisez l'opération AnalyzeExpense et vous lui transmettez un reçu ou une facture.`AnalyzeExpense`renvoie l'ensemble des résultats. Pour plus d'informations, consultez [Analyse des factures et des reçus avec Amazon Textract](analyzing-document-expense.md).

Pour analyser les factures et les reçus de manière asynchrone, utilisez[StartExpenseAnalysis](API_StartExpenseAnalysis.md)pour commencer le traitement d'un fichier de document d'entrée. Pour obtenir les résultats, appelez[GetExpenseAnalysis](API_GetExpenseAnalysis.md). Les résultats d'un appel donné à[StartExpenseAnalysis](API_StartExpenseAnalysis.md)sont renvoyés par`GetExpenseAnalysis`. Pour plus d'informations et pour voir un exemple, consultez [Traitement de documents avec des opérations asynchrones](async.md). 

# Analyse des documents d'identité
<a name="how-it-works-identity"></a>

 Amazon Textract peut extraire des informations pertinentes à partir de passeports, de permis de conduire et d'autres documents d'identité émis par le gouvernement américain à l'aide de l'API AnalyzeID. Avec Analyze ID, les entreprises peuvent extraire rapidement et avec précision des informations à partir d'identifiants tels que des permis de conduire américains, des identifiants d'État et des passeports ayant un modèle ou un format différent. L'API AnalyzeID renvoie deux catégories de types de données : 
+  Paires clé-valeur disponibles sur l'ID, telles que la date de naissance, la date d'émission, le numéro d'identification, la classe et les restrictions. 
+  Champs implicites du document qui peuvent ne pas avoir de clés explicites associées à eux tels que Nom, Adresse et Émis par. 

Les noms clés sont normalisés dans la réponse. Par exemple, si votre permis de conduire indique numéro LIC (numéro de permis) et que le passeport indique le numéro de passeport, la réponse Analyze ID renvoie la clé normalisée sous la forme d' « ID de document » avec la clé brute (par exemple LIC \$1). Cette normalisation permet aux clients de combiner facilement des informations sur de nombreux identifiants utilisant des termes différents pour le même concept.

![\[Texte descriptif ici : Un permis de conduire simulé de l'État du Massachusetts. Le nom de la personne propriétaire de la licence est Maria Garcia. Le champ ISS a une valeur de 18/03/2018. Le champ Number a la valeur 736HDV7874JSB. Le champ EXP a une valeur du 20/01/2028. Le champ DOB a une valeur du 18/03/2001. Le champ CLASS a la valeur D. Le champ REST est NONE. Le champ END est NONE. L'adresse indiquée sur la pièce d'identité est 100 Market Street, Bigtown, MA, 02801. Le champ EYES est BLK, le champ SEX est F, le champ HGT est 4-6", le champ DD est 03/12/2019 et le champ REV est 03/12/2017.\]](http://docs.aws.amazon.com/fr_fr/textract/latest/dg/images/textract-id-sample-1.png)


 Analyser ID renvoie des informations dans les structures appelées`IdentityDocumentFields`. Il s'agit de`JSON`structures contenant deux informations : le type normalisé et la valeur associée au type. Ils ont également un score de confiance. Pour plus d'informations, consultez [Objets de réponse de documentation d'identité](identitydocumentfields.md). 

 Vous pouvez utiliser des opérations synchrone pour analyser un permis de conduire ou un passeport. Pour analyser ces documents, vous utilisez l'opération AnalyzeID et vous lui transmettez un document d'identité.`AnalyzeID`renvoie l'ensemble des résultats. Pour plus d'informations, consultez [Analyse de la documentation d'identité avec Amazon Textract](analyzing-document-identity.md). 

**Note**  
 Certains documents d'identité, tels que les permis de conduire, ont deux côtés. Vous pouvez transmettre les images avant et arrière des permis de conduire sous forme d'images distinctes dans la même demande d'API Analyze ID. 

# Documents de saisie
<a name="how-it-works-documents"></a>

Une entrée appropriée pour une opération Amazon Textract est un document sur une ou plusieurs pages. Par exemple, il s'agit d'un document juridique, d'un formulaire, d'une pièce d'identité ou d'une lettre. Un formulaire est un document contenant des questions ou des invites permettant à un utilisateur de fournir des réponses. On peut citer par exemple un formulaire d'inscription des patients, un formulaire fiscal ou un formulaire de demande d'assurance. 

Un document peut être au format JPEG, PNG, PDF ou TIFF. Avec les fichiers au format PDF et TIFF, vous pouvez traiter des documents multipages. Pour plus d'informations sur la façon dont Amazon Textract représente les documents en tant que`Block`objets, voir[Objets de réponse Détection de texte et analyse de documents](how-it-works-document-layout.md).

Voici un exemple de document d'entrée acceptable.

![\[Image d'un bout de papier blanc avec un en-tête Demande d'emploi. La ligne suivante indique Informations sur l'application, le prochain nom complet : Jane Doe, le prochain numéro de téléphone : 555-0100, la prochaine adresse personnelle : 123 Any Street, AnyTown USA, la prochaine adresse postale : identique à celle ci-dessus. Vous trouverez ci-dessous un tableau intitulé Historique de l'emploi précédent. Il comporte cinq colonnes et quatre rangées. Les titres des colonnes sont Date de début, Date de fin, Nom de l'employeur, Poste occupé et Motif du départ. La ligne suivante répertorie le 15/01/2009, le 30/06/2011, Toute entreprise, Assistant boulanger et relocalisé. Le prochain 7/1/2011, 8/10/2013, Example Corp. Baker, meilleure opp. Le prochain 15/8/2013, Present, AnyCompany, chef boulanger, et N/A, actuel.\]](http://docs.aws.amazon.com/fr_fr/textract/latest/dg/images/Handwriting%20Sample%203.png)


Pour obtenir des informations sur les limites de documents, consultez[Limites strictes dans Amazon Textract](limits.md).

Pour les opérations synchrone Amazon Textract, vous pouvez utiliser des documents d'entrée stockés dans un compartiment Amazon S3 ou vous pouvez transmettre des octets d'image codés en base64. Pour plus d'informations, consultez [Appel d'opérations synchrone Amazon Textract](sync-calling.md). Pour les opérations asynchrones, vous devez fournir des documents d'entrée dans un compartiment Amazon S3. Pour plus d'informations, consultez [Appel d'opérations asynchrones Amazon Textract](api-async.md). 

# Objets de réponse Amazon Textract
<a name="how-it-works-document-response"></a>

Les opérations Amazon Textract renvoient différents types d'objets en fonction des opérations exécutées. Pour détecter du texte et analyser un document générique, l'opération renvoie un objet Block. Pour analyser une facture ou un reçu, l'opération renvoie un objet ExpenseDocuments. Pour analyser la documentation d'identité, l'opération renvoie un objet IdentityDocumentFields. Pour plus d'informations sur ces objets de réponse, consultez les sections suivantes :

**Topics**
+ [

# Objets de réponse Détection de texte et analyse de documents
](how-it-works-document-layout.md)
+ [

# Objets de réponse de facture et de réception
](expensedocuments.md)
+ [

# Objets de réponse de documentation d'identité
](identitydocumentfields.md)

# Objets de réponse Détection de texte et analyse de documents
<a name="how-it-works-document-layout"></a>

Lorsque Amazon Textract traite un document, il crée une liste de[Block](API_Block.md)objets pour le texte détecté ou analysé. Chaque bloc contient des informations sur un article détecté, où il se trouve, et la confiance d'Amazon Textract dans la précision du traitement.

Un document est composé des types suivants de`Block`objets.
+ [Pages](how-it-works-pages.md)
+  [Lignes et mots de texte](how-it-works-lines-words.md) 
+  [Données de formulaire (paires clé-valeur)](how-it-works-kvp.md) 
+  [Tables et cellules](how-it-works-tables.md) 
+ [Éléments de sélection](how-it-works-selectables.md)

Le contenu d'un bloc dépend de l'opération que vous appelez. Si vous appelez l'une des opérations de détection de texte, les pages, les lignes et les mots du texte détecté sont renvoyés. Pour plus d'informations, consultez [Détection de texte](how-it-works-detecting.md). Si vous appelez l'une des opérations d'analyse de documents, des informations sur les pages détectées, les paires clé-valeur, les tableaux, les éléments de sélection et le texte sont renvoyées. Pour plus d'informations, consultez [Analyse des documents](how-it-works-analyzing.md).

Momentanée`Block`Les champs d'objets sont communs aux deux types de traitement. Par exemple, chaque bloc possède un identifiant unique.

Pour obtenir des exemples illustrant l'utilisation`Block`objets, voir[Tutoriels](examples-blocks.md).

## Disposition du document
<a name="hows-it-works-blocks-types.title"></a>

Amazon Textract renvoie une représentation d'un document sous forme de liste de différents types de`Block`objets liés dans une relation parent-enfant ou une paire clé-valeur. Les métadonnées indiquant le nombre de pages d'un document sont également renvoyées. Voici le JSON d'un type type`Block`objet de type`PAGE`.

```
{
    "Blocks": [
        {
            "Geometry": {
                "BoundingBox": {
                    "Width": 1.0, 
                    "Top": 0.0, 
                    "Left": 0.0, 
                    "Height": 1.0
                }, 
                "Polygon": [
                    {
                        "Y": 0.0, 
                        "X": 0.0
                    }, 
                    {
                        "Y": 0.0, 
                        "X": 1.0
                    }, 
                    {
                        "Y": 1.0, 
                        "X": 1.0
                    }, 
                    {
                        "Y": 1.0, 
                        "X": 0.0
                    }
                ]
            }, 
            "Relationships": [
                {
                    "Type": "CHILD", 
                    "Ids": [
                        "2602b0a6-20e3-4e6e-9e46-3be57fd0844b", 
                        "82aedd57-187f-43dd-9eb1-4f312ca30042", 
                        "52be1777-53f7-42f6-a7cf-6d09bdc15a30", 
                        "7ca7caa6-00ef-4cda-b1aa-5571dfed1a7c"
                    ]
                }
            ], 
            "BlockType": "PAGE", 
            "Id": "8136b2dc-37c1-4300-a9da-6ed8b276ea97"
        }..... 
        
    ], 
    "DocumentMetadata": {
        "Pages": 1
    }
}
```

Un document est fabriqué à partir d'un ou plusieurs`PAGE`. Chaque page contient une liste de blocs enfants pour les éléments principaux détectés sur la page, tels que des lignes de texte et des tableaux. Pour plus d'informations, consultez [Pages](how-it-works-pages.md). 

Vous pouvez déterminer le type d'objet`Block`en inspectant l'objet`BlockType`.

UN`Block`contient une liste de`Block`objets dans le`Relationships`, qui est un tableau de[Relationship](API_Relationship.md)objets. UN`Relationships`tableau est soit de type CHILD, soit de type VALUE. Un tableau de type CHILD permet de répertorier les éléments enfants du bloc actuel. Par exemple, si le bloc actuel est de type LINE,`Relationships`contient une liste d'ID des blocs WORD qui composent la ligne de texte. Un tableau de type VALUE est utilisé pour contenir des paires clé-valeur. Vous pouvez déterminer le type de relation en inspectant le`Type`du champ`Relationship`objet. 

Les blocs enfants ne contiennent pas d'informations sur leurs objets Block parents.

Pour des exemples qui montrent`Block`, consultez[Traitement de documents avec des opérations synchrone](sync.md).

## Fiabilité
<a name="how-it-works-confidence"></a>

Les opérations Amazon Textract indiquent le pourcentage de fiabilité déterminé par Amazon Textract pour l'exactitude de l'article détecté. Pour obtenir la confiance, utilisez le`Confidence`du champ`Block`objet. Une valeur supérieure indique une confiance supérieure. Selon le scénario, les détections avec une faible confiance peuvent nécessiter une confirmation visuelle de la part d'un humain.

## Geometry
<a name="how-it-works-geometry"></a>

Les opérations Amazon Textract, à l'exception de l'analyse d'identité, renvoient des informations de localisation concernant l'emplacement des éléments détectés sur une page de document. Pour obtenir cet emplacement, utilisez le`Geometry`du champ`Block`objet. Pour de plus amples informations, veuillez consulter[Emplacement de l'article sur une page de document](text-location.md) 

# Pages
<a name="how-it-works-pages"></a>

Un document est composé d'une ou plusieurs pages. UN[Block](API_Block.md)objet de type`PAGE`existe pour chaque page du document. UN`PAGE`bloc objet contient une liste des ID enfants des lignes de texte, des paires clé-valeur et des tables détectées sur la page de document. 

![\[alt text not found\]](http://docs.aws.amazon.com/fr_fr/textract/latest/dg/images/hieroglyph-pages.png)


Le JSON pour un`PAGE`ressemble à ce qui suit.

```
{

    "Geometry": .... 
    "Relationships": [
        {
            "Type": "CHILD", 
            "Ids": [
                "2602b0a6-20e3-4e6e-9e46-3be57fd0844b", // Line - Hello, world.
                "82aedd57-187f-43dd-9eb1-4f312ca30042", // Line - How are you?
                "52be1777-53f7-42f6-a7cf-6d09bdc15a30", 
                "7ca7caa6-00ef-4cda-b1aa-5571dfed1a7c"   
            ]
        }
    ], 
    "BlockType": "PAGE", 
    "Id": "8136b2dc-37c1-4300-a9da-6ed8b276ea97"  // Page identifier
},
```

Si vous utilisez des opérations asynchrones avec un document multipage au format PDF, vous pouvez déterminer la page sur laquelle se trouve un bloc en inspectant le`Page`du champ`Block`objet. Une image numérisée (image au format JPEG, PNG, PDF ou TIFF) est considérée comme un document d'une seule page, même s'il y a plusieurs pages de document sur l'image. Les opérations asynchrones renvoient toujours un`Page`valeur 1 pour les images numérisées.

Le nombre total de pages est renvoyé dans la`Pages`field of`DocumentMetadata`.`DocumentMetadata`est renvoyé avec chaque liste de`Block`objets renvoyés par une opération Amazon Textract.

# Lignes et mots de texte
<a name="how-it-works-lines-words"></a>

Le texte détecté renvoyé par les opérations Amazon Textract est renvoyé dans une liste de[Block](API_Block.md)objets. Ces objets représentent des lignes de texte ou des mots textuels détectés sur une page de document. Le texte suivant présente deux lignes de texte composées de plusieurs mots.

Il s'agit d'un texte.

En deux lignes distinctes.

Le texte détecté est renvoyé dans le`Text`d'un champ`Block`objet. Le`BlockType`détermine si le texte est une ligne de texte (LINE) ou un mot (WORD). UN*MOT*est un ou plusieurs caractères latins de base ISO non séparés par des espaces. UN*LIGNE*est une chaîne de mots contigus et délimités par des tabulations.

 En outre, Amazon Textract déterminera si un morceau de texte a été manuscrit ou imprimé à l'aide de la`TextTypes`. Ils reviennent respectivement sous forme d'écriture manuscrite et d'impression. 

L'autre`Block`sont communes à tous les types de blocs, tels que l'ID, la confiance et les informations de géométrie. Pour plus d'informations, consultez [Objets de réponse Détection de texte et analyse de documents](how-it-works-document-layout.md). 

Pour détecter uniquement les lignes et les mots, vous pouvez utiliser[DetectDocumentText](API_DetectDocumentText.md)ou[StartDocumentTextDetection](API_StartDocumentTextDetection.md). Pour plus d'informations, consultez [Détection de texte](how-it-works-detecting.md). Pour obtenir le texte détecté (lignes et mots) et des informations sur sa relation avec d'autres parties du document, telles que les tableaux, vous pouvez utiliser[AnalyzeDocument](API_AnalyzeDocument.md)ou[StartDocumentAnalysis](API_StartDocumentAnalysis.md). Pour plus d'informations, consultez [Analyse des documents](how-it-works-analyzing.md).

`PAGE`,`LINE`, et`WORD`les blocs sont liés les uns aux autres dans une relation parent-enfant. UN`PAGE`block est le parent de tous`LINE`blocs d'objets sur une page de document. Parce qu'une ligne peut comporter un ou plusieurs mots, la`Relationships`pour un bloc LINE stocke les ID des blocs WORD enfants qui constituent la ligne de texte. 

Le schéma suivant montre comment la ligne*Hello World.*dans le texte*Hello World. Comment allez-vous ?*est représenté par`Block`objets. 

![\[alt text not found\]](http://docs.aws.amazon.com/fr_fr/textract/latest/dg/images/hieroglyph-text-detection.png)




Voici la sortie JSON de`DetectDocumentText`quand la phrase*Hello World. Comment allez-vous ?*est détecté. Le premier exemple est le JSON de la page de document. Notez comment les ID CHILD vous permettent de naviguer dans le document.

```
{
    "Geometry": {...}, 
    "Relationships": [
        {
            "Type": "CHILD", 
            "Ids": [
                "d7fbd604-d609-4d69-857d-247a3f591238", // Line - Hello, world.
                "b6c19a93-6493-4d8e-958f-853c8f7ca055" //  Line - How are you?
            ]
        }
    ], 
    "BlockType": "PAGE", 
    "Id": "56ec1d77-171f-4881-9852-2b5b7e761608"
},
```

Voici le JSON pour les blocs LINE qui composent la ligne « Hello, World » : 

```
{
    "Relationships": [
        {
            "Type": "CHILD", 
            "Ids": [
                "7f97e2ca-063e-47a8-981c-8beee31afc01", // Word - Hello,
                "4b990aa0-af96-4369-b90f-dbe02538ed21"  // Word - world.
            ]
        }
    ], 
    "Confidence": 99.63229370117188, 
    "Geometry": {...}, 
    "Text": "Hello, world.", 
    "BlockType": "LINE", 
    "Id": "d7fbd604-d609-4d69-857d-247a3f591238"
},
```

Voici le code JSON du bloc WORD pour le mot*Hello,* : 

```
{
    "Geometry": {...}, 
    "Text": "Hello,", 
    "TextType": "PRINTED",
    "BlockType": "WORD", 
    "Confidence": 99.74746704101562, 
    "Id": "7f97e2ca-063e-47a8-981c-8beee31afc01"
},
```

Le JSON final est le bloc WORD du mot*.* :

```
{
    "Geometry": {...}, 
    "Text": "world.",
    "TextType": "PRINTED",
    "BlockType": "WORD", 
    "Confidence": 99.5171127319336, 
    "Id": "4b990aa0-af96-4369-b90f-dbe02538ed21"
},
```

# Données de formulaire (paires clé-valeur)
<a name="how-it-works-kvp"></a>

Amazon Textract peut extraire les données de formulaire de documents sous forme de paires clé-valeur. Par exemple, dans le texte suivant, Amazon Textract peut identifier une clé (*Name :*) et une valeur (*Ana Caroline*).

Name : Ana Caroline

Les paires clé-valeur détectées sont renvoyées sous forme de[Block](API_Block.md)objets dans les réponses de[AnalyzeDocument](API_AnalyzeDocument.md)et[GetDocumentAnalysis](API_GetDocumentAnalysis.md). Vous pouvez utiliser le plugin`FeatureTypes`paramètre d'entrée pour récupérer des informations sur les paires clé-valeur, les tables ou les deux. Pour les paires clé-valeur uniquement, utilisez la valeur`FORMS`. Pour voir un exemple, consultez [Extraction de paires clé-valeur à partir d'un document de formulaire](examples-extract-kvp.md). Pour obtenir des informations générales sur la représentation d'un document`Block`objets, voir[Objets de réponse Détection de texte et analyse de documents](how-it-works-document-layout.md). 

Les objets Block de type KEY\$1VALUE\$1SET sont les conteneurs des objets KEY ou VALUE Block qui stockent des informations sur les éléments de texte liés détectés dans un document. Vous pouvez utiliser le plugin`EntityType`pour déterminer si un bloc est une CLÉ ou une VALEUR. 
+ UN*CLÉ*Objets contient des informations sur la clé du texte lié. Par exemple,*Name :*. Un bloc KEY comporte deux listes de relations. Une relation de type VALUE est une liste contenant l'ID du bloc VALUE associé à la clé. Une relation de type CHILD est une liste d'ID des blocs WORD qui composent le texte de la clé.
+ UN*VALEUR*Objets contient des informations sur le texte associé à une clé. Dans l'exemple précédent,*Ana Caroline*représente la valeur de la clé*Name :*. Un bloc VALUE a une relation avec une liste de blocs CHILD qui identifient les blocs WORD. Chaque bloc WORD contient l'un des mots qui composent le texte de la valeur. UN`VALUE`Objets peuvent également contenir des informations sur les éléments sélectionnés. Pour plus d'informations, consultez [Éléments de sélection](how-it-works-selectables.md).

Chaque instance d'un KEY\$1VALUE\$1SET`Block`est un enfant de la page`Block`objet correspondant à la page actuelle.

Le schéma suivant montre comment la paire clé-valeur*Name : Ana Caroline*est représenté par`Block`objets.

![\[alt text not found\]](http://docs.aws.amazon.com/fr_fr/textract/latest/dg/images/hieroglyph-key-value-set.png)


Les exemples suivants montrent comment la paire clé-valeur*Name : Ana Caroline*est représenté par JSON.

Le bloc PAGE comporte des blocs CHILD de type`KEY_VALUE_SET`pour chaque bloc KEY et VALUE détecté dans le document. 

```
{
    "Geometry": .... 
    "Relationships": [
        {
            "Type": "CHILD", 
            "Ids": [
                "2602b0a6-20e3-4e6e-9e46-3be57fd0844b", 
                "82aedd57-187f-43dd-9eb1-4f312ca30042", 
                "52be1777-53f7-42f6-a7cf-6d09bdc15a30", // Key - Name:
                "7ca7caa6-00ef-4cda-b1aa-5571dfed1a7c"  // Value - Ana Caroline 
            ]
        }
    ], 
    "BlockType": "PAGE", 
    "Id": "8136b2dc-37c1-4300-a9da-6ed8b276ea97"  // Page identifier
},
```

Le JSON suivant indique que le bloc KEY (52be1777-53f7-42f6-a7cf-6d09bdc15a30) a une relation avec le bloc VALUE (7ca7caa6-00ef-4cda-b1aa-5571dfed1a7c). Il possède également un bloc CHILD pour le bloc WORD (c734fca6-c4c4-415c-b6c1-30f7510b72ee) qui contient le texte de la clé (*Name :*).

```
{
    "Relationships": [
        {
            "Type": "VALUE", 
            "Ids": [
                "7ca7caa6-00ef-4cda-b1aa-5571dfed1a7c"  // Value identifier
            ]
        }, 
        {
            "Type": "CHILD", 
            "Ids": [
                "c734fca6-c4c4-415c-b6c1-30f7510b72ee"  // Name:
            ]
        }
    ], 
    "Confidence": 51.55965805053711, 
    "Geometry": ...., 
    "BlockType": "KEY_VALUE_SET", 
    "EntityTypes": [
        "KEY"
    ], 
    "Id": "52be1777-53f7-42f6-a7cf-6d09bdc15a30"  //Key identifier
},
```

Le JSON suivant indique que le bloc VALUE 7ca7caa6-00ef-4cda-b1aa-5571dfed1a7c possède une liste ENFANT d'ID pour les blocs WORD qui composent le texte de la valeur (*Ana*et*Caroline*).

```
{
    "Relationships": [
        {
            "Type": "CHILD", 
            "Ids": [
                "db553509-64ef-4ecf-ad3c-bea62cc1cd8a", // Ana
                "e5d7646c-eaa2-413a-95ad-f4ae19f53ef3"  // Carolina
            ]
        }
    ], 
    "Confidence": 51.55965805053711, 
    "Geometry": ...., 
    "BlockType": "KEY_VALUE_SET", 
    "EntityTypes": [
        "VALUE"
    ], 
    "Id": "7ca7caa6-00ef-4cda-b1aa-5571dfed1a7c" // Value identifier
}
```

Le fichier JSON suivant affiche le`Block`objets pour les mots*Name :*,*Ana*, et*Caroline*.

```
{
    "Geometry": {...}, 
    "Text": "Name:", 
    "TextType": "PRINTED".
    "BlockType": "WORD", 
    "Confidence": 99.56285858154297, 
    "Id": "c734fca6-c4c4-415c-b6c1-30f7510b72ee"
},
 {
    "Geometry": {...}, 
    "Text": "Ana", 
    "TextType": "PRINTED",
    "BlockType": "WORD", 
    "Confidence": 99.52057647705078, 
    "Id": "db553509-64ef-4ecf-ad3c-bea62cc1cd8a"
}, 
{
    "Geometry": {...}, 
    "Text": "Carolina", 
    "TextType": "PRINTED",
    "BlockType": "WORD", 
    "Confidence": 99.84207916259766, 
    "Id": "e5d7646c-eaa2-413a-95ad-f4ae19f53ef3"
},
```

# Tables
<a name="how-it-works-tables"></a>

Amazon Textract peut extraire des tables et des cellules d'une table. Par exemple, lorsque le tableau suivant est détecté sur un formulaire, Amazon Textract détecte une table comportant quatre cellules. 


| Nom | Address | 
| --- | --- | 
|  Ana Caroline  |  123 Any Town  | 

Les tables détectées sont renvoyées sous forme[Block](API_Block.md)objets dans les réponses de[AnalyzeDocument](API_AnalyzeDocument.md)et[GetDocumentAnalysis](API_GetDocumentAnalysis.md). Vous pouvez utiliser le plugin`FeatureTypes`paramètre d'entrée pour récupérer des informations sur les paires clé-valeur, les tables ou les deux. Pour les tables uniquement, utilisez la valeur`TABLES`. Pour voir un exemple, consultez [Exportation de tables dans un fichier CSV](examples-export-table-csv.md). Pour obtenir des informations générales sur la représentation d'un document`Block`objets, voir[Objets de réponse Détection de texte et analyse de documents](how-it-works-document-layout.md).

Le schéma suivant montre comment une cellule unique d'un tableau est représentée par`Block`objets.

![\[alt text not found\]](http://docs.aws.amazon.com/fr_fr/textract/latest/dg/images/hieroglyph-table-cell.png)


Une cellule contient`WORD`blocs pour les mots détectés, et`SELECTION_ELEMENT`blocs pour les éléments de sélection tels que les cases à cocher. 

Ce qui suit est un JSON partiel pour le tableau précédent, qui comporte quatre cellules.

L'objet PAGE Block contient une liste d'ID de bloc ENFANT pour le bloc TABLE et chaque LIGNE de texte détectée. 

```
{
    "Geometry": {...}, 
    "Relationships": [
        {
            "Type": "CHILD", 
            "Ids": [
                "f2a4ad7b-f21d-4966-b548-c859b84f66a4",   // Line - Name
                "4dce3516-ffeb-45e0-92a2-60770e9cb744",   // Line  - Address 
                "ee506578-768f-4696-8f4b-e4917e429f50",   // Line - Ana Carolina
                "33fc7223-411b-4399-8a90-ccd3c5a2c196",   // Line  - 123 Any Town
                "3f9665be-379d-4ae7-be44-d02f32b049c2"    // Table
            ]
        }
    ], 
    "BlockType": "PAGE", 
    "Id": "78c3ce84-ae70-418e-add7-27058418adf6"
},
```

Le bloc TABLE inclut une liste d'ID enfants pour les cellules du tableau. Un bloc TABLE inclut également des informations de géométrie pour l'emplacement de la table dans le document. Le fichier JSON suivant indique que la table comporte quatre cellules répertoriées dans le`Ids`tableau.

```
{
    "Geometry": {...}, 
    "Relationships": [
        {
            "Type": "CHILD", 
            "Ids": [
                "505e9581-0d1c-42fb-a214-6ff736822e8c", 
                "6fca44d4-d3d3-46ab-b22f-7fca1fbaaf02", 
                "9778bd78-f3fe-4ae1-9b78-e6d29b89e5e9", 
                "55404b05-ae12-4159-9003-92b7c129532e"
            ]
        }
    ], 
    "BlockType": "TABLE", 
    "Confidence": 92.5705337524414, 
    "Id": "3f9665be-379d-4ae7-be44-d02f32b049c2"
},
```

Le type de bloc des cellules du tableau est CELL. Le`Block`pour chaque cellule contient des informations sur l'emplacement de la cellule par rapport aux autres cellules du tableau. Il inclut également des informations géométriques pour l'emplacement de la cellule sur le document. Dans l'exemple précédent,`505e9581-0d1c-42fb-a214-6ff736822e8c`est l'ID enfant de la cellule contenant le mot*Nom*. L'exemple suivant illustre les informations relatives à la cellule. 

```
{
    "Geometry": {...}, 
    "Relationships": [
        {
            "Type": "CHILD", 
            "Ids": [
                "e9108c8e-0167-4482-989e-8b6cd3c3653e"
            ]
        }
    ], 
    "Confidence": 100.0, 
    "RowSpan": 1, 
    "RowIndex": 1, 
    "ColumnIndex": 1, 
    "ColumnSpan": 1, 
    "BlockType": "CELL", 
    "Id": "505e9581-0d1c-42fb-a214-6ff736822e8c"
},
```

Chaque cellule a un emplacement dans un tableau, la première cellule étant 1,1. Dans l'exemple précédent, la cellule avec la valeur*Nom*se trouve à la ligne 1, colonne 1. La cellule avec la valeur*123 Any Town*se trouve à la ligne 2, colonne 2. Un objet de bloc de cellules contient ces informations dans le`RowIndex`et`ColumnIndex`. La liste enfant contient les ID des objets WORD Block qui contiennent le texte qui se trouve dans la cellule. Les mots de la liste sont dans l'ordre dans lequel ils sont détectés, du haut à gauche de la cellule jusqu'en bas à droite de la cellule. Dans l'exemple précédent, la cellule a un ID enfant avec la valeur e9108c8e-0167-4482-989e-8b6cd3c3653e. La sortie suivante concerne le bloc WORD dont la valeur d'ID est e9108c8e-0167-4482-989e-8b6cd3c3653e : 

```
"Geometry": {...}, 
"Text": "Name", 
"TextType": "Printed",
"BlockType": "WORD",
"Confidence": 99.81139373779297, 
"Id": "e9108c8e-0167-4482-989e-8b6cd3c3653e"
},
```

# Éléments de sélection
<a name="how-it-works-selectables"></a>

Amazon Textract peut détecter des éléments de sélection tels que les boutons d'option (boutons radio) et les cases à cocher sur une page de document. Les éléments de sélection peuvent être détectés dans[données de formulaire](how-it-works-kvp.md)et dans[tables](how-it-works-tables.md). Par exemple, lorsque le tableau suivant est détecté sur un formulaire, Amazon Textract détecte les cases à cocher dans les cellules du tableau.


|  |  |  |  | 
| --- |--- |--- |--- |
|     |  **D'accord**  |  **Neutral**  |  **En désaccord**  | 
|  **Bon service**  |  ☑  |  ☐  |  ☐  | 
|  **Facile à utiliser**  |  ☐  |  ☑  |  ☐  | 
|  **Prix équitable**  |  ☑  |  ☐  |  ☐  | 

Les éléments de sélection détectés sont renvoyés comme[Block](API_Block.md)objets dans les réponses de[AnalyzeDocument](API_AnalyzeDocument.md)et[GetDocumentAnalysis](API_GetDocumentAnalysis.md).

**Note**  
Vous pouvez utiliser le plugin`FeatureTypes`paramètre d'entrée pour récupérer des informations sur les paires clé-valeur, les tables ou les deux. Par exemple, si vous filtrez sur des tables, la réponse inclut les éléments de sélection détectés dans les tables. Les éléments de sélection détectés dans des paires clé-valeur ne sont pas inclus dans la réponse.

Les informations relatives à un élément de sélection sont contenues dans un`Block`objet de type`SELECTION_ELEMENT`. Pour déterminer l'état d'un élément sélectionnable, utilisez la`SelectionStatus`dans le domaine`SELECTION_ELEMENT`. Le statut peut être l'un ou l'autre*SÉLECTIONNÉ*ou*NOT\$1SELECTED*. Par exemple, la valeur de`SelectionStatus`pour l'image précédente est*SÉLECTIONNÉ*.

UN`SELECTION_ELEMENT` `Block`est associé à une paire clé-valeur ou à une cellule de table. UN`SELECTION_ELEMENT` `Block`contient des informations de cadre de sélection pour un élément de sélection dans la zone de sélection`Geometry`. UN`SELECTION_ELEMENT` `Block`n'est pas un enfant d'un objet`PAGE` `Block`objet.

## Données de formulaire (paires clé-valeur)
<a name="how-it-works-selectable-kvp"></a>

Une paire clé-valeur est utilisée pour représenter un élément de sélection détecté sur un formulaire. Le`KEY`contient le texte de l'élément de sélection. Le`VALUE`contient le bloc SELECTION\$1ELEMENT. Le schéma suivant montre comment les éléments de sélection sont représentés par[Block](API_Block.md)objets.

![\[alt text not found\]](http://docs.aws.amazon.com/fr_fr/textract/latest/dg/images/hieroglyph-key-value-set-selectable.png)


Pour plus d'informations sur les paires clé-valeur, consultez[Données de formulaire (paires clé-valeur)](how-it-works-kvp.md).

L'extrait JSON suivant affiche la clé d'une paire clé-valeur contenant un élément de sélection (**male ☑**). L'ID enfant (ID bd14cfd5-9005-498b-a7f3-45ceb171f0ff) est l'ID du bloc WORD qui contient le texte de l'élément de sélection (*masculin*). L'ID de valeur (Id 24aaac7f-fcce-49c7-a4f0-3688b05586d4) est l'ID du`VALUE`qui contient le bloc`SELECTION_ELEMENT`bloc d'objet.

```
{
    "Relationships": [
        {
            "Type": "VALUE", 
            "Ids": [
                "24aaac7f-fcce-49c7-a4f0-3688b05586d4"  // Value containing Selection Element
            ]
        }, 
        {
            "Type": "CHILD", 
            "Ids": [
                "bd14cfd5-9005-498b-a7f3-45ceb171f0ff"  // WORD - male
            ]
        }
    ], 
    "Confidence": 94.15619659423828, 
    "Geometry": {
        "BoundingBox": {
            "Width": 0.022914813831448555, 
            "Top": 0.08072036504745483, 
            "Left": 0.18966935575008392, 
            "Height": 0.014860388822853565
        }, 
        "Polygon": [
            {
                "Y": 0.08072036504745483, 
                "X": 0.18966935575008392
            }, 
            {
                "Y": 0.08072036504745483, 
                "X": 0.21258416771888733
            }, 
            {
                "Y": 0.09558075666427612, 
                "X": 0.21258416771888733
            }, 
            {
                "Y": 0.09558075666427612, 
                "X": 0.18966935575008392
            }
        ]
    }, 
    "BlockType": "KEY_VALUE_SET", 
    "EntityTypes": [
        "KEY"
    ], 
    "Id": "a118dc43-d5f7-49a2-a20a-5f876d9ffd79"
}
```

L'extrait JSON suivant est le bloc WORD du mot*Homme*. Le bloc WORD possède également un bloc LINE parent.

```
{
    "Geometry": {
        "BoundingBox": {
            "Width": 0.022464623674750328, 
            "Top": 0.07842985540628433, 
            "Left": 0.18863198161125183, 
            "Height": 0.01617223583161831
        }, 
        "Polygon": [
            {
                "Y": 0.07842985540628433, 
                "X": 0.18863198161125183
            }, 
            {
                "Y": 0.07842985540628433, 
                "X": 0.2110965996980667
            }, 
            {
                "Y": 0.09460209310054779, 
                "X": 0.2110965996980667
            }, 
            {
                "Y": 0.09460209310054779, 
                "X": 0.18863198161125183
            }
        ]
    }, 
    "Text": "Male", 
    "BlockType": "WORD", 
    "Confidence": 54.06439208984375, 
    "Id": "bd14cfd5-9005-498b-a7f3-45ceb171f0ff"
},
```

Le bloc VALUE a un enfant (Id f2f5e8cd-e73a-4e99-a095-053acd3b6bfb) qui est le bloc SELECTION\$1ELEMENT. 

```
{
    "Relationships": [
        {
            "Type": "CHILD", 
            "Ids": [
                "f2f5e8cd-e73a-4e99-a095-053acd3b6bfb"  // Selection element
            ]
        }
    ], 
    "Confidence": 94.15619659423828, 
    "Geometry": {
        "BoundingBox": {
            "Width": 0.017281491309404373, 
            "Top": 0.07643391191959381, 
            "Left": 0.2271782010793686, 
            "Height": 0.026274094358086586
        }, 
        "Polygon": [
            {
                "Y": 0.07643391191959381, 
                "X": 0.2271782010793686
            }, 
            {
                "Y": 0.07643391191959381, 
                "X": 0.24445968866348267
            }, 
            {
                "Y": 0.10270800441503525, 
                "X": 0.24445968866348267
            }, 
            {
                "Y": 0.10270800441503525, 
                "X": 0.2271782010793686
            }
        ]
    }, 
    "BlockType": "KEY_VALUE_SET", 
    "EntityTypes": [
        "VALUE"
    ], 
    "Id": "24aaac7f-fcce-49c7-a4f0-3688b05586d4"
}, 
}
```

Le JSON suivant est le bloc SELECTION\$1ELEMENT. Pour`SelectionStatus`indique que la case est cochée.

```
{
    "Geometry": {
        "BoundingBox": {
            "Width": 0.020316146314144135, 
            "Top": 0.07575977593660355, 
            "Left": 0.22590067982673645, 
            "Height": 0.027631107717752457
        }, 
        "Polygon": [
            {
                "Y": 0.07575977593660355, 
                "X": 0.22590067982673645
            }, 
            {
                "Y": 0.07575977593660355, 
                "X": 0.2462168186903
            }, 
            {
                "Y": 0.1033908873796463, 
                "X": 0.2462168186903
            }, 
            {
                "Y": 0.1033908873796463, 
                "X": 0.22590067982673645
            }
        ]
    }, 
    "BlockType": "SELECTION_ELEMENT", 
    "SelectionStatus": "SELECTED", 
    "Confidence": 74.14942932128906, 
    "Id": "f2f5e8cd-e73a-4e99-a095-053acd3b6bfb"
}
```

## Cellules de
<a name="how-it-works-selectable-table"></a>

Amazon Textract peut détecter des éléments de sélection à l'intérieur d'une cellule de tableau. Par exemple, les cellules du tableau suivant comportent des cases à cocher.


|  |  |  |  | 
| --- |--- |--- |--- |
|     |  **D'accord**  |  **Neutral**  |  **En désaccord**  | 
|  **Bon service**  |  ☑  |  ☐  |  ☐  | 
|  **Facile à utiliser**  |  ☐  |  ☑  |  ☐  | 
|  **Prix équitable**  |  ☑  |  ☐  |  ☐  | 

UN`CELL`peut contenir un enfant`SELECTION_ELEMENT`objets pour éléments de sélection, ainsi que pour enfants`WORD`blocs pour le texte détecté.

![\[alt text not found\]](http://docs.aws.amazon.com/fr_fr/textract/latest/dg/images/hieroglyph-table-cell-selectable.png)


Pour plus d'informations sur les tableaux, consultez[Tables](how-it-works-tables.md).

La TABLE`Block`pour le tableau précédent ressemble à ceci.

```
{
    "Geometry": {.....}, 
    "Relationships": [
        {
            "Type": "CHILD", 
            "Ids": [
                "652c09eb-8945-473d-b1be-fa03ac055928", 
                "37efc5cc-946d-42cd-aa04-e68e5ed4741d", 
                "4a44940a-435a-4c5c-8a6a-7fea341fa295", 
                "2de20014-9a3b-4e26-b453-0de755144b1a", 
                "8ed78aeb-5c9a-4980-b669-9e08b28671d2", 
                "1f8e1c68-2c97-47b2-847c-a19619c02ca9", 
                "9927e1d1-6018-4960-ac17-aadb0a94f4d9", 
                "68f0ed8b-a887-42a5-b618-f68b494a6034", 
                "fcba16e0-6bd7-4ea5-b86e-36e8330b68ea", 
                "2250357c-ae34-4ed9-86da-45dac5a5e903", 
                "c63ad40d-5a14-4646-a8df-2d4304213dbc",   // Cell
                "2b8417dc-e65f-4fcd-aa0f-61a23f1e8cb0", 
                "26c62932-72f0-4dc2-9893-1ae27829c060", 
                "27f291cc-abf4-4c23-aa24-676abe99cb1e", 
                "7e5ce028-1bcd-4d9f-ad42-15ac181c5b47", 
                "bf32e3d2-efa2-4fc1-b09b-ab9cc52ff734"
            ]
        }
    ], 
    "BlockType": "TABLE", 
    "Confidence": 99.99993896484375, 
    "Id": "f66eac36-2e74-406e-8032-14d1c14e0b86"
}
```

Cell`BLOCK`objet (Id c63ad40d-5a14-4646-a8df-2d4304213dbc) pour la cellule contenant la case à cocher*Bon service*On dirait ce qui suit. Il comprend un enfant`Block`(Id = 26d122fd-c5f4-4b53-92c4-0ae92730ee1e) c'est le`SELECTION_ELEMENT` `Block`pour la case à cocher.

```
{
    "Geometry": {.....}, 
    "Relationships": [
        {
            "Type": "CHILD", 
            "Ids": [
                "26d122fd-c5f4-4b53-92c4-0ae92730ee1e"  // Selection Element
            ]
        }
    ], 
    "Confidence": 79.741689682006836, 
    "RowSpan": 1, 
    "RowIndex": 3, 
    "ColumnIndex": 3, 
    "ColumnSpan": 1, 
    "BlockType": "CELL", 
    "Id": "c63ad40d-5a14-4646-a8df-2d4304213dbc"
}
```

Le SELECTION\$1ELEMENT`Block`objet de la case à cocher est le suivant. Pour`SelectionStatus`indique que la case est cochée.

```
{
    "Geometry": {.......}, 
    "BlockType": "SELECTION_ELEMENT", 
    "SelectionStatus": "SELECTED", 
    "Confidence": 88.79517364501953, 
    "Id": "26d122fd-c5f4-4b53-92c4-0ae92730ee1e"
}
```

# Objets de réponse de facture et de réception
<a name="expensedocuments"></a>

Lorsque vous soumettez une facture ou un reçu à l'API AnalyzeExpense, il renvoie une série d'objets ExpenseDocuments. Chaque document ExpenseDocument est séparé en`LineItemGroups`et`SummaryFields`. La plupart des factures et des reçus contiennent des informations telles que le nom du fournisseur, le numéro de réception, la date de réception ou le montant total. AnalyzeExpense renvoie ces informations sous`SummaryFields`. Les reçus et les factures contiennent également des informations sur les articles achetés. L'API AnalyzeExpense renvoie ces informations sous`LineItemGroups`. Le`ExpenseIndex`identifie de manière unique la dépense et associe le champ approprié`SummaryFields`et`LineItemGroups`détectés dans cette dépense.

Le niveau de données le plus granulaire de la réponse AnalyzeExpense consiste en :`Type`,`ValueDetection`, et`LabelDetection`(Facultatif). Les entités individuelles sont les suivantes :
+ [Type](how-it-works-type.md): désigne le type d'information détecté à un niveau élevé.
+ [Détection d'étiquettes](how-it-works-labeldetection.md): fait référence à l'étiquette d'une valeur associée dans le texte du document.`LabelDetection`est facultatif et n'est renvoyé que si l'étiquette est écrite.
+ [Détection de valeur](how-it-works-valuedetection.md): fait référence à la valeur de l'étiquette ou du type renvoyé.

L'API AnalyzeExpense détecte également`ITEM`,`QUANTITY`, et`PRICE`dans les éléments de ligne sous forme de champs normalisés. S'il y a un autre texte dans une ligne sur l'image de réception, tel que le SKU ou la description détaillée, il sera inclus dans le JSON comme suit :`EXPENSE_ROW`comme illustré dans l'exemple ci-dessous :

```
               {
                                    "Type": {
                                        "Text": "EXPENSE_ROW",
                                        "Confidence": 99.95216369628906
                                    },
                                    "ValueDetection": {
                                        "Text": "Banana 5 $2.5",
                                        "Geometry": {
                                          …
                                        },
                                        "Confidence": 98.11214447021484
                                    }
```

L'exemple ci-dessus montre comment l'API AnalyzeExpense renvoie la ligne entière d'un reçu contenant des informations de ligne sur 5 bananes vendues pour 2,5\$1. 

# Type
<a name="how-it-works-type"></a>

Voici un exemple du type standard ou normalisé de la paire clé-valeur :

```
               {
                    "PageNumber": 1, 
                    "Type": {
                        "Text": "VENDOR_NAME", 
                        "Confidence": 70.0
                    }, 
                    "ValueDetection": {
                        "Geometry": { ... }, 
                        "Text": "AMAZON", 
                        "Confidence": 87.89806365966797
                    }
                }
```

Le « Nom du vendeur » ne figurait pas explicitement sur le reçu. Toutefois, l'API Analyze Expense a reconnu le document comme un reçu et a classé la valeur « AMAZON » comme Type`VENDOR_NAME`. 

# Détection d'étiquettes
<a name="how-it-works-labeldetection"></a>

Voici un exemple de texte tel qu'il est affiché sur une page de document client :

```
               {
                    "PageNumber": 1, 
                    "Type": {
                        "Text": "OTHER", 
                        "Confidence": 70.0
                    }, 
                    "LabelDetection": {
                        "Geometry": { ... }, 
                        "Text": "CASHIER", 
                        "Confidence": 88.19171142578125
                    }, 
                    "ValueDetection": {
                        "Geometry": { ... }, 
                        "Text": "Mina", 
                        "Confidence": 87.89806365966797
                    }
                }
```

L'exemple de document contenait « CAISSIER Mina ». L'API Analyze Expense a extrait la valeur telle quelle et la renvoie sous`LabelDetection`. Pour les valeurs implicites telles que « Nom du vendeur », où la « clé » n'est pas explicitement affichée dans le reçu,`LabelDetection`ne sera pas inclus dans l'élément AnalyzeExpense. Dans ce cas, l'API AnalyzeExpense ne renvoie pas`LabelDetection`. 

# Détection de valeur
<a name="how-it-works-valuedetection"></a>

L'exemple suivant illustre la « valeur » de la paire clé-valeur.

```
               {
                    "PageNumber": 1, 
                    "Type": {
                        "Text": "OTHER", 
                        "Confidence": 70.0
                    }, 
                    "LabelDetection": {
                        "Geometry": { ... }, 
                        "Text": "CASHIER", 
                        "Confidence": 88.19171142578125
                    }, 
                    "ValueDetection": {
                        "Geometry": { ... }, 
                        "Text": "Mina", 
                        "Confidence": 87.89806365966797
                    }
                }
```

Dans cet exemple, le document contenait « CAISSIER Mina ». L'API AnalyzeExpense a détecté la valeur Caissier comme Mina et l'a renvoyée sous`ValueDetection`. 

# Objets de réponse de documentation d'identité
<a name="identitydocumentfields"></a>

 Lorsque vous soumettez un document d'identité à l'API AnalyzeID, il renvoie une série de`IdentityDocumentField`objets. Chacun de ces objets contient`Type`, et`Value`.`Type`enregistre le champ normalisé détecté par Amazon Textract, et`Value`enregistre le texte associé au champ normalisé. 

 Vous trouverez ci-dessous un exemple d'`IdentityDocumentField`, raccourci pour plus de brièveté. 

```
{
    "DocumentMetadata": {
        "Pages": 1
    }, 
    "IdentityDocumentFields": [
        {
            "Type": {
                "Text": "first name"
            }, 
            "ValueDetection": {
                "Text": "jennifer", 
                "Confidence": 99.99908447265625
            }
        }, 
        {
            "Type": {
                "Text": "last name"
            }, 
            "ValueDetection": {
                "Text": "sample", 
                "Confidence": 99.99758911132812
            }
        },
```

 Voici deux exemples d'IdentityDocumentFields découpés d'une réponse plus longue. Il existe une séparation entre le type détecté et la valeur de ce type. Ici, c'est respectivement le prénom et le nom de famille. Cette structure se répète avec toutes les informations contenues. Si un type n'est pas reconnu comme champ normalisé, il sera répertorié comme « autre ». 

Voici une liste de champs normalisés pour les permis de conduire :
+  prénom 
+  nom 
+  deuxième prénom 
+  suffixe 
+  adresse de ville 
+  code postal dans l'adresse 
+  adresse d'état 
+  comté 
+  numéro de document 
+  Date d'expiration 
+  Date de naissance 
+  nom de l'état 
+  Date d'émission 
+  class 
+  restrictions 
+  avenants 
+  type d'ID 
+  vétéran 
+  adresse 

Voici une liste de champs normalisés pour les passeports américains :
+  prénom 
+  nom 
+  deuxième prénom 
+  numéro de document 
+  Date d'expiration 
+  Date de naissance 
+ lieu de naissance
+  Date d'émission 
+  type d'ID 

# Emplacement de l'article sur une page de document
<a name="text-location"></a>

Les opérations Amazon Textract renvoient l'emplacement et la géométrie des éléments présents sur une page de document.[DetectDocumentText](API_DetectDocumentText.md)et[GetDocumentTextDetection](API_GetDocumentTextDetection.md)renvoie l'emplacement et la géométrie des lignes et des mots, tandis que[AnalyzeDocument](API_AnalyzeDocument.md)et[GetDocumentAnalysis](API_GetDocumentAnalysis.md)renvoie l'emplacement et la géométrie des paires clé-valeur, des tableaux, des cellules et des éléments de sélection.

Pour déterminer où se trouve un élément sur une page de document, utilisez le cadre de délimitation ([Geometry](API_Geometry.md)) informations renvoyées par l'opération Amazon Textract dans un[Block](API_Block.md)objet. Le`Geometry`Objets contient deux types d'informations d'emplacement et de géométrie pour les éléments détectés :
+ Un axe aligné[BoundingBox](API_BoundingBox.md)Objets contenant la coordonnée supérieure gauche ainsi que la largeur et la hauteur de l'élément.
+ Objet polygone qui décrit le contour de l'élément, spécifié sous la forme d'un tableau de[Point](API_Point.md)objets contenant`X`(axe horizontal) et`Y`(axe vertical) les coordonnées de page de document de chaque point.

Le JSON pour un`Block`Objets ressemble à ce qui suit. Notez le`BoundingBox`et`Polygon`.

```
{
    "Geometry": {
        "BoundingBox": {
            "Width": 0.053907789289951324, 
            "Top": 0.08913730084896088, 
            "Left": 0.11085548996925354, 
            "Height": 0.013171200640499592
        }, 
        "Polygon": [
            {
                "Y": 0.08985357731580734, 
                "X": 0.11085548996925354
            }, 
            {
                "Y": 0.08913730084896088, 
                "X": 0.16447919607162476
            }, 
            {
                "Y": 0.10159222036600113, 
                "X": 0.16476328670978546
            }, 
            {
                "Y": 0.10230850428342819, 
                "X": 0.11113958805799484
            }
        ]
    }, 
    "Text": "Name:", 
    "TextType": "PRINTED",
    "BlockType": "WORD", 
    "Confidence": 99.56285858154297, 
    "Id": "c734fca6-c4c4-415c-b6c1-30f7510b72ee"
},
```

Vous pouvez utiliser les informations de géométrie pour dessiner des zones de sélection autour des éléments détectés. Pour un exemple qui utilise`BoundingBox`et`Polygon`informations permettant de dessiner des cases autour des lignes et des lignes verticales au début et à la fin de chaque mot, voir[Détection du texte de document avec Amazon Textract](detecting-document-text.md). L'exemple de sortie est similaire à ce qui suit.

![\[alt text not found\]](http://docs.aws.amazon.com/fr_fr/textract/latest/dg/images/janedoe.png)


## Bounding Box
<a name="bounding-box"></a>

Un cadre de délimitation (`BoundingBox`) possède les propriétés suivantes :
+ Height — Hauteur du cadre de délimitation sous forme de ratio de la hauteur globale de la page du document.
+ Left — Coordonnée X du point supérieur gauche du cadre de délimitation sous forme de ratio de la largeur globale de la page du document.
+ Top — Coordonnée Y du point supérieur gauche du cadre de délimitation sous forme de ratio de la hauteur globale de la page du document.
+ Width — Largeur du cadre de délimitation sous forme de ratio de la largeur globale de la page du document.

Chaque propriété BoundingBox est définie sur une valeur comprise entre 0 et 1. La valeur est un ratio de la largeur d'image globale (s'applique à`Left`et`Width`) ou hauteur (s'applique à`Height`et`Top`). Par exemple, si l'image d'entrée a une résolution de 700 x 200 pixels, et que la coordonnée supérieure gauche du cadre de délimitation est de (350,50) pixels, l'API renvoie un`Left`valeur de 0,5 (350/700) et un`Top`valeur de 0,25 (50/200). 

Le schéma suivant illustre la plage d'une page de document couverte par chaque propriété BoundingBox.

![\[Diagram showing bounding box properties: Top, Left, Width, and Height within an image.\]](http://docs.aws.amazon.com/fr_fr/textract/latest/dg/images/bounding-box.png)


Pour afficher le cadre de délimitation avec l'emplacement et la taille appropriés, vous devez multiplier les valeurs de BoundingBox par la largeur ou la hauteur de la page du document (selon la valeur que vous souhaitez) pour obtenir les valeurs en pixels. Vous utilisez les valeurs en pixels pour afficher le cadre de délimitation. Un exemple consiste à utiliser une page de document de 608 pixels de largeur x 588 pixels de hauteur, et les valeurs de cadre de sélection suivantes pour le texte analysé : 

```
BoundingBox.Left: 0.3922065
BoundingBox.Top: 0.15567766
BoundingBox.Width: 0.284666
BoundingBox.Height: 0.2930403
```

L'emplacement du cadre de délimitation du texte en pixels est calculé comme suit : 

`Left coordinate = BoundingBox.Left (0.3922065) * document page width (608) = 238`

`Top coordinate = BoundingBox.Top (0.15567766) * document page height (588) = 91`

`Bounding box width = BoundingBox.Width (0.284666) * document page width (608) = 173`

`Bounding box height = BoundingBox.Height (0.2930403) * document page height (588) = 172`

Vous utilisez ces valeurs pour afficher un cadre de délimitation autour du texte analysé. Les exemples Java et Python suivants montrent comment afficher un cadre de délimitation.

------
#### [ Java ]

```
    public void ShowBoundingBox(int imageHeight, int imageWidth, BoundingBox box, Graphics2D g2d) {

        float left = imageWidth * box.getLeft();
        float top = imageHeight * box.getTop();

        // Display bounding box.
        g2d.setColor(new Color(0, 212, 0));
        g2d.drawRect(Math.round(left / scale), Math.round(top / scale),
                Math.round((imageWidth * box.getWidth()) / scale), Math.round((imageHeight * box.getHeight())) / scale);

    }
```

------
#### [ Python ]

Cet exemple Python prend en compte le`response`renvoyé par le[DetectDocumentText](API_DetectDocumentText.md)Opération d'API.

```
def process_text_detection(response):

    # Get the text blocks
    blocks = response['Blocks']
    width, height = image.size
    draw = ImageDraw.Draw(image)
    print('Detected Document Text')

    # Create image showing bounding box/polygon the detected lines/text
    for block in blocks:

        draw = ImageDraw.Draw(image)

        if block['BlockType'] == "LINE":
            box=block['Geometry']['BoundingBox']
            left = width * box['Left']
            top = height * box['Top']
            draw.rectangle([left,top, left + (width * box['Width']), top +(height * box['Height'])],outline='black')

    # Display the image
    image.show()

    return len(blocks)
```

------

## Polygone
<a name="polygon"></a>

Le polygone renvoyé par`AnalyzeDocument`est un tableau de[Point](API_Point.md)objets. EACH`Point`possède une coordonnée X et Y pour un emplacement spécifique sur la page de document. Comme les coordonnées BoundingBox, les coordonnées surfaciques sont normalisées à la largeur et à la hauteur du document, et se situent entre 0 et 1. 

Vous pouvez utiliser des points dans le tableau de polygones pour afficher un cadre de sélection à grain fin autour d'un`Block`objet. Vous calculez la position de chaque point surfacique sur la page de document à l'aide de la même technique utilisée pour`BoundingBoxes`. Multipliez la coordonnée X par la largeur de la page de document et multipliez la coordonnée Y par la hauteur de la page de document.

L'exemple suivant montre comment afficher les lignes verticales d'un polygone.

```
    public void ShowPolygonVerticals(int imageHeight, int imageWidth, List <Point> points, Graphics2D g2d) {

        g2d.setColor(new Color(0, 212, 0));
        Object[] parry = points.toArray();
        g2d.setStroke(new BasicStroke(2));

        g2d.drawLine(Math.round(((Point) parry[0]).getX() * imageWidth),
                Math.round(((Point) parry[0]).getY() * imageHeight), Math.round(((Point) parry[3]).getX() * imageWidth),
                Math.round(((Point) parry[3]).getY() * imageHeight));

        g2d.setColor(new Color(255, 0, 0));
        g2d.drawLine(Math.round(((Point) parry[1]).getX() * imageWidth),
                Math.round(((Point) parry[1]).getY() * imageHeight), Math.round(((Point) parry[2]).getX() * imageWidth),
                Math.round(((Point) parry[2]).getY() * imageHeight));

    }
```