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.
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 | Sí | Sí |
API DE REST | Sí | Sí |
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 | Sí | 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 | Sí | No |
Detector de frases profundas | Sí | Sí |
Tokenizador | Sí | Sí |
Generador de eneagramas | Sí | No |
Segmentación de palabras | Sí | Sí |
Lematizador | Sí | No |
Lematizador | Sí | No |
Etiquetado de categorías gramaticales | Sí | No |
Analizador de dependencias | Sí | No |
Traducción | Sí | No |
Limpiador de palabras irrelevantes | Sí | No |
Corrección ortográfica | Sí | No |
Normalizador | Sí | Sí |
Buscador de coincidencias de texto | Sí | No |
TF/IDF | Sí | No |
Buscador de expresiones regulares | Sí | Incrustado en Conversational Language Understanding (CLU) |
Buscador de fechas | Sí | Posible en CLU a través de reconocedores DateTime |
Fragmentador | Sí | 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 | Sí | No |
Resumen | Sí | Sí |
Respuesta a preguntas | Sí | Sí |
Detección de opiniones | Sí | Sí |
Detección de emociones | Sí | Admite la minería de opiniones |
Clasificación de tokens | Sí | Sí, mediante modelos personalizados |
Clasificación de textos | Sí | Sí, mediante modelos personalizados |
Representación de texto | Sí | No |
NER | Sí | 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í | Sí, mediante modelos personalizados |
Detección de idiomas | Sí | Sí |
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.
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 unArray[String]
, con opciones para preprocesar el texto mediantesetCleanupMode
, 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
Array
o en filas independientes cuandoexplodeSentences
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 delRuleFactory
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:
- Freddy Ayala | Arquitecto de soluciones en la nube
- Moritz Steller | Arquitecto sénior de soluciones en la nube
Pasos siguientes
Documentación de Spark NLP:
Componentes de Azure:
Recursos de Learn:
Recursos relacionados
- Procesamiento de lenguaje natural personalizado a gran escala en Azure
- Elección de una tecnología de servicios de Azure AI de Microsoft
- Comparación de productos y tecnologías de aprendizaje automático de Microsoft
- MLflow y Azure Machine Learning
- Enriquecimiento mediante inteligencia artificial con procesamiento de imágenes y lenguaje natural en Azure Cognitive Search
- Análisis de fuentes de noticias con análisis casi en tiempo real mediante el procesamiento de imágenes y lenguaje natural