Automatizar el preetiquetado de PDF para Amazon Comprehend | Servicios web de Amazon

Automatizar el preetiquetado de PDF para Amazon Comprehend | Servicios web de Amazon

Amazon Comprehend es un servicio de procesamiento de lenguaje natural (NLP) que proporciona API personalizadas y previamente capacitadas para obtener información a partir de datos textuales. Los clientes de Amazon Comprehend pueden entrenar modelos personalizados de reconocimiento de entidades con nombre (NER) para extraer entidades de interés, como ubicación, nombre de persona y fecha, que son exclusivas de su negocio.

Para entrenar un modelo personalizado, primero prepare los datos de entrenamiento anotando manualmente las entidades en los documentos. Esto se puede hacer con el Comprender la herramienta de anotación de documentos semiestructurados, que crea una Verdad fundamental de Amazon SageMaker trabajo con una plantilla personalizada, lo que permite a los anotadores dibujar cuadros delimitadores alrededor de las entidades directamente en los documentos PDF. Sin embargo, para las empresas que cuentan con datos de entidades tabulares en sistemas ERP como SAP, la anotación manual puede resultar repetitiva y llevar mucho tiempo.

Para reducir el esfuerzo de preparar datos de entrenamiento, creamos una herramienta de preetiquetado utilizando Funciones de paso de AWS que realiza anotaciones previas automáticamente en los documentos utilizando datos de entidades tabulares existentes. Esto reduce significativamente el trabajo manual necesario para entrenar modelos precisos de reconocimiento de entidades personalizados en Amazon Comprehend.

En esta publicación, lo guiamos a través de los pasos para configurar la herramienta de preetiquetado y le mostramos ejemplos de cómo anota automáticamente documentos de un público. datos de extractos bancarios de muestra en formato PDF. El código completo está disponible en el Repositorio GitHub.

Resumen de la solución

En esta sección, analizamos las entradas y salidas de la herramienta de preetiquetado y brindamos una descripción general de la arquitectura de la solución.

Entradas y salidas

Como entrada, la herramienta de preetiquetado toma documentos PDF que contienen texto para anotar. Para la demostración, utilizamos extractos bancarios simulados como el siguiente ejemplo.

Automatizar el preetiquetado de PDF para Amazon Comprehend | Amazon Web Services PlatoBlockchain Inteligencia de datos. Búsqueda vertical. Ai.

La herramienta también toma un archivo de manifiesto que asigna documentos PDF con las entidades que queremos extraer de estos documentos. Las entidades se componen de dos cosas: la expected_text extraer del documento (por ejemplo, AnyCompany Bank) y el correspondiente entity_type (por ejemplo, bank_name). Más adelante en esta publicación, mostramos cómo construir este archivo de manifiesto a partir de un documento CSV como el siguiente ejemplo.

Automatizar el preetiquetado de PDF para Amazon Comprehend | Amazon Web Services PlatoBlockchain Inteligencia de datos. Búsqueda vertical. Ai.

La herramienta de preetiquetado utiliza el archivo de manifiesto para anotar automáticamente los documentos con sus entidades correspondientes. Luego podemos usar estas anotaciones directamente para entrenar un modelo de Amazon Comprehend.

Alternativamente, puede crear un trabajo de etiquetado de SageMaker Ground Truth para revisión y edición humana, como se muestra en la siguiente captura de pantalla.

Automatizar el preetiquetado de PDF para Amazon Comprehend | Amazon Web Services PlatoBlockchain Inteligencia de datos. Búsqueda vertical. Ai.

Cuando se complete la revisión, puede utilizar los datos anotados para entrenar un modelo de reconocedor de entidades personalizado de Amazon Comprehend.

Arquitectura

La herramienta de preetiquetado consta de múltiples AWS Lambda funciones orquestadas por una máquina de estado de Step Functions. Tiene dos versiones que utilizan diferentes técnicas para generar prenotaciones.

La primera técnica es coincidencia difusa. Esto requiere un archivo de manifiesto previo con las entidades esperadas. La herramienta utiliza el algoritmo de coincidencia difusa para generar anotaciones previas comparando la similitud del texto.

La coincidencia aproximada busca cadenas en el documento que sean similares (pero no necesariamente idénticas) a las entidades esperadas enumeradas en el archivo de manifiesto previo. Primero calcula las puntuaciones de similitud de texto entre el texto esperado y las palabras del documento, luego hace coincidir todos los pares por encima de un umbral. Por lo tanto, incluso si no hay coincidencias exactas, la coincidencia aproximada puede encontrar variantes como abreviaturas y errores ortográficos. Esto permite que la herramienta preetiquete documentos sin necesidad de que las entidades aparezcan palabra por palabra. Por ejemplo, si 'AnyCompany Bank' aparece como una entidad esperada, Fuzzy Matching anotará las ocurrencias de 'Any Companys Bank'. Esto proporciona más flexibilidad que la coincidencia estricta de cadenas y permite que la herramienta de preetiquetado etiquete automáticamente más entidades.

El siguiente diagrama ilustra la arquitectura de esta máquina de estados de Step Functions.

Automatizar el preetiquetado de PDF para Amazon Comprehend | Amazon Web Services PlatoBlockchain Inteligencia de datos. Búsqueda vertical. Ai.

La segunda técnica requiere una modelo de reconocedor de entidades Amazon Comprehend previamente entrenado. La herramienta genera anotaciones previas utilizando el modelo de Amazon Comprehend, siguiendo el flujo de trabajo que se muestra en el siguiente diagrama.

Automatizar el preetiquetado de PDF para Amazon Comprehend | Amazon Web Services PlatoBlockchain Inteligencia de datos. Búsqueda vertical. Ai.

El siguiente diagrama ilustra la arquitectura completa.

Automatizar el preetiquetado de PDF para Amazon Comprehend | Amazon Web Services PlatoBlockchain Inteligencia de datos. Búsqueda vertical. Ai.

En las siguientes secciones, explicamos los pasos para implementar la solución.

Implementar la herramienta de preetiquetado

Clona el repositorio en tu máquina local:

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

Este repositorio se creó sobre la herramienta de anotación de documentos semiestructurados Comprehend y amplía sus funcionalidades al permitirle iniciar un trabajo de etiquetado de SageMaker Ground Truth con anotaciones previas que ya se muestran en la interfaz de usuario de SageMaker Ground Truth.

La herramienta de preetiquetado incluye tanto los recursos de la herramienta de anotación de documentos semiestructurados Comprehend como algunos recursos específicos de la herramienta de preetiquetado. Puede implementar la solución con Modelo de aplicación sin servidor de AWS (AWS SAM), un marco de código abierto que puede utilizar para definir el código de infraestructura de aplicaciones sin servidor.

Si anteriormente implementó la herramienta de anotación de documentos semiestructurados Comprehend, consulte la sección de preguntas frecuentes en Pre_labeling_tool/README.md para obtener instrucciones sobre cómo implementar solo los recursos específicos de la herramienta de preetiquetado.

Si no ha implementado la herramienta antes y está comenzando desde cero, haga lo siguiente para implementar toda la solución.

Cambie el directorio actual a la carpeta de la herramienta de anotación:

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

Cree e implemente la solución:

make ready-and-deploy-guided

Crear el archivo de pre-manifiesto

Antes de poder utilizar la herramienta de preetiquetado, debe preparar sus datos. Las entradas principales son documentos PDF y un archivo de manifiesto previo. El archivo de manifiesto previo contiene la ubicación de cada documento PDF en 'pdf' y la ubicación de un archivo JSON con las entidades esperadas para etiquetar en 'expected_entities'.

El cuaderno generar_premanifest_file.ipynb muestra cómo crear este archivo. En la demostración, el archivo de manifiesto previo muestra el siguiente código:

[ { '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' }, ...
]

Cada archivo JSON enumerado en el archivo de manifiesto previo (en expected_entities) contiene una lista de diccionarios, uno para cada entidad esperada. Los diccionarios tienen las siguientes claves:

  • 'textos_esperados' – Una lista de posibles cadenas de texto que coinciden con la entidad.
  • 'tipo_entidad' – El tipo de entidad correspondiente.
  • 'ignorar_lista' (opcional) – La lista de palabras que deben ignorarse en el partido. Estos parámetros deben usarse para evitar que la coincidencia aproximada coincida con combinaciones específicas de palabras que usted sabe que son incorrectas. Esto puede resultar útil si desea ignorar algunos números o direcciones de correo electrónico al consultar los nombres.

Por ejemplo, la directriz expected_entities del PDF mostrado anteriormente se parece al siguiente:

[ { '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': [] }, ...
]

Ejecute la herramienta de preetiquetado

Con el archivo de manifiesto previo que creó en el paso anterior, comience a ejecutar la herramienta de etiquetado previo. Para más detalles, consulte el cuaderno. start_step_functions.ipynb.

Para iniciar la herramienta de preetiquetado, proporcione una event con las siguientes claves:

  • premanifiesto – Asigna cada documento PDF a su expected_entities archivo. Este debe contener el Servicio de almacenamiento simple de Amazon (Amazon S3) cubo (debajo bucket) y la clave (bajo key) del archivo.
  • Prefijo – Se utiliza para crear el execution_id, que nombra la carpeta S3 para el almacenamiento de salida y el nombre del trabajo de etiquetado de SageMaker Ground Truth.
  • tipos_entidad – Se muestra en la interfaz de usuario para que los anotadores etiqueten. Estos deben incluir todos los tipos de entidades en los archivos de entidades esperados.
  • nombre_equipo_trabajo (opcional) – Se utiliza para crear el trabajo de etiquetado de SageMaker Ground Truth. Corresponde a la mano de obra privada a utilizar. Si no se proporciona, solo se creará un archivo de manifiesto en lugar de un trabajo de etiquetado de SageMaker Ground Truth. Puede utilizar el archivo de manifiesto para crear un trabajo de etiquetado de SageMaker Ground Truth más adelante. Tenga en cuenta que al momento de escribir este artículo, no puede proporcionar mano de obra externa al crear el trabajo de etiquetado desde el cuaderno. Sin embargo, puede clonar el trabajo creado y asignarlo a una fuerza laboral externa en la consola de SageMaker Ground Truth.
  • comprender_parámetros (opcional) – Parámetros para entrenar directamente un modelo de reconocedor de entidades personalizado de Amazon Comprehend. Si se omite, se omitirá este paso.

Para iniciar la máquina de estados, ejecute el siguiente código Python:

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

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

Esto iniciará una ejecución de la máquina de estados. Puede monitorear el progreso de la máquina de estado en la consola de Step Functions. El siguiente diagrama ilustra el flujo de trabajo de la máquina de estados.

Automatizar el preetiquetado de PDF para Amazon Comprehend | Amazon Web Services PlatoBlockchain Inteligencia de datos. Búsqueda vertical. Ai.

Cuando la máquina de estados esté completa, haga lo siguiente:

  • Inspeccione las siguientes salidas guardadas en el prelabeling/ carpeta de la comprehend-semi-structured-docs Cubo S3:
    • Archivos de anotaciones individuales para cada página de los documentos (uno por página por documento) en temp_individual_manifests/
    • Un manifiesto para el trabajo de etiquetado de SageMaker Ground Truth en consolidated_manifest/consolidated_manifest.manifest
    • Un manifiesto que se puede utilizar para entrenar un modelo personalizado de Amazon Comprehend en consolidated_manifest/consolidated_manifest_comprehend.manifest
  • En la consola de SageMaker, abra el trabajo de etiquetado de SageMaker Ground Truth que se creó para revisar las anotaciones.
  • Inspeccionar y probar el modelo personalizado de Amazon Comprehend que se entrenó

Como se mencionó anteriormente, la herramienta solo puede crear trabajos de etiquetado de SageMaker Ground Truth para fuerza laboral privada. Para subcontratar el esfuerzo de etiquetado humano, puede clonar el trabajo de etiquetado en la consola SageMaker Ground Truth y adjuntar cualquier fuerza laboral al nuevo trabajo.

Limpiar

Para evitar incurrir en cargos adicionales, elimine los recursos que creó y elimine la pila que implementó con el siguiente comando:

make delete

Conclusión

La herramienta de preetiquetado proporciona una manera poderosa para que las empresas utilicen datos tabulares existentes para acelerar el proceso de capacitación de modelos de reconocimiento de entidades personalizados en Amazon Comprehend. Al realizar anotaciones previas automáticas en los documentos PDF, se reduce significativamente el esfuerzo manual requerido en el proceso de etiquetado.

La herramienta tiene dos versiones: coincidencia difusa y basada en Amazon Comprehend, lo que brinda flexibilidad sobre cómo generar las anotaciones iniciales. Una vez que los documentos estén preetiquetados, puede revisarlos rápidamente en un trabajo de etiquetado de SageMaker Ground Truth o incluso omitir la revisión y entrenar directamente un modelo personalizado de Amazon Comprehend.

La herramienta de preetiquetado le permite desbloquear rápidamente el valor de los datos históricos de su entidad y utilizarlos para crear modelos personalizados adaptados a su dominio específico. Al acelerar lo que suele ser la parte del proceso que requiere más mano de obra, hace que el reconocimiento de entidades personalizadas con Amazon Comprehend sea más accesible que nunca.

Para obtener más información sobre cómo etiquetar documentos PDF utilizando un trabajo de etiquetado de SageMaker Ground Truth, consulte Anotación de documentos personalizada para extraer entidades con nombre en documentos mediante Amazon Comprehend y Use Amazon SageMaker Ground Truth para etiquetar datos.


Sobre los autores

Automatizar el preetiquetado de PDF para Amazon Comprehend | Amazon Web Services PlatoBlockchain Inteligencia de datos. Búsqueda vertical. Ai.Oskar Schnack es científico aplicado en el Centro de Innovación de IA Generativa. Le apasiona sumergirse en la ciencia detrás del aprendizaje automático para hacerlo accesible para los clientes. Fuera del trabajo, a Oskar le gusta andar en bicicleta y mantenerse al día con las tendencias en teoría de la información.

Automatizar el preetiquetado de PDF para Amazon Comprehend | Amazon Web Services PlatoBlockchain Inteligencia de datos. Búsqueda vertical. Ai.Romain Besombés es arquitecto de aprendizaje profundo en el Centro de innovación de IA generativa. Le apasiona crear arquitecturas innovadoras para abordar los problemas comerciales de los clientes con aprendizaje automático.

Sello de tiempo:

Mas de Aprendizaje automático de AWS