Editar

Compartir a través de


Tecnología de procesamiento de lenguaje natural

Servicios de Azure AI
Azure Databricks
HDInsight de Azure
Azure Synapse Analytics

El procesamiento de lenguaje natural (NLP) tiene muchas aplicaciones, como análisis de sentimiento, detección de temas, detección de idioma, extracción de frases clave y categorización de documentos.

En concreto, el procesamiento de lenguaje natural se puede usar para:

  • Clasifique documentos, por ejemplo, etiquetelos como confidenciales o no deseados.
  • Realice búsquedas o procesamientos posteriores con salidas de NLP.
  • Resumir texto mediante la identificación de entidades en el documento.
  • Etiquete documentos con palabras clave, utilizando entidades identificadas.
  • Realizar búsquedas y recuperación basadas en contenido mediante el etiquetado.
  • Resumir los temas clave de un documento mediante entidades identificadas.
  • Clasificar documentos para la navegación mediante temas detectados.
  • Enumerar documentos relacionados basados en un tema seleccionado.
  • Evalúe la opinión del texto para comprender su tono positivo o negativo.

Con los avances en la tecnología, NLP no solo se puede usar para clasificar y analizar datos de texto, sino también para mejorar las funciones de inteligencia artificial interpretables en diversos dominios. La integración de modelos de lenguaje grande (LLM) mejora significativamente las funcionalidades de NLP. Los LLM como GPT y BERT pueden generar texto con reconocimiento contextual, similar al humano, lo que hace que sean altamente eficaces para tareas complejas de procesamiento de lenguaje. Complementan las técnicas existentes de NLP mediante el control de tareas cognitivas más amplias, que mejoran los sistemas de conversación y la involucración de los clientes, especialmente con modelos como Dolly 2.0 de Databricks.

Relación y diferencias entre modelos de lenguaje y NLP

NLP es un campo completo que abarca diversas técnicas para procesar el lenguaje humano. En cambio, los modelos de lenguaje son un subconjunto específico dentro de NLP, centrándose en el aprendizaje profundo para realizar tareas de lenguaje de alto nivel. Aunque los modelos de lenguaje mejoran NLP al proporcionar funcionalidades avanzadas de generación y comprensión de texto, no son sinónimos de NLP. En su lugar, sirven como herramientas eficaces dentro del dominio de NLP más amplio, lo que permite un procesamiento de lenguaje más sofisticado.

Nota

Este artículo se centra en NLP. La relación entre NLP y los modelos de lenguaje demuestra que los modelos de lenguaje mejoran los procesos de NLP a través de funcionalidades de generación y comprensión del lenguaje superiores.

Apache®, Apache Spark y el logotipo de la llama son marcas registradas o marcas comerciales de Apache Software Foundation en Estados Unidos y otros países. El uso de estas marcas no implica la aprobación de Apache Software Foundation.

Posibles casos de uso

Entre los escenarios empresariales que pueden beneficiarse del procesamiento de lenguaje natural personalizado se incluyen:

  • Inteligencia de documentos para documentos manuscritos o creados por máquinas en el sector financiero, de atención sanitaria, comercio minorista, gobierno y otros sectores.
  • Tareas del procesamiento de lenguaje natural independientes del sector para el procesamiento de texto, como el reconocimiento de entidades de nombres (NER), la clasificación, la creación de resúmenes y la extracción de relaciones. Estas tareas automatizan el proceso de recuperación, identificación y análisis de la información de los documentos, como el texto y los datos no estructurados. Algunos ejemplos de estas tareas incluyen los modelos de estratificación de riesgos, la clasificación ontológica y los resúmenes comerciales.
  • Creación de grafos de conocimientos y recuperación de información para la búsqueda semántica. Esta funcionalidad permite crear grafos de conocimientos médicos que admitan el descubrimiento de fármacos y los ensayos clínicos.
  • La traducción del texto de sistemas de inteligencia artificial conversacional en aplicaciones orientadas al cliente en los sectores minorista, financiero y de viajes, entre otros.
  • Opinión e inteligencia emocional mejorada en el análisis, especialmente para supervisar la percepción de la marca y el análisis de comentarios de los clientes.
  • Generación automatizada de informes. Sintetiza y genera informes textuales completos a partir de entradas de datos estructurados, lo que ayuda a sectores como finanzas y cumplimiento cuando se necesita documentación exhaustiva.
  • Interfaces activadas por voz para mejorar las interacciones del usuario en las aplicaciones de ioT y dispositivos inteligentes mediante la integración de NLP para el reconocimiento de voz y las funcionalidades de conversación natural.
  • Modelos de lenguaje adaptativo para ajustar dinámicamente la salida del lenguaje para adaptarse a varios niveles de comprensión de audiencias, lo que es fundamental para las mejoras de accesibilidad y contenido educativo.
  • Análisis de texto de ciberseguridad para analizar los patrones de comunicación y el uso del lenguaje en tiempo real para identificar posibles amenazas de seguridad en la comunicación digital, lo que mejora la detección de intentos de suplantación de identidad (phishing) o información incorrecta.

Apache Spark como marco del procesamiento del lenguaje natural personalizado

Apache Spark es un potente marco de procesamiento paralelo que mejora el rendimiento de las aplicaciones analíticas de macrodatos a través del procesamiento en memoria. Azure Synapse Analytics, Azure HDInsighty Azure Databricks seguir proporcionando un acceso sólido a las funcionalidades de procesamiento de Spark, lo que garantiza una ejecución sin problemas de las operaciones de datos a gran escala.

En el caso de las cargas de trabajo de NLP personalizadas, Spark NLP sigue siendo un marco eficaz capaz de procesar grandes volúmenes de texto. Esta biblioteca de código abierto proporciona una amplia funcionalidad a través de bibliotecas de Python, Java y Scala, que ofrecen la sofisticación que se encuentra en bibliotecas de NLP destacadas, como spaCy y NLTK. Spark NLP incluye características avanzadas, como la revisión ortográfica, el análisis de sentimiento y la clasificación de documentos, lo que garantiza de forma coherente la precisión y escalabilidad de última generación.

Diagrama que muestra áreas de la funcionalidad de NLP, como el reconocimiento de entidades. Varios cuadros enumeran los anotadores NLP, los modelos y los idiomas admitidos.

Las pruebas comparativas públicas recientes resaltan el rendimiento de Spark NLP, lo que muestra mejoras de velocidad significativas en otras bibliotecas, a la vez que se mantiene una precisión comparable para entrenar modelos personalizados. En particular, la integración de los modelos Llama-2 y OpenAI Whisper mejora las interfaces conversacionales y el reconocimiento de voz multilingüe, lo que marca importantes avances en las funcionalidades de procesamiento optimizadas.

De forma única, spark NLP utiliza eficazmente un clúster de Spark distribuido, que funciona como una extensión nativa de Spark ML que funciona directamente en fotogramas de datos. Esta integración admite mejoras de rendimiento mejoradas en los clústeres, lo que facilita la creación de canalizaciones unificadas de NLP y aprendizaje automático para tareas como la clasificación de documentos y la predicción de riesgos. La introducción de las incrustaciones de MPNet y una amplia compatibilidad con ONNX enriquecen aún más estas funcionalidades, lo que permite un procesamiento preciso y compatible con el contexto.

Además de las ventajas de rendimiento, Spark NLP ofrece una precisión de última generación en una matriz de expansión de tareas de NLP. La biblioteca incluye modelos de aprendizaje profundo creados previamente para el reconocimiento de entidades con nombre, la clasificación de documentos, la detección de opiniones, etc. Su diseño enriquecido con características incluye modelos de lenguaje previamente entrenados que admiten insonciones de palabras, fragmentos, oraciones y documentos.

Con compilaciones optimizadas para CPU, GPU y los chips Intel Xeon más recientes, la infraestructura de Spark NLP está diseñada para escalabilidad, lo que permite que los procesos de entrenamiento e inferencia usen completamente clústeres de Spark. Esto garantiza un control eficaz de las tareas de NLP en diversos entornos y aplicaciones, manteniendo su posición a la vanguardia de la innovación de NLP.

Desafíos

  • Recursos de procesamiento: Procesamiento de una colección de documentos de texto de forma libre requiere una cantidad significativa de recursos computacionales, y el procesamiento también consume mucho tiempo. Este tipo de procesamiento suele implicar la implementación de proceso de GPU. Los avances recientes, como las optimizaciones en arquitecturas NLP de Spark, como Llama-2, que admiten la cuantificación, ayudan a simplificar estas tareas intensivas, lo que hace que la asignación de recursos sea más eficaz.

  • problemas de normalización: Sin un formato de documento estandarizado, puede ser difícil lograr resultados coherentemente precisos cuando se usa el procesamiento de texto de forma libre para extraer hechos específicos de un documento. Por ejemplo, extraer el número de factura y la fecha de varias facturas plantea desafíos. La integración de modelos de NLP adaptables, como M2M100, ha mejorado la precisión del procesamiento en varios lenguajes y formatos, lo que facilita una mayor coherencia en los resultados.

  • Variedad y complejidad de los datos: Abordar la variedad de estructuras de documentos y matices lingüísticos sigue siendo complejo. Las innovaciones como las incrustaciones de MPNet proporcionan una comprensión contextual mejorada, lo que ofrece un control más intuitivo de diversos formatos de texto y mejora la confiabilidad general del procesamiento de datos.

Principales criterios de selección

En Azure, los servicios de Spark como Azure Databricks, Microsoft Fabric y Azure HDInsight proporcionan funcionalidad de NLP cuando se usan con Spark NLP. Los servicios de Azure AI son otra opción para la funcionalidad de NLP. Para decidir qué servicio debe usar, hágase estas preguntas:

  • ¿Desea usar modelos creados o entrenados previamente? Si es así, considere la posibilidad de usar las API que ofrecen los servicios de Azure AI o descargue el modelo que prefiera a través de Spark NLP, que ahora incluye modelos avanzados como Llama-2 y MPNet para funcionalidades mejoradas.

  • ¿Necesita entrenar modelos personalizados en un corpus grande de datos de texto? Si es así, considere la posibilidad de usar Azure Databricks, Microsoft Fabric o Azure HDInsight con Spark NLP. Estas plataformas proporcionan la potencia computacional y la flexibilidad necesarias para el entrenamiento extenso del modelo.

  • ¿Necesita funcionalidades de procesamiento de lenguaje natural de bajo nivel como tokenización, lematización y frecuencia de términos o frecuencia inversa de documento (TF/IDF)? Si es así, considere la posibilidad de usar Azure Databricks, Microsoft Fabric o Azure HDInsight con Spark NLP. Como alternativa, use una biblioteca de software de código abierto en la herramienta de procesamiento que prefiera.

  • ¿Necesita capacidades de procesamiento de lenguaje natural simples y de alto nivel como identificación de entidades e intenciones, detección de temas, corrector ortográfico o análisis de opiniones? En caso afirmativo, considere la posibilidad de usar las API que ofrece Servicios de Azure AI. O bien, descargue el modelo que prefiera a través de Spark NLP para aprovechar las funciones precompiladas para estas tareas.

Matriz de funcionalidades

En las tablas siguientes se resumen las principales diferencias en cuanto a funcionalidades de los distintos servicios de NLP.

Funcionalidades generales

Capacidad Servicio Spark (Azure Databricks, Microsoft Fabric, Azure HDInsight) con Spark NLP Servicios de Azure AI
Proporciona modelos previamente entrenados como un servicio
API DE REST
Programación Python, Scala Para saber cuáles son los idiomas que se admiten, consulte Recursos adicionales
Admite el procesamiento de conjuntos de macrodatos y documentos de gran tamaño No

Funcionalidades del procesamiento de lenguaje natural de bajo nivel

Funcionalidad de anotadores

Capacidad Servicio Spark (Azure Databricks, Microsoft Fabric, Azure HDInsight) con Spark NLP Servicios de Azure AI
Detector de frases No
Detector de frases profundas
Tokenizador
Generador de eneagramas No
Segmentación de palabras
Lematizador No
Lematizador No
Etiquetado de categorías gramaticales No
Analizador de dependencias No
Traducción No
Limpiador de palabras irrelevantes No
Corrección ortográfica No
Normalizador
Buscador de coincidencias de texto No
TF/IDF No
Buscador de expresiones regulares Incrustado en Conversational Language Understanding (CLU)
Buscador de fechas Posible en CLU a través de reconocedores DateTime
Fragmentador No

Nota

Microsoft Language Understanding (LUIS) se retirará el 1 de octubre de 2025. Se recomienda que las aplicaciones de LUIS existentes migren a Conversational Language Understanding (CLU), una funcionalidad de Azure AI Services for Language, que mejora las funcionalidades de comprensión del lenguaje y ofrece nuevas características.

Funcionalidades del procesamiento de lenguaje natural de alto nivel

Capacidad Servicio Spark (Azure Databricks, Microsoft Fabric, Azure HDInsight) con Spark NLP Servicios de Azure AI
Corrector ortográfico No
Resumen
Respuesta a preguntas
Detección de opiniones
Detección de emociones Admite la minería de opiniones
Clasificación de tokens Sí, mediante modelos personalizados
Clasificación de textos Sí, mediante modelos personalizados
Representación de texto No
NER Sí: el análisis de texto proporciona un conjunto de NER y los modelos personalizados están en el reconocimiento de entidades
Reconocimiento de entidades Sí, mediante modelos personalizados
Detección de idiomas
Admite otros idiomas, además del inglés Sí, admite más de 200 idiomas Sí, admite más de 97 idiomas

Configuración de Spark NLP en Azure

Para instalar Spark NLP, use el siguiente código, pero reemplace <version> por el número de versión más reciente. Para más información, consulte la documentación de Spark NLP.

# Install Spark NLP from PyPI.
pip install spark-nlp==<version>

# Install Spark NLP from Anacodna or Conda.
conda install -c johnsnowlabs spark-nlp

# Load Spark NLP with Spark Shell.
spark-shell --packages com.johnsnowlabs.nlp:spark-nlp_<version>

# Load Spark NLP with PySpark.
pyspark --packages com.johnsnowlabs.nlp:spark-nlp_<version>

# Load Spark NLP with Spark Submit.
spark-submit --packages com.johnsnowlabs.nlp:spark-nlp_<version>

# Load Spark NLP as an external JAR after compiling and building Spark NLP by using sbt assembly.
spark-shell --jars spark-nlp-assembly-3 <version>.jar

Desarrollo de canalizaciones de NLP

Para el orden de ejecución de una canalización de NLP, Spark NLP sigue el mismo concepto de desarrollo que los modelos tradicionales de aprendizaje automático de Spark ML, aplicando técnicas de NLP especializadas.

Diagrama que muestra las etapas de canalización N L P, como el ensamblaje de documentos, la detección de frases, la tokenización, la normalización y la incrustación de palabras.

Los principales componentes de una canalización de Spark NLP son:

  • DocumentAssembler: transformador que prepara los datos al convertirlos en un formato que spark NLP puede procesar. Esta fase es el punto de entrada de cada canalización de Spark NLP. DocumentAssembler lee una columna de String o un Array[String], con opciones para preprocesar el texto mediante setCleanupMode, que está desactivado de forma predeterminada.

  • SentenceDetector: anotador que identifica los límites de las oraciones mediante enfoques predefinidos. Puede devolver cada oración detectada en un Arrayo en filas independientes cuando explodeSentences se establece en true.

  • Tokenizer: anotador que divide el texto sin formato en tokens discretos(palabras, números y símbolos), lo que genera estos valores como un TokenizedSentence. El tokenizador no está ajustado y usa la configuración de entrada dentro del RuleFactory para crear reglas de tokenización. Las reglas personalizadas se pueden agregar cuando los valores predeterminados son insuficientes.

  • normalizador: anotador encargado de refinar tokens. Normalizador aplica expresiones regulares y transformaciones de diccionario para limpiar texto y quitar caracteres extraños.

  • wordEmbeddings: anotadores de búsqueda que asignan tokens a vectores, lo que facilita el procesamiento semántico. Puede especificar un diccionario de inserción personalizado mediante setStoragePath, donde cada línea contiene un token y su vector, separados por espacios. Los tokens sin resolver tienen como valor predeterminado cero vectores.

Spark NLP aprovecha las canalizaciones de Spark MLlib, con compatibilidad nativa de MLflow, una plataforma de código abierto que administra el ciclo de vida de aprendizaje automático. Los componentes clave de MLflow incluyen:

  • MLflow Tracking: registra ejecuciones experimentales y proporciona funcionalidades de consulta sólidas para analizar los resultados.

  • proyectos de MLflow: permite la ejecución del código de ciencia de datos en diversas plataformas, lo que mejora la portabilidad y la reproducibilidad.

  • modelos de MLflow: admite la implementación versátil de modelos en distintos entornos a través de un marco coherente.

  • registro de modelos: proporciona una administración completa de modelos, el almacenamiento de versiones de forma centralizada para simplificar el acceso y la implementación, lo que facilita la preparación de producción.

MLflow se integra con plataformas como Azure Databricks, pero también se puede instalar en otros entornos basados en Spark para administrar y realizar un seguimiento de los experimentos. Esta integración permite el uso del Registro de modelos de MLflow para hacer que los modelos estén disponibles con fines de producción, lo que simplifica el proceso de implementación y mantiene la gobernanza del modelo.

Mediante el uso de MLflow junto con Spark NLP, puede garantizar una administración e implementación eficaces de canalizaciones de NLP, abordando los requisitos modernos de escalabilidad e integración, a la vez que admite técnicas avanzadas como incrustaciones de palabras y adaptaciones de modelos de lenguaje grande.

Colaboradores

Microsoft mantiene este artículo. Originalmente lo escribieron los siguientes colaboradores.

Creadores de entidad de seguridad:

Pasos siguientes