Compartir a través de


Tecnología de procesamiento de lenguaje natural

El procesamiento de lenguaje natural tiene muchas aplicaciones, como el análisis de opiniones, la detección de temas, la detección de idioma, la extracción de frases clave y la categorización de documentos.

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

  • Clasificar documentos. Por ejemplo, puede etiquetarlos como confidenciales o correo no deseado.
  • Realice búsquedas o procesamientos posteriores mediante salidas de procesamiento de lenguaje natural.
  • Resumir texto mediante la identificación de entidades en el documento.
  • Etiquete documentos con palabras clave mediante entidades identificadas.
  • Realizar búsquedas y recuperación basadas en contenido mediante etiquetas.
  • 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.

A medida que avanza la tecnología, puede usar el procesamiento de lenguaje natural para clasificar y analizar datos de texto. También puede usarlo para mejorar las funciones de inteligencia artificial interpretables en diversos dominios. La integración de modelos de lenguaje mejora significativamente las funcionalidades del procesamiento de lenguaje natural. Los modelos de lenguaje como GPT y BERT pueden generar texto similar al humano y contextual. Esta funcionalidad hace que sean muy eficaces para tareas complejas de procesamiento de lenguaje. Complementan las técnicas de procesamiento de lenguaje natural existentes mediante el control de tareas cognitivas más amplias, que mejoran los sistemas de conversación y la participación de los clientes, especialmente con modelos como Dolly 2.0 de Databricks.

Relación y diferencias entre los modelos de lenguaje y el procesamiento de lenguaje natural

El procesamiento de lenguaje natural 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 del procesamiento de lenguaje natural. Se centran en el aprendizaje profundo para realizar tareas de lenguaje de alto nivel. Los modelos de lenguaje mejoran el procesamiento de lenguaje natural proporcionando funcionalidades avanzadas de generación y comprensión de texto, pero no son sinónimos del procesamiento de lenguaje natural. En su lugar, sirven como herramientas eficaces dentro del dominio de procesamiento de lenguaje natural más amplio al habilitar el procesamiento de lenguaje más sofisticado.

Nota:

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

Casos de uso potenciales

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 finanzas, atención sanitaria, venta al por menor, gobierno y otros sectores.

  • Tareas de procesamiento de lenguaje natural independientes del sector para el procesamiento de texto, como el reconocimiento de entidades con nombre (NER), la clasificación, el resumen y la extracción de relaciones.

    Estas tareas le ayudan a recuperar, identificar y analizar automáticamente información del documento, como texto y 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. Sintetizar y generar informes textuales completos a partir de entradas de datos estructurados. Estas tareas ayudan a sectores como finanzas y cumplimiento cuando se necesita documentación exhaustiva.

  • Interfaces activadas por voz que integran el procesamiento de lenguaje natural para el reconocimiento de voz y las funcionalidades de conversación natural. Esta integración mejora las interacciones del usuario en las aplicaciones de Internet de las cosas y las aplicaciones de dispositivos inteligentes.

  • Modelos de lenguaje adaptable que pueden ajustar dinámicamente la salida del lenguaje para adaptarse a varios niveles de comprensión de audiencia. Esta funcionalidad es fundamental para mejorar el contenido educativo y la accesibilidad.

  • Análisis de texto de ciberseguridad para analizar patrones de comunicación y uso del lenguaje en tiempo real. Este análisis le ayuda a identificar posibles amenazas de seguridad en la comunicación digital y a mejorar la detección de intentos de suplantación de identidad (phishing) o información incorrecta.

Apache Spark como marco de procesamiento de lenguaje natural personalizado

Apache Spark es un potente marco de procesamiento paralelo que mejora el rendimiento de las aplicaciones analíticas de macrodatos mediante el procesamiento en memoria. Azure Synapse Analytics, Azure HDInsight y Azure Databricks proporcionan un acceso sólido a las funcionalidades de procesamiento de Spark. Este acceso le ayuda a ejecutar operaciones de datos a gran escala sin problemas.

Spark NLP es un marco eficaz que puede procesar grandes volúmenes de texto para cargas de trabajo personalizadas de procesamiento de lenguaje natural. Esta biblioteca de código abierto proporciona una amplia funcionalidad mediante las bibliotecas de Python, Java y Scala. Estas bibliotecas ofrecen la sofisticación que puede encontrar en bibliotecas destacadas de procesamiento de lenguaje natural, como spaCy y Natural Language Toolkit. Spark NLP incluye características avanzadas, como la revisión ortográfica, el análisis de sentimiento y la clasificación de documentos. Estas características le ayudan a garantizar de forma coherente la precisión y escalabilidad óptimas.

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

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 ninguna aprobación de The Apache Software Foundation.

Las pruebas comparativas públicas recientes resaltan el rendimiento de Spark NLP. Estos puntos de referencia indican mejoras de velocidad significativas sobre otras bibliotecas. Spark NLP también 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 multilingüe de voz. Estas funcionalidades marcan importantes avances en las funcionalidades de procesamiento optimizadas.

Spark NLP utiliza eficazmente un clúster de Spark distribuido que actúa como una extensión nativa de Spark ML y opera directamente sobre data frames. Esta integración admite mejoras de rendimiento mejoradas en los clústeres, lo que facilita la creación de canalizaciones unificadas de procesamiento de lenguaje natural y aprendizaje automático para tareas como la clasificación de documentos y la predicción de riesgos. Las incrustaciones de MPNet y una amplia compatibilidad con ONNX enriquecen aún más estas funcionalidades y permiten un procesamiento preciso y contextual.

Spark NLP ofrece resultados altamente precisos en una matriz de expansión de tareas de procesamiento de lenguaje natural. La biblioteca incluye modelos de aprendizaje profundo creados previamente para el reconocimiento de entidades con nombre, la clasificación de documentos y la detección de opiniones. Su diseño rico en funciones incluye modelos de lenguaje previamente entrenados que admiten incrustaciones de palabras, fragmentos, oraciones y documentos.

La infraestructura de Spark NLP se escala mediante compilaciones optimizadas para CPU, GPU y los chips Intel Xeon más recientes, que permiten los procesos de entrenamiento e inferencia para usar completamente clústeres de Spark. Esta funcionalidad ayuda a garantizar un control eficaz de las tareas de procesamiento de lenguaje natural en diversos entornos y aplicaciones.

Desafíos

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

  • 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 adaptables de procesamiento de lenguaje natural como M2M100 mejora la precisión del procesamiento en varios lenguajes y formatos. Esta precisión mejorada conduce a resultados más coherentes.

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

Principales criterios de selección

En Azure, los servicios de Spark como Azure Databricks, Microsoft Fabric y HDInsight proporcionan funcionalidad de procesamiento de lenguaje natural cuando se usan con Spark NLP. Los servicios de Azure AI son otra opción para la funcionalidad de procesamiento de lenguaje natural. Para ayudarle a decidir qué servicio usar, tenga en cuenta los siguientes aspectos:

  • Si desea usar modelos precompilados o entrenados previamente, considere la posibilidad de usar las API que proporcionan los servicios de IA. También puede descargar el modelo que prefiera a través de Spark NLP, que incluye modelos avanzados como Llama 2 y MPNet para funcionalidades mejoradas.

  • Si necesita entrenar modelos personalizados con una gran colección de datos de texto, considere la posibilidad de usar Azure Databricks, Fabric o HDInsight con NLP de Spark. Estas plataformas proporcionan la potencia computacional y la flexibilidad que necesita para el entrenamiento extenso del modelo.

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

  • Si necesita funcionalidades sencillas de procesamiento de lenguaje natural de alto nivel, como la identificación de entidades y intenciones, la detección de temas, la revisión ortográfica o el análisis de opiniones, considere la posibilidad de usar las API que proporcionan los servicios de IA. O bien, descargue el modelo que prefiera a través de Spark NLP para usar funciones precompiladas para estas tareas.

Matriz de funcionalidades

En las tablas siguientes se resumen las diferencias clave en las funcionalidades de los servicios de procesamiento de lenguaje natural.

Funcionalidades generales

Capacidad Servicio Spark (Azure Databricks, Fabric, HDInsight) con NLP de Spark Servicios de inteligencia artificial
Proporciona modelos previamente entrenados como un servicio
REST API
Programabilidad Pitón, Scala Consulte los lenguajes de programación admitidos.
Admite el procesamiento de grandes conjuntos de datos y documentos grandes No

Funcionalidades del anotador

Capacidad Servicio Spark (Azure Databricks, Fabric, HDInsight) con NLP de Spark Servicios de inteligencia artificial
Detector de frases No
Detector de frases profundas
Tokenizador
Generador de N-gramas No
Segmentación de palabras
Lematizador No
Lematizador No
Etiquetado de partes del discurso 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/Fuerzas de Defensa de Israel No
Comparador de expresiones regulares Incrustado en la característica de reconocimiento del lenguaje conversacional (CLU)
Comparador de fechas Posible en CLU mediante reconocedores de fecha y hora
Fragmentador No

Nota:

Language Understanding (LUIS) se retirará el 1 de octubre de 2025. Debe migrar las aplicaciones de LUIS existentes a la característica de reconocimiento del lenguaje conversacional (CLU) de Azure AI Language, que mejora las funcionalidades de comprensión del lenguaje y proporciona nuevas características.

Funcionalidades de procesamiento de lenguaje natural de alto nivel

Capacidad Servicio Spark (Azure Databricks, Fabric, HDInsight) con NLP de Spark Servicios de inteligencia artificial
Corrector ortográfico No
Resumen
Respuesta a preguntas
Detección de sentimientos
Detección de emociones Admite la minería de opiniones
Clasificación de tokens Sí, mediante modelos personalizados
Clasificación de texto Sí, mediante modelos personalizados
Representación de texto No
NER Sí, el análisis de texto proporciona un conjunto de NER
Reconocimiento de entidades Sí, mediante modelos personalizados
Detección de idioma
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 NLP de Spark.

# Install Spark NLP from PyPI.
pip install spark-natural language processing==<version>

# Install Spark NLP from Anaconda or Conda.
conda install -c johnsnowlabs spark-natural language processing

# Load Spark NLP with Spark Shell.
spark-shell --packages com.johnsnowlabs.natural language processing:spark-natural language processing_<version>

# Load Spark NLP with PySpark.
pyspark --packages com.johnsnowlabs.natural language processing:spark-natural language processing_<version>

# Load Spark NLP with Spark Submit.
spark-submit --packages com.johnsnowlabs.natural language processing:spark-natural language processing_<version>

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

Desarrollo de canalizaciones de procesamiento de lenguaje natural

Spark NLP sigue el mismo concepto de desarrollo que los modelos tradicionales de aprendizaje automático de Spark ML cuando ejecuta una canalización de procesamiento de lenguaje natural. También aplica técnicas especializadas de procesamiento de lenguaje natural.

Diagrama que muestra las fases de una canalización de procesamiento de lenguaje natural, como ensamblado de documentos, detección de oraciones, tokenización, normalización e inserción de palabras.

Una canalización de NLP de Spark incluye los siguientes componentes principales:

  • DocumentAssembler es un transformador que prepara los datos convirtiéndolos en un formato que Spark NLP puede procesar. Esta fase es el punto de entrada de cada flujo de trabajo de Spark NLP. DocumentAssembler lee una String columna o un Array[String] y puede preprocesar el texto mediante setCleanupMode, que está desactivado de forma predeterminada.

  • SentenceDetector es un anotador que identifica los límites de oración mediante enfoques predefinidos. Puede devolver cada frase detectada en una Array fila o en filas independientes cuando explodeSentences se establece en true.

  • Tokenizer es un anotador que divide el texto sin formato en tokens discretos, como palabras, números y símbolos, y los genera como .TokenizedSentence Tokenizer no está ajustado y usa la configuración de entrada dentro del RuleFactory para crear reglas de tokenización. Puede agregar reglas personalizadas si las predeterminadas no son suficientes.

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

  • WordEmbeddings son anotadores de búsqueda que asignan tokens a vectores y facilitan 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 usa canalizaciones de Spark MLlib que tienen compatibilidad nativa con MLflow, una plataforma de código abierto que administra el ciclo de vida del aprendizaje automático. MLflow tiene los siguientes componentes clave:

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

  • Los proyectos de MLflow le permiten ejecutar código de ciencia de datos en diversas plataformas. Esta funcionalidad mejora la portabilidad y reproducibilidad.

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

  • El Registro de modelos proporciona una administración completa de modelos mediante el almacenamiento de versiones de forma centralizada para simplificar el acceso y la implementación. Este paso facilita la preparación de producción.

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

Mediante el uso de MLflow junto con Spark NLP, puede garantizar una administración y una implementación más eficaces de canalizaciones de procesamiento de lenguaje natural. También puede abordar los requisitos modernos de escalabilidad e integración, al tiempo que admite técnicas avanzadas, como incrustaciones de palabras y adaptaciones del modelo de lenguaje.

Colaboradores

Microsoft mantiene este artículo. Los colaboradores siguientes escribieron este artículo.

Autores principales:

Para ver los perfiles no públicos de LinkedIn, inicie sesión en LinkedIn.

Pasos siguientes