Procesamiento inteligente de documentos con servicios de IA de AWS: Parte 1 Inteligencia de datos PlatoBlockchain. Búsqueda vertical. Ai.

Procesamiento inteligente de documentos con servicios de IA de AWS: Parte 1

Las organizaciones de todos los sectores, como la atención médica, las finanzas y los préstamos, el sector legal, el comercio minorista y la fabricación, a menudo tienen que lidiar con una gran cantidad de documentos en sus procesos comerciales diarios. Estos documentos contienen información crítica que es clave para tomar decisiones a tiempo con el fin de mantener los niveles más altos de satisfacción del cliente, una incorporación de clientes más rápida y una menor rotación de clientes. En la mayoría de los casos, los documentos se procesan manualmente para extraer información y conocimientos, lo que requiere mucho tiempo, es propenso a errores, es costoso y difícil de escalar. Actualmente, existe una automatización limitada disponible para procesar y extraer información de estos documentos. El procesamiento inteligente de documentos (IDP) con los servicios de inteligencia artificial (IA) de AWS ayuda a automatizar la extracción de información de documentos de diferentes tipos y formatos, de forma rápida y con alta precisión, sin necesidad de habilidades de aprendizaje automático (ML). La extracción de información más rápida con alta precisión ayuda a tomar decisiones comerciales de calidad a tiempo, al tiempo que reduce los costos generales.

Aunque las etapas de un flujo de trabajo de IDP pueden variar y verse influenciadas por el caso de uso y los requisitos comerciales, la siguiente figura muestra las etapas que normalmente forman parte de un flujo de trabajo de IDP. El procesamiento de documentos como formularios de impuestos, reclamaciones, notas médicas, formularios de nuevos clientes, facturas, contratos legales y más son solo algunos de los casos de uso de IDP.

En esta serie de dos partes, analizamos cómo puede automatizar y procesar de manera inteligente documentos a escala utilizando los servicios de IA de AWS. En esta publicación, discutimos las primeras tres fases del flujo de trabajo de IDP. En parte 2, discutimos las fases restantes del flujo de trabajo.

Resumen de la solución

El siguiente diagrama de arquitectura muestra las etapas de un flujo de trabajo de IDP. Comienza con una etapa de captura de datos para almacenar y agregar de forma segura diferentes formatos de archivo (PDF, JPEG, PNG, TIFF) y diseños de documentos. La siguiente etapa es la clasificación, donde categoriza sus documentos (como contratos, formularios de reclamo, facturas o recibos), seguido de la extracción de documentos. En la etapa de extracción, puede extraer información comercial significativa de sus documentos. Estos datos extraídos a menudo se utilizan para recopilar información a través del análisis de datos o se envían a sistemas posteriores, como bases de datos o sistemas transaccionales. La siguiente etapa es el enriquecimiento, donde los documentos se pueden enriquecer mediante la redacción de datos de información de salud protegida (PHI) o información de identificación personal (PII), extracción de términos comerciales personalizados, etc. Finalmente, en la etapa de revisión y validación, puede incluir una fuerza laboral humana para la revisión de documentos para garantizar que el resultado sea preciso.

Procesamiento inteligente de documentos con servicios de IA de AWS: Parte 1 Inteligencia de datos PlatoBlockchain. Búsqueda vertical. Ai.

A los efectos de esta publicación, consideramos un conjunto de documentos de muestra, como extractos bancarios, facturas y recibos de tiendas. Los ejemplos de documentos, junto con el código de ejemplo, se pueden encontrar en nuestro Repositorio GitHub. En las siguientes secciones, lo guiaremos a través de estos ejemplos de código junto con una aplicación práctica real. Demostramos cómo puede utilizar las capacidades de ML con Amazon Textil, Amazon Comprehendy IA aumentada de Amazon (Amazon A2I) para procesar documentos y validar los datos extraídos de ellos.

Amazon Textract es un servicio de aprendizaje automático que extrae automáticamente texto, escritura a mano y datos de documentos escaneados. Va más allá del simple reconocimiento óptico de caracteres (OCR) para identificar, comprender y extraer datos de formularios y tablas. Amazon Textract utiliza ML para leer y procesar cualquier tipo de documento, extrayendo con precisión texto, escritura a mano, tablas y otros datos sin esfuerzo manual.

Amazon Comprehend es un servicio de procesamiento de lenguaje natural (NLP) que utiliza ML para extraer información sobre el contenido de los documentos. Amazon Comprehend puede identificar elementos críticos en documentos, incluidas referencias a idiomas, personas y lugares, y clasificarlos en temas o grupos relevantes. Puede realizar un análisis de opinión para determinar la opinión de un documento en tiempo real mediante la detección de un solo documento o por lotes. Por ejemplo, puede analizar los comentarios en una publicación de blog para saber si a sus lectores les gusta la publicación o no. Amazon Comprehend también detecta PII como direcciones, números de cuentas bancarias y números de teléfono en documentos de texto en tiempo real y trabajos por lotes asincrónicos. También puede redactar entidades PII en trabajos por lotes asincrónicos.

Amazon A2I es un servicio de aprendizaje automático que facilita la creación de los flujos de trabajo necesarios para la revisión humana. Amazon A2I lleva la revisión humana a todos los desarrolladores, eliminando el trabajo pesado no diferenciado asociado con la creación de sistemas de revisión humana o la gestión de un gran número de revisores humanos, ya sea que se ejecute en AWS o no. Amazon A2I integra ambos con Amazon Textil y Amazon Comprehend para brindarle la capacidad de introducir pasos de revisión humana dentro de su flujo de trabajo de procesamiento inteligente de documentos.

Fase de captura de datos

Puede almacenar documentos en un almacenamiento altamente escalable y duradero como Servicio de almacenamiento simple de Amazon (Amazon S3). Amazon S3 es un servicio de almacenamiento de objetos que ofrece escalabilidad, disponibilidad de datos, seguridad y rendimiento líderes en la industria. Amazon S3 está diseñado para 11 9 de durabilidad y almacena datos para millones de clientes en todo el mundo. Los documentos pueden venir en varios formatos y diseños, y pueden provenir de diferentes canales, como portales web o archivos adjuntos de correo electrónico.

Fase de clasificación

En el paso anterior, recopilamos documentos de varios tipos y formatos. En este paso, debemos categorizar los documentos antes de poder realizar más extracciones. Para eso, usamos Amazon Comprehend clasificación personalizada. La clasificación de documentos es un proceso de dos pasos. Primero, entrena un clasificador personalizado de Amazon Comprehend para que reconozca las clases que le interesan. A continuación, implementa el modelo con un clasificador personalizado punto final en tiempo real y envíe documentos sin etiquetar al punto final en tiempo real para clasificarlos.

La siguiente figura representa un flujo de trabajo típico de clasificación de documentos.

Fase de clasificación

Para capacitar al clasificador, identifique las clases que le interesan y proporcione documentos de muestra para cada una de las clases como material de capacitación. Según las opciones que indicó, Amazon Comprehend crea un modelo de aprendizaje automático personalizado que entrena en función de los documentos que proporcionó. Este modelo personalizado (el clasificador) examina cada documento que envía. Devuelve la clase específica que mejor representa el contenido (si está usando el modo multiclase) o el conjunto de clases que se le aplican (si está usando el modo multietiqueta).

Preparar datos de entrenamiento

El primer paso es extraer el texto de los documentos necesarios para el clasificador personalizado de Amazon Comprehend. Para extraer la información de texto sin procesar de todos los documentos en Amazon S3, usamos Amazon Textract detect_document_text() API. También etiquetamos los datos según el tipo de documento que se usará para entrenar un clasificador personalizado de Amazon Comprehend.

El siguiente código se ha recortado con fines de simplificación. Para obtener el código completo, consulte el GitHub Código de muestra para textract_extract_text(). La función call_textract() es una función wr4apper que llama al AnalizarDocumento API internamente, y los parámetros pasados ​​al método resumen algunas de las configuraciones que la API necesita para ejecutar la tarea de extracción.

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)        

Entrenar un clasificador personalizado

En este paso, usamos la clasificación personalizada de Amazon Comprehend para entrenar nuestro modelo para clasificar los documentos. usamos el CreateDocumentClassifierCreateDocumentClassifier API para crear un clasificador que entrena un modelo personalizado utilizando nuestros datos etiquetados. Ver el siguiente código:

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'
    )

Implementar un punto final en tiempo real

Para usar el clasificador personalizado de Amazon Comprehend, creamos un punto de enlace en tiempo real usando el 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}')  

Clasifique documentos con el punto final en tiempo real

Después de crear el punto de enlace de Amazon Comprehend, podemos usar el punto de enlace en tiempo real para clasificar documentos. usamos el comprehend.classify_document() función con el texto del documento extraído y el punto final de inferencia como parámetros de entrada:

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

Amazon Comprehend devuelve todas las clases de documentos con una puntuación de confianza vinculada a cada clase en una matriz de pares clave-valor (nombre-puntuación). Elegimos la clase de documento con la puntuación de confianza más alta. La siguiente captura de pantalla es una respuesta de muestra.

Clasifique documentos con el punto final en tiempo real

Recomendamos revisar el código de ejemplo de clasificación de documentos detallado en GitHub.

Fase de extracción

Amazon Textract le permite extraer texto e información de datos estructurados utilizando Amazon Textract DetectarDocumentoTexto y AnalizarDocumento API, respectivamente. Estas API responden con datos JSON, que contienen PALABRAS, LÍNEAS, FORMULARIOS, TABLAS, geometría o información de cuadros delimitadores, relaciones, etc. Ambas cosas DetectDocumentText y AnalyzeDocument son operaciones síncronas. Para analizar documentos de forma asíncrona, utilice Detección de texto de documento de inicio.

Extracción de datos estructurados

Puede extraer datos estructurados como tablas de documentos mientras conserva la estructura de datos y las relaciones entre los elementos detectados. Puedes usar el AnalizarDocumento API con la FeatureType as TABLE para detectar todas las tablas en un documento. La siguiente figura ilustra este proceso.

Extracción de datos estructurados

Ver el siguiente código:

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

ejecutamos el analyze_document() método con el FeatureType as TABLES en el documento de historial del empleado y obtenga la extracción de la tabla en los siguientes resultados.

Analizar la respuesta de la API del documento para la extracción de tablas

Extracción de datos semiestructurados

Puede extraer datos semiestructurados como formularios o pares clave-valor de documentos mientras conserva la estructura de datos y las relaciones entre los elementos detectados. Puedes usar el AnalizarDocumento API con la FeatureType as FORMS para detectar todas las formas en un documento. El siguiente diagrama ilustra este proceso.

Extracción de datos semiestructurados

Ver el siguiente código:

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

Aquí ejecutamos el analyze_document() método con el FeatureType as FORMS en el documento de solicitud del empleado y obtener la extracción de la tabla en los resultados.

Procesamiento inteligente de documentos con servicios de IA de AWS: Parte 1 Inteligencia de datos PlatoBlockchain. Búsqueda vertical. Ai.

Extracción de datos no estructurados

Amazon Textract es óptimo para la extracción de texto denso con una precisión de OCR líder en la industria. Puedes usar el DetectarDocumentoTexto API para detectar líneas de texto y las palabras que componen una línea de texto, como se ilustra en la siguiente figura.

Extracción de datos no estructurados

Ver el siguiente código:

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

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

Ahora ejecutamos el detect_document_text() método en la imagen de muestra y obtener la extracción de texto sin procesar en los resultados.

Procesamiento inteligente de documentos con servicios de IA de AWS: Parte 1 Inteligencia de datos PlatoBlockchain. Búsqueda vertical. Ai.

Facturas y recibos

Amazon Textract brinda soporte especializado para procesar facturas y recibos a escala. los Analizar gastos La API puede extraer datos etiquetados explícitamente, datos implícitos y elementos de línea de una lista detallada de bienes o servicios de casi cualquier factura o recibo sin plantillas ni configuración. La siguiente figura ilustra este proceso.

Extracción de facturas y recibos

Ver el siguiente código:

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

Amazon Textract puede encontrar el nombre del proveedor en un recibo incluso si solo se indica dentro de un logotipo en la página sin una etiqueta explícita llamada "proveedor". También puede buscar y extraer elementos de gastos, cantidades y precios que no estén etiquetados con encabezados de columna para elementos de línea.

Analizar la respuesta de la API de gastos

Documentos idénticos

El extracto amazónico AnalizarID La API puede ayudarlo a extraer automáticamente información de documentos de identificación, como licencias de conducir y pasaportes, sin necesidad de plantillas ni configuración. Podemos extraer información específica, como la fecha de vencimiento y la fecha de nacimiento, así como identificar y extraer de forma inteligente información implícita, como el nombre y la dirección. El siguiente diagrama ilustra este proceso.

Extracción de documentos de identidad

Ver el siguiente código:

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

Podemos utilizar tabulate para obtener una salida bastante impresa:

from tabulate import tabulate

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

Procesamiento inteligente de documentos con servicios de IA de AWS: Parte 1 Inteligencia de datos PlatoBlockchain. Búsqueda vertical. Ai.

Recomendamos pasar por la extracción detallada del documento. Código de muestra en GitHub. Para obtener más información sobre los ejemplos de código completo en esta publicación, consulte la Repositorio GitHub.

Conclusión

En esta primera publicación de una serie de dos partes, discutimos las diversas etapas de IDP y una arquitectura de solución. También analizamos la clasificación de documentos mediante un clasificador personalizado de Amazon Comprehend. A continuación, exploramos las formas en que puede usar Amazon Textract para extraer información de tipos de documentos no estructurados, semiestructurados, estructurados y especializados.

In parte 2 de esta serie, continuamos la discusión con las funciones de extracción y consultas de Amazon Textract. Analizamos cómo usar entidades predefinidas y entidades personalizadas de Amazon Comprehend para extraer términos comerciales clave de documentos con texto denso, y cómo integrar una revisión humana en el ciclo de Amazon A2I en sus procesos de IDP.

Recomendamos revisar las secciones de seguridad del Amazon Textil, Amazon Comprehendy AmazonA2I documentación y siguiendo las pautas proporcionadas. Además, tómese un momento para revisar y comprender los precios de Amazon Textil, Amazon Comprehendy AmazonA2I.


Sobre los autores

Procesamiento inteligente de documentos con servicios de IA de AWS: Parte 1 Inteligencia de datos PlatoBlockchain. Búsqueda vertical. Ai. Suprakash Dutta es arquitecto de soluciones en Amazon Web Services. Se centra en la estrategia de transformación digital, la modernización y migración de aplicaciones, el análisis de datos y el aprendizaje automático.

Procesamiento inteligente de documentos con servicios de IA de AWS: Parte 1 Inteligencia de datos PlatoBlockchain. Búsqueda vertical. Ai.sonali sahu lidera el equipo de Arquitectos de Soluciones de IA/ML de Procesamiento Inteligente de Documentos en Amazon Web Services. Es una apasionada de la tecnología y disfruta trabajar con clientes para resolver problemas complejos utilizando la innovación. Su área principal de enfoque es la inteligencia artificial y el aprendizaje automático para el procesamiento inteligente de documentos.

Procesamiento inteligente de documentos con servicios de IA de AWS: Parte 1 Inteligencia de datos PlatoBlockchain. Búsqueda vertical. Ai.anjan biswas es un arquitecto sénior de soluciones de servicios de IA con un enfoque en IA/ML y análisis de datos. Anjan es parte del equipo mundial de servicios de IA y trabaja con los clientes para ayudarlos a comprender y desarrollar soluciones a los problemas comerciales con IA y ML. Anjan tiene más de 14 años de experiencia trabajando con organizaciones globales de cadena de suministro, fabricación y venta al por menor, y está ayudando activamente a los clientes a comenzar y escalar en los servicios de IA de AWS.

Procesamiento inteligente de documentos con servicios de IA de AWS: Parte 1 Inteligencia de datos PlatoBlockchain. Búsqueda vertical. Ai.Rane Chinmayee es un arquitecto de soluciones especializado en IA/ML en Amazon Web Services. Le apasionan las matemáticas aplicadas y el aprendizaje automático. Se enfoca en diseñar soluciones inteligentes de procesamiento de documentos para clientes de AWS. Fuera del trabajo, le gusta bailar salsa y bachata.

Sello de tiempo:

Mas de Aprendizaje automático de AWS