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

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

Le traitement intelligent des documents (IDP) d'Amazon vous aide à accélérer vos cycles de décision commerciale et à réduire les coûts. Dans de nombreux secteurs, les clients doivent traiter des millions de documents par an dans le cadre de leurs activités. Pour les clients qui traitent des millions de documents, il s'agit d'un aspect essentiel pour l'expérience de l'utilisateur final et d'une priorité absolue de la transformation numérique. En raison de la diversité des formats, la plupart des entreprises traitent manuellement des documents tels que les W2, les réclamations, les documents d'identité, les factures et les contrats légaux, ou utilisent des solutions OCR (reconnaissance optique de caractères) héritées qui prennent du temps, sont sujettes aux erreurs et coûteuses. Un pipeline IDP avec les services AWS AI vous permet d'aller au-delà de l'OCR avec une extraction d'informations plus précise et polyvalente, de traiter les documents plus rapidement, d'économiser de l'argent et de transférer des ressources vers des tâches de plus grande valeur.

Dans cette série, nous donnons un aperçu du pipeline IDP pour réduire le temps et les efforts nécessaires pour ingérer un document et obtenir les informations clés dans les systèmes en aval. La figure suivante montre les étapes qui font généralement partie d'un workflow 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 partie 1, nous avons discuté des trois premières phases du workflow IDP. Dans cet article, nous discutons des phases de workflow restantes.

Vue d'ensemble de la solution

L'architecture de référence suivante montre comment vous pouvez utiliser les services AWS AI tels que Extrait d'Amazon et les Amazon comprendre, ainsi que d'autres services AWS pour mettre en œuvre le flux de travail IDP. Dans la partie 1, nous avons décrit les étapes de capture des données et de classification des documents, où nous avons catégorisé et étiqueté des documents tels que des relevés bancaires, des factures et des reçus. Nous avons également discuté de l'étape d'extraction, où vous pouvez extraire des informations commerciales significatives de vos documents. Dans cet article, nous étendons le pipeline IDP en examinant les entités par défaut et personnalisées d'Amazon Comprehend dans la phase d'extraction, effectuons l'enrichissement de documents et examinons brièvement les capacités de IA augmentée d'Amazon (Amazon A2I) pour inclure une équipe de révision humaine dans la phase de révision et de validation.

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

Nous utilisons aussi Amazon Comprehend Medical dans le cadre de cette solution, qui est un service permettant d'extraire avec précision et rapidité des informations à partir de textes médicaux non structurés et d'identifier les relations entre les informations de santé extraites, et de les relier à des ontologies médicales telles que ICD-10-CM, RxNorm et SNOMED CT.

Amazon A2I est un service d'apprentissage automatique (ML) qui facilite la création des flux de travail nécessaires à l'examen humain. Amazon A2I apporte une révision humaine à tous les développeurs, en supprimant les charges lourdes indifférenciées associées à la création de systèmes de révision humaine ou à la gestion d'un grand nombre de réviseurs humains, qu'ils fonctionnent sur AWS ou non. Amazon A2I s'intègre à Extrait d'Amazon et les Amazon comprendre pour vous permettre d'introduire des étapes de révision humaine dans votre flux de travail IDP.

Pré-requis

Avant de commencer, consultez partie 1 pour un aperçu de haut niveau de l'IDP et des détails sur les étapes de capture, de classification et d'extraction des données.

Phase d'extraction

Dans la partie 1 de cette série, nous avons expliqué comment nous pouvons utiliser les fonctionnalités d'Amazon Textract pour une extraction précise des données pour tout type de documents. Pour étendre cette phase, nous utilisons des entités préformées Amazon Comprehend et un outil de reconnaissance d'entité personnalisé Amazon Comprehend pour une extraction plus poussée des documents. Le but de la reconnaissance d'entités personnalisées est d'identifier des entités spécifiques et de générer des métadonnées personnalisées concernant nos documents au format CSV ou lisible par l'homme pour être ensuite analysées par les utilisateurs professionnels.

Reconnaissance des entités nommées

La reconnaissance d'entités nommées (NER) est une sous-tâche de traitement du langage naturel (NLP) qui consiste à passer au crible des données textuelles pour localiser des phrases nominales, appelées entités nommées, et à les catégoriser avec une étiquette, telle que la marque, la date, l'événement, le lieu, les organisations. , personne, quantité ou titre. Par exemple, dans la déclaration "Je me suis récemment abonné à Amazon Prime", Amazon Prime est l'entité nommée et peut être classée comme une marque.

Amazon Comprehend vous permet de détecter ces entités personnalisées dans votre document. Chaque entité a également un score de niveau de confiance qu'Amazon Comprehend renvoie pour chaque type d'entité. Le schéma suivant illustre le processus de reconnaissance d'entité.

Reconnaissance d'entité nommée avec Amazon Comprehend

Pour obtenir des entités à partir du document texte, nous appelons le comprehend.detect_entities() et configurez le code de langue et le texte comme paramètres d'entrée :

def get_entities(text):
    try:
        #detect entities
        entities = comprehend.detect_entities(LanguageCode="en", Text=text)  
        df = pd.DataFrame(entities["Entities"], columns = ['Text', 'Type'])
        display(HTML(df.to_html(index=False)))
    except Exception as e:
        print(e)

Nous courons le get_entities() méthode sur le document bancaire et obtenir la liste des entités dans les résultats.

Réponse de la méthode get_entities de Comprehend.

Bien que l'extraction d'entités ait assez bien fonctionné pour identifier les types d'entités par défaut pour tout dans le document bancaire, nous souhaitons que des entités spécifiques soient reconnues pour notre cas d'utilisation. Plus précisément, nous devons identifier les numéros de compte d'épargne et de chèque du client dans le relevé bancaire. Nous pouvons extraire ces termes commerciaux clés à l'aide de la reconnaissance d'entité personnalisée Amazon Comprehend.

Former un modèle de reconnaissance d'entité personnalisé Amazon Comprehend

Pour détecter les entités spécifiques qui nous intéressent à partir du relevé bancaire du client, nous entraînons un outil de reconnaissance d'entités personnalisées avec deux entités personnalisées : SAVINGS_AC et les CHECKING_AC.

Ensuite, nous formons un modèle de reconnaissance d'entité personnalisé. Nous pouvons choisir l'une des deux manières de fournir des données à Amazon Comprehend : des annotations ou des listes d'entités.

La méthode des annotations peut souvent conduire à des résultats plus précis pour les fichiers image, les PDF ou les documents Word, car vous formez un modèle en soumettant un contexte plus précis sous forme d'annotations avec vos documents. Cependant, la méthode des annotations peut prendre du temps et demander beaucoup de travail. Pour simplifier cet article de blog, nous utilisons la méthode des listes d'entités, que vous ne pouvez utiliser que pour les documents en texte brut. Cette méthode nous donne un fichier CSV qui doit contenir le texte brut et son type d'entité correspondant, comme indiqué dans l'exemple précédent. Les entités de ce fichier vont être spécifiques à nos besoins commerciaux (numéros de compte d'épargne et de chèques).

Pour plus de détails sur la façon de préparer les données de formation pour différents cas d'utilisation à l'aide d'annotations ou de méthodes de listes d'entités, reportez-vous à Préparation des données d'entraînement.

La capture d'écran suivante montre un exemple de notre liste d'entités.

Un instantané de la liste des entités.

Créer un point de terminaison en temps réel NER personnalisé Amazon Comprehend

Ensuite, nous créons un point de terminaison en temps réel de reconnaissance d'entité personnalisée à l'aide du modèle que nous avons formé. Nous utilisons le Créer un point de terminaison API via le comprehend.create_endpoint() méthode pour créer le point de terminaison en temps réel :

#create comprehend endpoint
model_arn = entity_recognizer_arn
ep_name = 'idp-er-endpoint'

try:
    endpoint_response = comprehend.create_endpoint(
        EndpointName=ep_name,
        ModelArn=model_arn,
        DesiredInferenceUnits=1,    
        DataAccessRoleArn=role
    )
    ER_ENDPOINT_ARN=endpoint_response['EndpointArn']
    print(f'Endpoint created with ARN: {ER_ENDPOINT_ARN}')
    %store ER_ENDPOINT_ARN
except Exception as error:
    if error.response['Error']['Code'] == 'ResourceInUseException':
        print(f'An endpoint with the name "{ep_name}" already exists.')
        ER_ENDPOINT_ARN = f'arn:aws:comprehend:{region}:{account_id}:entity-recognizer-endpoint/{ep_name}'
        print(f'The classifier endpoint ARN is: "{ER_ENDPOINT_ARN}"')
        %store ER_ENDPOINT_ARN
    else:
        print(error)

Après avoir formé un outil de reconnaissance d'entité personnalisé, nous utilisons le point de terminaison en temps réel personnalisé pour extraire des informations enrichies du document, puis effectuons la rédaction du document à l'aide des entités personnalisées reconnues par Amazon Comprehend et des informations de cadre de délimitation d'Amazon Textract.

Phase d'enrichissement

Dans l'étape d'enrichissement du document, nous pouvons effectuer l'enrichissement du document en supprimant les données d'informations personnelles identifiables (PII), en extrayant les termes commerciaux personnalisés, etc. Notre exemple de document précédent (un relevé bancaire) contient les numéros de comptes d'épargne et de chèques des clients, que nous souhaitons supprimer. Étant donné que nous connaissons déjà ces entités personnalisées grâce à notre modèle NER personnalisé Amazon Comprehend, nous pouvons facilement utiliser le type de données de géométrie Amazon Textract pour masquer ces entités PII où qu'elles apparaissent dans le document. Dans l'architecture suivante, nous supprimons les termes commerciaux clés (comptes d'épargne et comptes courants) du document de relevé bancaire.

Phase d'enrichissement des documents.

Comme vous pouvez le voir dans l'exemple suivant, les numéros de compte courant et d'épargne sont désormais masqués dans le relevé bancaire.

Exemple de relevé bancaire expurgé.

Les solutions OCR traditionnelles ont du mal à extraire avec précision les données de la plupart des documents non structurés et semi-structurés en raison de variations importantes dans la manière dont les données sont disposées sur plusieurs versions et formats de ces documents. Vous devrez peut-être alors implémenter une logique de prétraitement personnalisée ou même extraire manuellement les informations de ces documents. Dans ce cas, le pipeline IDP prend en charge deux fonctionnalités que vous pouvez utiliser : les requêtes NER personnalisées Amazon Comprehend et Amazon Textract. Ces deux services utilisent le NLP pour extraire des informations sur le contenu des documents.

Extraction avec les requêtes Amazon Textract

Lors du traitement d'un document avec Amazon Textract, vous pouvez ajouter la nouvelle fonctionnalité de requêtes à votre analyse pour spécifier les informations dont vous avez besoin. Cela implique de passer une question NLP, telle que « Quel est le numéro de sécurité sociale du client ? » à Amazon Textract. Amazon Textract trouve les informations dans le document pour cette question et les renvoie dans une structure de réponse distincte du reste des informations du document. Les requêtes peuvent être traitées seules ou en combinaison avec d'autres FeatureType tels que Tables or Forms.

Extraction basée sur les requêtes à l'aide d'Amazon Textract.

Avec les requêtes Amazon Textract, vous pouvez extraire des informations avec une grande précision, quelle que soit la manière dont les données sont disposées dans une structure de document, comme les formulaires, les tableaux et les cases à cocher, ou hébergées dans des sections imbriquées dans un document.

Pour démontrer la fonctionnalité de requêtes, nous extrayons des informations précieuses telles que le prénom et le nom du patient, le fabricant de la dose, etc. à partir de documents tels qu'une carte de vaccination COVID-19.

Un exemple de carnet de vaccination.

Nous utilisons les textract.analyze_document() fonction et spécifiez la FeatureType as QUERIES ainsi que d'ajouter les requêtes sous forme de questions en langage naturel dans le QueriesConfig.

Le code suivant a été réduit à des fins de simplification. Pour le code complet, consultez le GitHub exemple de code en analyze_document().

response = None
with open(image_filename, 'rb') as document:
    imageBytes = bytearray(document.read())

# Call Textract
response = textract.analyze_document(
    Document={'Bytes': imageBytes},
    FeatureTypes=["QUERIES"],
    QueriesConfig={
            "Queries": [{
                "Text": "What is the date for the 1st dose covid-19?",
                "Alias": "COVID_VACCINATION_FIRST_DOSE_DATE"
            },
# code trimmed down for simplification
#..
]
}) 

Pour la fonctionnalité de requêtes, le textract.analyze_document() La fonction génère tous les MOTS et LIGNES OCR, les informations de géométrie et les scores de confiance dans la réponse JSON. Cependant, nous pouvons simplement imprimer les informations que nous avons demandées.

Document est une fonction wrapper utilisée pour aider à analyser la réponse JSON de l'API. Il fournit une abstraction de haut niveau et rend la sortie de l'API itérable et facile à extraire des informations. Pour plus d'informations, reportez-vous au Analyseur de réponse de texte et les Textracteur Dépôts GitHub. Après avoir traité la réponse, nous obtenons les informations suivantes, comme indiqué dans la capture d'écran.

import trp.trp2 as t2
from tabulate import tabulate

d = t2.TDocumentSchema().load(response)
page = d.pages[0]

query_answers = d.get_query_answers(page=page)

print(tabulate(query_answers, tablefmt="github"))

Réponse de l'extraction des requêtes.

Phase de révision et de validation

Il s'agit de la dernière étape de notre pipeline IDP. À ce stade, nous pouvons utiliser nos règles métier pour vérifier l'intégralité d'un document. Par exemple, à partir d'un document de réclamation d'assurance, l'ID de réclamation est extrait avec précision et succès. Nous pouvons utiliser les technologies sans serveur AWS telles que AWS Lambda pour une automatisation plus poussée de ces règles métier. De plus, nous pouvons inclure une main-d'œuvre humaine pour l'examen des documents afin de garantir l'exactitude des prévisions. Amazon A2I accélère la création des flux de travail requis pour l'examen humain des prédictions ML.

Avec Amazon A2I, vous pouvez autoriser les réviseurs humains à intervenir lorsqu'un modèle est incapable de faire une prédiction de haute confiance ou d'auditer ses prédictions de manière continue. L'objectif du pipeline IDP est de réduire la quantité d'interventions humaines nécessaires pour obtenir des informations précises dans vos systèmes de décision. Avec IDP, vous pouvez réduire la quantité d'interventions humaines pour vos processus documentaires ainsi que le coût total du traitement des documents.

Une fois que vous avez extrait toutes les informations précises des documents, vous pouvez ajouter des règles spécifiques à l'entreprise à l'aide des fonctions Lambda et enfin intégrer la solution avec des bases de données ou des applications en aval.

Phase d'examen et de vérification humaine.

Pour plus d'informations sur la création d'un flux de travail Amazon A2I, suivez les instructions du Préparation pour le module 4 étape à la fin de 03-idp-document-enrichment.ipynb dans notre GitHub repo.

Nettoyer

Pour éviter que des frais futurs ne soient facturés à votre compte AWS, supprimez les ressources que nous avons provisionnées lors de la configuration du référentiel en accédant au Rubrique nettoyage dans notre dépôt.

Conclusion

Dans cet article en deux parties, nous avons vu comment créer un pipeline IDP de bout en bout avec peu ou pas d'expérience en ML. Nous avons discuté des différentes étapes du pipeline et d'une solution pratique avec les services AWS AI tels qu'Amazon Textract, Amazon Comprehend, Amazon Comprehend Medical et Amazon A2I pour la conception et la création de cas d'utilisation spécifiques à l'industrie. Dans le premier message de la série, nous avons montré comment utiliser Amazon Textract et Amazon Comprehend pour extraire des informations de divers documents. Dans cet article, nous avons étudié en profondeur comment former un module de reconnaissance d'entités personnalisées Amazon Comprehend pour extraire des entités personnalisées de nos documents. Nous avons également appliqué des techniques d'enrichissement de documents telles que la rédaction à l'aide d'Amazon Textract ainsi que la liste d'entités d'Amazon Comprehend. Enfin, nous avons vu comment vous pouvez utiliser un flux de travail de révision humaine Amazon A2I pour Amazon Textract en incluant une équipe de travail privée.

Pour plus d'informations sur les exemples de code complets dans cet article, reportez-vous au GitHub repo.

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


À propos des auteurs

Traitement intelligent des documents avec les services AWS AI : partie 2 PlatoBlockchain Data Intelligence. Recherche verticale. Aï. Menton 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.

Traitement intelligent des documents avec les services AWS AI : partie 2 PlatoBlockchain Data Intelligence. Recherche verticale. Aï.Sonali Sahou dirige l'équipe d'architectes de solutions IA/ML de 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. Ses principaux domaines d'intérêt sont l'intelligence artificielle et l'apprentissage automatique pour le traitement intelligent des documents.

Traitement intelligent des documents avec les services AWS AI : partie 2 PlatoBlockchain Data Intelligence. Recherche verticale. Aï.Anjan Biswas est un architecte de solutions senior spécialisé en IA/ML. Anjan travaille avec des entreprises clientes et est passionné par le développement, le déploiement et l'explication des solutions d'IA/ML, d'analyse de données et de Big Data. 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 à évoluer sur AWS.

Traitement intelligent des documents avec les services AWS AI : partie 2 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. Il fait partie de la communauté AI/ML chez AWS et conçoit des solutions intelligentes de traitement de documents.

Horodatage:

Plus de Apprentissage automatique AWS