Procesamiento de lenguaje natural con Amazon Comprehend - Análisis de sentimiento y extracción de entidades

Explicamos el análisis de sentimiento, la extracción de entidades y la construcción de modelos de clasificación personalizados con Comprehend.

Descripción general de Comprehend

Comprehend es un servicio que proporciona APIs de procesamiento de lenguaje natural (NLP), cuyos idiomas compatibles varían según la función. Al ingresar texto, devuelve resultados de análisis de sentimiento, extracción de entidades, extracción de frases clave, detección de idioma y análisis sintáctico. Puede incorporar funciones de NLP en aplicaciones sin conocimientos especializados en ML. También se adapta a la clasificación de texto específica de la industria con modelos de clasificación personalizados y reconocimiento de entidades personalizadas. Internamente, los modelos preentrenados con aprendizaje por transferencia permiten construir modelos personalizados incluso con pequeñas cantidades de datos etiquetados.

Análisis de sentimiento y modelos personalizados

La API de análisis de sentimiento clasifica el sentimiento del texto en 4 categorías (Positive, Negative, Neutral, Mixed) y devuelve puntuaciones de confianza para cada categoría. Se puede utilizar para análisis de reseñas de sitios de comercio electrónico y análisis de texto de llamadas de centros de contacto. La clasificación personalizada construye modelos que clasifican texto en categorías específicas de la industria preparando datos de entrenamiento etiquetados. Soporta tanto clasificación multiclase (una etiqueta por documento) como clasificación multietiqueta (múltiples etiquetas por documento), aceptando datos de entrenamiento en formato CSV o manifiesto aumentado. En la clasificación multiclase con formato CSV, el entrenamiento requiere un mínimo de 50 documentos por clase. La detección de PII detecta automáticamente información personal en texto y proporciona funciones de enmascaramiento.

Detección de PII y análisis en tiempo real

La API de detección de PII de Comprehend detecta automáticamente información personal en texto (nombres, direcciones, números de teléfono, direcciones de correo electrónico, números de tarjetas de crédito, números de seguro social) y devuelve información de ubicación y puntuaciones de confianza (los idiomas compatibles son inglés y español). La API ContainsPiiEntities determina la presencia de PII, y la API DetectPiiEntities identifica ubicaciones específicas. Al crear un endpoint de análisis en tiempo real, puede mantener modelos de clasificación personalizados o modelos de reconocimiento de entidades personalizadas ejecutándose continuamente, proporcionando resultados de inferencia a través de llamadas API. Los trabajos por lotes asíncronos procesan grandes volúmenes de documentos en S3 y envían los resultados a S3. Comprehend Medical se especializa en texto médico, extrayendo nombres de medicamentos, enfermedades y procedimientos.

Mejores prácticas de diseño y errores comunes

Al integrar Comprehend en producción, hay varias consideraciones de diseño importantes. Primero, las APIs síncronas están sujetas a un throttling dinámico (el número de solicitudes procesadas aumenta gradualmente según la capacidad disponible), por lo que para alto tráfico se puede considerar cambiar a procesamiento por lotes o solicitar aumentos de cuota a través de Service Quotas. Segundo, las APIs síncronas de análisis de sentimiento y sintáctico aceptan hasta 5 KB por documento, por lo que los documentos largos se dividen en fragmentos. Dividir en los límites de las oraciones evita analizar fragmentos cortados a mitad de una oración. Para la operación de modelos personalizados, Flywheel está disponible como mecanismo de reentrenamiento. Flywheel monitorea automáticamente el rendimiento del modelo y ejecuta reentrenamiento con nuevos datos cuando la precisión disminuye. Además, los endpoints en tiempo real se facturan desde que se inician hasta que se eliminan, por lo que cuando la frecuencia de solicitudes es baja, iniciar trabajos asíncronos desde Lambda también es una opción.

Comparación con otros servicios

Además de Comprehend, las opciones de implementación de NLP incluyen construir modelos personalizados con SageMaker y usar modelos de lenguaje grande (LLMs) a través de Bedrock. Como API de NLP preconstruida fácil de empezar a usar, Comprehend es adecuado para tareas estándar como análisis de sentimiento y extracción de entidades. SageMaker ofrece alta flexibilidad para fine-tuning de modelos Hugging Face Transformers, pero requiere gestionar la infraestructura de entrenamiento y el hosting de modelos. Los LLMs de Bedrock permiten clasificación zero-shot solo con prompts. Como guía de decisión: Comprehend para tareas NLP estándar que requieren alto rendimiento, SageMaker cuando se necesitan funciones de pérdida o arquitecturas personalizadas, y Bedrock para tareas de clasificación flexibles de bajo volumen. Además, Comprehend se puede combinar con servicios de AWS (S3, Lambda, Kinesis), y el acceso se puede controlar de forma granular con IAM.

Estructura de precios de Comprehend

Los precios de Comprehend se cobran por el número de caracteres de las llamadas API. El análisis de sentimiento, extracción de entidades y extracción de frases clave cuentan 100 caracteres como 1 unidad, con un mínimo de 3 unidades (300 caracteres) por solicitud. El entrenamiento de modelos personalizados se cobra por hora (facturado por segundo), y los endpoints en tiempo real se cobran según el número de unidades de inferencia (cada una procesa 100 caracteres por segundo) y su tiempo activo. El procesamiento asíncrono se cobra por el número de caracteres, mientras que el cargo de los endpoints en tiempo real depende del tiempo que están en ejecución. Si se eliminan los endpoints durante períodos de bajo tráfico y se cambia a trabajos asíncronos, no hay cargos por el tiempo activo de los endpoints durante ese período. Comprehend Flywheel permite organizar el flujo de mejora continua del modelo.

Resumen

Comprehend es un servicio que proporciona funciones de NLP como análisis de sentimiento, extracción de entidades y detección de PII a través de API. Se adapta a la clasificación de texto específica de la industria con modelos de clasificación personalizados, y procesa diversas cargas de trabajo de análisis con procesamiento por lotes y endpoints en tiempo real. También soporta la extracción de nombres de medicamentos y enfermedades de texto médico con Comprehend Medical.

Referencias (recursos oficiales de AWS)

Las fuentes primarias de esta página son el sitio web y la documentación oficiales de AWS. Consulta las páginas oficiales siguientes para conocer las especificaciones y los precios más recientes.

Si esta página y la documentación oficial difieren, prevalece la documentación oficial.

Compartir