8 Septembre 2021 : Amazon Elasticsearch Service a été renommé en Amazon OpenSearch Service. Voir les détails.
Les documents nous permettent d’enregistrer des informations de tout type. Ce sont des outils de communication, collaboration et traçabilité utilisés dans tous les secteurs de l’industrie, y compris la finance, la santé, le domaine juridique, l’immobilier, etc. Les millions de dossiers de demande de prêts ou les dizaine de millions de formulaires d’impôts qui sont traités chaque année sont autant d’exemple de documents. Néanmoins, ces documents capturent la donnée de manière non-structurée et donc beaucoup d’informations y restent bloquées. Il faut généralement des traitements longs, coûteux et complexes pour permettre la recherche, la découverte et l’automatisation des processus métier ou de confirmité intégrant des documents.
Dans ce post, nous allons illustrer comment utiliser Amazon Textract pour extraire automatiquement du texte et des données à partir de documents scannées sans avoir besoin de compétences en Machine Learning (ML). AWS se charge de construire, entrainer et déployer des modèles ML avancés dans un environnement disponible et scalable, que vous allez consommer au travers d’une API simple et facile à utiliser.
Vous trouverez ci-dessous les cas d’utilisation couverts dans ce post :
- Détection de texte
- Détection multi-colonnes et ordre de lecture
- Traitement du langage naturel et classification des documents
- Traitement du langage naturel pour des documents médicaux
- Traduction de documents
- Recherche et découverte de contenu
- Extraction et traitement de formulaires
- Contrôle de conformité
- Extraction et traitement de tables
- Traitement de documents PDF
Amazon Textract
Avant de commencer, introduisions les principales fonctionnalités du service. Amazon Textract va au-delà d’un simple outil d’OCR (“Optical Character Recognition”), il permet également d’identifier le contenu des champs dans les formulaires et l’information présente dans des tableaux. Avec Amazon Textract vous allez donc pouvoir « lire » instantanément n’importe quel type de document et extraire avec précision son texte et ses données sans travaux manuels ou sans code complexe à implémenter et déployer.
Les images suivantes montrent un exemple d’extraction du texte, formulaire et tableau d’un document utilisant Amazon Textract depuis la console AWS Management Console.

L’image suivante montre les lignes extraites sous format texte.

L’image suivante montre les champs extraits de la partie formulaire du document et leurs valeurs correspondantes.

L’image suivante montre le tableau extrait, ses cellules et leur texte.

Le résultant de l’exécution peut être téléchargé en cliquant sur Download results. Plusieurs formats sont supportés, y compris JSON, .txt et CSV pour les formulaires et les tables.

En plus du contenu extrait, Amazon Textact fournit des informations supplémentaires telles que les indices de confiance et la position des éléments détectés (ie “Bounded boxes”). Ces informations vous permettent de contrôler la façon dont vous utilisez le contenu et de l’intégrer facilement à d’autres applications.
Amazon Textract fournit des API synchrones et asynchrones pour extraire et analyser le texte de documents. L’API synchrone peut être utilisée pour des documents d’une seule page et des traitements à faible latence, comme l’analyse d’un document en temps réel pris en photo avec un smartphone. L’API asynchrone peut être utilisée pour des documents multipages comme un document PDF ayant des milliers des pages. Pour plus d’informations, veuillez consulter la documentation de référence : API Amazon Textract Reference.
Textract appliqués aux différents cas d’usage
Nous allons maintenant écrire du code permettant l’invocation de l’’API d’Amazon Textract en utilisant AWS SDK et allons mettre en évidence les éléments clefs qui permettent de rendre nos applications plus intelligentes avec ce service. On utilise JSON Parser Library pour réaliser certains traitements des cas d’utilisation ci-dessous.
1. Détection de texte
Commençons par un exemple simple de détection de texte. Utilisons l’image ci-dessous comme document. Comment vous pouvez voir, l’image n’est pas de bonne qualité, toutefois, Amazon Textract va réussir à détecter son texte correctement.

L’exemple de code ci-dessous montre comment, avec quelques lignes de code, envoyer une image à Amazon Textract et obtenir une réponse au format JSON. Une fois le texte extrait, on peut parcourir cette réponse et en afficher son résultat.
Voici ci-dessous la réponse au format JSON reçue d’Amazon Textract, avec les blocs contenant le texte détecté dans le document :
L’image suivante montre le résultat de l’exécution du code. Elle indique le texte détecté.

2. Détection multi-colonnes et ordre de lecture
Les solutions traditionnelles d’OCR lisent de gauche à droite, ne détectent pas de colonnes dans un document et par conséquent, l’ordre de lecture du document résultant est incorrect. En plus de détecter du texte, Amazon Textract fournit des informations supplémentaires sur la géométrie des éléments dans les documents qui peuvent être utilisées pour détecter plusieurs colonnes et afficher le texte de manière adéquate.
L’image suivante est un document ayant deux colonnes. Comme dans l’exemple précédent, l’image n’est pas de bonne qualité, toutefois, Amazon Textract permet de détecter son texte.

L’exemple de code suivant montre comment traiter un document avec Amazon Texttract et utiliser les informations de géométrie pour afficher le texte correctement (dans l’ordre de lecture).
L’image suivante montre le résultat de l’exécution du code. Elle montre le texte détecté affiché dans l’ordre de lecture.

3. Traitement du langage naturel et classification des document
Les emails, les tickets de support, les avis émis sur des produits, les données sur les réseaux sociaux et même les messages publicitaires présentent des informations exploitables qui peuvent être mises au service de votre entreprise. Beaucoup d’informations sont présentes dans des images ou documents scannés. Une fois le texte extrait des documents, vous pouvez utiliser Amazon Comprehend pour analyser le sentiment, extraire les entités, les mots-clés, la syntaxe et les sujets du texte. Vous pouvez également entrainer Amazon Comprehend pour créer des entités personnalisées basées sur votre domaine d’activité. Ces informations peuvent être utilisées pour classer des documents, automatiser des processus métiers et faire des contrôles de conformité.
L’exemple de code ci-dessous montre comment utiliser Amazon Textract pour extraire le texte d’un document et puis utiliser Amazon Comprehend pour analyser les sentiments et extraire les entités du texte.
L’image suivante montre le résultat de l’exécution du code. Le code affiche le texte extrait, l’analyse du sentiment et les entités extraites. Vous pouvez voir que le sentiment est “Neutral”, “Amazon” a été classé comme “organization”, “Seattle, WA” comme “location” et “July 5th, 1994” comme “date”.

4. Traitement du langage naturel pour des documents médicaux
Pour améliorer la condition des patients et accélérer la recherche médicale, il est indispensable de comprendre et analyser les données et les relations qui sont stockées dans des documents tels que les ordonnances, les notes d’admission et les historiques des patients.
Dans l’exemple suivant, on utilise Amazon Textract pour extraire le texte d’un document médical. Puis on utilise Amazon Comprehend Medical pour extraire des entités de santé comme des états médicaux, des médicaments, des dosages et des informations des santés protégées (protected health information, PHI).

L’exemple de code ci-dessous montre comment les entités de santé sont extraites.
L’image suivante montre le résultat de l’exécution du code. Le code affiche les entités extraites et classées par types. “40yo” a été classé comme “age” dans la catégorie “Protected Health Information”. Des autres informations sur la condition médicale, les médicaments et l’anatomie ont été détecté comme troubles du sommeil “sleeping trouble”, éruption cutanée “rash”, turbinectomie inférieure “inferior turbinates”.

5. Traduction de documents
De nombreuses organisations proposent du contenu dans plusieurs langues à destination d’utilisateurs partout dans le monde. Dans certains cas, il est nécessaire de traduire un grand nombre de documents. Vous pouvez utiliser Amazon Textract et Amazon Translate pour extraire du texte des documents, puis le traduire dans une autre langue.
L’exemple du code ci-dessous montre comment traduire un document en allemand.
L’image suivante montre le résultat de l’exécution du code. Le code affiche le texte extrait et sa traduction en allemand ligne par ligne.

6. Indexation & Recherche
Vous pouvez créer un outil de recherche rapide pour des millions des documents. Le processus consiste à en extraire des données structurées, créer des index intelligents et utiliser Amazon Elasticsearch Service (Amazon ES) pour l’indexation et la recherche. Une banque ou un organisme financier peut utiliser Amazon Textract pour indexer des millions de dossiers de demande de prêt en quelques heures récupérant leurs textes, ses mots-clés et les stocker dans Amazon ES. Cela permettrait de créer un outil de recherche avancé, l’utilisateur final pourrait, par exemple, rechercher un dossier dont le nom du demandeur est John Doa, ou des contrats dont le taux d’intérêt est de 2 %.
L’exemple de code suivant montre comment extraire du texte, le sauvegarder dans Amazon ES et faire une recherche utilisant Kibana. Vous pouvez également créer votre propre interface utilisateur utilisant les APIs d’Amazon ES. Plus loin dans ce post, vous allez apprendre à extraire des données des tableaux et formulaires, de la même manière que pour le texte utilisé dans l’exemple, ces données structurées peuvent être indexées afin de créer un outil de recherche intelligent.
L’image suivante montre le résultat d’une recherche faite avec Kibana après l’exécution le code.

7. Extraction et Traitement de formulaires
Amazon Textract permet d’extraire des données nécessaires pour traiter des formulaires automatiquement sans intervention humaine. Une banque pourrait ainsi créer un outil pour lire des dossiers de demande de prêt en format PDF. L’information extraite du document peut être utilisée pour initialiser la vérification des références et du crédit automatiquement afin que les clients puissent obtenir une réponse rapide pour leur demande sans devoir attendre plusieurs jours une vérification manuelle.
L’image suivante est un modèle de recherche d’emploi ayant un formulaire et un tableau.

L’exemple de code ci-dessous montre comment extraire le formulaire et traiter les différents champs.
L’image suivante montre le résultat de l’exécution du code. Le code détecte et affiche le formulaire du document.

8. Controle de conformité
Amazon Textract identifiant les données et les champs des formulaires automatiquement vous aide à sécuriser votre informatique. Par exemple, une assurance peut utiliser Amazon Textract pour créer un processus qui va automatiquement identifier et masquer des données personnelles (personally identifiable information PII) avant d’archiver un formulaire de réclamation. Amazon Textract reconnaît les champs contenant des informations sensibles.
L’exemple de code suivant montre comment extraire le formulaire du modèle de demande d’emploie et masquer les adresses.
L’image suivante montre le résultat de l’exécution du code. Le code extrait les données du formulaire et masque dans l’image les champs correspondant aux adresses.

9. Extraction et traitement des tableaux
Amazon Textract permet de détecter des tableaux et ses éléments. Une entreprise peut ainsi extraire les montants d’un rapport de dépenses et appliquer des règles, par exemple, toute dépense de plus de 1000$ nécessite une validation supplémentaire.

L’exemple de code suivant nous montre comment extraire le tableau du rapport de dépense ci-dessus et afficher les cellules du tableau en mettant un warning si un montant dépasse 1000$.
L’image suivante montre le résultat de l’exécution du code. Le code affiche les cellules du tableau et son texte.
10. Traitement des documents PDF (async API operations)
Dans les exemples précédents, nous avons analysé des images avec les fonctions synchrones de l’API. Maintenant, vous allez voir comment traiter des fichiers PDF en masse en utilisant des fonctions asynchrones de l’API.
On utilise StartDocumentTextDetection ou StartDocumentAnalysis pour initialiser un travail (job) Amazon Textract. Quand le travail est finit, Amazon Textract publie le résultat de la requête, y compris son status, sur Amazon SNS. On utilise GetDocumentTextDetection ou GetDocumentAnalysis pour récupérer les résultant d’Amazon Textract.
L’exemple de code suivant montre comment initier un travail (Job), récupérer son statut et traiter son résultat. Cliquer ici pour télécharger le document pdf utilisé dans l’exemple. Pour plus d’informations, veuillez regarder Calling Amazon Textract Asynchronous Operations.
L’image suivante montre le statut du travail lors de l’appel de l’API.

Conclusion
Dans ce post, nous avons montré comment utiliser Amazon Textract pour extraire du texte et des données des documents scannés automatiquement sans avoir de compétences particulières en machine learning (ML). On a couvert des cas d’utilisation dans différents domaines tels que la finance, la santé, ou les ressources humaines, mais il existe des nombreuses opportunités et industries où Textract peut être utilisé afin de récupérer des informations stockées dans des documents non-structurés.
Pour en savoir plus sur Amazon Textract, veuillez consulter les liens suivants: traitement de documents single-page and multi-page, travaillant avec block objects, et exemples de code.
Post original de Kashif Imran et traduit de l’anglais par Felix Guglielmi Miguel, Solutions Architect accompagnant ses clients français dans leur adoption du Cloud AWS, LinkedIn.
Source