Procesamiento inteligente de documentos con servicios de IA y análisis de AWS en la industria de seguros: Parte 2 Inteligencia de datos PlatoBlockchain. Búsqueda vertical. Ai.

Procesamiento inteligente de documentos con servicios de IA y análisis de AWS en la industria de seguros: Parte 2

In Parte 1 de esta serie, discutimos el procesamiento inteligente de documentos (IDP) y cómo IDP puede acelerar los casos de uso de procesamiento de reclamos en la industria de seguros. Discutimos cómo podemos usar los servicios de IA de AWS para categorizar con precisión los documentos de reclamos junto con los documentos de respaldo. También discutimos cómo extraer varios tipos de documentos en un paquete de reclamos de seguros, como formularios, tablas o documentos especializados como facturas, recibos o documentos de identificación. Examinamos los desafíos en los procesos de documentos heredados, que consumen mucho tiempo, son propensos a errores, costosos y difíciles de procesar a escala, y cómo puede usar los servicios de IA de AWS para ayudar a implementar su canalización de IDP.

En esta publicación, lo guiaremos a través de funciones avanzadas de IDP para la extracción, consulta y enriquecimiento de documentos. También analizamos cómo seguir utilizando la información estructurada extraída de los datos de reclamos para obtener información mediante los servicios de visualización y análisis de AWS. Destacamos cómo los datos estructurados extraídos de IDP pueden ayudar contra reclamos fraudulentos utilizando los servicios de AWS Analytics.

Resumen de la solución

El siguiente diagrama ilustra las fases si IDP utiliza los servicios de IA de AWS. En la Parte 1, discutimos las primeras tres fases del flujo de trabajo de IDP. En esta publicación, ampliamos el paso de extracción y las fases restantes, que incluyen la integración de IDP con los servicios de AWS Analytics.

Utilizamos estos servicios de análisis para obtener más información y visualizaciones, y para detectar reclamos fraudulentos utilizando datos estructurados y normalizados de IDP. El siguiente diagrama ilustra la arquitectura de la solución.

Diagrama de arquitectura IDP

Las fases que discutimos en esta publicación utilizan los siguientes servicios clave:

  • Amazon Comprende Médico es un servicio de procesamiento de lenguaje natural (NLP) elegible para HIPAA que utiliza modelos de aprendizaje automático (ML) que han sido entrenados previamente para comprender y extraer datos de salud de textos médicos, como recetas, procedimientos o diagnósticos.
  • Pegamento AWS es parte de la pila de servicios de análisis de AWS y es un servicio de integración de datos sin servidor que facilita el descubrimiento, la preparación y la combinación de datos para análisis, aprendizaje automático y desarrollo de aplicaciones.
  • Desplazamiento al rojo de Amazon es otro servicio en la pila de Analytics. Amazon Redshift es un servicio de almacenamiento de datos a escala de petabytes totalmente administrado en la nube.

Requisitos previos

Antes de comenzar, consulte Parte 1 para obtener una descripción general de alto nivel del caso de uso de seguros con IDP y detalles sobre las etapas de captura y clasificación de datos.

Para obtener más información sobre los ejemplos de código, consulte nuestro Repo de GitHub.

Fase de extracción

En la Parte 1, vimos cómo usar las API de Amazon Textract para extraer información como formularios y tablas de documentos, y cómo analizar facturas y documentos de identidad. En esta publicación, mejoramos la fase de extracción con Amazon Comprehend para extraer entidades predeterminadas y personalizadas específicas para casos de uso personalizados.

Las compañías de seguros a menudo se encuentran con texto denso en las solicitudes de reclamos de seguros, como la carta de resumen del alta del paciente (consulte la siguiente imagen de ejemplo). Puede ser difícil extraer información automáticamente de este tipo de documentos en los que no existe una estructura definida. Para abordar esto, podemos usar los siguientes métodos para extraer información comercial clave del documento:

Muestra de resumen de alta

Extraiga entidades predeterminadas con la API de Amazon Comprehend DetectEntities

Ejecutamos el siguiente código en el documento de transcripción médica de muestra:

comprehend = boto3.client('comprehend') 

response = comprehend.detect_entities( Text=text, LanguageCode='en')

#print enitities from the response JSON

for entity in response['Entities']:
    print(f'{entity["Type"]} : {entity["Text"]}')

La siguiente captura de pantalla muestra una colección de entidades identificadas en el texto de entrada. La salida se ha abreviado para los fines de esta publicación. Referirse a Repositorio GitHub para obtener una lista detallada de las entidades.

Procesamiento inteligente de documentos con servicios de IA y análisis de AWS en la industria de seguros: Parte 2 Inteligencia de datos PlatoBlockchain. Búsqueda vertical. Ai.

Extraiga entidades personalizadas con el reconocimiento de entidades personalizadas de Amazon Comprehend

La respuesta del DetectEntities La API incluye las entidades predeterminadas. Sin embargo, estamos interesados ​​en conocer valores de entidad específicos, como el nombre del paciente (indicado por la entidad predeterminada PERSON), o el ID del paciente (indicado por la entidad predeterminada OTHER). Para reconocer estas entidades personalizadas, entrenamos un modelo de reconocimiento de entidades personalizadas de Amazon Comprehend. Recomendamos seguir los pasos completos sobre cómo entrenar e implementar un modelo de reconocimiento de entidades personalizado en el Repo de GitHub.

Después de implementar el modelo personalizado, podemos usar la función auxiliar get_entities() para recuperar entidades personalizadas como PATIENT_NAME y PATIENT_D de la respuesta de la API:

def get_entities(text):
try:
    #detect entities
    entities_custom = comprehend.detect_entities(LanguageCode="en",
                      Text=text, EndpointArn=ER_ENDPOINT_ARN) 
    df_custom = pd.DataFrame(entities_custom["Entities"], columns = ['Text',  
                'Type', 'Score'])
    df_custom = df_custom.drop_duplicates(subset=['Text']).reset_index()
    return df_custom
except Exception as e:
    print(e)

# call the get_entities() function 
response = get_entities(text) 
#print the response from the get_entities() function
print(response)

La siguiente captura de pantalla muestra nuestros resultados.

Procesamiento inteligente de documentos con servicios de IA y análisis de AWS en la industria de seguros: Parte 2 Inteligencia de datos PlatoBlockchain. Búsqueda vertical. Ai.

Fase de enriquecimiento

En la fase de enriquecimiento de documentos, realizamos funciones de enriquecimiento en documentos relacionados con la atención médica para obtener información valiosa. Nos fijamos en los siguientes tipos de enriquecimiento:

  • Extraer lenguaje específico del dominio – Usamos Amazon Comprehend Medical para extraer ontologías médicas específicas como ICD-10-CM, RxNorm y SNOMED CT
  • Redactar información sensible – Usamos Amazon Comprehend para redactar información de identificación personal (PII) y Amazon Comprehend Medical para redactar información de salud protegida (PHI).

Extraiga información médica de un texto médico no estructurado

Documentos como notas de proveedores médicos e informes de ensayos clínicos incluyen texto médico denso. Las compañías de reclamos de seguros deben identificar las relaciones entre la información de salud extraída de este denso texto y vincularlas a ontologías médicas como los códigos ICD-10-CM, RxNorm y SNOMED CT. Esto es muy valioso para automatizar los flujos de trabajo de captura, validación y aprobación de reclamos para que las compañías de seguros aceleren y simplifiquen el procesamiento de reclamos. Veamos cómo podemos usar Amazon Comprehend Medical InferICD10CM API para detectar posibles condiciones médicas como entidades y vincularlas a sus códigos:

cm_json_data = comprehend_med.infer_icd10_cm(Text=text)

print("nMedical codingn========")

for entity in cm_json_data["Entities"]:
      for icd in entity["ICD10CMConcepts"]:
           description = icd['Description']
           code = icd["Code"]
           print(f'{description}: {code}')

Para el texto de entrada, que podemos pasar desde Amazon Textract DetectDocumentText API, la InferICD10CM La API devuelve el siguiente resultado (el resultado se ha abreviado por motivos de brevedad).

Extraiga información médica de un texto médico no estructurado

Del mismo modo, podemos utilizar Amazon Comprehend Medical InferRxNorm API para identificar medicamentos y la InferSNOMEDCT API para detectar entidades médicas dentro de documentos de seguros relacionados con la atención médica.

Realizar redacción de PII y PHI

Los paquetes de reclamos de seguros requieren mucho cumplimiento y regulaciones de privacidad porque contienen datos PII y PHI. Las compañías de seguros pueden reducir el riesgo de cumplimiento al redactar información como los números de póliza o el nombre del paciente.

Veamos un ejemplo de resumen de alta de un paciente. Usamos Amazon Comprender DetectPiiEntities API para detectar entidades PII dentro del documento y proteger la privacidad del paciente al redactar estas entidades:

resp = call_textract(input_document = f's3://{data_bucket}/idp/textract/dr-note-sample.png')
text = get_string(textract_json=resp, output_type=[Textract_Pretty_Print.LINES])

# call Amazon Comprehend Detect PII Entities API
entity_resp = comprehend.detect_pii_entities(Text=text, LanguageCode="en") 

pii = []
for entity in entity_resp['Entities']:
      pii_entity={}
      pii_entity['Type'] = entity['Type']
      pii_entity['Text'] = text[entity['BeginOffset']:entity['EndOffset']]
      pii.append(pii_entity)
print(pii)

Obtenemos las siguientes entidades PII en la respuesta del detect_pii_entities() API:

respuesta de la API detect_pii_entities()

Luego, podemos redactar las entidades PII que se detectaron en los documentos utilizando la geometría del cuadro delimitador de las entidades del documento. Para eso, usamos una herramienta auxiliar llamada amazon-textract-overlayer. Para obtener más información, consulte Superposición de texto. Las siguientes capturas de pantalla comparan un documento antes y después de la redacción.

Procesamiento inteligente de documentos con servicios de IA y análisis de AWS en la industria de seguros: Parte 2 Inteligencia de datos PlatoBlockchain. Búsqueda vertical. Ai.Procesamiento inteligente de documentos con servicios de IA y análisis de AWS en la industria de seguros: Parte 2 Inteligencia de datos PlatoBlockchain. Búsqueda vertical. Ai.

Similar a Amazon Comprender DetectPiiEntities API, también podemos usar la DetectPHI API para detectar datos PHI en el texto clínico que se examina. Para obtener más información, consulte Detectar PHI.

Fase de revisión y validación

En la fase de revisión y validación de documentos, ahora podemos verificar si el paquete de reclamo cumple con los requisitos del negocio, porque tenemos toda la información recopilada de los documentos en el paquete de etapas anteriores. Podemos hacer esto introduciendo a un humano en el circuito que pueda revisar y validar todos los campos o simplemente un proceso de aprobación automática para reclamos de bajo costo antes de enviar el paquete a las aplicaciones posteriores. Nosotros podemos usar IA aumentada de Amazon (Amazon A2I) para automatizar el proceso de revisión humano para el procesamiento de reclamaciones de seguros.

Procesamiento inteligente de documentos con servicios de IA y análisis de AWS en la industria de seguros: Parte 2 Inteligencia de datos PlatoBlockchain. Búsqueda vertical. Ai.

Ahora que hemos extraído y normalizado todos los datos necesarios del procesamiento de reclamaciones mediante servicios de IA para IDP, podemos ampliar la solución para integrarla con los servicios de análisis de AWS, como AWS Glue y Amazon Redshift, para resolver casos de uso adicionales y proporcionar más análisis y visualizaciones.

Detectar reclamaciones de seguros fraudulentas

En esta publicación, implementamos una arquitectura sin servidor en la que los datos extraídos y procesados ​​se almacenan en un lago de datos y se utilizan para detectar reclamaciones de seguros fraudulentas mediante ML. Usamos Servicio de almacenamiento simple de Amazon (Amazon S3) para almacenar los datos procesados. Entonces podemos usar Pegamento AWS or EMR de Amazon para limpiar los datos y agregar campos adicionales para que sean consumibles para informes y ML. Después de eso, usamos Aprendizaje automático de Amazon Redshift para construir un modelo de ML de detección de fraude. Finalmente, construimos informes usando Amazon QuickSight para obtener información sobre los datos.

Configurar el esquema externo de Amazon Redshift

Para el propósito de este ejemplo, hemos creado un conjunto de datos de muestra emula el resultado de un proceso ETL (extracción, transformación y carga) y utiliza AWS Glue Data Catalog como catálogo de metadatos. Primero, creamos una base de datos llamada idp_demo en el catálogo de datos y un esquema externo en Amazon Redshift denominado idp_insurance_demo (ver el siguiente código). Usamos un Gestión de identidades y accesos de AWS (IAM) para otorgar permisos al clúster de Amazon Redshift para acceder a Amazon S3 y Amazon SageMaker. Para obtener más información sobre cómo configurar este rol de IAM con privilegios mínimos, consulte Agrupe y configure la configuración para la administración de Amazon Redshift ML.

CREATE EXTERNAL SCHEMA idp_insurance_demo
FROM DATA CATALOG
DATABASE 'idp_demo' 
IAM_ROLE '<<>>'
CREATE EXTERNAL DATABASE IF NOT EXISTS;

Crear una tabla externa de Amazon Redshift

El siguiente paso es crear una tabla externa en Amazon Redshift que haga referencia a la ubicación de S3 donde se encuentra el archivo. En este caso, nuestro archivo es un archivo de texto separado por comas. También queremos omitir la fila de encabezado del archivo, que se puede configurar en la sección de propiedades de la tabla. Ver el siguiente código:

create external table idp_insurance_demo.claims(id INTEGER,
date_of_service date,
patients_address_city VARCHAR,
patients_address_state VARCHAR,
patients_address_zip VARCHAR,
patient_status VARCHAR,
insured_address_state VARCHAR,
insured_address_zip VARCHAR,
insured_date_of_birth date,
insurance_plan_name VARCHAR,
total_charges DECIMAL(14,4),
fraud VARCHAR,
duplicate varchar,
invalid_claim VARCHAR
)
row format delimited
fields terminated by ','
stored as textfile
location '<<>>'
table properties ( 'skip.header.line.count'='1');

Crear conjuntos de datos de entrenamiento y prueba

Después de crear la tabla externa, preparamos nuestro conjunto de datos para ML dividiéndolo en un conjunto de entrenamiento y un conjunto de prueba. Creamos una nueva tabla externa llamada claim_train, que consta de todos los registros con ID <= 85000 de la tabla de reclamaciones. Este es el conjunto de entrenamiento en el que entrenamos nuestro modelo ML.

CREATE EXTERNAL TABLE
idp_insurance_demo.claims_train
row format delimited
fields terminated by ','
stored as textfile
location '<<>>/train'
table properties ( 'skip.header.line.count'='1')
AS select * from idp_insurance_demo.claims where id <= 850000

Creamos otra tabla externa llamada claim_test que consta de todos los registros con ID >85000 para ser el conjunto de prueba en el que probamos el modelo ML:

CREATE EXTERNAL TABLE
idp_insurance_demo.claims_test
row format delimited
fields terminated by ','
stored as textfile
location '<<>>/test'
table properties ( 'skip.header.line.count'='1')
AS select * from idp_insurance_demo.claims where id > 850000

Cree un modelo de aprendizaje automático con Amazon Redshift ML

Ahora creamos el modelo usando el CREAR MODELO comando (ver el siguiente código). Seleccionamos las columnas relevantes de la claims_train tabla que puede determinar una transacción fraudulenta. El objetivo de este modelo es predecir el valor de la fraud columna; por lo tanto, fraud se agrega como el objetivo de predicción. Después de entrenar el modelo, crea una función llamada insurance_fraud_model. Esta función se usa para inferencias mientras se ejecutan sentencias SQL para predecir el valor del fraud columna para nuevos registros.

CREATE MODEL idp_insurance_demo.insurance_fraud_model
FROM (SELECT 
total_charges ,
fraud ,
duplicate,
invalid_claim
FROM idp_insurance_demo.claims_train
)
TARGET fraud
FUNCTION insurance_fraud_model
IAM_ROLE '<<>>'
SETTINGS (
S3_BUCKET '<<>>'
);

Evaluar las métricas del modelo de ML

Después de crear el modelo, podemos ejecutar consultas para verificar la precisión del modelo. usamos el insurance_fraud_model función para predecir el valor de la fraud columna para nuevos registros. Ejecute la siguiente consulta en el claims_test tabla para crear una matriz de confusión:

SELECT 
fraud,
idp_insurance_demo.insurance_fraud_model (total_charges ,duplicate,invalid_claim ) as fraud_calculcated,
count(1)
FROM idp_insurance_demo.claims_test
GROUP BY fraud , fraud_calculcated;

Detecta el fraude usando el modelo ML

Después de crear el nuevo modelo, a medida que se insertan nuevos datos de reclamos en el almacén de datos o el lago de datos, podemos usar el insurance_fraud_model función para calcular las transacciones fraudulentas. Hacemos esto cargando primero los nuevos datos en una tabla temporal. Entonces usamos el insurance_fraud_model función para calcular la fraud bandera para cada nueva transacción e inserte los datos junto con la bandera en la tabla final, que en este caso es la claims mesa.

Visualiza los datos de las reclamaciones

Cuando los datos están disponibles en Amazon Redshift, podemos crear visualizaciones con QuickSight. Luego podemos compartir los tableros de QuickSight con usuarios comerciales y analistas. Para crear el panel de QuickSight, primero debe crear un conjunto de datos de Amazon Redshift en QuickSight. Para obtener instrucciones, consulte Creación de un conjunto de datos a partir de una base de datos.

Después de crear el conjunto de datos, puede crear un nuevo análisis en QuickSight usando el conjunto de datos. Los siguientes son algunos informes de muestra que creamos:

  • Número total de reclamos por estado, agrupados por el fraud campo – Este gráfico nos muestra la proporción de transacciones fraudulentas en comparación con el número total de transacciones en un estado en particular.
  • Suma del valor total en dólares de las reclamaciones, agrupadas por el fraud campo – Este gráfico nos muestra la proporción del monto en dólares de las transacciones fraudulentas en comparación con el monto total en dólares de las transacciones en un estado en particular.
  • Número total de transacciones por compañía de seguros, agrupadas por el fraud campo – Este gráfico nos muestra cuántos reclamos se presentaron para cada compañía de seguros y cuántos de ellos son fraudulentos.

• Número total de transacciones por compañía de seguros, agrupadas por el campo de fraude

  • Suma total de transacciones fraudulentas por estado que se muestra en un mapa de EE. UU. – Este gráfico solo muestra las transacciones fraudulentas y muestra los cargos totales de esas transacciones por estado en el mapa. El tono más oscuro de azul indica cargas totales más altas. Podemos analizar más a fondo esto por ciudad dentro de ese estado y códigos postales con la ciudad para comprender mejor las tendencias.

Procesamiento inteligente de documentos con servicios de IA y análisis de AWS en la industria de seguros: Parte 2 Inteligencia de datos PlatoBlockchain. Búsqueda vertical. Ai.

Limpiar

Para evitar incurrir en cargos futuros a su cuenta de AWS, elimine los recursos que aprovisionó en la configuración siguiendo las instrucciones en el Sección de limpieza en nuestro repositorio.

Conclusión

En esta serie de dos partes, vimos cómo crear una canalización IDP de extremo a extremo con poca o ninguna experiencia en ML. Exploramos un caso de uso de procesamiento de reclamos en la industria de seguros y cómo IDP puede ayudar a automatizar este caso de uso utilizando servicios como Amazon Textract, Amazon Comprehend, Amazon Comprehend Medical y Amazon A2I. En la Parte 1, demostramos cómo utilizar los servicios de IA de AWS para la extracción de documentos. En la Parte 2, extendimos la fase de extracción y realizamos el enriquecimiento de datos. Finalmente, ampliamos los datos estructurados extraídos de IDP para análisis adicionales y creamos visualizaciones para detectar reclamos fraudulentos utilizando los servicios de análisis de AWS.

Recomendamos revisar las secciones de seguridad del Amazon Textil, Amazon Comprehendy AmazonA2I documentación y siguiendo las pautas proporcionadas. Para obtener más información sobre el precio de la solución, revise los detalles de precios de Amazon Textil, Amazon Comprehendy AmazonA2I.


Acerca de los autores

autorRane 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.


Procesamiento inteligente de documentos con servicios de IA y análisis de AWS en la industria de seguros: Parte 2 Inteligencia de datos PlatoBlockchain. Búsqueda vertical. Ai.
Uday Narayanan
es un arquitecto de soluciones especialista en análisis en AWS. Le gusta ayudar a los clientes a encontrar soluciones innovadoras para desafíos comerciales complejos. Sus principales áreas de enfoque son el análisis de datos, los sistemas de big data y el aprendizaje automático. En su tiempo libre, le gusta practicar deportes, ver programas de televisión y viajar.


Procesamiento inteligente de documentos con servicios de IA y análisis de AWS en la industria de seguros: Parte 2 Inteligencia de datos PlatoBlockchain. Búsqueda vertical. Ai.
sonali sahu
lidera el equipo de Arquitectos de Soluciones de AI/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.

Sello de tiempo:

Mas de Aprendizaje automático de AWS