Las intenciones del hablante

Algonew education
5 min readMar 3, 2022

--

Entender lo que nos dicen para poder conversar

Photo by saeed karimi on Unsplash

Difícilmente vamos a poder establecer una conversación con nuestro interlocutor si no tenemos un buen nivel de comprensión de lo que nos dice.

Esto que nos dice nos puede llevar a ofrecer una respuesta inmediata o quizá consultar una base de datos o un servicio online para poder contestar ¡Pero necesitamos entender lo que nos dicen en primer lugar!

En un artículo previo introdujimos los elemento básicos de una interfaz conversacional. Entre ellos hablábamos de la intención del hablante. En este artículo profundizamos un poco más sobre este concepto.

En todo lo que sigue nos centramos en agentes conversacionales preparados para tareas concretas (como reservar en un restaurante o gestionar un trámite con nuestra aseguradora), tal y como describimos en dicho artículo.

Por qué la intención

Una de las tareas más conocidas del proceso de lenguaje natural (PLN) es la de resumen de texto. Consiste en preparar un algoritmo de inteligencia artificial que recibe un texto más o menos largo (un artículo de periódico, un discurso) y lo resume en unas pocas líneas.

Photo by Jason Leung on Unsplash

En el caso de las interfaces conversacionales o chatbots es habitual que los mensajes que se intercambian el usuario y el chatbot sean de por sí bastante cortos. Por eso el resumen de un mensaje del usuario se lleva a su máxima expresión. Cada frase del usuario se asocia con una única intención, representada por un código o una única palabra. De esta forma nuestra interfaz manejará un número cerrado de intenciones (5, 10, 100, 250, las que correspondan a nuestro problema) y cada mensaje que nos llegue del usuario sería equivalente a que hubiera pulsado un botón ficticio correspondiente a una de las intenciones definidas a priori.

Ejemplos de frases e intenciones asociadas

Aunque dos personas hablen el mismo idioma se expresarán de formas diferentes incluso para expresar la misma idea. La comprensión del lenguaje natural en nuestro caso supone identificar la intención detrás de cada frase. En el ejemplo de la tabla vemos varias formulaciones de una misma intención y también un caso en el que no hemos sido capaces de comprender lo que nos dicen. Esto puede ocurrir porque la construcción del mensaje es inesperada (rara, podríamos decir) o porque no encaje en ninguna de nuestras intenciones definidas a priori. En este último caso nos están hablando de algo con lo que no contábamos.

¿Y qué hacemos en este último caso? En este artículo nos centraremos en la identificación de las intenciones. Más adelante dedicaremos otros a la preparación de la respuesta. Ahora lo importante es la tarea de emparejar frase con intención y tener el grado de acierto más alto posible.

El mecanismo de comprensión

Para que una máquina pueda hacer la asignación frase — intención hay que entrenarla con ejemplos representativos de lo que después se va a encontrar.

Mediante la aplicación del aprendizaje automático (Machine Learning o ML) podremos enseñar a un algoritmo a identificar la intención que corresponde a una frase con un alto grado de acierto. La calidad de la identificación dependerá de dos factores:

  • La amplitud y variedad de nuestras frases de entrenamiento
  • El algoritmo de ML seleccionado.
Frases para entrenar el algoritmo en una intención

Aunque pueda parecer que el segundo aspecto es el más importante, en realidad no es así. Toda la comunidad científica y técnica del mundo del proceso de lenguaje natural está continuamente evaluando y proponiendo algoritmos de clasificación de frases. Sin embargo, en el primer punto solo nosotros nos podemos ayudar a nosotros mismos.

Con frecuencia el diseñador del agente conversacional tiende a expresarse de siempre de la misma manera y le cuesta encontrar formas alternativas de decir lo mismo. Sin embargo, en cuanto se lo propone a otra persona es muy posible que ésta se exprese de forma diferente. Por eso es habitual hacer un primer entrenamiento limitado con las frases que ha incluido el diseñador para después hacer una pequeña ronda de prueba con un conjunto seleccionado de usuarios de confianza y así recoger conversaciones reales con diferentes formas de expresarse.

El nuevo conjunto de frases se puede usar ahora para afinar el entrenamiento del algoritmo, que tendrá mayor calidad en esta segunda fase.

La validación del algoritmo

Una vez concluida la modelización necesitamos confiar en que nuestro algoritmo funcionará bien cuando se enfrente a frases que no han participado en el entrenamiento.

Para ello, junto al conjunto de frases de entrenamiento debemos disponer de otro juego de frases de prueba o validación. En estas frases anotaremos también la intención asociada y, después de aplicar nuestro algoritmo, comparar la intención real con la predicha por el sistema. Cuando realizamos este ejercicio de prueba, conviene dirigir la mirada hacia los siguientes puntos:

  • Lo más básico es preguntarse ¿Qué proporción de aciertos tenemos? ¿Un 70%, un 80%, un 90%? Si no estamos satisfechos con la exactitud del modelo, ¿qué debemos hacer? A esto nos ayuda el siguiente punto.
Calidad de las predicciones de la intención
  • La llamada matriz de confusión es una tabla cruzada de todas las intenciones reales frente a las predicciones. En ella podemos identificar intenciones en las que el algoritmo funciona relativamente peor, y esto podría sugerirnos la necesidad de aumentar en variedad y cantidad las frases de entrenamiento relativas a esa intención en concreto. Pero ¡cuidado!, debemos evitar el error de trasladar literalmente alguna frase de prueba al conjunto de entrenamiento. Es importante que sean dos conjuntos con elementos diferentes o de lo contrario estaríamos sobreajustando nuestro modelo a los datos de entrenamiento y después el rendimiento real sería peor.
  • Finalmente puede ser interesante revisar las frases de prueba individualmente para entender mejor el tipo de fallos que comete nuestro modelo. Por ejemplo, cada vez que clasificamos mal una determinada intención, ¿siempre la confundimos con la misma o la repartimos entre varias? Siempre evitando el error que acabamos de comentar.

--

--

Algonew education

El equipo de comunicación de Algonew escribe artículos divulgativos sobre interfases conversacionales y chatbots