Análisis en profundidad

Programación neurolingüística (PNL), qué es, aplicaciones

  • Home
  • Inteligencia Artificial

La PNL es un campo de estudio que combina la informática, la inteligencia artificial y la lingüística. Es el eje central de muchos campos de aplicación.

Publicado el 26 Sep 2022

procesamiento natural del lenguaje

No es en absoluto una tarea fácil enseñar a las máquinas a entender cómo nos comunicamos. El objetivo último de la Programación neurolingüística (también llamada PNL) es leer, descifrar, comprender y dar sentido al lenguaje verbal humano de forma evaluable.

Qué es la Programación neurolingüística

La programación neurolingüística es un campo de estudio que combina la informática, la inteligencia artificial y la lingüística. La investigación se ha centrado mucho en estas cuestiones, ya que los datos textuales están ahora en todas partes: documentos en nuestros ordenadores o en la nube, corpus públicos o privados, datos no estructurados en la web (páginas web, posts, sociales, blogs, etc.).

Lo que hace especialmente difícil que un algoritmo informático entienda el lenguaje humano son sus numerosas ambigüedades. De hecho, para entender un determinado discurso, es necesario tener también conocimiento de la realidad y del mundo circundante. El simple conocimiento del significado de cada palabra individual no es suficiente para interpretar correctamente el mensaje de la frase, al contrario, puede llevar a comunicaciones contradictorias y sin sentido. La investigación en este campo se ha centrado, en particular, en los mecanismos que permiten a las personas entender el contenido de una comunicación humana y en el desarrollo de herramientas que puedan dotar a los sistemas informáticos de la capacidad de entender y procesar el lenguaje natural.

Origen de la programación neurolingüística

La PNL fue desarrollada por Richard Bandler, John Grinder y Frank Pucelik, quienes creían que era posible identificar los patrones de pensamientos y comportamientos de las personas exitosas y enseñárselos a otros. Es un enfoque pseudocientífico de la comunicación, el desarrollo personal y la psicoterapia creado en California, Estados Unidos, en la década de 1970.

La PNL comenzó con el modelado de un genio: Fritz Perls, el padre de la terapia Gestalt. Cuando comenzaron el proyecto que condujo al nacimiento de la PNL, Grinder era profesor asistente de lingüística en la Universidad de California, Santa Cruz, y Bandler era estudiante de pregrado en psicología. Al principio, Bandler se acercó a Grinder para pedirle que lo ayudara a construir un modelo explícito de las habilidades intuitivas que tenía al hacer la terapia Gestalt. La habilidad de Bandler con la terapia Gestalt era inconsciente. Podía obtener resultados con la Gestalt pero no tenía un modelo explícito de cómo lo hacía. Por lo tanto, no podía transmitir las habilidades de usar la Gestalt a otros, con alguna garantía de la calidad de la transferencia de habilidades. Bandler había modelado Perls implícitamente; eso es, adquirió la capacidad de hacer Gestalt a través de una adopción inconsciente de los patrones de Perls. Bandler había adquirido sus considerables habilidades para hacer Gestalt mientras trabajaba para una editorial. Revisó horas de grabaciones de audio de Fritz Perls trabajando su magia psicoterapéutica con clientes, para seleccionar el material apropiado para transcribir el último de los libros de Perls.

Para qué sirve

La PNL se utiliza como un método de desarrollo personal a través de la promoción de habilidades, como la autorreflexión, la confianza y la comunicación . Los profesionales han aplicado comercialmente la PNL para lograr objetivos orientados al trabajo, como una mayor productividad o progresión laboral.

La programación neurolingüística estudia las formas en que nuestros pensamientos afectan nuestro comportamiento. Analiza las formas en que nuestros cerebros interpretan las señales que reciben y cómo estas interpretaciones afectan lo que hacemos. Lo hace a través del lenguaje, la parte lingüística de las técnicas de programación neurolingüística . Al examinar cómo nuestros cerebros procesan la información, las técnicas de PNL nos ayudan a ver nuestros pensamientos, sentimientos y emociones como cosas que podemos controlar , en lugar de cosas que nos suceden pasivamente.

New call-to-action

Las diferentes etapas de la programación neurolingüística

La programación neurolingüística implica una sucesión de pasos que intentan superar las ambigüedades del lenguaje humano. Se trata de un proceso especialmente delicado debido a las complejas características del propio lenguaje. Para reducir al máximo el número de errores, el tratamiento se divide en varias fases, que se explican a continuación.

Tokenización

El tratamiento de un texto comienza con su descomposición en tokens correspondientes a espacios, palabras, puntuación y frases. La tarea no es especialmente compleja en comparación con las demás, pero presenta algunos problemas: por ejemplo, si consideramos el punto como el final de una frase, corremos el riesgo de cometer errores frecuentes, ya que el punto puede referirse a una abreviatura, una fecha o un enlace.

Ejemplo: “El avión con destino a EE.UU. aterriza en Nueva York”.

Con unas reglas adecuadas que gestionen la estructura de las abreviaturas, se pueden conseguir resultados aún más precisos.

Análisis morfológico y léxico (part-of-speech)

La morfología proporciona información sobre la forma de cada palabra y su función en una frase. El léxico (o vocabulario) es el conjunto de palabras y modismos de una lengua. El análisis morfológico y léxico implica la consulta de listas especiales de lemas y sus derivaciones (listas que pueden completarse, si es necesario, con términos específicos relacionados con el dominio que se estudia), la resolución de las formas de inflexión (como la conjugación para los verbos y la declinación para los nombres) y la clasificación de las palabras en función de determinadas categorías (como sustantivo, pronombre, verbo, adjetivo).

Los analizadores léxicos y morfológicos pueden implementarse por separado, pero a menudo forman una única tarea. El resultado de este proceso se conoce como Part of Speech Tagging (PoS) y el conjunto de etiquetas más utilizado es el Penn Treebank Project, que distingue 36 partes de la oración (48 si se incluyen los signos de puntuación).

Ya en esta fase surgen las primeras dificultades relacionadas con la ambigüedad, en este caso léxica: para ciertas palabras la tarea no sabe atribuir correctamente la categoría morfológica adecuada.

Algunos ejemplos:

  • “Pesca”, que puede ser un sustantivo (el deporte, la actividad económica, el fruto de esa actividad) o un verbo (deporte, actividad económica).
  • Esta ambigüedad puede resolverse con la introducción de los siguientes pasos, en los que también se incluye la comprensión del contexto.

Análisis sintáctico y generación de árboles de parseo (Parse trees)

La sintaxis permite explicar cómo algunas secuencias de palabras tienen sentido, mientras que otras contienen exactamente las mismas palabras, pero en un orden incorrecto, y por lo tanto no tienen sentido. El análisis sintáctico trata, por tanto, de identificar las distintas partes que dan sentido a la frase (sujeto, predicado, complemento) y de situar correctamente las palabras dentro de una frase. Generalmente, la estructura sintáctica se representa como un árbol de parseo.

También en esta fase, la ambigüedad, esta vez de tipo sintáctico (también llamada ambigüedad local porque se refiere a una parte de la frase), entraña muchas dificultades. Por ejemplo:

  • “Giorgio vio a Giulio con un telescopio”, ¿quién tenía el telescopio?

A veces el contexto ayuda a resolver esas ambigüedades, pero en presencia de oraciones articuladas se genera una proliferación de árboles sintácticos con un evidente aumento de la complejidad.

Reconocimiento de Entidades Nombradas (NER)

La siguiente etapa consiste en la identificación, mediante reglas o enfoques estadísticos de Machine Learning, de palabras o grupos de palabras que especifican entidades pertenecientes a diferentes categorías.

NER (Named Entity Recognition) es una subtarea de IE (Information Extraction), especializada en la búsqueda y clasificación de Entidades Nombradas (NE), es decir, porciones de texto de documentos en lenguaje natural que representan entidades del mundo real, como nombres de personas, lugares, datos, empresas, etc. La NER es una subtarea fundamental de la IE porque:

  • sienta las bases para un análisis más profundo del texto, llevado a cabo, por ejemplo, mediante los procesos de Resolución de Coreferencias, Extracción de Relaciones y utilización de las Entidades Nombradas extraídas;
  • extrae sólo las entidades que son útiles en un contexto determinado.

Las entidades pueden pertenecer a algunas categorías estándar, generalmente reconocidas como válidas en cualquier dominio, como lugares u organizaciones, a categorías comunes como fechas, medidas, direcciones, o a dominios específicos (nombres de medicamentos, bancos, etc.). He aquí un ejemplo práctico:

[Jim] persona compró 300 acciones de [General Motors] Organización en [2006] Tiempo .

Incluso esta fase no está excluida de posibles ambigüedades: General Motors podría indicar una entidad perteneciente a la categoría de Organización o ser considerada un título militar.

En los últimos años, los métodos basados en el Deep Learning y la disponibilidad cada vez mayor de datos están logrando resultados cada vez más sorprendentes.

Análisis semántico

El análisis semántico tiene como objetivo comprender el significado de toda una frase a partir del significado de cada término que la compone y de las relaciones existentes entre ellos. El significado de una frase, de hecho, no viene dado sólo por las palabras, sino también por el conocimiento de las reglas que las guían en función de la combinación, el orden en que aparecen, los vínculos con otros términos dentro o fuera de la frase. Estas operaciones permiten resolver algunos casos de ambigüedad global, es decir, referida a toda la frase, sin embargo presente también cuando el etiquetado PoS devuelve la categoría morfológica correcta de una palabra y el analizador sintáctico construye la estructura correcta de la frase.

Incluso en esta fase hay casos de ambigüedad, por ejemplo:

  • “Todo hombre ama a una mujer”
  • por cada único hombre, hay una única mujer a la que ama
  • hay una sola mujer que cada hombre (tomado individualmente) ama

Análisis del discurso

En esta fase se considera un conjunto de oraciones o un discurso entero, de hecho una tarea fundamental pero particularmente compleja que pertenece a esta fase se llama coreferencia, tiene la tarea de identificar en el texto todas las expresiones que se refieren a una entidad dada entre las identificadas por Entidad Nombrada o entre las referencias anafóricas relacionadas con ellas. En una primera fase identifica las partes nominales del texto mediante Entidades Nombradas, número, género y rol sintáctico, luego realiza una comprobación de consistencia hacia atrás y determina todos los posibles enlaces con ellas, hasta una distancia predefinida. Hay otra tarea que resuelve las elipsis, es decir, las oraciones que carecen de ciertos elementos sintácticos que deben deducirse del contexto.

Otra posible tarea que se lleva a cabo en esta fase es la pragmática, es decir, una disciplina que tiende a distinguir entre el significado del enunciado y la intención del hablante; el significado del enunciado es su sentido literal, mientras que la intención del hablante es el concepto que éste intenta transmitir.

El análisis del discurso es un paso importante para muchas actividades de PNL, que incluyen la comprensión del lenguaje natural, como el resumen de documentos, la respuesta a preguntas y la extracción de información de un texto.

Programación neurolingüística e inteligencia artificial

En los últimos años han surgido nuevos enfoques que integran la programación neurolingüística en sus distintas fases con algoritmos de Deep Learning, produciendo resultados muy superiores a los del pasado.

Las primeras aproximaciones a la PNL con Deep Learning se realizaron en el año 2000, pero 2013 y 2014 fueron los años que marcaron el inicio de la difusión de las redes neuronales para la PNL. Se han explorado en profundidad diferentes técnicas para representar numéricamente el lenguaje natural, es decir, capaces de transformar cada palabra de un diccionario en un vector continuo de números reales. Estas representaciones vectoriales, denominadas incrustaciones de palabras, se aprenden a partir de modelos de PNL basados en arquitecturas de redes neuronales, definidas como modelos de espacio vectorial.

Uno de los modelos más famosos utilizados para el aprendizaje de representaciones vectoriales de palabras es Word2Vec. Las incrustaciones de Word2Vec no son conceptualmente diferentes de las aprendidas con una red neuronal de flujo directo; sin embargo, la eficiencia del modelo permite el aprendizaje de incrustaciones a partir de corpus textuales extremadamente grandes, pudiendo así capturar mejor ciertas relaciones entre las palabras, como el género, el tiempo verbal o la relación entre los distintos términos. Una extensión de la arquitectura Word2Vec es FastText (que incluye codificaciones a nivel de codificación y tiene en cuenta las palabras poco comunes) y GloVe (basada en información estadística global de las ocurrencias de las palabras). Una limitación de estos enfoques es que no tienen en cuenta el orden de las palabras.

Las redes neuronales recurrentes (RNN) son una opción obvia cuando se trata de secuencias de entrada dinámicas, pero han sido rápidamente sustituidas, en lo que respecta a la PNL, por las LSTM. Un LSTM bidireccional se utiliza normalmente para explotar tanto el contexto izquierdo como el derecho de la palabra actual.

Con la introducción del mecanismo de atención (Attention) en 2015, llegamos en 2018, a desarrollar una de las principales innovaciones en la programación neurolingüística: BERT (Bidirectional Encoder Representations from Transformers), con sus enfoques alternativos GPT-2, XLNet, XLM, ELMo, RoBERTa, ULMFiT, MultiFit, ALBERT, DistilBERT etc. es decir, modelos con una representación Context-Aware. Estos enfoques utilizan un mecanismo de atención con entrenamiento bidireccional (Transformer) para modelar el lenguaje, teniendo en cuenta la relación entre todas las palabras de un contexto, es decir, que toda la frase se lee de forma inmediata y no secuencial.

Estos modelos, que representan actualmente el estado del arte de la PNL, explotan el mecanismo del aprendizaje de transferencia (utilizado principalmente en la visión por computadora) en la programación neurolingüística. Los modelos lingüísticos no necesitan datos anotados: el aprendizaje puede, por tanto, explotar todos los datos disponibles, hasta miles de millones de palabras, para abordar fácilmente nuevos dominios o idiomas. Gracias a estas últimas innovaciones, las incrustaciones aprendidas a partir de un modelo lingüístico creado para un determinado fin pueden ser explotadas para enriquecer la entrada utilizada por otro modelo, con el fin de alcanzar un determinado objetivo, diferente del anterior. Además, el mismo modelo lingüístico puede calibrarse para realizar una tarea de interés directamente, con la necesidad de muchos menos datos.

PNL y Machine Learning

Si la programación neuro lingüística es el proceso que permite a la máquina entender y relacionarse con los seres humanos, el Machine Learning es la técnica de inteligencia artificial que proporciona a la PNL la capacidad de aprender. Es una rama muy amplia de la IA, que abarca innumerables tareas lingüísticas. El aprendizaje puede ser tanto supervisado (como la clasificación de textos) como no supervisado (como la agrupación de temas), e incluye algoritmos de Machine Learning y Deep Learning.

Aprendizaje supervisado: En este modelo de aprendizaje hay una variable de entrada (los datos anotados) y una variable de salida (los resultados deseados). La tarea del algoritmo es aprender a aproximar de la mejor manera posible la función de relación entre las dos variables para predecir la salida correcta en presencia de nuevos datos.

Aprendizaje no supervisado: el objetivo de este tipo de aprendizaje es inferir patrones de comportamiento ocultos en grandes conjuntos de datos no anotados. Los modelos no supervisados son poco fiables en la ejecución de tareas complejas que requieren un alto índice de precisión, pero se prestan muy bien a la resolución de tareas de agrupamiento y reducción de la dimensionalidad.

Aprendizaje semisupervisado: A medio camino entre los modos de aprendizaje presentados anteriormente, el aprendizaje semisupervisado utiliza tanto datos anotados como no anotados. Estos modelos son muy populares hoy en día, ya que moderan las limitaciones del aprendizaje supersupervisado y catalizan sus puntos fuertes.

Aprendizaje por refuerzo: es un modelo de aprendizaje que no requiere datos. Lo que se necesita para aprender una tarea son: un entorno, un agente con un propósito, una serie de “castigos” y “recompensas” que guíen al agente hacia el propósito deseado.

Programación neurolingüística: áreas de aplicación

Por ello, la investigación sobre PNL ha abarcado diversos ámbitos del conocimiento humano, como la informática, la inteligencia artificial, la lingüística y la psicología. En concreto, son muchos los campos de aplicación en los que encontramos la PNL como eje central para poder alcanzar los objetivos marcados, los más frecuentes son los que se mencionan a continuación:

  • Extracción y tratamiento de textos: a partir de textos nativos digitales o digitalizados mediante OCR
  • Descubrimiento de temas: una técnica no supervisada para destacar temas específicos tratados en un texto
  • Análisis de sentimientos: técnica supervisada para establecer la parcialidad del texto mediante la comprensión del tono y el estado de ánimo con que se expresa o escribe una frase
  • Clasificación de documentos en categorías predefinidas: para clasificar informes, correos electrónicos, tickets, etc
  • Reconocimiento de Entidades Nombradas: para extraer y relacionar entidades específicas dentro de un texto (personas, organizaciones, lugares, fechas, cantidades numéricas, formatos específicos)
  • Chatbot / Voicebot: comprensión del lenguaje natural, gestión del diálogo, búsqueda por voz y asistentes activados por voz, Text to Speech y viceversa
  • Motores de búsqueda en tiempo real
  • Etiquetado de partes del discurso y resolución de coreferencias: reconocimiento de partes gramaticales dentro del texto, identificación de relaciones identificadas entre entidades dentro del texto
  • Generar y/o resumir textos especializados
  • Traducción automática de/a cualquier idioma
  • Modelización lingüística: predicción de la siguiente palabra o frase
  • Generación y clonación de voz: chatbots personalizados, líneas de atención telefónica, audiolibros, lectores de texto, tono de voz, acentos, emociones
  • Generación de lenguaje natural (NLG): las soluciones producen textos en lenguaje común a partir de datos informáticos. Por ejemplo, son sistemas útiles para agilizar los informes de Business Intelligence o para analizar los servicios de atención al cliente
  • Reconocimiento de texto manuscrito
  • Generación de leyendas de imágenes: del reconocimiento de imágenes a la descripción textual
  • Preguntas y respuestas
  • Prevención del fraude mediante el análisis de textos no estructurados.

Programación neurolingüística: dónde estamos y qué es lo próximo

En los últimos tres años se han hecho enormes progresos y se han obtenido innumerables resultados; he aquí algunas cifras en términos de precisión:

  • Reconocimiento de idiomas: para textos cortos alrededor del 80%, para textos largos alrededor del 99%.
  • tokenización y segmentación: alrededor del 98%.
  • análisis morfológico y léxico: entre el 90% y el 97%.
  • análisis sintáctico: entre el 70% y más del 90%.

Estamos en un periodo de cambios rápidos en el campo de la programación neurolingüística, en menos de dieciocho meses ha habido al menos cuatro avances sustanciales en soluciones de Deep Learning preentrenadas (por ejemplo, Bert y sus desarrollos) y no hay razón para creer que no habrá más por venir.

Por el momento, todavía se tarda algo de tiempo en descargar el código fuente, ejecutarlo con TensorFlow, PyTorch o similares, añadir las capas finales a la red y entrenarla con un conjunto de datos de referencia. Pero está bastante claro que, a medida que el campo madure, las limitaciones iniciales en la ejecución de la PNL disminuirán y la calidad de los resultados seguirá creciendo, incluso con pequeños conjuntos de datos disponibles.

Todavía quedan varios retos, algunos de los cuales son el aumento de la calidad de la comprensión (Natural Language Understanding), el potencial de los sistemas y modelos multilingües a gran escala, la captación de la ironía, los modismos, los sentidos comunes, etc.

Procesamiento y comprensión del lenguaje natural

La comprensión del lenguaje natural es la primera etapa de la programación neurolingüística de la PNL. En la práctica, una vez que la NLU entiende las intenciones del interlocutor, la NLP utiliza esta comprensión para generar la respuesta adecuada, manteniendo el tono conversacional de la interacción. La NLU sigue siendo una tecnología basada en la comprensión del lenguaje natural, que permite a los chatbots entender el lenguaje humano no estructurado. Los chatbots basados en NLU son sensibles al contexto, es decir, pueden prescindir de las coincidencias de palabras clave exactas, pueden manejar mucha información en frases complejas, entendiéndola incluso si está oculta, y son capaces de retener la memoria de preguntas anteriores para que las conversaciones sean fluidas y naturales.

Conclusiones

El verdadero reto y la gran meta es la creación de sistemas inteligentes y autónomos (computación cognitiva), potencialmente pero no necesariamente en el cuerpo de un robot, como ya anticiparon en el imaginario colectivo algunas películas como ‘Ex Machina’, ‘Her’ y ‘Transcendence’.

Prohibida su reproducción total o parcial.

¿Qué te ha parecido este artículo?

¡Su opinión es importante para nosotros!

A
Giulio Altobello
Temas principales

Especificaciones

A
algoritmos
P
programacion