Traitement intelligent des documents avec les services AWS AI : partie 1 PlatoBlockchain Data Intelligence. Recherche verticale. Aï.

Traitement intelligent des documents avec les services d'AWS AI : 1ère partie

Les organisations de secteurs tels que la santé, la finance et les prêts, le juridique, la vente au détail et la fabrication doivent souvent traiter de nombreux documents dans leurs processus commerciaux quotidiens. Ces documents contiennent des informations critiques qui sont essentielles pour prendre des décisions à temps afin de maintenir les plus hauts niveaux de satisfaction client, une intégration plus rapide des clients et une réduction du taux de désabonnement des clients. Dans la plupart des cas, les documents sont traités manuellement pour extraire des informations et des insights, ce qui prend du temps, est sujet aux erreurs, est coûteux et difficile à mettre à l'échelle. L’automatisation disponible aujourd’hui pour traiter et extraire les informations de ces documents est limitée. Le traitement intelligent des documents (IDP) avec les services d'intelligence artificielle (IA) d'AWS permet d'automatiser l'extraction d'informations à partir de documents de différents types et formats, rapidement et avec une grande précision, sans nécessiter de compétences en apprentissage automatique (ML). Une extraction plus rapide des informations avec une grande précision permet de prendre des décisions commerciales de qualité à temps, tout en réduisant les coûts globaux.

Bien que les étapes d'un flux de travail IDP puissent varier et être influencées par le cas d'utilisation et les exigences métier, la figure suivante montre les étapes qui font généralement partie d'un flux de travail IDP. Le traitement de documents tels que les formulaires fiscaux, les réclamations, les notes médicales, les formulaires de nouveaux clients, les factures, les contrats juridiques, etc. ne sont que quelques-uns des cas d'utilisation d'IDP.

Dans cette série en deux parties, nous expliquons comment vous pouvez automatiser et traiter intelligemment des documents à grande échelle à l'aide des services AWS AI. Dans cet article, nous discutons des trois premières phases du flux de travail IDP. Dans partie 2, nous discutons des phases restantes du flux de travail.

Vue d'ensemble de la solution

Le diagramme d'architecture suivant montre les étapes d'un flux de travail IDP. Cela commence par une étape de capture de données pour stocker et agréger en toute sécurité différents formats de fichiers (PDF, JPEG, PNG, TIFF) et mises en page de documents. L'étape suivante est la classification, où vous catégorisez vos documents (tels que les contrats, les formulaires de réclamation, les factures ou les reçus), suivie de l'extraction des documents. Lors de la phase d'extraction, vous pouvez extraire des informations commerciales significatives de vos documents. Ces données extraites sont souvent utilisées pour recueillir des informations via l'analyse des données ou envoyées à des systèmes en aval tels que des bases de données ou des systèmes transactionnels. L'étape suivante est l'enrichissement, où les documents peuvent être enrichis en expurgeant des données d'informations de santé protégées (PHI) ou d'informations personnellement identifiables (PII), en extrayant des termes commerciaux personnalisés, etc. Enfin, lors de la phase d'examen et de validation, vous pouvez inclure une main-d'œuvre humaine pour l'examen des documents afin de garantir l'exactitude du résultat.

Traitement intelligent des documents avec les services AWS AI : partie 1 PlatoBlockchain Data Intelligence. Recherche verticale. Aï.

Pour les besoins de cet article, nous considérons un ensemble d'exemples de documents tels que des relevés bancaires, des factures et des reçus de magasin. Les exemples de documents, ainsi que des exemples de code, peuvent être trouvés dans notre GitHub référentiel. Dans les sections suivantes, nous vous présentons ces exemples de code ainsi que de véritables applications pratiques. Nous montrons comment vous pouvez utiliser les capacités de ML avec Extrait d'Amazon, Amazon comprendreet IA augmentée d'Amazon (Amazon A2I) pour traiter les documents et valider les données qui en sont extraites.

Amazon Textract est un service ML qui extrait automatiquement le texte, l'écriture manuscrite et les données des documents numérisés. Cela va au-delà de la simple reconnaissance optique de caractères (OCR) pour identifier, comprendre et extraire des données de formulaires et de tableaux. Amazon Textract utilise le ML pour lire et traiter tout type de document, en extrayant avec précision le texte, l'écriture manuscrite, les tableaux et autres données sans effort manuel.

Amazon Comprehend est un service de traitement du langage naturel (NLP) qui utilise le ML pour extraire des informations sur le contenu des documents. Amazon Comprehend peut identifier les éléments critiques dans les documents, y compris les références à la langue, aux personnes et aux lieux, et les classer en sujets ou groupes pertinents. Il peut effectuer une analyse des sentiments pour déterminer le sentiment d'un document en temps réel à l'aide de la détection d'un seul document ou d'un lot. Par exemple, il peut analyser les commentaires sur un article de blog pour savoir si vos lecteurs aiment ou non l'article. Amazon Comprehend détecte également les informations personnelles telles que les adresses, les numéros de compte bancaire et les numéros de téléphone dans les documents texte en temps réel et dans les tâches par lots asynchrones. Il peut également rédiger des entités PII dans des tâches par lots asynchrones.

Amazon A2I est un service ML qui facilite la création des flux de travail requis pour l'examen humain. Amazon A2I apporte l'évaluation humaine à tous les développeurs, supprimant ainsi les lourdes tâches indifférenciées associées à la création de systèmes d'évaluation humaine ou à la gestion d'un grand nombre d'évaluateurs humains, qu'il fonctionne sur AWS ou non. Amazon A2I intègre les deux avec Extrait d'Amazon ainsi que Amazon comprendre pour vous offrir la possibilité d'introduire des étapes de révision humaine dans votre flux de travail de traitement intelligent des documents.

Phase de saisie des données

Vous pouvez stocker des documents dans un stockage hautement évolutif et durable comme Service de stockage simple Amazon (Amazon S3). Amazon S3 est un service de stockage d'objets qui offre une évolutivité, une disponibilité des données, une sécurité et des performances de pointe. Amazon S3 est conçu pour une durabilité de 11 9 et stocke les données de millions de clients dans le monde entier. Les documents peuvent se présenter sous différents formats et mises en page, et provenir de différents canaux tels que des portails Web ou des pièces jointes à des e-mails.

Phase de classement

Lors de l’étape précédente, nous avons collecté des documents de différents types et formats. Dans cette étape, nous devons catégoriser les documents avant de pouvoir procéder à une extraction plus poussée. Pour cela, nous utilisons Amazon Comprehend classement personnalisé. La classification des documents est un processus en deux étapes. Tout d'abord, vous entraînez un classificateur personnalisé Amazon Comprehend pour reconnaître les classes qui vous intéressent. Ensuite, vous déployez le modèle avec un point de terminaison en temps réel du classificateur personnalisé et envoyez des documents non étiquetés au point final en temps réel pour être classifiés.

La figure suivante représente un flux de travail typique de classification de documents.

Phase de classement

Pour former le classificateur, identifiez les cours qui vous intéressent et fournissez des exemples de documents pour chacune des classes comme matériel de formation. Sur la base des options que vous avez indiquées, Amazon Comprehend crée un modèle ML personnalisé qu'il entraîne en fonction des documents que vous avez fournis. Ce modèle personnalisé (le classificateur) examine chaque document que vous soumettez. Il renvoie soit la classe spécifique qui représente le mieux le contenu (si vous utilisez le mode multi-classes), soit l'ensemble des classes qui s'y appliquent (si vous utilisez le mode multi-étiquettes).

Préparer les données d'entraînement

La première étape consiste à extraire le texte des documents requis pour le classificateur personnalisé Amazon Comprehend. Pour extraire les informations textuelles brutes de tous les documents dans Amazon S3, nous utilisons Amazon Textract detect_document_text() API. Nous étiquetons également les données en fonction du type de document à utiliser pour former un classificateur Amazon Comprehend personnalisé.

Le code suivant a été réduit à des fins de simplification. Pour le code complet, reportez-vous au GitHub exemple de code en textract_extract_text(). La fonction call_textract() est une fonction wr4apper qui appelle le AnalyserDocument API en interne et les paramètres transmis à la méthode résument certaines des configurations dont l'API a besoin pour exécuter la tâche d'extraction.

def textract_extract_text(document, bucket=data_bucket):        
    try:
        print(f'Processing document: {document}')
        lines = ""
        row = []
        
        # using amazon-textract-caller
        response = call_textract(input_document=f's3://{bucket}/{document}') 
        # using pretty printer to get all the lines
        lines = get_string(textract_json=response, output_type=[Textract_Pretty_Print.LINES])
        
        label = [name for name in names if(name in document)]  
        row.append(label[0])
        row.append(lines)        
        return row
    except Exception as e:
        print (e)        

Former un classificateur personnalisé

Dans cette étape, nous utilisons la classification personnalisée Amazon Comprehend pour entraîner notre modèle de classification des documents. Nous utilisons le CreateDocumentClassifierCreateDocumentClassifier API pour créer un classificateur qui entraîne un modèle personnalisé à l'aide de nos données étiquetées. Voir le code suivant :

create_response = comprehend.create_document_classifier(
        InputDataConfig={
            'DataFormat': 'COMPREHEND_CSV',
            'S3Uri': f's3://{data_bucket}/{key}'
        },
        DataAccessRoleArn=role,
        DocumentClassifierName=document_classifier_name,
        VersionName=document_classifier_version,
        LanguageCode='en',
        Mode='MULTI_CLASS'
    )

Déployer un point de terminaison en temps réel

Pour utiliser le classificateur personnalisé Amazon Comprehend, nous créons un point de terminaison en temps réel à l'aide du CreateEndpoint API:

endpoint_response = comprehend.create_endpoint(
        EndpointName=ep_name,
        ModelArn=model_arn,
        DesiredInferenceUnits=1,    
        DataAccessRoleArn=role
    )
    ENDPOINT_ARN=endpoint_response['EndpointArn']
print(f'Endpoint created with ARN: {ENDPOINT_ARN}')  

Classer les documents avec le point de terminaison en temps réel

Une fois le point de terminaison Amazon Comprehend créé, nous pouvons utiliser le point de terminaison en temps réel pour classer les documents. Nous utilisons le comprehend.classify_document() fonction avec le texte du document extrait et le point final d'inférence comme paramètres d'entrée :

response = comprehend.classify_document(
      Text= document,
      EndpointArn=ENDPOINT_ARN
      )

Amazon Comprehend renvoie toutes les classes de documents avec un score de confiance lié à chaque classe dans un tableau de paires clé-valeur (nom-score). Nous sélectionnons la classe de document ayant le score de confiance le plus élevé. La capture d'écran suivante est un exemple de réponse.

Classer les documents avec le point de terminaison en temps réel

Nous vous recommandons de consulter l'exemple de code de classification détaillée des documents sur GitHub.

Phase d'extraction

Amazon Textract vous permet d'extraire du texte et des informations de données structurées à l'aide d'Amazon Textract DétecterTexteDocument ainsi que AnalyserDocument API, respectivement. Ces API répondent avec des données JSON, qui contiennent des MOTS, des LIGNES, des FORMULAIRES, des TABLES, des informations sur la géométrie ou le cadre de délimitation, des relations, etc. Les deux DetectDocumentText ainsi que AnalyzeDocument sont des opérations synchrones. Pour analyser des documents de manière asynchrone, utilisez StartDocumentTextDetectionStartDocumentTextDetection.

Extraction de données structurées

Vous pouvez extraire des données structurées telles que des tableaux à partir de documents tout en préservant la structure des données et les relations entre les éléments détectés. Vous pouvez utiliser le AnalyserDocument API avec le FeatureType as TABLE pour détecter tous les tableaux d'un document. La figure suivante illustre ce processus.

Extraction de données structurées

Voir le code suivant:

response = textract.analyze_document(
    Document={
        'S3Object': {
            'Bucket': s3BucketName,
            'Name': documentName
        }
    },
    FeatureTypes=["TABLES"])

Nous courons le analyze_document() méthode avec le FeatureType as TABLES sur le document d'historique de l'employé et obtenez l'extraction du tableau dans les résultats suivants.

Analyser la réponse de l'API du document pour l'extraction des tables

Extraction de données semi-structurées

Vous pouvez extraire des données semi-structurées telles que des formulaires ou des paires clé-valeur à partir de documents tout en préservant la structure des données et les relations entre les éléments détectés. Vous pouvez utiliser le AnalyserDocument API avec le FeatureType as FORMS pour détecter tous les formulaires dans un document. Le diagramme suivant illustre ce processus.

Extraction de données semi-structurées

Voir le code suivant:

response = textract.analyze_document(
    Document={
        'S3Object': {
            'Bucket': s3BucketName,
            'Name': documentName
        }
    },
    FeatureTypes=["FORMS"])

Ici, nous exécutons le analyze_document() méthode avec le FeatureType as FORMS sur le dossier de candidature du salarié et obtenir l'extraction du tableau dans les résultats.

Traitement intelligent des documents avec les services AWS AI : partie 1 PlatoBlockchain Data Intelligence. Recherche verticale. Aï.

Extraction de données non structurées

Amazon Textract est optimal pour l'extraction de texte dense avec une précision OCR de pointe. Vous pouvez utiliser le DétecterTexteDocument API pour détecter les lignes de texte et les mots qui composent une ligne de texte, comme illustré dans la figure suivante.

Extraction de données non structurées

Voir le code suivant:

response = textract.detect_document_text(Document={'Bytes': imageBytes})

# Print detected text
for item in response["Blocks"]:
	if item["BlockType"] == "LINE":
 		print (item["Text"])

Maintenant, nous exécutons le detect_document_text() méthode sur l’image échantillon et obtenir une extraction de texte brut dans les résultats.

Traitement intelligent des documents avec les services AWS AI : partie 1 PlatoBlockchain Data Intelligence. Recherche verticale. Aï.

Factures et reçus

Amazon Textract fournit une assistance spécialisée pour traiter les factures et les reçus à grande échelle. Le Analyser les dépenses L'API peut extraire des données explicitement étiquetées, des données implicites et des éléments de ligne d'une liste détaillée de biens ou de services de presque n'importe quelle facture ou reçu sans aucun modèle ni configuration. La figure suivante illustre ce processus.

Extraction des factures et des reçus

Voir le code suivant:

response = textract.analyze_expense(
    Document={
        'S3Object': {
            'Bucket': s3BucketName,
            'Name': documentName
        }
    })

Amazon Textract peut trouver le nom du fournisseur sur un reçu même s'il est uniquement indiqué dans un logo sur la page sans étiquette explicite appelée « fournisseur ». Il peut également rechercher et extraire les postes de dépenses, les quantités et les prix qui ne sont pas étiquetés avec des en-têtes de colonne pour les postes.

Analyser la réponse de l'API des dépenses

Documents d'identité

Le texte d'Amazon AnalyseID L'API peut vous aider à extraire automatiquement les informations des documents d'identification, tels que les permis de conduire et les passeports, sans avoir besoin de modèles ni de configuration. Nous pouvons extraire des informations spécifiques, telles que la date d'expiration et la date de naissance, ainsi qu'identifier et extraire intelligemment des informations implicites, telles que le nom et l'adresse. Le diagramme suivant illustre ce processus.

Extraction de documents d'identité

Voir le code suivant:

textract_client = boto3.client('textract')
j = call_textract_analyzeid(document_pages=["s3://amazon-textract-public-content/analyzeid/driverlicense.png"],boto3_textract_client=textract_client)

Nous pouvons utiliser tabulate pour obtenir une jolie sortie imprimée :

from tabulate import tabulate

print(tabulate([x[1:3] for x in result]))

Traitement intelligent des documents avec les services AWS AI : partie 1 PlatoBlockchain Data Intelligence. Recherche verticale. Aï.

Nous vous recommandons de passer par l'extraction détaillée du document exemple de code sur GitHub. Pour plus d'informations sur les exemples de code complets dans cet article, reportez-vous au GitHub repo.

Conclusion

Dans ce premier article d'une série en deux parties, nous avons discuté des différentes étapes de l'IDP et d'une architecture de solution. Nous avons également discuté de la classification des documents à l'aide d'un classificateur personnalisé Amazon Comprehend. Ensuite, nous avons exploré les façons dont vous pouvez utiliser Amazon Textract pour extraire des informations à partir de types de documents non structurés, semi-structurés, structurés et spécialisés.

In partie 2 de cette série, nous poursuivons la discussion avec les fonctionnalités d'extraction et de requêtes d'Amazon Textract. Nous examinons comment utiliser les entités prédéfinies et personnalisées d'Amazon Comprehend pour extraire les termes commerciaux clés de documents contenant du texte dense, et comment intégrer une révision humaine Amazon A2I dans vos processus IDP.

Nous vous recommandons de consulter les sections sur la sécurité du Extrait d'Amazon, Amazon comprendreet Amazon A2I documentation et en suivant les directives fournies. Prenez également un moment pour examiner et comprendre les prix de Extrait d'Amazon, Amazon comprendreet Amazon A2I.


À propos des auteurs

Traitement intelligent des documents avec les services AWS AI : partie 1 PlatoBlockchain Data Intelligence. Recherche verticale. Aï. Suprakash Dutta est architecte de solutions chez Amazon Web Services. Il se concentre sur la stratégie de transformation numérique, la modernisation et la migration des applications, l'analyse des données et l'apprentissage automatique.

Traitement intelligent des documents avec les services AWS AI : partie 1 PlatoBlockchain Data Intelligence. Recherche verticale. Aï.Sonali Sahou dirige l'équipe d'architectes de solutions AI/ML pour le traitement intelligent des documents chez Amazon Web Services. Elle est une technophile passionnée et aime travailler avec les clients pour résoudre des problèmes complexes en utilisant l'innovation. Son principal domaine d’intérêt est l’intelligence artificielle et l’apprentissage automatique pour le traitement intelligent des documents.

Traitement intelligent des documents avec les services AWS AI : partie 1 PlatoBlockchain Data Intelligence. Recherche verticale. Aï.Anjan Biswas est un architecte senior de solutions de services d'IA, spécialisé dans l'IA/ML et l'analyse de données. Anjan fait partie de l'équipe mondiale des services d'IA et travaille avec les clients pour les aider à comprendre et à développer des solutions aux problèmes commerciaux liés à l'IA et au ML. Anjan a plus de 14 ans d'expérience de travail avec des organisations mondiales de chaîne d'approvisionnement, de fabrication et de vente au détail, et aide activement les clients à démarrer et à faire évoluer les services AWS AI.

Traitement intelligent des documents avec les services AWS AI : partie 1 PlatoBlockchain Data Intelligence. Recherche verticale. Aï.Chinmayee Rane est architecte de solutions spécialisées en IA/ML chez Amazon Web Services. Elle est passionnée par les mathématiques appliquées et l'apprentissage automatique. Elle se concentre sur la conception de solutions intelligentes de traitement de documents pour les clients AWS. En dehors du travail, elle aime danser la salsa et la bachata.

Horodatage:

Plus de Apprentissage automatique AWS