Automatisez le pré-étiquetage des PDF pour Amazon Comprehend | Services Web Amazon

Automatisez le pré-étiquetage des PDF pour Amazon Comprehend | Services Web Amazon

Amazon comprendre est un service de traitement du langage naturel (NLP) qui fournit des API pré-entraînées et personnalisées pour extraire des informations à partir de données textuelles. Les clients d'Amazon Comprehend peuvent former des modèles personnalisés de reconnaissance d'entités nommées (NER) pour extraire des entités d'intérêt, telles que l'emplacement, le nom de la personne et la date, qui sont propres à leur entreprise.

Pour entraîner un modèle personnalisé, vous préparez d’abord les données d’entraînement en annotant manuellement les entités dans les documents. Cela peut être fait avec le Comprendre l'outil d'annotation de documents semi-structurés, ce qui crée un Vérité au sol Amazon SageMaker travail avec un modèle personnalisé, permettant aux annotateurs de dessiner des cadres de délimitation autour des entités directement sur les documents PDF. Cependant, pour les entreprises disposant de données d'entité tabulaires dans des systèmes ERP tels que SAP, l'annotation manuelle peut être répétitive et prendre beaucoup de temps.

Pour réduire l'effort de préparation des données de formation, nous avons construit un outil de pré-étiquetage utilisant Fonctions d'étape AWS qui pré-annote automatiquement les documents en utilisant les données d'entité tabulaires existantes. Cela réduit considérablement le travail manuel nécessaire pour former des modèles de reconnaissance d'entités personnalisés précis dans Amazon Comprehend.

Dans cet article, nous vous guidons à travers les étapes de configuration de l'outil de pré-étiquetage et montrons des exemples de la façon dont il annote automatiquement les documents d'un public. jeu de données d'exemples de relevés bancaires au format PDF. Le code complet est disponible sur GitHub repo.

Vue d'ensemble de la solution

Dans cette section, nous discutons des entrées et sorties de l'outil de pré-étiquetage et donnons un aperçu de l'architecture de la solution.

Entrées et sorties

En entrée, l'outil de pré-étiquetage prend en compte les documents PDF contenant du texte à annoter. Pour la démo, nous utilisons des relevés bancaires simulés comme l'exemple suivant.

Automatisez le pré-étiquetage des PDF pour Amazon Comprehend | Amazon Web Services PlatoBlockchain Data Intelligence. Recherche verticale. Aï.

L'outil prend également un fichier manifeste qui mappe les documents PDF avec les entités que nous souhaitons extraire de ces documents. Les entités se composent de deux choses : le expected_text extraire du document (par exemple, AnyCompany Bank) et le correspondant entity_type (par exemple, bank_name). Plus loin dans cet article, nous montrons comment construire ce fichier manifeste à partir d'un document CSV, comme dans l'exemple suivant.

Automatisez le pré-étiquetage des PDF pour Amazon Comprehend | Amazon Web Services PlatoBlockchain Data Intelligence. Recherche verticale. Aï.

L'outil de pré-étiquetage utilise le fichier manifeste pour annoter automatiquement les documents avec leurs entités correspondantes. Nous pouvons ensuite utiliser ces annotations directement pour entraîner un modèle Amazon Comprehend.

Vous pouvez également créer une tâche d'étiquetage SageMaker Ground Truth pour une révision et une modification par l'homme, comme indiqué dans la capture d'écran suivante.

Automatisez le pré-étiquetage des PDF pour Amazon Comprehend | Amazon Web Services PlatoBlockchain Data Intelligence. Recherche verticale. Aï.

Une fois l'examen terminé, vous pouvez utiliser les données annotées pour former un modèle de reconnaissance d'entité personnalisé Amazon Comprehend.

Architecture

L'outil de pré-étiquetage se compose de plusieurs AWS Lambda fonctions orchestrées par une machine à états Step Functions. Il existe deux versions qui utilisent des techniques différentes pour générer des pré-annotations.

La première technique est correspondance floue. Cela nécessite un fichier pré-manifeste avec les entités attendues. L'outil utilise l'algorithme de correspondance floue pour générer des pré-annotations en comparant la similarité du texte.

La correspondance floue recherche dans le document des chaînes similaires (mais pas nécessairement identiques) aux entités attendues répertoriées dans le fichier pré-manifeste. Il calcule d'abord les scores de similarité du texte entre le texte attendu et les mots du document, puis il fait correspondre toutes les paires au-dessus d'un seuil. Par conséquent, même s’il n’existe pas de correspondances exactes, la correspondance floue peut trouver des variantes telles que des abréviations et des fautes d’orthographe. Cela permet à l'outil de pré-étiqueter les documents sans exiger que les entités apparaissent textuellement. Par exemple, si 'AnyCompany Bank' est répertorié comme une entité attendue, Fuzzy Matching annotera les occurrences de 'Any Companys Bank'. Cela offre plus de flexibilité qu'une correspondance de chaîne stricte et permet à l'outil de pré-étiquetage d'étiqueter automatiquement davantage d'entités.

Le diagramme suivant illustre l’architecture de cette machine à états Step Functions.

Automatisez le pré-étiquetage des PDF pour Amazon Comprehend | Amazon Web Services PlatoBlockchain Data Intelligence. Recherche verticale. Aï.

La deuxième technique nécessite un modèle de reconnaissance d'entité Amazon Comprehend pré-entraîné. L'outil génère des pré-annotations à l'aide du modèle Amazon Comprehend, en suivant le flux de travail illustré dans le diagramme suivant.

Automatisez le pré-étiquetage des PDF pour Amazon Comprehend | Amazon Web Services PlatoBlockchain Data Intelligence. Recherche verticale. Aï.

Le diagramme suivant illustre l’architecture complète.

Automatisez le pré-étiquetage des PDF pour Amazon Comprehend | Amazon Web Services PlatoBlockchain Data Intelligence. Recherche verticale. Aï.

Dans les sections suivantes, nous passons en revue les étapes de mise en œuvre de la solution.

Déployer l'outil de pré-étiquetage

Clonez le dépôt sur votre ordinateur local :

git clone https://github.com/aws-samples/amazon-comprehend-automated-pdf-prelabeling-tool.git

Ce référentiel a été construit sur l'outil d'annotation de documents semi-structurés Comprehend et étend ses fonctionnalités en vous permettant de démarrer un travail d'étiquetage SageMaker Ground Truth avec des pré-annotations déjà affichées sur l'interface utilisateur de SageMaker Ground Truth.

L'outil de pré-étiquetage comprend à la fois les ressources de l'outil d'annotation de documents semi-structurés ainsi que certaines ressources spécifiques à l'outil de pré-étiquetage. Vous pouvez déployer la solution avec Modèle d'application sans serveur AWS (AWS SAM), un framework open source que vous pouvez utiliser pour définir le code d'infrastructure d'applications sans serveur.

Si vous avez déjà déployé l'outil d'annotation de documents semi-structurés Comprehend, reportez-vous à la section FAQ dans Pre_labeling_tool/README.md pour obtenir des instructions sur la façon de déployer uniquement les ressources spécifiques à l'outil de pré-étiquetage.

Si vous n’avez jamais déployé l’outil auparavant et que vous recommencez, procédez comme suit pour déployer l’intégralité de la solution.

Remplacez le répertoire actuel par le dossier de l'outil d'annotation :

cd amazon-comprehend-semi-structured-documents-annotation-tools

Construisez et déployez la solution :

make ready-and-deploy-guided

Créer le fichier pré-manifeste

Avant de pouvoir utiliser l'outil de pré-étiquetage, vous devez préparer vos données. Les principales entrées sont des documents PDF et un fichier pré-manifeste. Le fichier pré-manifeste contient l'emplacement de chaque document PDF sous 'pdf' et l'emplacement d'un fichier JSON avec les entités attendues sous lesquelles étiqueter 'expected_entities'.

Le cahier generate_premanifest_file.ipynb montre comment créer ce fichier. Dans la démo, le fichier pré-manifeste affiche le code suivant :

[ { 'pdf': 's3://<bucket>/data_aws_idp_workshop_data/bank_stmt_0.pdf', 'expected_entities': 's3://<bucket>/prelabeling-inputs/expected-entities/example-demo/fuzzymatching_version/file_bank_stmt_0.json' }, ...
]

Chaque fichier JSON répertorié dans le fichier pré-manifeste (sous expected_entities) contient une liste de dictionnaires, un pour chaque entité attendue. Les dictionnaires ont les clés suivantes :

  • 'textes_attendus' – Une liste de chaînes de texte possibles correspondant à l'entité.
  • 'type d'entité' – Le type d'entité correspondant.
  • 'ignore_list' (facultatif) – La liste des mots à ignorer dans le match. Ces paramètres doivent être utilisés pour empêcher la correspondance floue de correspondre à des combinaisons spécifiques de mots dont vous savez qu'elles sont fausses. Cela peut être utile si vous souhaitez ignorer certains numéros ou adresses e-mail lorsque vous consultez des noms.

Par exemple, la expected_entities du PDF affiché précédemment ressemble à ce qui suit :

[ { 'expected_texts': ['AnyCompany Bank'], 'entity_type': 'bank_name', 'ignore_list': [] }, { 'expected_texts': ['JANE DOE'], 'entity_type': 'customer_name', 'ignore_list': ['JANE.DOE@example_mail.com'] }, { 'expected_texts': ['003884257406'], 'entity_type': 'checking_number', 'ignore_list': [] }, ...
]

Exécutez l'outil de pré-étiquetage

Avec le fichier pré-manifeste que vous avez créé à l'étape précédente, commencez à exécuter l'outil de pré-étiquetage. Pour plus de détails, reportez-vous au cahier start_step_functions.ipynb.

Pour démarrer l'outil de pré-étiquetage, fournissez un event avec les clés suivantes :

  • Prémanifeste – Mappe chaque document PDF à son expected_entities déposer. Celui-ci devrait contenir le Service de stockage simple Amazon (Amazon S3) (sous bucket) et la clé (sous key) du fichier.
  • Préfixe – Utilisé pour créer le execution_id, qui nomme le dossier S3 pour le stockage de sortie et le nom de la tâche d'étiquetage SageMaker Ground Truth.
  • types_entités – Affiché dans l’interface utilisateur pour que les annotateurs puissent étiqueter. Ceux-ci doivent inclure tous les types d'entités dans les fichiers d'entités attendus.
  • work_team_name (facultatif) – Utilisé pour créer la tâche d’étiquetage SageMaker Ground Truth. Il correspond à la main d'œuvre privée à utiliser. S'il n'est pas fourni, seul un fichier manifeste sera créé au lieu d'une tâche d'étiquetage SageMaker Ground Truth. Vous pouvez utiliser le fichier manifeste pour créer ultérieurement une tâche d'étiquetage SageMaker Ground Truth. Notez qu’au moment d’écrire ces lignes, vous ne pouvez pas faire appel à une main-d’œuvre externe lors de la création de la tâche d’étiquetage à partir du bloc-notes. Cependant, vous pouvez cloner la tâche créée et l'attribuer à une main-d'œuvre externe sur la console SageMaker Ground Truth.
  • comprendre_paramètres (facultatif) – Paramètres permettant de former directement un modèle de reconnaissance d'entité personnalisé Amazon Comprehend. Si elle est omise, cette étape sera ignorée.

Pour démarrer la machine d'état, exécutez le code Python suivant :

import boto3
stepfunctions_client = boto3.client('stepfunctions')

response = stepfunctions_client.start_execution(
stateMachineArn=fuzzymatching_prelabeling_step_functions_arn,
input=json.dumps(<event-dict>)
)

Cela lancera une exécution de la machine à états. Vous pouvez surveiller la progression de la machine d'état sur la console Step Functions. Le diagramme suivant illustre le flux de travail de la machine à états.

Automatisez le pré-étiquetage des PDF pour Amazon Comprehend | Amazon Web Services PlatoBlockchain Data Intelligence. Recherche verticale. Aï.

Une fois la machine à états terminée, procédez comme suit :

  • Inspectez les sorties suivantes enregistrées dans le prelabeling/ dossier du comprehend-semi-structured-docs Compartiment S3 :
    • Fichiers d'annotations individuels pour chaque page des documents (un par page et par document) dans temp_individual_manifests/
    • Un manifeste pour le travail d'étiquetage de SageMaker Ground Truth dans consolidated_manifest/consolidated_manifest.manifest
    • Un manifeste qui peut être utilisé pour entraîner un modèle Amazon Comprehend personnalisé dans consolidated_manifest/consolidated_manifest_comprehend.manifest
  • Sur la console SageMaker, ouvrez la tâche d'étiquetage SageMaker Ground Truth qui a été créée pour vérifier les annotations.
  • Inspecter et tester le modèle Amazon Comprehend personnalisé qui a été formé

Comme mentionné précédemment, l'outil ne peut créer des tâches d'étiquetage SageMaker Ground Truth que pour le personnel privé. Pour externaliser l'effort d'étiquetage humain, vous pouvez cloner la tâche d'étiquetage sur la console SageMaker Ground Truth et associer n'importe quelle main-d'œuvre à la nouvelle tâche.

Nettoyer

Pour éviter de payer des frais supplémentaires, supprimez les ressources que vous avez créées et supprimez la pile que vous avez déployée avec la commande suivante :

make delete

Conclusion

L'outil de pré-étiquetage offre aux entreprises un moyen puissant d'utiliser les données tabulaires existantes pour accélérer le processus de formation de modèles de reconnaissance d'entités personnalisés dans Amazon Comprehend. En pré-annotant automatiquement les documents PDF, cela réduit considérablement l'effort manuel requis dans le processus d'étiquetage.

L'outil existe en deux versions : la correspondance floue et la version basée sur Amazon Comprehend, offrant une flexibilité sur la manière de générer les annotations initiales. Une fois les documents pré-étiquetés, vous pouvez les examiner rapidement dans une tâche d'étiquetage SageMaker Ground Truth ou même ignorer la révision et former directement un modèle personnalisé Amazon Comprehend.

L'outil de pré-étiquetage vous permet de libérer rapidement la valeur de vos données d'entité historiques et de les utiliser pour créer des modèles personnalisés adaptés à votre domaine spécifique. En accélérant ce qui est généralement la partie du processus la plus exigeante en main-d'œuvre, cela rend la reconnaissance d'entités personnalisée avec Amazon Comprehend plus accessible que jamais.

Pour plus d'informations sur la façon d'étiqueter des documents PDF à l'aide d'une tâche d'étiquetage SageMaker Ground Truth, consultez Annotation de document personnalisée pour extraire des entités nommées dans des documents à l'aide d'Amazon Comprehend et les Utiliser Amazon SageMaker Ground Truth pour étiqueter les données.


À propos des auteurs

Automatisez le pré-étiquetage des PDF pour Amazon Comprehend | Amazon Web Services PlatoBlockchain Data Intelligence. Recherche verticale. Aï.Oskar Schnaack est chercheur appliqué au Generative AI Innovation Center. Il est passionné par l'exploration de la science derrière l'apprentissage automatique afin de le rendre accessible aux clients. En dehors du travail, Oskar aime faire du vélo et suivre les tendances de la théorie de l'information.

Automatisez le pré-étiquetage des PDF pour Amazon Comprehend | Amazon Web Services PlatoBlockchain Data Intelligence. Recherche verticale. Aï.Romain Besombes est architecte de Deep Learning au Generative AI Innovation Center. Il est passionné par la création d’architectures innovantes pour résoudre les problèmes commerciaux des clients grâce à l’apprentissage automatique.

Horodatage:

Plus de Apprentissage automatique AWS