Está en la página 1de 220

Machine Translated by Google

Facultad de Ingeniería de la Universidad de Oporto

Chatbot para modelado de


preferencias alimentarias
y recomendación de recetas.

Álvaro Miguel Figueira Mendes Samagaio

Disertación

Máster Integrado en Bioingeniería ­ Ingeniería Biomédica

Supervisor: Henrique Lopes Cardoso, PhD, FEUP | LIACC

Co­supervisor: David Ribeiro, MSc, Frauhofer Portugal

junio 2020
Machine Translated by Google

© Álvaro Miguel Figueira Mendes Samagaio, 2020


Machine Translated by Google

Chatbot para modelado de preferencias alimentarias y


recomendación de recetas.

Álvaro Miguel Figueira Mendes Samagaio

Maestría Integrada en Bioingeniería ­ Ingeniería


Biomédico

junio 2020
Machine Translated by Google
Machine Translated by Google

Abstracto

La desnutrición es una de las principales causas de muerte en el mundo. Conduce al desarrollo de varias
condiciones que afectan negativamente la calidad de vida de las poblaciones y representa una carga
importante para los sistemas de salud y la sociedad. De hecho, se estima que hay 3.150 millones de
personas que sufren algún tipo de desnutrición, de los cuales 2.690 millones tienen sobrepeso u obesidad.
Además, el impacto económico estimado a nivel mundial de la desnutrición y las condiciones relacionadas
asciende a 3,5 billones de dólares. Existe una estrecha relación entre los malos hábitos alimentarios y la
desnutrición. Esta relación se agrava en la población de edad avanzada, donde una dieta saludable juega
un papel clave en un envejecimiento activo y saludable, permitiendo una vida independiente más larga y
una mejor calidad de vida. Por lo tanto, existe una necesidad obvia de asesoramiento y supervisión
dietéticos. La aparición de aplicaciones móviles de acompañamiento nutricional que permiten el acceso a
la información y una fácil supervisión, integrando en muchos casos monitores de actividad, intenta dar
respuesta a esta necesidad. La mayoría de las veces, la interacción entre el sistema y el usuario se
produce a través de información en pantalla y entradas táctiles. Esta forma de interacción puede en
ocasiones ser un obstáculo para la adopción regular de estas tecnologías, especialmente en la población de edad avanzada.
En consecuencia, este documento informa del trabajo realizado en una tesis de maestría desarrollada
en Fraun­hofer Portugal, un instituto de investigación sin fines de lucro que recientemente ha estado
involucrado en el desarrollo de tecnologías de envejecimiento activo. Los investigadores de Fraunhofer han
desarrollado un sistema de recomendación (Lifana) que crea planes de alimentación para cada semana y
también permite el acceso a información nutricional de las comidas y los ingredientes. El objetivo principal
de la tesis es el desarrollo de un agente conversacional que sea capaz de reemplazar la interacción basada
en pantalla entre los usuarios y el motor de recomendación, proporcionando así una experiencia más inmersiva y natural.
Teniendo esto en cuenta, el trabajo se centra en la construcción de un chatbot que sea capaz de
reconocer y clasificar la intención del usuario en un turno de conversación y tomar una acción en función
de ello. Esto corresponde a dos partes principales del agente conversacional: la comprensión del lenguaje
natural y la gestión del diálogo. Ambas partes requirieron la recopilación de un conjunto de datos adecuado
que se anotó y almacenó posteriormente. En cuanto a la comprensión del lenguaje natural, se dividió en
dos tareas: clasificación de intenciones y extracción de entidades, que permite analizar oraciones en
información estructurada que puede procesarse. Se siguió un extenso protocolo de experimentación
mezclando varios conjuntos de características y modelos de clasificación. El enfoque que proporcionó los
mejores resultados emplea una arquitectura basada en transformadores y realiza clasificación de intenciones
conjuntas y reconocimiento de entidades. Este enfoque conjunto alcanzó una puntuación F1 de 0,91 para
el reconocimiento de entidades y 0,88 para la clasificación de intenciones.
También se llevó a cabo una serie de experimentos para Dialogue Management, donde una vez más
la arquitectura basada en transformadores mostró el mejor rendimiento en la predicción de acciones. Este
modelo alcanzó una precisión de 0,82. Además, este documento también describe la forma en que se
codificaron las distintas acciones en el chatbot, de modo que la comunicación entre el usuario y el sistema
de recomendación Lifana sea posible.
Se desarrollaron dos componentes adicionales que desempeñan papeles muy importantes en el buen
funcionamiento del chatbot: el modelo de preferencias y el algoritmo de recuperación de alimentos. El primero
utiliza la herramienta VADER Sentiment Analysis para extraer la polaridad y la intensidad del sentimiento y, en
base a eso, crear un mecanismo de calificación adecuado para Lifana. Esto permite la expresión de preferencias usando

i
Machine Translated by Google

ii

Lenguaje Natural y por tanto términos cualitativos, en lugar de una calificación numérica, mejorando la
experiencia de usuario del chatbot. El algoritmo final produjo un error absoluto medio general de 0,86 en un
rango de 0 a 5, en comparación con los datos recopilados para este propósito (intensidad del sentimiento).
En cuanto al algoritmo de recuperación de alimentos, funciona extrayendo las entradas más correctas de una
base de datos de términos alimentarios utilizando un mecanismo de coincidencia basado en la similitud de
incrustaciones de palabras. Estas incrustaciones se crearon adaptando incrustaciones previamente entrenadas
de ConceptNet Numberbatch con información semántica de LanguaL, una ontología de alimentos. La
modernización se mejoró mediante la utilización de la ponderación TF­IDF. Los resultados para la clasificación
de ingredientes mostraron una gran mejora al comparar las incorporaciones modernizadas con las no
modernizadas. Este algoritmo fue validado a través de la opinión de los usuarios.
El chatbot desarrollado fue evaluado según las pruebas de los usuarios. Para ello se diseñó un test de
usabilidad basado en tareas que imitan los casos de uso más comunes de Lifana. Los usuarios pudieron
completar las tareas y luego evaluar el bot de acuerdo con tres cuestionarios de usabilidad diferentes: System
Usability Score, User Experience Questionnaire y Chatbot Usability Questionnaire. El chatbot obtuvo una
puntuación superior a todos los puntos de referencia, lo que demuestra que las acciones se implementaron y
articularon correctamente. Además, se realizó un análisis comparativo de los cuestionarios y métricas para
evaluar la validez y la superposición de la evaluación. Además, la evaluación del algoritmo de recuperación de
alimentos mostró que los usuarios prefieren el método semántico (incrustaciones de palabras) al algoritmo de
búsqueda por coincidencia de palabras (77% frente a 23%). El primero resultó ser más preciso que el segundo.

Todas las etapas de desarrollo se realizaron utilizando el marco Rasa.


Estos resultados demostraron la viabilidad de este trabajo, aunque todavía hay espacio para mayores
desarrollos y pruebas. Se espera que el chatbot siga mejorando su rendimiento con la recopilación de más
datos.
Machine Translated by Google

Resumen

La desnutrición es una de las principales causas de muerte en el mundo, conduciendo al desarrollo de varias
condiciones que afectan negativamente la calidad de vida de las poblaciones.
Además, representa una carga considerable para los sistemas de salud y la sociedad.
De hecho, se estima que hay 3.150 millones de personas que padecen algún tipo de desnutrición, de las cuales
2.690 millones son obesas o tienen sobrepeso. Además, el impacto económico mundial estimado de la desnutrición y
las condiciones relacionadas asciende a 3.500 millones de dólares. Existe una estrecha relación entre los malos
hábitos alimentarios y la desnutrición. Esta relación se agrava en la población mayor, donde una dieta equilibrada
juega un papel fundamental en un envejecimiento activo y saludable, permitiendo una vida independiente más larga y
una mejor calidad de vida. Por lo tanto, existe una necesidad evidente de asesoramiento y supervisión dietéticos. La
aparición de aplicaciones móviles de seguimiento nutricional que permiten el acceso a la información y una fácil
supervisión, integrando a menudo monitores de actividad, intenta dar respuesta a esta necesidad. La mayoría de las
veces, la interacción entre el sistema y el usuario se produce a través de información en pantalla y entradas táctiles.

Esta forma de interacción puede en ocasiones ser un obstáculo para la adopción regular de estas tecnologías,
especialmente en la población de edad avanzada.

En consecuencia, este documento informa del trabajo realizado en una Tesis de Maestría desarrollada en
Fraunhofer Portugal, un instituto de investigación sin fines de lucro que recientemente ha estado involucrado en el
desarrollo de tecnologías de envejecimiento activo. Los investigadores de Fraunhofer desarrollaron un sistema de
recomendación (Lifana) que crea planes de alimentación semanales y también permite acceder a información
nutricional sobre las comidas y los ingredientes. El principal objetivo de esta tesis es el desarrollo de un agente
conversacional que debería ser capaz de reemplazar la interacción basada en pantalla entre los usuarios y el motor
de recomendación, proporcionando así una experiencia más inmersiva y natural, a través de

conversación.

Teniendo esto en cuenta, el trabajo se centra en construir un chatbot que sea capaz de reconocer y clasificar la
intención del usuario en cada turno de la conversación y tomar acciones en función de ella. Para ello, el sistema se
puede dividir en dos partes principales: el módulo de Comprensión del Lenguaje Natural y el módulo de Gestión del
Diálogo. Ambas partes exigieron la recogida de dos conjuntos de datos, los cuales fueron debidamente anotados y
almacenados.
Estos conjuntos de datos se utilizaron para entrenar y evaluar los clasificadores implementados durante el desarrollo.

En cuanto al módulo de Comprensión del Lenguaje Natural, se dividió en dos tareas: clasificación de intención y
reconocimiento de entidades mencionadas, lo que permite transformar la información no estructurada presente en el
texto en información estructurada, que puede ser procesada por el sistema. Para elegir el mejor enfoque, se llevaron
a cabo una serie de experimentos combinando varios conjuntos de características y modelos de clasificación. El
enfoque que proporcionó los mejores resultados emplea una arquitectura basada en transformadores y realiza
conjuntamente la clasificación de intenciones y el reconocimiento de entidades. Además, este enfoque también utiliza
vectores de palabras previamente entrenados de GloVe. Este enfoque conjunto logró un valor F1 de 0,91 para el
reconocimiento de entidades y 0,88 para la clasificación de intenciones.

III
Machine Translated by Google

IV

También se llevó a cabo una serie de experimentos para el módulo de Gestión de Diálogo
donde, una vez más, la arquitectura basada en transformador mostró el mejor rendimiento en la
predicción de acciones. Este modelo logró una precisión de 0,82. Además, este documento también
describe cómo se codificaron en el chatbot las diversas acciones que imitan los casos de uso del
sistema de recomendación, de modo que la comunicación entre el usuario y el sistema de
recomendación de Lifana sea posible.
Se desarrollaron dos componentes adicionales que juegan papeles muy importantes en el buen
funcionamiento del chatbot: el modelo de preferencias y el algoritmo de extracción de alimentos de
la base de datos. El primero utiliza la herramienta VADER, que realiza análisis de sentimientos sobre
el texto, para extraer la polaridad e intensidad de los sentimientos y, en base a esto, crear un
mecanismo de clasificación adecuado para el sistema Lifana. Esto permite la expresión de
preferencias utilizando Lenguaje Natural y por tanto términos cualitativos, en lugar de una clasificación
numérica, mejorando la experiencia del usuario. El algoritmo final produjo un error absoluto promedio
general de 0,86 en un rango de 0 a 5, en comparación con los datos recopilados para este propósito
(intensidad del sentimiento). También fue necesario adaptar el algoritmo para considerar los
extremos del espectro, ya que estos tienen una importancia creciente en el sistema Lifana. En cuanto
al algoritmo de extracción de alimentos, funciona extrayendo las entradas más correctas de una base
de datos de términos alimentarios (ingredientes y recetas) utilizando un mecanismo de comparación
basado en la similitud en vectores de palabras.
Estos vectores se crearon adaptando vectores ConceptNet Number­batch previamente entrenados
con la incorporación de información semántica de LanguaL, una ontología alimentaria. Para ello se
utilizó la técnica del retrofitting. La modernización se mejoró mediante el uso de una ponderación
basada en TF­IDF. Los resultados de la clasificación de ingredientes mostraron una gran mejora al
comparar los vectores que fueron modernizados con los vectores que no fueron modernizados. Este
algoritmo fue validado a través de la opinión de los usuarios.
Además de las métricas mencionadas anteriormente, el chatbot desarrollado fue evaluado
según pruebas realizadas por los usuarios. Para ello se diseñó un test de usabilidad basado en
tareas que imitan los casos de uso más comunes de Lifana. Los usuarios tendrían que completar las
tareas y luego evaluar el bot de acuerdo con tres cuestionarios de usabilidad diferentes: la puntuación
de usabilidad del sistema, el cuestionario de experiencia del usuario y el cuestionario de usabilidad
del chatbot. El chatbot calificó sobre todo los puntos de referencia de los distintos cuestionarios, lo
que demuestra que las acciones se implementaron y articularon correctamente. Además, también se
realizó un análisis comparativo de los resultados de los cuestionarios, con el objetivo de entender si
evaluaban los mismos factores en el chatbot. Además, la evaluación del algoritmo de extracción de
alimentos mostró que los usuarios prefieren (77% vs 23%) el método basado en la semántica
(vectores de palabras) que el método que busca correspondencia literal de palabras, siendo el
primero más preciso que el segundo.
Todo el desarrollo del chatbot se realizó utilizando la herramienta Rasa.

Los resultados obtenidos en este trabajo demuestran la viabilidad de desarrollar un chatbot


como medio para interactuar con un sistema de recomendación. Sin embargo, todavía hay margen
de mejora en cuanto a desarrollo y pruebas. Se espera que el chatbot siga mejorando su rendimiento
recopilando más datos.
Machine Translated by Google

Agradecimientos

Esta tesis, resumida en este documento, representa la culminación de todos mis años en la universidad, desde el trabajo
hasta la bohemia con muchos recuerdos. Todo este tiempo está dedicado especialmente a mi Abuelo Álvaro quien por una
desgracia del destino se fue a mitad del camino y no tuvo la oportunidad de ver a su nieto con bastón y chistera, algo que
le hubiera traído la mayor felicidad. en la vida.

Espero haber honrado tu nombre y haberte enorgullecido con mi vida. este trabajo es tuyo
Vuvú. Un agradecimiento eterno

También quiero hacer referencia a mi abuelo António, a quien nunca tuve la oportunidad de conocer.
Muy bien, pero espero que también estés orgulloso del nieto y la hija que lo criaron.

Para no chocar con el tono, y como buen portugués, comienzo mi agradecimiento con un sentimiento de nostalgia
por lo que nos robaron este año. Todo lo que no pudimos vivir en este último período de la vida estudiantil. Todos los
encuentros y todas las celebraciones de la vida y la libertad de ser estudiante en la ciudad de Oporto. No es justo, no fue
justo. ¿Porque nosotros? ¿No pudo haber sido el semestre pasado? o el siguiente? El último año tiene un sabor muy
agridulce de principio a fin. Acabo de llegar de Erasmus, un semestre donde muchos experimentamos por primera vez la
libertad total y donde la mayoría de las cosas tienen una ligereza innata que es genial disfrutar. El primer semestre
comienza con la sensación de que somos los más grandes de la FEUP. Sin embargo, esto rápidamente se ve superado
por una cantidad absurda de trabajo que se nos exige, junto con la tesis, el semestre más laborioso sin duda. Luego
entramos al segundo semestre con la sensación de que ahora es lo que será: ¡EL semestre! Podremos hacer todo lo que
no hicimos porque nunca tuvimos tiempo, o simplemente porque el tiempo nunca se acabó. Si será el semestre, nadie lo
sabrá. Todos los planes pospuestos o cancelados. Todas las ideas quedaron pospuestas para otro momento y nos vimos
obligados a quedarnos en casa durante el último tramo de vida estudiantil que muchos tendrán. Incluso Queima y sus
fiestas nos robaron. Quien nunca se ha imaginado en ese escenario destrozando a un maestro de arriba a abajo, con
bastón en mano y chistera en la cabeza, quien nunca ha sentido la alegría de la procesión donde todo es bueno y feliz,
nunca ha experimentado una Queima para está al máximo. No se escapó ni el final del curso, este año los finalistas
terminan el curso colgando una llamada de Zoom tras la defensa virtual. Nadie tenía en mente un final tan aburrido para un
hito tan importante en la vida. El fin de los que dicen que son los mejores años, que no podemos desperdiciar.

Sin embargo,

acabo de descubrir que siempre seremos el Año de la Pandemia, la infame Promoción de 2020. Mirando hacia atrás,
sabemos que extrañaremos todo, desde las salidas nocturnas en las salas de estudio de B hasta los cafés después del
almuerzo. en el Bar de Minas o ESE, pasando por noches en los mágicos FEUPCafés y Finos en AE. No podía dejar de
mencionar Metal&Bio, que me proporcionó muchas noches de bohemia académica y cuyo camino se separó del mío en los
últimos años de mis estudios.
curso.

También quiero agradecer a todos mis amigos que hicieron este camino conmigo o que estuvieron presentes de
alguna manera. Comenzando por el grupo universitario, muchas gracias a mis amigos Biomédicos que se han ido
acercando cada vez más desde el tercer año.

en
Machine Translated by Google

nosotros

más y nunca pensé que fuera posible hacer tantos planes con un grupo tan grande. Eso y rumores,
siempre rumores. Gracias a las gemelas Raquel y Leonor, que a pesar de no pensar que se parecen,
acepto la designación. Sus resúmenes del grupo de cursos trivialmente designados como biomecánica
fueron cruciales en mi desempeño académico. Gracias Raquel por reírte incondicionalmente de mis
chistes geniales. Gracias a los Pedro como entidad conjunta formada por Pedro Dias alias Pedrito, Pedro
Ribeiro alias Pedrão y Miguel Meneses alias Migas. Pedro Dias, el único chico más estresado que yo por
lo que otros ya saben. Pedro Ribeiro como el único otro miembro del grupo que me puede plantar cara en
tamaño, gigante y el tipo con menos paciencia para mis escenas. Gracias Migas por la compañía en las
atracciones y en Fraunhofer, incluidos los refrigerios y los almuerzos. Gracias a los gemelos bruneses,
Bruno Santos y João Meneses. Bruno, el tipo con planes que tienen todo para salir mal pero al final salen
bien. Gracias por tu insistencia y amistad, a pesar de que eres el miembro más reciente del grupo y
probablemente el que más rechazo recibe. Jonas, muchas gracias también por tu casi total disponibilidad
durante todo este tiempo y por no dejar nunca morir al grupo. También tengo que mencionar el núcleo
duro que me acompañó desde los primeros días y en los viajes que realizamos a lo largo del curso.
Gracias Nataliya alias Nata, la persona más tranquila, tranquila, serena y con la onda más retro que
conozco. Gracias Joana alias Jupi, aunque estemos un poco enfrentados, sé que somos buenos amigos.
Ana alias Anokas, la persona que más discrepa conmigo, con las ideas más opuestas a las mías en
literalmente todo, ni siquiera recuerdo que hayamos coincidido en ningún tema. Estas eternas discusiones
deben seguir sucediendo.

Gracias por mostrarme el otro lado y que a veces el ego se vuelve un poco molesto. Diogo alias Gu(Gu)
alias Vitória alias Gustavo alias una multitud de otros nombres derivados del principio de que estás en la
cima de la lista y eres EL amigo de la universidad. Ana y Gu, gracias por aguantarme todos estos años y
seguir siendo mis amigos. Por ayudarme en los momentos más aburridos e infelices y por compartir los
mejores momentos conmigo. Sé que mucho de lo que logré hacer en la universidad es tuyo y sin un grupo
así todo se vuelve mucho más difícil y menos divertido. Lo único que falta en la facultad es Diogo Malafaya
alias Malafaya, quien estuvo desaparecido durante dos años pero luego volvió para ser el socio de
innumerables proyectos inconclusos y de la redacción de este documento. El chico con ideas que nunca
contesta llamadas pero sigue siendo un buen amigo. Un agradecimiento especial a la segunda casa, la
mítica y hermosa tercera en Rua Padre (¿maestro?) António Cruz. Dicen que los amigos de la universidad
son para toda la vida, ¡espero que así sea!

Siguiendo con los amigos, un agradecimiento especial a la gente del baloncesto, quienes junto con
la universidad se convirtieron en otro grupo de amigos muy cercano y que seguramente permanecerán
conmigo hasta que un día seamos todos magnates. El compañerismo es fuerte en este. Gracias Rodrigo,
Vítor, Bernardo, Miguel, André, João Maria, Branco y hasta el desaparecido Zé.
Agradezco a todas las demás personas que se han cruzado conmigo a lo largo de los años, es decir,
a la gente del 96 que hizo conmigo las primeras sillas MIB (gracias Paulo Maia y Cris por molestaros todos
estos años), a la gente de fantasía de la NBA y quién Esto sucede todos los años, a los mecánicos que
asisten a la mítica 3ª Facultad de Derecho (incluida la Navidad) y gestionan el mejor puesto de Queima
do Porto, Dartacão, al personal de ShARE que va allí desde hace algunos años pero que quedó marcado,
en amigos de Nocas, especialmente Carol que hacía de casamentera y, por último, la gente de Cedros
que a pesar de no estar tan presente durante la universidad, siempre son un grupo importante en mi
camino.
También un agradecimiento muy especial a mis Nocas que fueron mi compañía durante más de la
mitad del curso y que atravesaron y soportaron varios momentos felices e infelices en el camino. Siempre
apoyando mis ideas sin sentido y chorradas. Sé que soy mejor persona contigo y jugaste un papel
fundamental en mi vida académica además de mi vida cotidiana. Apoyo incondicional todos los días y
cada momento. De hecho, somos uno de los mejores equipos. Cada día que pasa nos volvemos más
cercanos y nuestro futuro se vuelve más sólido.
Y gracias a los padres por las cenas rápidas antes de entrenar y por criar a la mejor persona que he
conocido en los últimos años.
No podía dejar de mencionar a mi familia, que fue la base y apoyo que me permitió
Machine Translated by Google

viii

llegar a donde estoy y lograr los planes que imaginé. A mis padres que siempre me apoyaron y
motivaron a ser el mejor en lo que hice, siendo la figura ejemplar que creo que son, muchas gracias.
A mis abuelos que me criaron desde pequeño y permitieron que mis padres me apoyaran en mis
estudios y actividades para enriquecer mi educación, muchas gracias. A mi hermano que es mi eterno
compañero de vida, gracias también. Espero poder ser un ejemplo para él y me gustaría decirle que
disfrute cada segundo de esta vida estudiantil, sobre todo ahora que ya le he tendido la cuerda a sus
padres.
Disfruta de Kiko mientras esté libre.
Un agradecimiento especial a los profesores y técnicos que me acompañaron en este viaje, a saber
Me gustaría agradecer al profesor Henrique que me asesoró en mi tesis y a David que me supervisó
en Fraunhofer. Sin sus valiosos aportes, el trabajo no sería ni la mitad de bueno.
Cierro estos agradecimientos con un sentimiento de logro y orgullo. Estoy listo para la siguiente
etapa que viene. Espero que esté al mismo nivel que el que pasó porque dejó las expectativas muy
altas. Es genial ser estudiante en Portugal. Pero el compromiso es el mismo, ser lo mejor que puedas.
Machine Translated by Google

Luchar por la grandeza


­LeBron Raymone James

viii
Machine Translated by Google

Contenido

Lista de Figuras xiii

Lista de tablas xvii

lista de abreviaciones xix

1. Introducción 1
1.1 Motivación. ....... . . . . . . . . . . . . ..... . . . . . . . . . . . . ..... 4
1.2 Metas. . . . ....... . . . . . . . . . . . . ..... . . . . . . . . . . . . .....6
1.3 Contribuciones. . . . . . . . . . . . . . . . . . ..... . . . . . . . . . . . . ..... 7
1.4 Estructura del documento. . . . . . . . . . . . . . ..... . . . . . . . . . . . . .....8

2. Fondo 11
2.1 Desnutrición. . . . . . . . . . . . . . . . . . . ..... . . . . . . . . . . . . ..... 11
2.1.1 Desnutrición y Dieta. . . . . . . . . ..... . . . . . . . . . . . . . . . . . 13

2.1.2 Dieta saludable. . . . . . . . . . . . . . . ..... . . . . . . . . . . . . . . . . . 13

2.2 Sistema de recomendación de nutrición de Lifana. . . . . . . . . . . . . . . . . . . . . . . . . 15

2.2.1 Componente del servidor en la nube. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

2.2.2 Descripción de las bases de conocimiento. . . . . . . . . . . . . . . . . . . . . . . . . . . 19

2.3 Procesamiento del lenguaje natural. . . . . . . . . . . . . . . . . . . . . . . . . . ..... 21

2.3.1 Enfoques para el procesamiento del lenguaje natural. . . . . . . . . . . . . . . . . . 21

2.3.2 Tareas de procesamiento del lenguaje natural. . . . . . . . . . . . . . . . . . ..... 22

2.3.3 Procesamiento del Lenguaje Natural basado en incrustaciones. . . . . . . . . . . . . 25


2.4 Resumen. . ....... . . . . . . . . . . . . ..... . . . . . . . . . . . . ..... 27

3 Estado del arte 29


3.1 Chatbots y comunicación. . . . . . . . . ..... . . . . . . . . . . . . . . . . . 29

3.1.1 Reconocimiento y síntesis de voz. . ..... . . . . . . . . . . . . . . . . . 31


3.1.2 La comunicación como acción. . . . . ..... . . . . . . . . . . . . . . . . . 36
3.1.3 Determinación de la intención. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

3.1.4 Gestión de Diálogos y Generación de Respuestas. . . . . . . . . . . . . . . . 38

3.1.5 Bases de conocimiento. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

ix
Machine Translated by Google

X CONTENIDO

3.2 Herramientas de construcción de chatbots. . . . . . . . . . . . . . . . ....... . . . . . . . . . . 41

3.2.1 Reconocimiento de voz y síntesis de voz. . ....... . . . . . . . . . . 41

3.2.2 Marcos de identificación de intenciones y gestión del diálogo. . . . . . . . 43


3.3 Evaluación de chatbots. . . . . . . . . . . . . . . . . . . . ....... . . . . . . . . . . 50
3.4 Chatbots relacionados con la nutrición y la salud. . . . . . . . ....... . . . . . . . . . . 51

3.5 Resumen. . . . . . . ....... . . . . . . . . . . . . ....... . . . . . . . . . . 53

4 Un chatbot para niños 55

4.1 Descripción del problema. . . . . . . . . . . . . . . . . . . ....... . . . . . . . . . . 55


4.1.1 API similares . . . . . . . . . . . . . . . . . . . . . ....... . . . . . . . . . . 56
4.2 Datos disponibles. . . . ....... . . . . . . . . . . . . ....... . . . . . . . . . . 57
4.2.1 Datos relacionados con los alimentos. . . . . . . . . . . . . . . . . ....... . . . . . . . . . . 57
4.2.2 Datos iniciales de PNL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
4.3 Marco Rasa. . ....... . . . . . . . . . . . . ....... . . . . . . . . . . 59
4.3.1 Rasa NLU. . ....... . . . . . . . . . . . . ....... . . . . . . . . . . 59
4.3.2 Sentido central. . . . . . . . . . . . . . . . . . . . . ....... . . . . . . . . . . 63
4.3.3 Funciones adicionales. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68

4.4 Especificación de casos de uso. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69


4.4.1 Acciones del Plan de Alimentación. . . . . . . . . . . . . . . . ....... . . . . . . . . . . 69
4.4.2 Acciones de Contenido Nutricional. . . . . . . . . . . . . . . . . . . . . . . . . . . 70
4.4.3 Acciones de preferencia alimentaria. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
4.4.4 Acciones relacionadas con el usuario. . . . . . . . . . . . . . . ....... . . . . . . . . . . 71

4.5 Resumen. . . . . . . ....... . . . . . . . . . . . . ....... . . . . . . . . . . 72

5 Desarrollo de Chatbot 5.1 73

Enfoque NLU. . . . ....... . . . . . . . . . . . . ....... . . . . . . . . . . 73


5.1.1 Datos NLU. . ....... . . . . . . . . . . . . ....... . . . . . . . . . . 73

5.1.2 Descripción de las Técnicas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77


5.1.3 Clasificación de intenciones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79

5.1.4 Reconocimiento de entidades. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83

5.1.5 Clasificación de intención conjunta y extracción de entidad. . . . . . . . . . . . . . . . 85


5.1.6 Funciones de expresiones regulares. . . . . . . . . . . . . . . . . . ....... . . . . . . . . . . 86

5.1.7 Componentes adicionales. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88

5.1.8 Canalización final de NLU. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90

5.2 Modelado de preferencias. . . . . . . . . . . . . . . . . . . ....... . . . . . . . . . . 92

5.2.1 Analizador de sentimiento VADER NLTK. . . . . . . . . . . . . . . . . . . . . . . 93

5.2.2 API de lenguaje natural de Google Cloud . . . . . ....... . . . . . . . . . . 94

5.2.3 Análisis de sentimiento para modelado de preferencias.. . . . . . . . . . . . . . . . . 94

5.3 Maridaje de alimentos. . . . . . . . . . . . . . . . . . . . . . ....... . . . . . . . . . . 101

5.3.1 ConceptNet Numberbatch y modernización. . ....... . . . . . . . . . . 102


Machine Translated by Google

CONTENIDO xi

5.3.2 Evaluación Experimental. . . . . . . ..... . . . . . . . . . . . . . . . . . 103

5.4 Gestión del Diálogo. . . . . . . . . . . . . ..... . . . . . . . . . . . . . . . . . 110

5.4.1 Respuestas. . . . . . . . . . . . . . . . ..... . . . . . . . . . . . . . . . . . 110

5.4.2 Conjunto de datos de gestión del diálogo. . . . . . . . . . . . . . . . . . . . . . . . . . 115

5.4.3 Evaluación Experimental de Gestión del Diálogo. . . . . . . . . . . . . . . . 116

5.5 Resumen. . ....... . . . . . . . . . . . . ..... . . . . . . . . . . . . ..... 117

6 Evaluación de la experiencia del usuario 119

6.1 Protocolo experimental – Prueba de usabilidad. . . . . . . . . . . . . . . . . . . . . . . . . . 119


6.1.1 Tareas de prueba. . . . . . . . . . . . . . . . ..... . . . . . . . . . . . . . . . . . 120

6.1.2 Escala de usabilidad del sistema. . . . . . . . . . . . . . . . . . . . . . . . . . ..... 121

6.1.3 Cuestionario de Experiencia del Usuario. . . . . . . . . . . . . . . . . . . . . ..... 121

6.1.4 Cuestionario de usabilidad del chatbot. . . . . . . . . . . . . . . . . . . . ..... 122

6.1.5 Validación de maridaje de alimentos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123


6.2 Resultados. . . . . . . . . . . . . . . . . . . . . . ..... . . . . . . . . . . . . ..... 124

6.2.1 Pregunta de facilidad única. . . . . . . . . . . . . . . . . . . . . . . . . . . ..... 124

6.2.2 Tiempos de finalización. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126

6.2.3 Puntuación de usabilidad del sistema. . . . . . . . . ..... . . . . . . . . . . . . . . . . . 126

6.2.4 Cuestionario de usabilidad del chatbot. . . . . . . . . . . . . . . . . . . . . . . . . 128

6.2.5 Comparación de cuestionarios. . . . . . ..... . . . . . . . . . . . . . . . . . 129

6.2.6 Maridaje de alimentos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131

6.3 Resumen. . ....... . . . . . . . . . . . . ..... . . . . . . . . . . . . . . . . . 133

7 Conclusión y trabajo futuro 135

Bibliografía 139

Una información complementaria 155

B Información complementaria 173


Machine Translated by Google

xiii CONTENIDO
Machine Translated by Google

Lista de Figuras

1.1 Proyecciones demográficas de la población según Eurostat [1]. El porcentaje de personas


mayores (edad ≥ 65) y la tasa de antigua dependencia de la UE
En esta figura se representan estos países y Portugal. . . . . . . . . . . . ..... 2

2.1 Etapas secuenciales del sistema de recomendación Lifana [23] . . . . . . . . . . . . . . . . . . 17


2.2 Izquierda: pantalla principal de Lifana; Centro: Perfil de usuario; Derecha: Restricciones alimentarias. . . . . 18

2.3 Pantallas de aplicaciones para plan de alimentación, información de recetas y contenido nutricional. . . . . . 18

2.4 Ejemplo de base de datos de alimentos utilizada por el sistema Lifana. . . . . . . . . . . . . . 20


2.5 Ejemplo de reconocimiento de entidades nombradas obtenido utilizando el kit de herramientas StanfordNLP [80] 23

2.6 Proyecto Penn Treebank [81] etiquetado de partes del discurso [80] . . . . . . . . . . . . . . . 23
2.7 Ejemplo de análisis de dependencias. La estructura de árbol representa la gramática.
dependencias entre el token de la frase: Bell, con sede en Los Ángeles, hace
. .. .. ... .. ..25
y distribuye productos electrónicos, informáticos y de construcción [88] .

3.1 Parámetros de clasificación de chatbots adaptados de [95] . . . . . . . . . . . . . . . 30

3.2 Arquitectura habitual del chatter bot. El sistema consta de varios módulos: voz
reconocimiento (voz a texto), comprensión del lenguaje, administrador de diálogo, texto
generador de respuestas y un sintetizador de texto a voz [80] . . . ... .. 30
. . . . . .

3.3 Pasos comprendidos en el proceso Texto a Voz: Análisis de texto, prosódico y


Análisis fonético y síntesis de voz [80] . . . . . . . . . . . . . . . . . . . . . . 34

3.4 Comparación entre el enfoque Texto a voz de DeepMind (WaveNet) y


otros enfoques tradicionales, con respecto a la preferencia humana tanto por el inglés estadounidense
y chino mandarín. Los resultados se obtuvieron utilizando puntuaciones medias de opinión.
(de 1 a 5), que son la medida estándar para las pruebas subjetivas de calidad del sonido.
Las opiniones provinieron de una prueba ciega en seres humanos, de más de 500
calificaciones de 100 frases de prueba, adaptadas de [102].. .. . .. .. . .. 36
. . . . . . .

3.5 Ejemplo de coincidencia de intenciones de Dialogflow [133] . . . . . . . . . . . . . . . . . . ..... 44

3.6 Coincidencia de intenciones de flujo de diálogo y flujo de respuesta [133] . . . . . . . . . . . . . . . . . 45

3.7 Ejemplo de intención de seguimiento de Dialogflow con una cita para un corte de pelo. las intenciones
se combinan por los contextos de entrada y salida [136]. . . . . .. . .46. . . . . . . .
3.8 Interacción entre un sistema y la API de Dialogflow. Se procesa según
. . . . .....
siga los pasos que se describen a continuación [137]. . . . . . . . . . . . . . ..... 47

4.1 Representación gráfica del alcance del trabajo de tesis. El agente establecido
Establece la comunicación entre el sistema de recomendación y el usuario. . . . . 56

xiii
Machine Translated by Google

xiv LISTA DE FIGURAS

4.2 Esquema simplificado de la base de datos que incluye solo los elementos principales del plan y
sus relaciones. . 58 ....... . . . . . . . . . . . . ....... . . . . . . . . .
4.3 Ejemplo ilustrativo de algunas muestras para tres propósitos diferentes. Tenga en cuenta que
las entidades se anotan utilizando "[]", con el nombre de la entidad correspondiente y el sinónimo.
entre corchetes . . . . . 60 . . . . . . . . . . . . ....... . . . . . . . . .

4.4 Arquitectura del modelo Dual Intent y Entity Transformer. El modelo fue desarrollado por Bunk
et al. y tiene como objetivo ofrecer un rendimiento de última generación y al mismo tiempo
manteniendo un tiempo de inferencia reducido [171] .. .. 62
. . ....... . . . . . . . . .

4.5 Un ejemplo de cuento que muestra las comidas planificadas para un tiempo determinado. Ahorra
todas las ranuras establecidas en ese momento, así como la intención y las entidades extraídas por
el módulo NLU y las respuestas de los bots. Marcadas con "*" están las intenciones del usuario.
Donde las líneas sangradas que comienzan con "­" indican las acciones o espacios de los bots. . .. 64

4.6 Arquitectura de políticas de diálogo de integración de transformadores y procesamiento de datos


dos turnos de conversación [179] . ... .66. . . . . . . . . . . . . . . . . . . . . . . . . .

5.1 Sinónimos definidos para la palabra “CENA”. . . . . ....... . . . . . . . . . . 90

5.2 Histograma de aciertos y errores según la confianza del modelo para la clasificación de
catión. . . . . . . . ....... . . . . . . . . . . . . ....... . . . . . intenciones.
. . . . 92

5.3 Distribución de muestras por clase de intensidad. . . . . ....... . . . . . . . . . . 95

5.4 Valores del Error Absoluto Medio calculados por clase para ambos modelos. . . . . . . 97

5.5 Diferencia en las predicciones para el modelo de VADER antes y después de aplicar la
regla de limitación descrita en la Ecuación 5.2, para las clases 0 y 5. . .. . .. .. 98
. . . . . .

5.6 Diferencia en las predicciones del modelo de Google Cloud antes y después de su aplicación
la regla de limitación descrita en la Ecuación 5.2, para las clases 0 y 5... .99. . . . . . .
5.7 Los gráficos muestran los 12 lemas de palabras más frecuentes para cada clase. Es posible
para ver que las clases centrales (1 a 4) tienen mayor variabilidad. De lo contrario,
las clases 0 y 5 son más heterogéneas y tienen algunos términos que parecen mucho más
más que los demás. . . . . . . . 100 . . . . . . . . . . . . ....... . . . . . . . . .

5.8 Ejemplos de respuestas textuales. . . . . . . . . . . . . . ....... . . . . . . . . . . 110

6.1 Frecuencia de uso del chatbot voluntario. . . . . . . . . . . . . . . . . . . . . . . . . . . . 124

6.2 Valores promedio para la pregunta de evaluación de dificultad previa y posterior a la tarea. . . . . 125
6.3 Valores medios de diferencia entre facilidad preconcebida y facilidad real por tarea. . . 125

6.4 Tiempo promedio de finalización por tarea de los voluntarios. El tiempo que toma el
El desarrollador también está representado por la línea como término de comparación. . . . . . . . . 126

6.5 Diagrama de caja que representa los puntajes SUS obtenidos en la prueba. El promedio es 84,7,
el mínimo fue 67,5 y el máximo 97,5. Es posible observar que
el primer cuartil está por encima del valor de referencia 68,0. . . . . . . . . . . . . . . . . 127

6.6 Comparación de benchmark para cada factor evaluado por la UEQ. . . . . . . . . . . . . 128

6.7 Diagrama de cajas que representa los puntajes CUQ obtenidos en la prueba. El promedio es 82,9,
el mínimo fue 65,6 y el máximo 98,44. . . . . . . . 129 . . . . . . . . .

6,8 Puntuaciones SUS vs UEQ por parcela de voluntarios. . . . . . . . . . . . . . . . . . . . . . . . . 129

6,9 Puntuaciones SUS frente a CUQ por parcela de voluntarios. . . . . . . . ....... . . . . . . . . . . 130

6.10 Puntajes UEQ vs CUQ por parcela de voluntarios. . . . . . . . . . . . . . . . . . . . . . . . 130

6.11 Frecuencia de respuesta para la evaluación de la precisión de la compatibilidad de alimentos. . . . . . . . . . . . 131


Machine Translated by Google

LISTA DE FIGURAS xvi

6.12 Frecuencia de respuesta para la evaluación del retiro del mercado de maridaje de alimentos. . . . . . . . . . . . . . 132

6.13 Frecuencia de respuesta para la preferencia del modelo de combinación de alimentos. . . . . . . . . . . . . . 133

A.4.1 Matriz de confusión obtenida para la clasificación de intenciones utilizando el proceso final de NLU
representado en la Sección 5.1.8. . . . . . . . . . . . ..... . . . . . . . . . . . . ..... 172

B.1.1 Interfaz de usuario de Rasa X utilizada para pruebas de experiencia de usuario. Esta figura ilustra la
mensaje inicial: antes de la creación del perfil. Describe el alcance del chatbot y
Solicita recogida de datos personales. .. .. . .. .. 173
. ..... . . . . . . . . . . . .

B.1.2 Interfaz de usuario de Rasa X utilizada para pruebas de experiencia de usuario. Esta figura ilustra la
pasos adicionales de recopilación de datos personales. . . . . . . . . . . . . . . . . . ..... 174

B.1.3 Interfaz de usuario de Rasa X utilizada para pruebas de experiencia de usuario. Esta figura ilustra la
últimos pasos de la creación del perfil. . . . . . . . . . . . . . . . . . . . . . . . . . ..... 174

B.1.4 Interfaz de usuario de Rasa X utilizada para pruebas de experiencia de usuario. Esta figura ilustra la
proceso de solicitud de ver un plano. Además, el mensaje de bienvenida es personalizado.
según el nombre del usuario. . . . . .. . .175
. . . . . ..... . . . . . . . . . . . .

B.1.5 Interfaz de usuario de Rasa X utilizada para pruebas de experiencia de usuario. Esta figura ilustra la
proceso de creación del plan. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175

B.1.6 Interfaz de usuario de Rasa X utilizada para pruebas de experiencia de usuario. Esta figura ilustra la
consulta de ingredientes . . . . . . . . . . . ..... . . . . . . . . . . . . . . . . . 176

B.1.7 Interfaz de usuario de Rasa X utilizada para pruebas de experiencia de usuario. Esta figura ilustra la
proceso de solicitud de información nutricional. . . . . . . . . . . . . . . . . . . . . 176
Machine Translated by Google

xvi LISTA DE FIGURAS


Machine Translated by Google

Lista de tablas

2.1 Valores de referencia del Índice de Masa Corporal según la Organización Mundial de la Salud [47] 12
2.2 Minerales y vitaminas y sus valores diarios de referencia de nutrientes [61] . . . ..... 14

2.3 Valores de ingesta diaria de referencia de macronutrientes [61] . . . . . . . . . . . . . . . . . 14

2.4 Número de recetas creadas para cada horario de comida [23] . . . . . . . . . . . . . . . . . . . 20


2.5 Ejemplo de derivación utilizando el algoritmo de Porter [83] . . . . . . . . . . . . ..... 24

3.1 Comparación de herramientas de voz a texto. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

3.2 Comparación de herramientas de texto a voz. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

3.3 Comparación entre varios marcos disponibles para la creación de chatbots – intención
Gestión de identificación y diálogo. . . . . . 49 . . . . . . . . . . . . . . . . . . . .

4.1 Casos de Uso Delineados a integrar en el chatbot. . . . . . . . . . . . ..... 72

5.1 Descripción de las entidades utilizadas por el agente. . . . . . . . . . . . . . . . . . . . . . 76

5.2 Descripción de las intenciones definidas y el número correspondiente de muestras en el


conjunto de datos. . . . . . . . . . . . . . . . . . . . . . ..... . . . . . . . . . . . . ..... 77

5.3 Características dispersas extraídas para el reconocimiento de entidades mediante CRF. La descripción está en
Tabla 5.4 . . ....... . . . . . . . . . . . . ..... . . . . . . . . . . . . . . . . . 79

5.4 Descripción de las escasas características utilizadas para el reconocimiento de entidades. . . . . . . . . . . . 79

5.5 Tuberías probadas para la clasificación de intenciones. . . . ..... . . . . . . . . . . . . . . . . . 81

5.6 Resultados para la identificación de intenciones utilizando las diferentes configuraciones descritas anteriormente 82

5.7 Tuberías ensayadas para reconocimiento de entidad. . . . . ..... . . . . . . . . . . . . . . . . . 84

5.8 Resultados para el reconocimiento de entidades utilizando las diferentes configuraciones descritas anteriormente. 85

5.9 Tuberías ensayadas para clasificación de intención conjunta y reconocimiento de entidad. . . . . . . . . 85

5.10 Resultados obtenidos para la extracción de entidades conjuntas y la clasificación de intenciones utilizando DIET
clasificador. . . . . . . . . . . . . . . . . . . . . ..... . . . . . . . . . . . . . . . . . 86

5.11 Canalizaciones probadas para clasificación de intención conjunta y reconocimiento de entidades con Lookup
características de la mesa. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87

5.12 Resultados de extracción de entidades y clasificación de intenciones para las configuraciones mediante búsqueda
tablas como una forma de mejorar el rendimiento. . . . . . . . . . . . . . . . . . . . . . . . . 88

5.13 Puntajes de desempeño individuales para las entidades afectadas por la adición de una búsqueda
tabla (comida y nombre_persona). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88

5.14 Resultados de clasificación de intenciones y reconocimiento de entidades para el pipeline final. . . . . . . 91

xvii
Machine Translated by Google

xviii LISTA DE TABLAS

5.15 Correlación de Spearman y Person, error absoluto medio y raíz cuadrática media
Error para el conjunto de datos completo, por analizador de opiniones. . . . . .. .. 96
. . . . . . .

5.16 Medidas de tendencia central por clase, para cada clasificador (tanto limitado como no
tapado). . . . . . . . ....... . . . . . . . . . . . . ....... . . . . . . . . . . 96

5.17 Valores promedio de MAE calculados por clase para ambos modelos antes y después del tope 97
5.18 Detalles sobre los datos de ingredientes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104

5.19 Resultados de precisión para la clasificación de ingredientes según las facetas de LanguaL, utilizando
Varios modelos de incrustaciones preentrenados diferentes. .. 104
....... . . . . . . . . .

5.20 Resultados de precisión para la clasificación de ingredientes según las facetas de LanguaL, utilizando
Tres enfoques diferentes de modernización. . . . . . . . . . . . . . . . . . . . . . . . . . 106

5.21 Resultados de precisión para la clasificación de ingredientes según las facetas de LanguaL, utilizando
. . . .
Enfoque A para modernización con diferentes métodos de ponderación TF­IDF. . 108
5.22 Mapeo intención­respuesta. La identificación de cualquiera de esas intenciones
desencadenará automáticamente la acción respectiva como respuesta del agente conversacional. . 116
5.23 Se probaron los canales de Gestión del Diálogo. Los oleoductos cambian en las Políticas utilizadas
para la predicción de acciones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117

5.24 Diálogo La gestión se acerca a los resultados. . . . . . ....... . . . . . . . . . . 117

6.1 Factores evaluados por el Cuestionario de Experiencia de Usuario. . . . . . . . . . . . . . . 122

6.2 Preguntas del Cuestionario de Usabilidad del Chatbot. . 6.3 . . . . . ....... . . . . . . . . . . 123

Probabilidad de la prueba t de Student por pares. Todos los valores están por debajo de 0,05, lo que significa que el
la diferencia es estadísticamente significativa. . .. 126
. . . . . . . . ....... . . . . . . . . .

6.4 Resultados UEQ para cada factor y comparación con el Benchmark. También se presenta
el promedio calculado promediando el resultado medio de cada voluntario (escala: [­3;3]). 127

6.5 Valores de correlación de Pearson por pares para los distintos cuestionarios . . . . . 130
. . . . . . 131
utilizados. 6.6 Probabilidades t­Student para combinación por pares de cada cuestionario.

A.1 Parámetros SVM para la optimización de la búsqueda en grid. Los valores subrayados son los
usado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ....... . . . . . . . . . . 170

A.2 Parámetros e hiperparámetros utilizados en DIET Classifier. . . . . . . . . . . . . . 170

A.3 Posibles categorías para cada faceta de LanguaL. . . . . . . . . . . . . . . . . . . . . . . 171


Machine Translated by Google

lista de abreviaciones

comer
Inteligencia artificial
API Interfaces de programación de aplicaciones
aplicación
Solicitud
asr Reconocimiento automático de voz
berto Representaciones de codificadores bidireccionales de transformadores
IMC Índice de masa corporal
arco Bolsa de palabras
crf Campos aleatorios condicionales
cbow Bolsa continua de palabras
cuq Cuestionario de usabilidad del chatbot
UE unión Europea
fcdb Base de datos de composición de alimentos
mmm Modelos de mezcla gaussiana
TIC Tecnología de información y comunicaciones
json Notación de objetos JavaScript
lstm Memoria a largo plazo
ncd Las enfermedades no transmisibles
abajo Reconocimiento de entidad nombrada
nhs Sistema Nacional de Salud
PNL Procesamiento natural del lenguaje
No Comprensión del lenguaje natural
posición
Parte del discurso
rdb Base de datos relacional
expresión regular
Expresiones regulares
rnn Redes neuronales recurrentes
seq2seq Secuencia a secuencia
SQL lenguaje de consulta estructurado
ssml Lenguaje de marcado de síntesis de voz
stt Dictado a texto
sus Escala de usabilidad del sistema
svm Máquinas de vectores soporte
Frecuencia de términos tf­idf: frecuencia de documentos inversa
tts Texto a voz
Reino Unido
Reino Unido
a nosotros Estados Unidos
ueq Cuestionario de experiencia de usuario
OMS Organización Mundial de la Salud

xix
Machine Translated by Google
Machine Translated by Google

Capítulo 1

Introducción

La población mundial está envejeciendo rápidamente. Se estima que en 2030 la población de la UE mayor de
65 años alcanzará el 24,1% de la población total de la UE. Se espera que esta cifra aumente al 29,1% en 2060.
En Portugal, como se muestra en la Figura 1.1, se espera que esta cifra aumente del 22,1% en 2020 al 35,3%
en 2060. Otra variable importante que indica que la población está envejeciendo es la tasa de dependencia de
las personas mayores, que es el número de personas mayores (de 65 años o más) en relación con las de 15 a
64 años. Se espera que la tasa de dependencia de las personas mayores en la UE aumente del 31,6 % en 2020
al 51,4 % en 2060. Esto significa que solo habrá dos personas en edad de trabajar, en lugar de de 3,2 por cada
persona mayor en la UE. Dicho esto, los desafíos relacionados con la salud tendrán un enorme impacto en el
mundo. Aumentará la demanda de atención primaria de salud y cuidados de larga duración, así como la mano
de obra necesaria y su formación. Además, será necesaria la creación de entornos favorables a las personas
mayores tanto para mejorar la calidad del envejecimiento como para permitir un envejecimiento activo, aportando
beneficios sociales y económicos a las sociedades que los adopten.

1
Machine Translated by Google

2 Introducción

Figura 1.1: Proyecciones demográficas de la población según Eurostat [1]. En esta figura se representan el
porcentaje de personas mayores (edad ≥ 65) y la tasa de antigua dependencia de los países de la UE y Portugal.

Según el Informe Mundial sobre Envejecimiento y Salud de la Organización Mundial de la Salud (OMS), el
Envejecimiento Saludable es el proceso de desarrollo y mantenimiento de la capacidad funcional que permite el
bienestar en la vejez [2]. La capacidad funcional corresponde a las capacidades relacionadas con la salud que
permiten a las personas vivir la vida que desean. Los atributos intrínsecos del individuo, las características
ambientales y las interacciones entre estos dos factores conforman la capacidad funcional.

Según el mismo informe, la OMS define la nutrición como uno de los comportamientos clave que influyen en
el envejecimiento saludable. Existen varias alteraciones fisiológicas que acompañan al envejecimiento y que
pueden impactar negativamente en el estado nutricional. El deterioro sensorial, como la disminución del sentido
del gusto y del olfato, puede provocar una reducción del apetito [3], [4]. Además, la pérdida de visión, audición y
movilidad, asociada por ejemplo con la osteoartritis, puede afectar la capacidad de las personas mayores para
preparar comidas y comprar alimentos. Además, las condiciones de salud bucal y gastrointestinal también
pueden dictar la dieta de un individuo, lo que a veces conduce a un estado de desnutrición [5]. La dificultad en el
movimiento de masticación, la inflamación de las encías y las dietas monótonas, bajas en calidad y nutrientes
necesarios, son condiciones relacionadas con problemas dentales, mientras que las alteraciones relacionadas
con la secreción de ácido gástrico reducen la absorción de hierro y vitamina B12. Además de estos cambios
fisiológicos, el envejecimiento también se asocia con alteraciones psicosociales y ambientales relacionadas con
el aislamiento, la soledad [6], la depresión [7] y unas finanzas inadecuadas [8], que pueden tener una influencia
importante en las preocupaciones dietéticas. La combinación de estas tendencias aumenta el riesgo de
desnutrición en esta población. Aunque las necesidades energéticas disminuyen con la edad, la necesidad de la
mayoría de los nutrientes sigue siendo casi la misma. Hay algunos factores fisiológicos que indican que un
individuo está desnutrido: reducción de la masa muscular y ósea [9], que aumenta la fragilidad; disminución de la
función cognitiva [10] y reducción de la capacidad de autocuidado, lo que aumenta el riesgo de volverse dependiente de los cuidados [11].

La desnutrición es un estado que resulta de una disfunción en la captación o ingesta de nutrientes.


Machine Translated by Google

Introducción 3

Se puede clasificar en desnutrición, sobrenutrición, deficiencias de nutrientes específicos y desequilibrio provocado


por una ingesta desproporcionada. Este tema se explorará más a fondo en la Sección 2.

Según el Informe de Nutrición Global, se estima que el número de adultos con sobrepeso u obesidad en todo el
mundo es de 2.690 millones [12], lo que corresponde aproximadamente al 34,9% de la población mundial. La OMS
ha declarado que el número total de adultos con bajo peso asciende a 462 millones en todo el mundo [13]. En la
comunidad de personas mayores, esta prevalencia varía mucho entre los diferentes subgrupos de población y estatus
social. En los países europeos, la prevalencia de la desnutrición es inferior al 10% de la población anciana no
institucionalizada [14], que son personas mayores que viven de forma independiente. Sin embargo, en la misma
comunidad, se ha informado que la desnutrición alcanza a más del 50,0% de la población cuando se consideran los
residentes y pacientes de hogares de ancianos, tanto en hospitales de cuidados intensivos como en rehabilitación
geriátrica [15]­[17].

Además de los claros problemas que la desnutrición trae a las personas, también existe una carga económica
para los sistemas de salud. La desnutrición y la desnutrición relacionada con enfermedades (desnutrición) se asocian
con mayores costos en los servicios de atención médica para los pacientes del grupo de edad avanzada que viven en
comunidades o institucionalizados. Según una revisión realizada por Abizanda et al. [18], que analizó diferentes
estudios sobre el impacto económico de la desnutrición y enfermedades relacionadas, el coste de tratar con pacientes
desnutridos es mayor que el coste asociado con pacientes no desnutridos o incluso en riesgo de desnutrición (2000e
más por paciente y año) . Esta diferencia se explica por el mayor uso de recursos sanitarios como consultas médicas,
ingresos hospitalarios y estancia hospitalaria prolongada. Otro estudio informa que los costos asociados con los
pacientes desnutridos fueron más del doble que los de los pacientes bien nutridos en el Reino Unido [19]. En el mismo
país, los costes basados en la prevalencia de tratar a pacientes desnutridos en un contexto hospitalario ascienden
aproximadamente a £3.800 millones, lo que corresponde al 2,4% del presupuesto del Sistema Nacional de Salud
(NHS) para 2019. En el caso de los países de Europa continental , se gasta una cantidad total de 120 mil millones de
euros en pacientes desnutridos (sólo desnutrición) [20]. Además, al comparar a pacientes desnutridos viejos y jóvenes,
los costos de tratar al primer grupo son cuatro veces mayores que los del segundo grupo [18]. La cantidad total
estimada en todo el mundo gastada en todas las formas de malnutrición podría alcanzar hasta 3,5 billones de dólares
al año, y el sobrepeso y la obesidad costarían 500 mil millones de dólares [12]. Por lo tanto, es posible concluir que la
desnutrición y sus enfermedades relacionadas constituyen un problema real, no sólo para la comunidad de personas
mayores, sino también para la sociedad, ya que implica mayores tasas de mortalidad y morbilidad y una alta atención
sanitaria.

gastos.

De hecho, la desnutrición en edades avanzadas a menudo no se diagnostica hasta una etapa tardía. Entonces,
para abordar la desnutrición, existen algunos enfoques de apoyo y prevención. De hecho, existe una estrecha relación
entre la dieta y el riesgo de desarrollar trastornos como diabetes, enfermedades cardiovasculares, cáncer y
enfermedades cognitivas [21]. Por esta razón, se hizo necesario explorar recomendaciones nutricionales correctas y
clínicamente relevantes: Nutrición Humana. Además, es importante que las comunidades de investigación y práctica
nutricional designen los procesos nutricionales centrales involucrados. Bajo este ámbito, la Nutrición Preventiva y la
Nutrición Clínica se convierten en los pilares de la práctica nutricional [21]. El primer concepto estudia la forma en que
los nutrientes y la ingesta de alimentos afectan el riesgo de desarrollar enfermedades relacionadas con la desnutrición,
tanto para los individuos como para las poblaciones. A menudo resulta en políticas y campañas nutricionales de Salud
Pública, de modo que se reducen los niveles de enfermedades relacionadas con la nutrición para la población. Por
otro lado, la Nutrición Clínica aborda los campos
Machine Translated by Google

4 Introducción

de diagnóstico y prevención, así como el manejo de cambios en el sistema nutricional y metabólico.

escena, relacionada con enfermedades y condiciones tanto agudas como crónicas causadas ya sea por exceso o falta

de absorción energética y nutricional. Las acciones nutricionales adoptadas en materia de medición, prevención o

El tratamiento de las personas se incluye en el ámbito de la Nutrición Clínica. Este último se basa en la

interacción entre la ingesta de alimentos y los procesos catabólicos que pueden estar relacionados con enfermedades y

envejecimiento. Esto requiere conocimiento y ciencia sobre las alteraciones metabólicas y bioquímicas del cuerpo.

composición y función en contextos de enfermedad. Consejos dietéticos sobre la preparación de alimentos y

Las opciones son pertinentes para los pacientes, familiares y cuidadores a la hora de prevenir o tratar la desnutrición. De hecho,

según el NHS, la asistencia dietética es la forma recomendada

para evitar la desnutrición. Una dieta equilibrada que incluya alimentos saludables es crucial para obtener la

ingesta calórica y de nutrientes necesaria [22]. El asesoramiento dietético está presente en diferentes

contextos, a saber, Dieta Hospitalaria y Dieta Terapéutica. Ambos exigen conocimiento sobre los requerimientos nutricionales

individuales para poder desarrollar un plan adecuado. Otros factores que también son

En la composición de la dieta se tienen en cuenta los hábitos y patrones alimentarios locales [21], así como los hábitos alimentarios.

preferencias, su precio y disponibilidad [23].

La planificación dietética puede ser abordada por dietistas y nutricionistas. Sin embargo, teniendo en cuenta la información

anterior y el hecho de que la tecnología está ampliamente extendida en el campo de la salud, existe la oportunidad de que

aparezcan sistemas de recomendación de comidas como una forma de

brindar asistencia nutricional. Estos sistemas de información se pueden utilizar para ayudar a las personas en su

decisiones al proporcionar una guía complementaria de nutrición y se analizará en profundidad en el Capítulo 2. Los sistemas de

recomendación para aplicaciones de salud deben considerar desafíos específicos, que pueden

dividirse en dos grupos [24]: algoritmos y desafíos del usuario. El primer desafío se puede cumplir cruzando información con guías

clínicas y asesoramiento sanitario de las instituciones

como la OMS [25] y el NHS [22]. En el caso de necesidades nutricionales más específicas, adecuados

También se pueden consultar directrices, como las específicas para la población de edad avanzada [26]. Acerca de

En este último caso, una fase de recopilación de información es de crucial importancia para ofrecer recomendaciones

personalizadas. El sistema debe recopilar suficiente información sobre las necesidades nutricionales del usuario y

preferencias alimentarias (recopilación inicial de información), así como la composición de sus hábitos

comidas (recogida continua de información), con el fin de dar sugerencias adecuadas. Además, el

Los datos continuos deben adquirirse mediante la cooperación con el usuario, que se ha demostrado que

ser una tarea difícil [24]. El usuario debe informar continuamente las comidas consumidas, así como dar

retroalimentación sobre ellos. La interacción entre el sistema y el usuario es crucial para mantener al usuario

compromiso.

1.1 Motivación

La interfaz persona­computadora es un tema clave en la interacción y efectividad de la Información

y sistemas de Tecnología de las Comunicaciones (TIC). La experiencia del usuario depende en gran medida de la

interfaz utilizada. Un claro ejemplo de dicha interfaz son las interfaces gráficas de usuario presentadas por

aplicaciones móviles. Estos programas han experimentado un crecimiento exponencial en la tasa de uso, debido principalmente

al hecho de que los teléfonos inteligentes están muy extendidos en los países desarrollados. El número de

Los propietarios de teléfonos inteligentes en los Estados Unidos han aumentado del 35% en 2011 al 81% de la población.

en 2019 [27], aunque se estima que el número de propietarios de teléfonos inteligentes en todo el mundo asciende
Machine Translated by Google

1.1 Motivación 5

a 5 mil millones de personas [28]. Por lo tanto, tiene sentido abordar el problema mencionado en la sección
anterior utilizando un enfoque móvil. Actualmente, se han realizado muchos esfuerzos para crear aplicaciones
de salud móviles para uso de los clientes [29]. Un estudio de Research 2 Guidance [30] estimó que había casi
325 mil aplicaciones móviles de salud disponibles para descargar en las principales tiendas de aplicaciones
en 2017. Según una encuesta entre la población adulta de EE. UU., el 69 % de las personas informaron que
realizaban un seguimiento de sus un mínimo de un indicador de salud como peso, rutina de ejercicios, dieta o
incluso síntomas [31] a través de una aplicación móvil. También hay un informe del Pew Research Center que
afirma que, aunque las generaciones mayores tienen tasas de uso de tecnología más bajas en comparación
con las generaciones más jóvenes, la adopción y la inclinación a incorporar la tecnología a la rutina diaria ha
aumentado más que cualquier otra generación [32]. Además, la inteligencia artificial (IA) en el campo de la
salud también ha experimentado un gran crecimiento. Se estima que el tamaño total del mercado de la IA en
el sector sanitario podría alcanzar los 6.600 millones de dólares en 2021 [33], lo que incluye los asistentes
personales inteligentes.

Siguiendo esta línea de pensamiento, la Asociación de Investigación Fraunhofer Portugal, asociación


sin ánimo de lucro que centra sus esfuerzos de investigación en soluciones de envejecimiento activo y
saludable y trabaja en estrecha colaboración con la población mayor, ha desarrollado diferentes sistemas
para abordar esta problemática, mostrando mejoras. en las personas mayores, la planificación de la dieta y la
, de Fraunhofer en este ámbito
nutrición, así como la eficacia de dichos sistemas [34]. Los principales proyectos
son CordonGris1 LIFANA2 y SousChef [23], [34]. Todos ellos son sistemas de recomendación nutricional que
fueron diseñados teniendo como público objetivo a las personas mayores. Volviendo a la interacción entre las
aplicaciones y el usuario, ésta se realiza a través de una interfaz gráfica de usuario en la mayoría de los
casos. Sin embargo, la interacción entre las personas mayores y sus teléfonos inteligentes suele ser limitada
y no lo suficientemente dinámica como para motivar al usuario a seguir usándolo. Aquí es donde entran los
chatbots como una forma disruptiva y más natural de interacción promocional entre el usuario y el sistema.
Los chatbots se crean para simular una conversación natural con un alto grado de personificación, y se
perciben como una forma avanzada de señales sociales en la interacción hombre­máquina [35]. Son agentes
conversacionales que utilizan algoritmos de inteligencia artificial para procesar el lenguaje natural, y esta es
su principal ventaja: la interacción se realiza mediante voz o texto. El estudio de Brandtzaeg y Følstad [36]
analiza las razones subyacentes del uso de chatbots. Los autores emplean la teoría de usos y gratificaciones
(U&G) para explicar la motivación del usuario [37]. Como se ha dicho, esta teoría intenta conocer la causa y
la forma en que las personas utilizan un método determinado para lograr un objetivo específico. Afirma que el
uso de un método específico depende de la gratificación que proporcionará, tanto en términos de expectativas
como de experiencia. El principal supuesto en el que se basa esta teoría es que los usuarios están impulsados
por objetivos al seleccionar la manera de lograrlos. Esta suposición se aplica ampliamente en los medios
digitales y electrónicos. Un estudio similar concluyó que gratificaciones como la necesidad de información,
entretenimiento, autoexpresión e interacción social pueden ser los motivadores detrás de la elección de un
medio digital [38]. Brandtzaeg y Følstad concluyeron que la productividad era la principal causa para utilizar
chatbots, concretamente debido a la facilidad, velocidad y conveniencia asociadas con el uso de chatbots.
Además, destacaron el hecho de que los chatbots brindan asistencia y acceso a la información, con una forma
más natural de ingresar datos al sistema, facilitando el proceso de dar retroalimentación [39].
El proyecto GUIDE [40] concluyó que la interacción basada en el habla era la interfaz preferida por la población
de edad avanzada que no está familiarizada con la tecnología.
1http://cordongris.eu/project/
2https://www.aicos.fraunhofer.pt/en/ourwork/projects/li f ana.html
Machine Translated by Google

6 Introducción

También hay un gran componente social en la adopción de chatbots. Los chatbots ya se han utilizado en
contextos donde ideas preconcebidas podrían obstaculizar los procesos, como la denuncia de acoso sexual.
Idealmente, estos agentes virtuales están entrenados de tal manera que no tengan ideas preconcebidas y, por
lo tanto, no emitan juicios, lo que alivia el sentimiento vergonzoso de la víctima [41]. Es importante que el
sistema interactúe emocionalmente con el usuario ya que, según un estudio de Xu et al., el 40% de las
consultas son emocionales en lugar de buscar información específica [42]. De hecho, la computación afectiva
adquiere gran importancia cuando se trata de generaciones mayores que han vivido casi toda su vida adulta
fuera del contexto tecnológico. Las tres razones principales para considerar este campo en este caso son el
papel que juegan las emociones en la salud física y cognitiva, la falta de comprensión de las metáforas
utilizadas por la tecnología y su intención, y el hecho de que las personas que buscan interacción social tienden
a buscar interacción social. contacto incluso con agentes virtuales [43]. Además, se puede realizar un análisis
de sentimientos para evaluar el estado emocional del usuario. Esto puede resultar muy útil para medir la
motivación del usuario y como característica para predecir el compromiso con el sistema y mejorar la experiencia
del usuario guiando los cambios que puede sufrir el sistema [44]. En este caso específico, el análisis de
sentimientos se puede utilizar para identificar preferencias alimentarias y obtener retroalimentación implícita
sobre las comidas.

Los proyectos realizados en Fraunhofer no implementan ningún tipo de agentes conversacionales, cuya
aplicación ha demostrado ser beneficiosa para la experiencia del usuario [35], [39]. Además de las
oportunidades mencionadas anteriormente, la utilización de chatbots también trae ventajas económicas. Estos
agentes representan una solución fácilmente escalable que reduce en gran medida la necesidad de recursos
humanos [41] y los costos asociados. De este modo, se ha identificado una necesidad que podría abordarse
con el desarrollo de un agente conversacional de dominio específico capaz de identificar los requisitos del
usuario, así como recibir información de retroalimentación para liderar las sugerencias dadas por el sistema de recomendación.

1.2 Metas

El objetivo principal de esta tesis es el desarrollo de un agente conversacional que pueda integrarse con un
sistema de recomendación nutricional utilizando la conversación como medio de interacción.
Al final del trabajo se deben conseguir las bases y una versión utilizable del chatbot.

El chatbot debe poder recopilar la información necesaria del usuario y procesarla correctamente, de modo
que los datos puedan ser utilizados por el motor de recomendación que, en consecuencia, creará las
sugerencias de comidas. Esto requiere la implementación de técnicas de procesamiento del lenguaje natural
para analizar la entrada del usuario en datos estructurados, que comprenden la intención del usuario y los
términos y conceptos importantes que contiene, como la hora de las comidas o los alimentos. Para esta tarea,
se probará y explorará un conjunto de métodos en el Capítulo 5. Además, para completar esta tarea, se recopiló
y anotó un conjunto de datos adecuado.

Además, un modelo de preferencia por alimentos también forma parte de los objetivos de este trabajo.
Con miras a mejorar la interacción y la inmersión del usuario, se requiere que el agente conversacional
comprenda y transforme una entrada cualitativa del usuario que expresa preferencia en una métrica cuantitativa
que pueda ser utilizada por el sistema de recomendación. Teniendo esto en cuenta, el sistema debería poder
extraer esta información de la entrada del usuario utilizando modelos de aprendizaje automático. Esta tarea
se aborda en el Capítulo 5 y emplea una herramienta de análisis de sentimiento para identificar la polaridad del sentimiento.
Machine Translated by Google

1.3 Contribuciones 7

e intensidad.

El modelo de preferencia funciona proporcionando una calificación para cada ingrediente en el sistema de
recomendación correspondiente. Sin embargo, debido a las complejas relaciones semánticas intrínsecas entre los
alimentos, esto plantea un desafío que debe abordarse. Por lo tanto, el desarrollo de un algoritmo de recuperación
mejorado también es un requisito de este trabajo. Ante esto, las ontologías alimentarias son un buen recurso de
información semántica que puede incorporarse al chatbot. La codificación de esta información en el chatbot y el
algoritmo de recuperación renovado se abordarán en el Capítulo 5 y utilizarán incorporaciones como fuente de
conocimiento.

Al ser un chatbot, el sistema debe tener una interacción basada en turnos de conversación secuenciales que
deben seguir una lógica correcta. Dicho esto, este trabajo también requiere de un procedimiento que permita
predecir la respuesta para mantener la conversación. Esta tarea también se abordó en el Capítulo 5 e implicó la
experimentación de varios enfoques, desde modelos más simples basados en reglas hasta modelos de aprendizaje
profundo más complejos. Esto también requirió la recopilación de datos.

Además de las tareas mencionadas, los objetivos de este trabajo también contemplan la evaluación de una
versión final del chatbot. La evaluación debe realizarse según dos perspectivas diferentes.
Una evaluación técnica que comprende métricas de rendimiento y una evaluación del juicio del usuario basada en
la opinión y las pruebas del usuario. Lo primero debe lograrse durante el desarrollo mientras que lo segundo debe
lograrse diseñando una prueba de usabilidad destinada a evaluar las principales mecánicas y casos de uso del
chatbot. Se aborda la evaluación y validación basada en el usuario.

en el Capítulo 6 e incluye el análisis de las respuestas al cuestionario para la evaluación del chatbot después de las
pruebas voluntarias.

En vista de esto, el agente propuesto facilitará la interacción entre el sistema de recomendación y el usuario,
permitiendo una manera más fácil e intuitiva de explorar la amplia gama de funcionalidades presentadas, lo que en
última instancia aumentará la tasa de uso del sistema. Ante esto, se espera que se mejore el estado nutricional del
usuario, resultando en una vida más activa y saludable.

Dicho esto, el sistema final estará compuesto por un agente conversacional que emplea algoritmos de gestión
del diálogo y comprensión del lenguaje natural capaces de crear solicitudes de información estructuradas para
consultar el sistema de recomendación ya implementado y devolver respuestas apropiadas. El sistema servirá
como interfaz de interacción entre el usuario y el sistema de recomendación.

1.3 Contribuciones

Este trabajo proporciona las siguientes contribuciones:

• Análisis completo del sistema de recomendación nutricional Lifana, incluido el plan de alimentación.
estructura y datos de alimentos disponibles que van desde recetas hasta ingredientes

• Una exploración detallada del marco Rasa para la construcción de chatbot, incluido Natural
Tuberías de comprensión lingüística y gestión del diálogo
Machine Translated by Google

8 Introducción

• Un conjunto de incrustaciones de palabras previamente entrenadas basadas en ConceptNet Numberbatch que se


ajustaron para incorporar conocimiento semántico de una ontología de alimentos, obtenido mediante Retrofitting.
Estas incrustaciones codifican las relaciones principales entre ingredientes y pueden usarse para
varias tareas

• Un algoritmo para la recuperación de entradas de bases de datos dada una palabra de consulta, basado en incrustaciones de palabras

semejanza. Este algoritmo es capaz de distinguir entre ingredientes individuales y grupos.


que se relacionan con un ingrediente determinado y fue validado mediante pruebas de usuarios

• Un algoritmo que realiza modelos de preferencias a partir de entradas de texto basadas en análisis de sentimientos.
Extrae el sentimiento de una frase respecto a un ingrediente y lo transforma en
una clasificación numérica basada en la polaridad y la intensidad

• Un conjunto de datos anotado para tareas de comprensión del lenguaje natural, es decir, clasificación de intenciones.
ción y reconocimiento de entidades bajo el alcance de este trabajo

• Un conjunto de datos de turnos conversacionales que permite la formación de una Gestión del Diálogo
modelo

• Un análisis comparativo entre cuestionarios de usabilidad y experiencia de usuario como forma de


evaluar la interacción del chatbot

• Un agente conversacional capaz de realizar la interacción entre un sistema de recomendación.


tem y un usuario y el marco para futuras mejoras

1.4 Estructura del documento

El presente documento está organizado en 6 capítulos adicionales. El capítulo 2 cubre los aspectos teóricos.
conceptos básicos que pueden ser necesarios para comprender completamente el documento. En particular,
explora los conceptos de desnutrición y enfermedades relacionadas, así como el papel de la dieta en los trastornos presentados.
También presenta el sistema de recomendación desarrollado por Fraunhofer, junto con
con sus características y arquitectura, que serán la base del trabajo propuesto, y los conceptos teóricos de Procesamiento del
Lenguaje Natural que permiten la construcción de chatbots.

El Capítulo 3 proporciona un análisis del funcionamiento y posibles formas de desarrollar agentes conversacionales,
incluidas las herramientas disponibles y los métodos de evaluación. Además, el estado del arte
y también se presenta una revisión de la literatura sobre estos temas.

El cuarto capítulo introduce la metodología y planificación del trabajo de tesis. También,


Describe los recursos iniciales disponibles y el marco utilizado, así como los casos de uso que

serán contemplados en el desarrollo del chatbot.

El Capítulo 5 detalla la configuración experimental y la evaluación utilizada para superar los desafíos.
Es decir, menciona la colección de Natural Language Understanding and Dialogue.
Conjuntos de datos de gestión, los pipelines probados y seleccionados y tanto el desarrollo del modelo de preferencia como el
algoritmo de recuperación de alimentos.
Machine Translated by Google

1.4 Estructura del documento 9

El Capítulo 6 describe la evaluación del juicio humano realizada al chatbot final mediante pruebas de usuario. Explora
el protocolo diseñado y los resultados obtenidos en cuanto a experiencia de usuario y usabilidad.

En resumen, el Capítulo 7 presenta las conclusiones extraídas del desarrollo. Analiza los métodos utilizados para
alcanzar los objetivos descritos en la Sección 1.2 y presenta algunas líneas de trabajo futuras que pueden emplearse para
seguir mejorando o para incluir funcionalidades adicionales al agente conversacional, aportando algunas sugerencias.
Machine Translated by Google

10 Introducción
Machine Translated by Google

Capitulo 2

Fondo
Para construir adecuadamente un agente conversacional que pueda cumplir con los requisitos mencionados en la
Sección 1.2, es importante comprender los conceptos subyacentes del dominio, así como el conocimiento científico
y técnico sobre los chatbots y el procesamiento del lenguaje. En este capítulo se presentará una descripción más
profunda de las ideas referidas para permitir una mejor comprensión del siguiente trabajo.

2.1 Desnutrición

La desnutrición es un estado que resulta de la falta de absorción o ingesta de nutrientes, y generalmente conduce
a una composición corporal y masa celular alteradas que normalmente son la causa subyacente de la disminución
de la función física y mental y del deterioro del resultado clínico de la enfermedad [45]. Según la Organización
Mundial de la Salud, existen varios tipos de desnutrición [13]:

• Desnutrición: Existen tres tipos de desnutrición que se define como la falta de


nutrientes.

– Emaciación: El estado caracterizado por un bajo peso para la talla se conoce como emaciación. Las
pérdidas de peso recientes y severas suelen estar relacionadas con la emaciación, principalmente por
no tener suficiente comida para ingerir y/o padecer una enfermedad infecciosa, como diarrea, que
conduce a la pérdida de peso.

– Retraso del crecimiento: este caso corresponde a una talla baja para la edad y generalmente se asocia
con desnutrición crónica o recurrente [46]. Es más común en niños y normalmente se asocia con
entornos socioeconómicos bajos, mala salud y nutrición materna, enfermedades crónicas y recurrentes,
componentes dietéticos incorrectos y atención temprana de mala calidad. Se estima que
aproximadamente 162 millones de niños menores de 5 años padecen retraso del crecimiento [46].

– Bajo peso: se considera que un individuo (a menudo niños) tiene bajo peso cuando tiene un peso para
la edad en comparación con los valores de referencia. El individuo también puede estar emaciado,
atrofiado o ambas cosas.

11
Machine Translated by Google

12 Fondo

• Desnutrición relacionada con micronutrientes: Las deficiencias en la ingesta de micronutrientes (minerales


y vitaminas) conducen a un estado de desnutrición. Estos micronutrientes son esenciales para la
producción interna de enzimas, hormonas y otras sustancias vitales para un correcto crecimiento [13].
Se vuelve importante tener en cuenta estos micronutrientes en la dieta.

• Sobrepeso y Obesidad: Estos estados ocurren en el caso de que un individuo tenga demasiado peso para
su altura. Es una condición grave que tiene varias consecuencias para la salud.
La principal forma de diagnosticar y clasificar el sobrepeso y la obesidad es el Índice de Masa Corporal
(IMC) que relaciona el peso y la altura de un individuo [13]. Más específicamente, corresponde a la relación
entre el peso (kg) de una persona y el cuadrado de su altura (m2 ) como se ve en la Ecuación 2.1. Los
valores de referencia del IMC, según la OMS, se muestran en la Tabla 2.1

2 peso(kg) ) =
IMC (kg/m (2.1)
altura2(m2)

Tabla 2.1: Valores de referencia del Índice de Masa Corporal según la Organización Mundial de la Salud [47]

El equilibrio entre el aporte calórico y la energía desperdiciada durante la actividad física es lo que regula
la retención y acumulación de grasa. El consumo de alimentos y bebidas ricos en grasas y azúcares y la
falta de ejercicio físico se afirman como factores clave que conducen al aumento global de la obesidad y
el sobrepeso en las personas.

• Enfermedades no transmisibles relacionadas con la dieta: Otro grupo de enfermedades que resultan de una
ingesta y asimilación desequilibrada o insuficiente de nutrientes y micronutrientes son las enfermedades
no transmisibles relacionadas con la dieta (ENT) [13]. Enfermedades como cánceres específicos, diabetes,
Machine Translated by Google

2.1 Desnutrición 13

y las enfermedades cardiovasculares tienen como factores agravantes y subyacentes una mala alimentación
y hábitos nutricionales poco saludables [48]. De hecho, las ENT son la causa de muerte de 41 millones de
personas al año, lo que corresponde al 71% de todas las muertes a nivel mundial [49]. Más precisamente,
17,9 millones de muertes se deben a enfermedades cardiovasculares, seguidas por el cáncer que causa 9,0
millones de muertes/año y la diabetes (1,6 millones) [50].

2.1.1 Desnutrición y Dieta

Se ha demostrado que la dieta desempeña un papel importante en la probabilidad de desarrollar desnutrición [51].
La industria alimentaria mundial ha estado centrando sus esfuerzos en reducir costos y aumentar la eficiencia para
reducir el hambre global. Teniendo esto en cuenta, creció la producción de alimentos y bebidas altamente
energéticos y con ello, las dietas locales han sido desplazadas y alteradas, disminuyendo en diversidad y calidad
[52], [53]. De hecho, el acceso a alimentos saludables, ricos en micronutrientes y minerales, no ha mejorado por
igual para todos, mientras que los alimentos no saludables se han vuelto más baratos, accesibles y extendidos [54].
Además, la demanda mundial de carne, productos lácteos y alimentos procesados ha aumentado enormemente
[54]. Las elecciones dietéticas están influenciadas por varios factores como la cultura, las habilidades, la economía
y la política, así como la disponibilidad de tiempo y la información [52].

Según los datos disponibles en el Instituto de Medición y Evaluación de la Salud de la Universidad de


Washington [55], las dietas bajas en cereales integrales, frutas, verduras, frutos secos y semillas, y altas en sodio
son las que más contribuyen a la la carga de enfermedades relacionadas con la dieta.

2.1.2 Dieta saludable

La idea de una dieta universal que se adapte a toda la población es poco realista, ya que depende en gran medida
de las características de cada individuo, como el género, la edad, el estilo de vida y el nivel de actividad física, así
como del contexto político y cultural y la disponibilidad de alimentos. . Sin embargo, los fundamentos de una dieta
saludable siguen siendo los mismos y deben tenerse en cuenta al abordar un plan de alimentación [56]. Según la
información de la OMS [56], una dieta saludable para un adulto incluye:

• Frutas, verduras, legumbres, frutos secos y cereales integrales;

• Un mínimo de 400 g de frutas y verduras al día [57];

• Un máximo del 10% del aporte energético procedente del consumo de azúcar libre1. Sin embargo, la cantidad
ideal es el 5% [58]. La ingesta calórica diaria máxima debe rondar las 2000 calorías.

• Un máximo del 30% del aporte energético proviene de grasas. No sólo eso, sino que el consumo de grasas
insaturadas es preferible en comparación con las grasas saturadas y las grasas trans. Además, el valor
recomendado de obtención de energía a través de grasas saturadas es del 10% y a través de grasas trans
es inferior al 1% [59].

• Un máximo de 5 g de sal que debe ser yodada [60].

1Los azúcares libres son todos los azúcares añadidos a los alimentos o bebidas por el fabricante, el cocinero o el consumidor, así como los azúcares
presente de forma natural en miel, jarabes, zumos de frutas y concentrados de zumos de frutas.
Machine Translated by Google

14 Fondo

Otro indicador importante para una dieta saludable es la dosis diaria recomendada de micro
y macronutrientes [61] observados en las Tablas 2.2 y 2.3. Una dieta planificada debe cumplir con estos
requisitos.

Tabla 2.2: Minerales y vitaminas y sus valores diarios de referencia de nutrientes [61]

Vitamina A (μg) 800 Cloruro (mg) 800


Vitamina D (μg) 5 Calcio (mg) 800
Vitamina E (mg) 12 Fósforo (mg) 700
Vitamina K (μg) 75 Magnesio (mg) 375
Vitamina C (mg) 80 Hierro (mg) 14
Tiamina (mg) 1,1 Zinc (mg) 10
Riboflavina (mg) 1,4 Cobre (mg) 1
Niacina (mg) 16 Manganeso (mg) 2
Vitamina B6 (mg) 1,4 Fluoruro (mg) 3.5
Ácido fólico (μg) 200 Selenio (μg) 55
Vitamina B12 (μg) 2,5 Cromo (μg) 40
Biotina (μg) 50 Molibdeno (μg) 50
Pantoténico (mg) Yodo (μg) 150
Potasio (mg) 6 2000

Tabla 2.3: Valores de ingesta diaria de referencia para macronutrientes [61]

Nutriente o energía Valor de referencia diario


Energía 8400 kJ/ 2000 kcal
Grasa total 70 gramos

Satura 20 gramos

Carbohidrato 260 gramos

Azúcares 90 gramos

Proteína 50 gramos

Sal 6 gramos

Una dieta saludable sigue las recomendaciones antes mencionadas y, por tanto, debe conservarse. Para
ello, la OMS también sugiere algunas buenas prácticas a seguir, divididas por
categorías.

• Frutas y vegetales:

La ingesta de la cantidad recomendada de frutas y verduras es muy importante ya que


constituye la única fuente de fibra en la dieta, fundamental para una adecuada función gastrointestinal, así
como una buena fuente de micronutrientes como vitaminas y minerales.
La OMS recomienda la inclusión de verduras en cada comida, el consumo de frutas
como snacks, consumo de frutas y verduras de temporada (apoyando la nutrición sostenible)
y variar la ingesta de frutas y verduras [56].

• Grasas:

El aumento del consumo de grasas está directamente relacionado con un aumento de peso no saludable y también con
enfermedades cardiovasculares. En este caso, las recomendaciones de la OMS son la reducción de los niveles saturados.

y las grasas trans y su sustitución por grasas poliinsaturadas como las de soja, colza, girasol o maíz. Esto
se puede lograr dando preferencia a métodos de cocción como
Machine Translated by Google

2.2 Sistema de recomendación de nutrición de Lifana 15

cocinar al vapor o hervir en lugar de freír; sustituir la mantequilla en la dieta por las grasas poliinsaturadas
mencionadas anteriormente; reducir el consumo de grasas lácteas y aumentar la ingesta de carne magra y
limitar la ingesta de alimentos horneados y fritos y snacks envasados, ya que contienen una gran cantidad
de grasas trans [56].

• Sal, Sodio y Potasio:

Hay un consumo excesivo de sal. A nivel mundial, esto se traduce en altas cantidades de sodio en las
dietas. Sin embargo, el potasio, un elemento esencial en la función celular, a menudo no se consume lo
suficiente. Este desequilibrio suele provocar presión arterial alta y un mayor riesgo de sufrir enfermedades
cardíacas y accidentes cerebrovasculares. Si se tuviera en cuenta la cantidad recomendada de sal,

ción (5g), se podrían prevenir un total de 1,7 millones de muertes anualmente. El consumo de sal se puede
reducir limitando la adición de sal al preparar las comidas, limitando la cantidad de salsas y refrigerios con
alto contenido de sal y también una mejor selección de alimentos bajos en sodio. Además, el consumo de
potasio puede ayudar a disminuir los efectos nocivos del sodio y se puede obtener de frutas y verduras [56].

• Azúcar:

El exceso de consumo de azúcar presenta consecuencias negativas para la salud. A saber, caries dental
(caries dental), aumento de peso no saludable, presión arterial alta, desequilibrio de los lípidos séricos y
diabetes. Las recomendaciones de la OMS respecto a la reducción del azúcar son la limitación de alimentos
y bebidas con azúcar añadido y el aumento del consumo de frutas y verduras para sustituir los snacks
azucarados [56].

2.2 Sistema de recomendación de nutrición de Lifana

Como se indica en la Sección 1.1, Fraunhofer Portugal ha desarrollado un sistema de recomendación nutricional
para ayudar a planificar las comidas semanales principalmente entre la población de edad avanzada [23], [34]. El
sistema es capaz de definir un plan de alimentación semanal según las preferencias del usuario y utilizando
algunas heurísticas y restricciones que se explicarán más adelante. Actualmente, el sistema está compuesto por
un servidor central en la nube y una aplicación móvil que sirve como interfaz para la interacción del usuario. En
esta sección, se proporcionarán los detalles del sistema de recomendación para comprender los requisitos del
sistema de interacción.

2.2.1 Componente del servidor en la nube

El componente clave del sistema de recomendación es el servidor en la nube que es responsable tanto del proceso
de manejo de datos como de la generación de recomendaciones [34]. La primera tarea comprende el proceso de
almacenamiento y recuperación de datos, haciéndolos accesibles mediante interfaces de programación de
aplicaciones (API) de servicios web. La información de fuentes externas también se puede integrar en la unidad de
almacenamiento de información. Un ejemplo que se da en el informe del sistema es la recopilación y almacenamiento
de información de actividad física, recopilada a través de un dispositivo Fitbit2, desde los servicios en la nube de
Fitbit. Los datos referidos son importantes para crear recomendaciones más adecuadas, es decir, los datos personales.
2http://www.fitbit.com/eu/home
Machine Translated by Google

dieciséis
Fondo

información demográfica, los datos de actividad y la información nutricional de las bases de datos consideradas
(exploradas en la Sección 2.2.2). En cuanto a la tarea de generación de recomendaciones, la mayor capacidad
computacional del servidor en la nube es una ventaja frente a la potencia de procesamiento de los dispositivos
móviles, lo que convierte al servidor en una mejor opción. De esta manera, las API pueden inducir las
recomendaciones en los dispositivos móviles.

2.2.1.1 Motor de recomendación

El motor de recomendación implementado en Lifana es un sistema de recomendación basado en contenido y utiliza


técnicas de recuperación de información. De hecho, los sistemas de recomendación se pueden implementar de
tres formas posibles.

• Basado en contenido: Estos modelos relacionan la información proporcionada por el usuario individual con la
información del contenido para producir las recomendaciones [62]. Estos sistemas ignoran las
recomendaciones proporcionadas a otros usuarios así como sus preferencias. La mayoría de las veces,
estos modelos rastrean los patrones de los usuarios [63] para predecir los próximos pasos y también solicitan
comentarios de los usuarios para poder crear un modelo de recomendación de referencia.
Recomendaría artículos que sean similares a los que prefiere el usuario. Estos modelos adolecen de varios
problemas, a saber, el contenido limitado analizado por un nuevo usuario (problema de arranque en frío), la
sobreespecialización que lleva a la recomendación recurrente del mismo contenido y la escasez de datos
[64];

• Filtrado colaborativo: como su nombre lo indica, estos modelos se basan en similitudes de preferencias entre
usuarios [62]. Los comentarios de otros usuarios se tienen en cuenta para generar recomendaciones al
usuario final. De esta forma, el sistema crea perfiles de usuario en función de sus gustos y los utiliza para
relacionarlos con otros usuarios, compartiendo las recomendaciones entre ellos [65]. Los métodos de filtrado
colaborativo están limitados por el arranque en frío, en el que no hay suficientes valoraciones de los usuarios
para igualar las similitudes entre ellos, la escasez de datos y los problemas de escalabilidad [62].

• Enfoques híbridos: Modelos que aplican ambas técnicas para lograr una mayor calidad.
recomendaciones y contrarrestar las responsabilidades de los otros dos modelos [62].

Lifana funciona realizando tres pasos secuenciales principales [23], representados en la Figura 2.1.

1. Estimación de los requerimientos nutricionales del usuario utilizando las pautas proporcionadas por la OMS,
el número adecuado de comidas por día y la información personal del usuario a la que se hace referencia en
la introducción de la Sección 2.2.1.

2. Selección de los alimentos que van a formar parte de cada comida según las preferencias y necesidades del
usuario y también teniendo en cuenta el historial de comidas sugeridas previamente (para aumentar la
variación dietética). Se consulta la base de datos disponible de posibles recetas para definir las recetas
candidatas para esa semana. Luego se realiza un proceso de filtrado en dos pasos para seleccionar el plan
final. (1) Los candidatos se filtran según las restricciones impuestas, como limitar las recetas repetidas en la
misma semana, eliminar opciones que incluyan comida reconfortante e ingredientes que provoquen
reacciones alérgicas en el usuario o
Machine Translated by Google

2.2 Sistema de recomendación de nutrición de Lifana 17

combinaciones que no son nutricionalmente relevantes. (2) La segunda fase selecciona las opciones más adecuadas

entre los candidatos restantes. En esta fase se calcula una puntuación utilizando los diferentes criterios heurísticos que se

definen. El plan recibe una puntuación para cada criterio y luego se considera la puntuación final para tomar la decisión.
Las heurísticas fueron definidas

por un nutricionista y consistir en criterios que favorezcan la experiencia del usuario o faciliten el proceso de preparación

de las comidas. Por ejemplo, se prefieren los planes que tienen la misma sopa en cuatro comidas consecutivas ya que la

preparación es más fácil. Además, se prefieren los planes que incluyen platos de carne para el almuerzo y platos de

pescado para la cena. Esta fase también considera las preferencias del usuario en cuanto a ingredientes o comidas.

3. Escalado de comidas para adecuarse a los requerimientos energéticos requeridos. Esta etapa utiliza la información calórica

y nutricional de los ingredientes para escalar la receta. El escalado se produce sólo en un grupo designado de ingredientes.

El sistema realiza un escalado ponderado, dando preferencia a los ingredientes que tienen mayor valor energético, para

que el tamaño de la comida no cambie excesivamente.

Figura 2.1: Etapas secuenciales del sistema de recomendación Lifana [23]

Todos estos pasos fueron diseñados con la asistencia de un nutricionista.

2.2.1.2 Aplicación móvil

La interfaz entre el sistema de recomendación y el usuario es una aplicación móvil (app) que se divide en tres partes: plan de

alimentación, lista de compras y monitor de actividad. La aplicación también cuenta con un perfil que agrupa información

relacionada con el usuario. La interfaz del perfil se puede ver en la Figura 2.2.
Machine Translated by Google

18 Fondo

Figura 2.2: Izquierda: pantalla principal de Lifana; Centro: Perfil de usuario; Derecha: restricciones alimentarias

• Plan de comidas La parte central de todo el sistema que tiene dos tareas: generar y exponer el plan de comidas
recomendado y también realizar un seguimiento de todo lo que come el usuario. Para cubrir completamente los
hábitos alimentarios y el estado nutricional del usuario, se implementó un diario de alimentación manual donde el
usuario puede ingresar el contenido de cada comida que consume. Además, se puede consultar información
detallada sobre las recetas o ingredientes, más concretamente su información nutricional y contenido energético.
Además, en esta parte de la aplicación se pueden dar comentarios sobre los ingredientes y las comidas.

Figura 2.3: Pantallas de aplicaciones para plan de alimentación, información de recetas y contenido nutricional

• Lista de compras

Esta parte de la aplicación tiene el objetivo de guiar y ayudar en el proceso de compra del usuario.
Planificar la lista de la compra puede ser una tarea muy útil a la hora de decidir y determinar el plan de alimentación
para toda una semana. De esta manera, el usuario puede asegurarse de que todos los ingredientes necesarios
Machine Translated by Google

2.2 Sistema de recomendación de nutrición de Lifana 19

y componentes están disponibles. La lista de compras está conectada al plan de la semana y puede agregar

automáticamente todos los ingredientes necesarios de una receta a la lista. Además, es posible añadir ingredientes

individuales mediante una búsqueda en la base de datos.

• Monitor de actividad

La integración con dispositivos de medición de actividad permite que el sistema calcule y muestre al usuario algunas

métricas que son relevantes para un estilo de vida más saludable. Asimismo, la actividad física es uno de los factores que

se tienen en cuenta a la hora de calcular las necesidades del usuario. Por lo tanto, la aplicación se conecta a un dispositivo

de seguimiento de actividad como el mencionado Fitbit y recopila datos del mismo. Estos datos también se pueden insertar

manualmente en la aplicación.

Todas las interacciones entre la aplicación y el usuario, como buscar recetas o ingredientes, proporcionar comentarios,

ingresar datos de actividad física o incluso hacer preguntas sobre las recetas, se pueden cambiar a un enfoque más inmersivo y

natural mediante el uso de un agente conversacional. , que es el foco del trabajo reportado en esta disertación.

2.2.2 Descripción de las bases de conocimiento

El sistema de recomendación ya implementado, explicado en detalle en la Sección 2.2.1.1 , se basa en una base de datos que se

creó en la base de datos nacional de composición de alimentos (FCDB) proporcionada por PortFIR3 y con licencia para EuroFIR4 .

Esta base de datos se basa en información de una ontología de alimentos, lo que permite extraer conocimiento completo de los

alimentos y su composición. La ontología referida es LanguaL5 , que es un sistema de tesauro multilingüe que emplea un método

de clasificación por facetas. Cada alimento se describe mediante un conjunto de términos estándar y controlados elegidos entre

facetas características de la calidad nutricional y/o higiénica de un alimento, como el origen biológico, los métodos de cocción y

conservación y los tratamientos tecnológicos. Utiliza una codificación numérica en la que cada código representa un término

similar en cada idioma, lo que lo hace independiente del idioma.

Las recetas que utiliza el sistema Lifana se crearon a partir de esta información mezclando ingredientes y cantidades.

Además, en las recetas también se tiene en cuenta la composición nutricional y el tipo de ingrediente, así como el horario de la

comida. Sin embargo, cabe señalar que estas recetas no contienen ni el método de cocción ni las instrucciones de preparación.

En la Figura 2.4 es posible observar un ejemplo de una receta almacenada en la base de datos, mientras que en la Tabla 2.4 se

muestran los números de recetas generadas.

3http://portfir.insa.pt/
4https://www.eurofir.org/
5https://www.langual.org/Default.asp
Machine Translated by Google

20 Fondo

Figura 2.4: Ejemplo de base de datos de alimentos utilizada por el sistema Lifana

Tabla 2.4: Número de recetas creadas para cada horario de comida [23]

Dicho esto, la comprensión completa de la estructura tanto de la base de datos como de la ontología
de alimentos es una tarea fundamental para la correcta comunicación entre el sistema de recomendación
y la base de datos, así como para la construcción del agente conversacional. El agente debe crear
consultas que puedan ser entendidas por el sistema y que permitan recuperar la información requerida.
Machine Translated by Google

2.3 Procesamiento del lenguaje natural 21

2.3 Procesamiento del lenguaje natural

El procesamiento del lenguaje natural (PNL) es el campo que estudia los algoritmos computacionales que toman el
lenguaje humano como entrada y lo transforman en datos estructurados. Comprende varios mecanismos, desde los
fundamentales, como atribuir partes del discurso a las palabras, hasta tareas más complejas como la respuesta a
preguntas y la traducción automática. Estas tareas a menudo requieren minería de datos en textos (minería de textos) que
se utiliza para extraer información de muestras de texto y utilizarla en otras aplicaciones [66].

Una de las principales diferencias entre el lenguaje informático y el lenguaje humano es la ambigüedad presente
en este último. La ambigüedad corresponde al hecho de tener diferentes interpretaciones para un mismo input y esto es
patente en todos los lenguajes humanos y sus diferentes niveles [66]. Esta propiedad permite un enorme grado de
variabilidad en los datos, a lo largo de los niveles de semántica y sintáctica [67]. Además, el fenómeno de la sinonimia
permite el uso de diferentes palabras con aproximadamente el mismo significado, aumentando la variabilidad semántica
[68]. Además, la variabilidad sintáctica se puede observar en frases que tienen el mismo significado pero se construyen
de diferentes maneras, como en la voz pasiva y activa o en el caso posesivo [69]. Estos son los principales retos que la
PNL debe superar para producir modelos lingüísticos correctos y capaces de interactuar con los humanos a través de su
lenguaje.

2.3.1 Enfoques para el procesamiento del lenguaje natural

Hay dos enfoques principales de PNL: basado en reglas o basado en conocimiento y basado en estadístico o aprendizaje
automático [66]. Estos enfoques no son excluyentes ya que existen modelos que emplean algoritmos de ambos. No hay
evidencia actual de que un modelo funcione mejor que el otro cuando se consideran dominios específicos, aunque en
general los métodos estadísticos son superiores en términos de resultados y escalabilidad.

2.3.1.1 PNL basada en el conocimiento

Esta primera forma de abordar la PNL hace uso de fuentes de información sobre el dominio. En este caso se pueden
utilizar dos tipos de información: conocimiento sobre el lenguaje utilizado y cómo se presenta habitualmente la información,
y conocimiento del mundo real sobre el dominio. Los primeros son modelos basados en reglas, ya que emplean reglas
como patrones lingüísticos. El otro tipo de sistema se beneficia de casos específicos del dominio [70]. Por ejemplo, en
este trabajo, sería útil que el sistema supiera que el huevo es un ingrediente y que hervir es un método de cocción.

Estos modelos funcionan en la práctica debido a que las reglas que aplican y la información que las sustenta son
formal, empírica y lógicamente reales. Además, estos modelos no necesitan pasar por una fase de entrenamiento en
grandes conjuntos de datos. Sin embargo, elaborar manualmente las reglas que las definen suele consumir una buena
cantidad de tiempo y recursos. Además, los sistemas basados puramente en el conocimiento pueden volverse rígidos y
menos robustos cuando se enfrentan a tareas más complejas como la respuesta a preguntas [71].
Machine Translated by Google

22 Fondo

2.3.1.2 PNL basada en estadística o aprendizaje automático

Por otro lado, los modelos de PNL estadísticos o basados en el aprendizaje automático se basan en algoritmos
informáticos que aprovechan ejemplos etiquetados o conocidos o características extraídas de datos no etiquetados
para aprender a clasificar y proceder con los no vistos. Para este propósito, el modelo debe entrenarse en un
conjunto de datos de ejemplos de tamaño considerable sin la necesidad de conocimientos específicos del
dominio [72]. El supuesto esencial en el que se basan estos modelos es que la frecuencia de los fenómenos de
interés es suficiente para construir una representación estadística sólida [66].

Para tener una buena representación estadística de los datos, se requiere una gran cantidad de datos
etiquetados, lo que puede ser difícil de obtener [73]. Normalmente, el etiquetado de datos es un proceso costoso
y difícil, no sólo porque los datos lingüísticos son muy escasos, sino también porque algunos dominios requieren
experiencia específica [74]. Los modelos de aprendizaje automático también pueden sufrir sobreajuste, lo que
ocurre cuando el modelo se ajusta excesivamente a los datos de entrenamiento, volviéndose incapaz de procesar
correctamente la nueva información.

2.3.2 Tareas de procesamiento del lenguaje natural

Con miras a extraer información relevante de muestras de texto, se debe seguir una serie de tareas de extracción
y procesamiento de datos. De esta manera, las computadoras pueden utilizar el lenguaje humano y producir los
resultados requeridos. Las siguientes subsecciones exploran los pasos principales utilizados en PNL para la
preparación de datos y la extracción de características.

2.3.2.1 Segmentación de documentos y oraciones

El primer paso al analizar datos de texto es dividir el documento en diferentes secciones, según la estructura
lógica. A este paso le sigue la segmentación de la sección en bloques elementales que tratan el mismo tema [75].
Éstas son la unidad de análisis estándar en los sistemas de PNL y muy a menudo corresponden a oraciones.
Este proceso se produce utilizando un modelo que examina señales sintácticas como signos de puntuación y
letras mayúsculas [76]. Además, existen algunos sistemas que aplican medidas de similitud para agrupar algunos
de estos bloques [75].

2.3.2.2 Tokenización

Luego, los bloques elementales se segmentan nuevamente en tokens, que son el elemento más pequeño de los
datos de entrada. En este caso, los tokens pueden ser palabras, números, signos de puntuación o incluso grupos
de palabras que no deben dividirse como nombres de ciudades (por ejemplo, San Francisco o Nueva York) [76].
Por lo tanto, el proceso de tokenización debe tener en cuenta las dependencias de palabras relacionadas y el
conocimiento de dominio específico, así como el manejo de especificidades lingüísticas morfosintácticamente
relevantes. Naturalmente, la tokenización requiere un modelo entrenado o un modelo basado en reglas, para lo
cual son necesarios conocimientos específicos del dominio y reglas gramaticales [77]. Además, los algoritmos de
tokenización dependen del idioma. Los diferentes modismos tienen reglas gramaticales distintas, incluidas
particularidades ortográficas y léxicas, y la tokenización puede no ser tan tácita como en el idioma inglés. Un
claro ejemplo de ello son las lenguas orientales que no tienen palabra explícita
Machine Translated by Google

2.3 Procesamiento del lenguaje natural 23

límites [78]. También es importante mencionar que podría resultar ventajoso eliminar palabras vacías como "el" y "a", que

proporcionan poca o ninguna información. Luego de obtener los tokens es posible etiquetarlos con una entidad nombrada,

permitiendo el reconocimiento de las diferentes clases semánticas presentes en la oración. Esta operación se llama

Reconocimiento de entidades nombradas (NER) y es uno de los procedimientos clave en las tareas de recuperación de

información y minería de textos [79] (ver ejemplo en la Figura 2.5). En el marco de este trabajo, NER permitiría identificar los

distintos componentes de una receta, como los ingredientes o el momento de la comida.

Figura 2.5: Ejemplo de reconocimiento de entidades nombradas obtenido utilizando el kit de herramientas StanfordNLP [80]

2.3.2.3 Etiquetado de partes del discurso

El siguiente paso en el proceso de PNL es el etiquetado de parte del discurso (etiquetado PoS), en el que se asigna un PoS a

cada token. Una etiqueta PoS resulta del análisis léxico de un elemento de una oración. Este proceso se considera un problema

de etiquetado secuencial [78]. Los resultados obtenidos del etiquetado PoS pueden volverse muy importantes en la extracción

de información para el contexto específico [66]. Por ejemplo, en una receta de huevos duros, el sistema debería reconocer la

palabra "hervir" como un verbo que se refiere al sustantivo "huevo". En este caso, los verbos tienen una alta probabilidad de

estar relacionados con métodos de cocción, mientras que los sustantivos están relacionados mayoritariamente con ingredientes.

En la Figura 2.6 se puede observar un ejemplo de una oración etiquetada.

Figura 2.6: Proyecto Penn Treebank [81] etiquetado de partes del discurso [80]

2.3.2.4 Normalización de palabras

Después del proceso de tokenización, podría ser necesario normalizar los datos para que puedan procesarse fácilmente. Se

puede utilizar derivación para el propósito mencionado. El objetivo de este mecanismo es agrupar palabras similares según su

significado (buscar la raíz de cada palabra). Por ejemplo, "revolver", "revolver", "revolver" y "revolver" tienen un origen semántico

similar. El método de derivación más conocido es el algoritmo de Porter. Este lematizador contiene 60 sufijos, una regla

contextual que guió la eliminación de los sufijos y 2 reglas para la recodificación de palabras [82]. Después del lematizador de

Porter, todas las palabras del ejemplo dado se transformarían en "revolver". Se pueden ver más ejemplos en la Tabla 2.5 .
Machine Translated by Google

24 Fondo

Tabla 2.5: Ejemplo de derivación utilizando el algoritmo de Porter [83]

La normalización de palabras también se puede realizar transformando las palabras a su "forma de


diccionario" o lema [84], en lugar de eliminar el sufijo. Los primeros enfoques de lematización utilizaron
tablas de búsqueda para sustitución [85], que funcionaron muy bien para formas de palabras complejas
como las formas "peor" y "peor" de la palabra "malo". Más recientemente, se han adoptado enfoques que
utilizan tablas de búsqueda y sistemas basados en reglas basados en la combinación de funciones hechas
a mano y aprendizaje automático [86]. Este proceso muchas veces requiere la etiqueta de parte del discurso
para producir mejores resultados, ya que la transformación que se va a aplicar a cada palabra puede
cambiar de acuerdo con la función morfológica [87]. Además, se pueden desarrollar lematizadores para un
dominio específico, aumentando la calidad de los resultados producidos, como el trabajo presentado en [86].

2.3.2.5 Análisis

La información sintáctica se extrae mediante el proceso de análisis. El resultado de este proceso es un


árbol estructurado que representa la relación gramatical entre los diversos componentes de la oración [78].
Según la integridad de la tarea, es posible distinguir el análisis superficial del análisis completo. El primer
método intenta identificar grupos de palabras que suelen ir juntas. Para hacerlo, el algoritmo se centra en
una palabra "principal" de una parte del discurso determinada a partir de la cual puede crear la estructura.
Por otro lado, el análisis completo intenta determinar la estructura completa de una oración sumando las
relaciones entre los grupos previamente identificados [66]. Además, los analizadores completos se pueden
dividir en dos clases: analizadores de circunscripción y analizadores de dependencia. Mientras que el
primer grupo se centra en la dominancia, la precedencia y las relaciones entre frases en la oración, los
analizadores de dependencia disciernen y clasifican las relaciones palabra a palabra (ver Figura 2.7. En el
último caso, las etiquetas producidas son, por ejemplo, sujeto u objeto). y por lo tanto los analizadores de
dependencia se consideran un enfoque más directo a la semántica de una oración [66].
Machine Translated by Google

2.3 Procesamiento del lenguaje natural 25

Figura 2.7: Ejemplo de análisis de dependencias. La estructura de árbol representa las dependencias gramaticales entre
los símbolos de la oración: Bell, con sede en Los Ángeles, fabrica y distribuye productos electrónicos, informáticos y de
construcción [88]

2.3.3 Procesamiento del lenguaje natural basado en incrustaciones

En el apartado anterior se han descrito las técnicas utilizadas para extraer rasgos textuales del corpus. Sin embargo, más
recientemente han aparecido enfoques basados en representaciones vectorizadas de palabras. Estos métodos intentan
mapear matemáticamente cada palabra (o frase) en un espacio vectorial, que también considera las relaciones con otras
palabras [84]. Este vector es una forma aproximada de representar el significado de la palabra y se supone que mantiene la
relación relativa entre las palabras. Estas representaciones podrían generarse a partir de datos de texto anotados con
relaciones semánticas y sintácticas. Sin embargo, este tipo de datos es muy difícil de obtener (requiere una fuerza laboral
muy especializada, como lingüistas), lo que hace prácticamente imposible generar un conjunto de datos lo suficientemente
grande. A la luz de esta limitación, los métodos no supervisados aparecieron como la principal forma de generar vectores
de palabras. Hay dos formas principales de obtener incrustaciones que se explorarán en las siguientes secciones.

2.3.3.1 Incrustaciones de palabras estáticas

Estos modelos se basan en la premisa de que las palabras que coexisten deben tener una semántica similar.
De esta manera, es capaz de capturar las relaciones contextuales de las palabras que aparecen cerca unas de otras en las
oraciones. Los vectores de palabras se crean de manera que las palabras que comparten contextos en el texto

están posicionados uno cerca del otro en el espacio vectorial.

Un algoritmo bien conocido utilizado en este proceso es Word2vec. Este modelo utiliza una red neuronal para procesar
un modelo vectorial basado en documentos para generar un modelo vectorial basado en palabras [89]. Este modelo
específico consiste en una red neuronal con dos capas poco profundas y se puede entrenar usando
Machine Translated by Google

26 Fondo

dos métodos diferentes: Bolsa de palabras continua (CBOW) o Salto de gramo continuo. En el primer
enfoque (CBOW), el modelo intenta predecir la palabra actual utilizando una ventana de palabras que
componen el contexto. En este caso no se tiene en cuenta el orden de las palabras en la ventana.
Por otro lado, el segundo enfoque (Skip­Gram) funciona prediciendo la ventana de contexto circundante
utilizando la palabra actual. Se considera que el Skip­Gram produce mejores resultados, aunque sea más
lento.

Es posible encontrar léxicos previamente entrenados creados mediante la aplicación de Word2vec en


grandes corpus (como el conjunto de datos de Google News). Estos léxicos tienen la ventaja de no requerir
sesiones de formación y son lo suficientemente genéricos como para captar el significado de las palabras.
Sin embargo, esto puede verse como una de sus mayores desventajas, que es el hecho de que no fueron
entrenados específicamente para un dominio o contexto determinado y pueden no representar
suficientemente bien la semántica de ese dominio/contexto. Las palabras de un dominio específico se
pueden agrupar de forma diferente a los textos donde se entrenó el modelo. Para combatir este problema,
es posible utilizar esta técnica para crear representaciones de palabras para corpus específicos, pero es
importante tener una gran colección de datos para lograr buenos resultados. Otro inconveniente de estos
métodos es el hecho de que las incrustaciones son estáticas independientemente del contexto. Esto
significa que, independientemente del contexto de una frase, cada palabra tendrá la misma representación;
el contexto no se tiene en cuenta después del entrenamiento. Por ejemplo, en las frases: "Me encanta la
tarta de manzana" y "Quiero comprar un portátil Apple", el vector de la palabra manzana tendrá los mismos
valores aunque posean significados totalmente distintos.

2.3.3.2 Modelos de lenguaje previamente entrenados

Más recientemente, en 2018, algunos investigadores produjeron modelos que utilizan un enfoque diferente
para abordar la falta de contexto en las incrustaciones. Estos modelos se denominan modelos de lenguaje
y emplean un mecanismo de autoatención para cambiar las incrustaciones de cada palabra según su
contexto. En este caso, la misma palabra en diferentes contextos estará representada por un vector
diferente. Además, permitieron una importante mejora del rendimiento en varias tareas de PNL, como la
respuesta a preguntas o la inferencia del lenguaje natural. El modelo de lenguaje más popular es BERT
(Representaciones de codificador bidireccional de Transformers) de Google [90]. Como se indicó
anteriormente, estos modelos aplican una arquitectura de autoatención, concretamente el módulo
Transformer, también desarrollado por Google [91], que se encarga de aprender las relaciones contextuales
de palabras (o subpalabras) en un texto. Esta arquitectura está compuesta por un codificador y un
decodificador. En el caso de BERT, solo se considerará el codificador al usarlo, ya que el objetivo es
producir un modelo de lenguaje. El par codificador­decodificador se utiliza durante el entrenamiento, lo que
ocurre de forma bidireccional, lo que significa que cada oración se analiza sin una dirección preferencial.
Esto permite una comprensión más profunda del contexto de la palabra, tanto a la izquierda como a la
derecha de la misma. Para una oración de entrada determinada, BERT funciona primero integrando los
tokens y luego procesándolos utilizando una red neuronal. Esta canalización genera una secuencia de vectores en la que cada uno c

Otro aspecto clave de BERT es su proceso de formación. BERT se entrena utilizando dos enfoques
diferentes: predicción de token enmascarado y predicción de la siguiente oración. De esta forma, es capaz
de comprender tanto el contexto de cada palabra, como el contexto de las frases del documento. El
Machine Translated by Google

2.4 Resumen 27

La creación de modelos de transformadores en PNL se considera el equivalente de ImageNET para la visión


por computadora. Ha mejorado drásticamente casi todas las tareas relacionadas con el procesamiento de
textos. Volviendo al ejemplo anterior ("Me encanta el pastel de manzana" y "Quiero comprar una computadora
portátil Apple"), este modelo ya no generará la misma incrustación para ambas instancias de la palabra
"manzana", ya que están en diferentes contextos. Además, BERT también es capaz de generar una
incrustación para una oración completa incrustada en un token __CLS__ especial, que captura su significado.
Esto puede resultar muy útil en la creación de chatbots, como se analizará en el próximo capítulo. Estos
modelos generalmente se aplican mediante aprendizaje por transferencia y ajuste fino. La premisa es que si
un modelo se entrena en un corpus lo suficientemente grande, podría generalizarse para prácticamente todos los contextos.

2.4 Resumen
En este capítulo se explicó la información requerida para comprender el alcance del trabajo y algunas
técnicas aplicadas. El siguiente capítulo explora los enfoques que se utilizan actualmente para la construcción
y validación de chatbots, incluidas las herramientas disponibles y ejemplos sobre agentes conversacionales
relacionados con la salud.
Machine Translated by Google

28 Fondo
Machine Translated by Google

Capítulo 3

Lo último

Este capítulo presenta los principales enfoques adoptados para crear y evaluar chatbots. La primera

Esta sección explorará los conceptos que son inherentes a la construcción de dicho agente. El

Las secciones siguientes abordan las herramientas de construcción de chatbots y los métodos de evaluación. El capitulo termina

con la exploración de algunos ejemplos relacionados con la salud.

3.1 Chatbots y comunicación

Los chatbots son agentes conversacionales que utilizan métodos de Inteligencia Artificial (IA) para comunicarse con personas

utilizando el lenguaje humano [92], lo que los convierte en herramientas muy útiles en la interacción hombre­máquina. Estas

aplicaciones hacen uso de algoritmos y procesos de PNL y minería de textos para lograr el objetivo referido. Además, los

chatter bots suelen tener módulos de texto a voz y de voz a texto integrados en su sistema, lo que aumenta su interactividad al

interactuar con el
usuario en una conversación sin problemas.

Desde una perspectiva histórica, esta tecnología ha sido explorada desde el desarrollo de

ELIZA, un sistema creado por Weizenbaum en 1966 que tenía como objetivo simular un rogeriano1

psicoterapeuta de la forma más convincente posible [93]. Una de las principales motivaciones de

Los desarrolladores de chatbot desarrollarán un software que sea capaz de superar la imitación de Turing.

Game [94], que incentivó la creación del Concurso del Premio Loebner en 1991 por el Dr.

Hugh Loebner.

Los agentes conversacionales se pueden clasificar según varios factores: modo de interacción, aplicación final, dominio

del conocimiento y tipo de enfoque de diseño de respuesta [95]. Generalmente,

Los chatbots disponibles comercialmente están programados para trabajar en un dominio cerrado específico y para realizar una

tarea determinada (chatbots orientados a tareas), para lo cual la conversación es breve y enfocada.

sobre el problema. Por otro lado, los chatbots no orientados a tareas se utilizan normalmente con fines de entretenimiento o en

aplicaciones que requieren un mayor nivel de interacción entre el usuario y

el agente, ya que las conversaciones son más naturales y complejas, a menudo en dominios abiertos. El

En la Figura 3.1 se pueden ver diferentes clasificaciones .

1Centrado en la persona

29
Machine Translated by Google

30 Lo último

Figura 3.1: Parámetros de clasificación de chatbots adaptados de [95]

La mayoría de las veces, los chatter bots siguen la arquitectura de la Figura 3.2 [80], [96]. Como están las cosas
posible observar, hay algunos módulos esenciales que el sistema debe tener para poder funcionar
procesar la entrada del usuario y proporcionar la respuesta adecuada.

Figura 3.2: Arquitectura habitual del chatter bot. El sistema consta de varios módulos: reconocimiento de voz (voz a
texto), comprensión del lenguaje, gestor de diálogo, generador de respuestas textuales.
y un sintetizador de texto a voz [80]
Machine Translated by Google

3.1 Chatbots y comunicación 31

En primer lugar, la voz del usuario es capturada por el módulo de reconocimiento automático de voz (ASR) que
convierte el sonido en una entrada de texto. A continuación, el ordenador debe comprender los datos textuales. Esta tarea
la realiza el módulo de comprensión del lenguaje natural que utiliza técnicas de procesamiento del lenguaje natural y
extracción de información para transformar los datos a un formato que pueda ser utilizado por la máquina. Además, el
Administrador de diálogo y el Generador de respuestas trabajan juntos para seleccionar la acción que mejor se adapta a
la entrada del usuario y crear la respuesta respectiva en forma de texto. La etapa final corresponde al módulo Text­to­
Speech que procesa la respuesta generada para sintetizar el sonido de voz respectivo [80]. Los módulos mencionados
anteriormente se explorarán en las siguientes secciones.

3.1.1 Reconocimiento y síntesis de voz

La experiencia de utilizar una interfaz conversacional se vuelve completa y más inmersiva cuando la principal forma de
comunicación es la voz en lugar del texto. Para ello, el sistema debe ser capaz de comprender la voz del usuario y producir
respuestas habladas [80]. Los dos procesos mencionados anteriormente se conocen como reconocimiento automático de
voz y texto a voz.

3.1.1.1 Reconocimiento de voz

Los asistentes personales digitales móviles como Siri2 de Apple , Google Assistant3 o Bixby4 de Samsung fueron los
principales propulsores de las aplicaciones basadas en voz y la evolución de ASR. Estos sistemas han mejorado
enormemente la precisión del reconocimiento, lo que llevó a una adopción masiva. De hecho, según un estudio realizado
por el Pew Research Institute, casi el 46% de los estadounidenses utilizan asistentes de voz digitales en su vida diaria.
Estos sistemas tienen el objetivo final de reconocer el habla independientemente del hablante o del vocabulario utilizado.
Teniendo esto en cuenta, conviene tener en cuenta varias dimensiones de estos modelos.

• Tamaño del vocabulario: el número de palabras que un sistema ASR es capaz de reconocer. El
los sistemas actuales tienen vocabularios de millones de palabras;

• Independencia del hablante: Estos sistemas deberían poder reconocer cualquier tipo de hablante.
Sin embargo, los acentos fuertes, las dificultades del habla o los patrones irregulares del habla pueden ser un
desafío para el modelo;

• Coarticulación: en el habla de flujo normal, las personas tienden a emitir sonidos continuos incluso cuando cambian
de una palabra a otra. La combinación del sonido final de una palabra con el sonido inicial de la siguiente es un
desafío para los sistemas ASR, ya que los límites entre palabras no son claros;

• Discurso conversacional: el discurso espontáneo como el que se verifica durante las conversaciones, que no tiene
una estructura predefinida, es más difícil de procesar que el discurso leído. De hecho, el habla conversacional es
muy propensa a vacilaciones y errores de habla. Estos factores

2https://www.apple.com/siri/
3https://assistant.google.com/
4https://www.samsung.com/pt/apps/bixby/
Machine Translated by Google

32 Lo último

suponen un verdadero desafío no sólo para los sistemas de reconocimiento sino también para los siguientes
módulos de comprensión del idioma;

• Robustez frente al ruido: Las condiciones del entorno pueden representar una dificultad para los sistemas ASR. El
ruido de fondo puede ser estático, como la música o el habla, o temporal, como el movimiento del tráfico. Los
métodos de procesamiento de señales, como el filtrado y la separación de señales, son muy importantes para
hacer que los sistemas de reconocimiento de voz sean más resistentes a condiciones no ideales. Más allá de eso,
se sabe que la exploración de técnicas de aprendizaje profundo en esta área aporta avances valiosos para los
modelos acústicos;

• Micrófono: La distancia del usuario al micrófono es otra variable que hay que tener en cuenta. Los micrófonos deben
poder capturar sonido de alta calidad tanto desde una distancia cercana entre la boca y el micrófono como en una
situación en la que el usuario habla desde el otro lado de la habitación. En este sentido, se han realizado mejoras
en el reconocimiento de voz de campo lejano, utilizando conjuntos de micrófonos y tecnología de formación de
haces que permite distancias mayores y una interacción independiente de la dirección.

ASR se realiza como un proceso estocástico que se basa en la probabilidad de que una entrada determinada
coincida con los modelos de palabras y sonidos del idioma considerado. Las principales razones detrás de este enfoque
probabilístico son el alto nivel de variabilidad y la vaguedad de los datos de entrada [97].
El habla sufre variaciones entre y dentro de los hablantes, así como condiciones de ruido y variaciones en la adquisición
de la señal (diferentes micrófonos y unidades de procesamiento). Por lo tanto, la pronunciación de una palabra dada
nunca es la misma y no existe una coincidencia directa entre la representación acústica de la entrada X y una palabra o
frase [80]. Entonces, el modelo calcula la probabilidad de coincidencia para cada palabra o frase W en el vocabulario de
un idioma L. Este proceso se puede describir mediante la siguiente ecuación (Ecuación 3.1) de probabilidad condicional,
donde Wˆ es la salida elegida:

Wˆ = argumento máximo P(W|X) (3.1)


W L

En otras palabras, estos sistemas calculan la probabilidad de la salida W dada la entrada acústica X. Aunque esto
no es posible de calcular de forma directa. El teorema de Bayes se utiliza para resolver este problema, lo que da como
resultado la siguiente ecuación (Ecuación 3.2). La ecuación se puede simplificar aún más ya que el denominador siempre
toma el mismo valor y por tanto el objetivo es obtener el máximo, se puede eliminar.

Wˆ = argumento máximo P(X|W)P(W) (3.2)


W L

El término P(X|W) representa el modelo acústico, mientras que P(W) corresponde al modelo de lenguaje, que son
los modelos utilizados para reconocer completamente la entrada de voz y se explicarán brevemente a continuación.

• Modelo acústico: este modelo proporciona la probabilidad de que una salida X esté dada por un determinado grupo
de palabras W. Además, el modelo se entrena utilizando un corpus anotado con caracteres fonéticos.
Machine Translated by Google

3.1 Chatbots y comunicación 33

información. El sonido producido por el usuario se captura como una señal acústica y continua y luego se convierte
en una señal digital discreta. Esta señal es procesada
para producir una representación acústica, basada en características extraídas. Entonces el
Las características coinciden con los teléfonos (unidades acústicas) del modelo acústico. Después de este
En este paso, los teléfonos coincidentes se agrupan para producir las palabras basadas en un diccionario de
pronunciación. Las secuencias de palabras generadas se evalúan para obtener la que
Es más probable que suceda bajo el modelo de lenguaje. Para este proceso, el tradicional
El método corresponde a la aplicación de modelos ocultos de Markov combinados con modelos de mezcla
gaussiana (GMM). Sin embargo, los mecanismos de aprendizaje profundo han ido reemplazando
estos algoritmos en el modelado de la variación del habla [98], dando mejores resultados que GMM
modelos [99], [100].

• Modelo de Lenguaje: Como se dijo anteriormente, el modelo de Lenguaje consiste en el conocimiento


base de la lengua considerada. Comprende los grupos aceptables de secuencial.
palabras y también la probabilidad de que una palabra determinada forme parte de una secuencia. Estos modelos
Se puede elaborar a mano codificando todas las reglas gramaticales que dan las posibles secuencias.
o inferido estadísticamente analizando n­gramas y extrayendo patrones. Como era de esperar, los modelos basados
en gramática funcionan mejor en contextos de dominio cerrado donde los posibles
las interacciones son limitadas. Además, estos modelos presentan menos flexibilidad y robustez.
al enfrentarse a secuencias de palabras que no fueron consideradas en el momento de la creación. Por otro lado,
los modelos de n­gramas se pueden utilizar para aplicaciones de vocabulario extenso.
aunque requieren una gran cantidad de datos hablados. Este método se basa en el supuesto de que es posible
predecir una palabra en una secuencia si las n − 1 palabras anteriores son
conocido.

3.1.1.2 Síntesis del habla

Text­to­Speech (TTS) consiste en generar una salida de voz a partir de una entrada de texto. Calidad del habla
y la comprensibilidad son cruciales en la adopción de aplicaciones basadas en voz. Hay muchos
Implementación de módulos TTS donde el sistema debe poder generar el sonido.
de reproducir audio pregrabado de las respuestas. Esta operación consta de dos partes:
Análisis de texto y síntesis de formas de onda. Los pasos habituales involucrados en TTS están representados en la
Figura 3.3 y se explorará más a fondo.
Machine Translated by Google

34 Lo último

Figura 3.3: Pasos comprendidos en el proceso Texto a Voz: Análisis de texto, análisis prosódico y fonético
y síntesis de voz [80]

• Análisis de texto: el texto generado por el módulo Generador de respuestas se analiza y procesa
primero antes de emitirse como voz. Se aplica un método de normalización al texto para prepararlo
para la síntesis de voz. De hecho, el texto generado puede tener problemas en la puntuación y los
límites de la oración. Si esto no se soluciona antes de que se produzca el sonido, las palabras se
pronunciarán de forma continua y sin interrupciones, lo que hará más difícil su comprensión. Además,
las abreviaturas y siglas, así como los números, la hora, las fechas o las monedas, deben cambiarse
a un formato que se pueda hablar. Los límites de las oraciones se determinan mediante tokenización,
aunque el punto no siempre corresponde al final de una oración. También se puede utilizar en
abreviaturas como Sr. o fechas como "01.03.1997". Los clasificadores de aprendizaje automático se
utilizan para clasificar los signos de puntuación como parte de una palabra o como límite de una
oración. Otro problema relacionado son los homógrafos, como por ejemplo la palabra "live" que
puede pronunciarse de dos maneras diferentes, teniendo diferentes significados. A veces, este
desafío se puede superar con el etiquetado de partes del discurso.

Después de la normalización, es relevante analizar la fonética y la prosodia de la oración.

– La fonética se ocupa de la pronunciación de las palabras en el texto generado y, a menudo,


utiliza diccionarios para ello. Cuando la pronunciación no está definida en un diccionario de
pronunciación, se lleva a cabo un proceso llamado conversión de grafema a fonema. Esta
operación utiliza reglas predefinidas para transformar la ortografía en pronunciación. Además,
en el caso de homógrafos con la misma parte del discurso, se puede utilizar un lenguaje de
marcado para diferenciar los casos (por ejemplo, Speech Synthesis Markup Language SSML5 ).

5https://www.w3.org/TR/speech­synchronous/
Machine Translated by Google

3.1 Chatbots y comunicación 35

– Los rasgos prosódicos son los relacionados con funciones como el tono, el ritmo, el volumen,
fraseo y tempo, también conocidos como rasgos suprasegmentales. Un claro ejemplo de la
La importancia de la prosodia en el habla es la diferencia de entonación entre una pregunta.
y una afirmación, que define la acción de la expresión considerada. Además, la prosodia tiene un
papel importante en la revelación de emociones y en dar a la voz sintetizada un sentimiento más
natural. Hay tres elementos principales de la prosodia: (1)
Fraseo prosódico: se ocupa de la forma en que se agrupan las palabras. La puntuación es
crucial en el fraseo al indicar, por ejemplo, los momentos de pausa entre palabras; (2)
Prominencia prosódica: no todas las palabras de una oración tienen la misma importancia.
Por lo tanto, es posible que sea necesario resaltar algunas palabras mediante acentuación, mayor
duración o énfasis; y (3) Afinación: como se mencionó anteriormente, la entonación se usa para crear
oraciones que suenan interrogativas (se elevan al final de la oración) o el sentimiento de admiración.
Estas características también se pueden modelar utilizando SSML.

• Síntesis de forma de onda: el primer e inmediato enfoque de TTS es la concatenación de segmentos de voz
pregrabados que se almacenan en una base de datos. Los segmentos pueden ir desde teléfonos.
para completar frases. Estos se seleccionan de acuerdo con el mejor ajuste a la representación de
el texto considerado. Se unen las unidades seleccionadas y se aplican técnicas de procesamiento de
señales para suavizar las uniones de las unidades con el fin de aumentar la naturalidad del habla.
Además, existen otros métodos basados en el mimetismo biológico y la articulación, sin embargo el
El primer método mencionado produce mejores resultados que estos métodos cuando se considera la
sentimiento natural y comprensibilidad del discurso. Las desventajas de utilizar grabado.
discurso son los recursos humanos especializados que son necesarios para registrar las posibles
combinaciones y la poca flexibilidad al tratar con aplicaciones de dominio abierto o no vistas.
contextos. Más recientemente, el trabajo de van den Oord et al. [101] en la investigación de DeepMind6
El grupo ha mostrado avances en la generación de voz utilizando algoritmos de aprendizaje profundo. El
El método utiliza WaveNet, una red neuronal convolucional que tiene en cuenta el contexto de la entrada y,
por lo tanto, produce resultados muy naturales, como se afirma en el estudio, cuyo
Los resultados se muestran en la Figura 3.4.

6https://deepmind.com/
Machine Translated by Google

36 Lo último

Figura 3.4: Comparación entre el enfoque Texto a voz de DeepMind (WaveNet) y otros enfoques tradicionales,
con respecto a la preferencia humana tanto por el inglés estadounidense como por el chino mandarín.
Los resultados se obtuvieron utilizando puntuaciones medias de opinión (de 1 a 5), que son la medida
estándar para las pruebas subjetivas de calidad del sonido. Las opiniones provinieron de una prueba ciega
en sujetos humanos, de más de 500 calificaciones en 100 frases de prueba, adaptadas de [102].

3.1.2 La comunicación como acción

Wittgenstein propuso la idea de que las personas ejecutan acciones con los enunciados producidos durante
un diálogo [103]. Este trabajo condujo a la teoría de los actos de habla, que fue un desarrollo posterior del
trabajo antes mencionado de Austin [104] y Searle [105]. Esta teoría afirma que la realización de un acto de
habla necesita del cumplimiento de algunas condiciones. Para que un enunciado sea concebido como una
orden por parte del hablante y recibido como tal por el destinatario, se deben cumplir los requisitos
presentados [105]: (1) el enunciado está relacionado con una acción futura que el oyente debe ejecutar; (2)
el acto puede ser realizado por el oyente y el hablante cree en ello; (3) la ejecución del acto por el
destinatario, en el curso normal de los acontecimientos, no es evidente ni para el hablante ni para el oyente;
(4) el hablante pretende que el oyente realice la acción. Estas condiciones resumen las intuiciones que
tienen las personas cuando piden realizar una tarea determinada que quieren que se haga y que suponen
que el oyente puede hacer, y que de otro modo no lo haría si no se lo pidieran. Comprender el acto de habla
que se está realizando al utilizar un enunciado es un procedimiento clave para determinar la intención del
hablante y en consecuencia responder de la manera correcta [80], [106].

Esta tarea es un tema clave cuando se trata de sistemas computacionales de agentes conversacionales
porque los usuarios no siempre expresan las intenciones que tienen de manera directa. Debido a esto, estos
modelos deberían emplear mecanismos que les permitan inferir las intenciones de los usuarios utilizando la
información proporcionada. Un ejemplo ilustrativo de esto ocurre cuando el usuario dice que no le gusta un
ingrediente después de recibir una recomendación de receta. De hecho, la intención principal del usuario es
reemplazar el ingrediente dado por otro. El sistema debe reconocerlo y dar una respuesta adecuada.
Machine Translated by Google

3.1 Chatbots y comunicación 37

3.1.3 Determinación de la intención

El reconocimiento de actos de habla consiste en la tarea de definir la función de un enunciado en un diálogo,


por ejemplo, si se trata de una sugerencia, una pregunta, una oferta o un reconocimiento, entre otros. Esta
tarea solía realizarse aplicando los primeros modelos de IA de inferencia y razonamiento de planes [107]. De
esta manera, se aplicaron reglas lógicas a la base de conocimiento para que se deduzca la nueva información.
Como alternativa, después aparecieron modelos estadísticos/de aprendizaje automático que abordan la
determinación de los actos de habla como un problema de clasificación supervisada. Así, estos últimos modelos
requieren una fase de entrenamiento utilizando un corpus etiquetado7 que contiene anotaciones de actos de
habla en cada enunciado [80], [108]. El corpus debe contener información específica del dominio para que el
modelo esté optimizado para esas expresiones. Como era de esperar, los modelos utilizan elementos textuales
para clasificar la información. Entre las características utilizadas se pueden destacar: (1) palabras y frases
clave, así como signos de puntuación presentes en el enunciado [109], [110] (información léxica), normalmente
como n­gramas8 como "por favor", que es un fuerte indicador de una solicitud; (2) datos sintácticos y semánticos
del procesamiento de relaciones lingüísticas [108]; (3) actos de diálogo anteriores y sus n­gramas [111] y
también secuencias de actos de diálogo en forma de n­gramas [112] como características contextuales y
también (4) características prosódicas y acústicas en el caso de que se implementen módulos de reconocimiento de voz [113].

Las funciones antes mencionadas (actos de habla) se pueden combinar con conocimientos o tareas del
dominio para caracterizar y definir la intención del usuario [80]. La intención del usuario es un concepto clave
para la construcción de chatbot. Representa la intención que el usuario quiere expresar. La clasificación
completa de la intención del usuario requiere la detección de los elementos relevantes apropiados.
Según Wu et al. [114], la clasificación en dos pasos ayuda a restringir el procesamiento semántico del
contenido de las expresiones, ya que los elementos identificados deben luego estar relacionados con la
intención previamente identificada. Para extraer la información mencionada anteriormente se aplican las
técnicas explicadas en el Apartado 2.3 . Además de estas técnicas, también se utilizan los métodos explorados
en las siguientes secciones. Estas técnicas tienen la ventaja de ser una forma no supervisada de generar
características textuales.

3.1.3.1 Bolsa de palabras

El contenido del usuario se puede representar en muchos formatos. Uno de ellos es Bag of Words (BoW), que
recopila sólo las palabras de la entrada, excluyendo las propiedades sintácticas. Además, las palabras vacías
a menudo se eliminan y se cuentan las apariciones de palabras lematizadas [84]. De esta forma, la
representación final es un vector que contiene la frecuencia de cada palabra en una muestra de texto. Este
enfoque se utiliza habitualmente en procesos de coincidencia de palabras, como la recuperación de documentos
o aplicaciones de respuesta a preguntas. El enfoque de la Bolsa de Palabras tiene la ventaja de ser sencillo ya
que no requiere conocimientos lingüísticos. Sin embargo, algunas tareas complejas requieren métodos que
tengan en cuenta una mayor cantidad de información, por ejemplo, la semántica y la sintáctica [80]. En el
trabajo de Ni et al. [115], se presenta un chatbot destinado a brindar asistencia de atención primaria en la
admisión de pacientes. Los pacientes pueden exponer sus síntomas describiéndolos a un agente conversacional.
Además, la implementación del motor de comprensión del lenguaje natural se basa en una metodología de
bolsa de palabras para agrupar todos los síntomas del paciente. De esta manera, los autores
7
Conjunto estructurado de textos de un idioma determinado que se utiliza para realizar análisis estadísticos lingüísticos y pruebas de hipótesis.
8
grupo secuencial de elementos textuales, como palabras, presentes en una muestra de texto (corpus)
Machine Translated by Google

38 Lo último

puede superar el obstáculo del uso del lenguaje no especializado y la escasez de información al extraer los elementos
importantes de la entrada. El algoritmo utiliza la información de la bolsa de palabras y la compara con los síntomas de las
enfermedades en la base de datos y produce una lista de las enfermedades más probables relacionadas con esos síntomas.

3.1.3.2 Incrustaciones de palabras

Como se menciona en la sección 2.3.3, las incrustaciones de palabras también se pueden utilizar para clasificar la intención
de una oración. En este caso, los vectores de palabras se utilizarán como características para los modelos de clasificación.

Además de la ventaja de considerar la semántica de las palabras, este método también produce vectores más pequeños y no
dispersos, a diferencia de Bag of Words. Cuando se utilizan algoritmos de aprendizaje profundo, esto puede ser muy
importante ya que reduce la cantidad de pesos necesarios y, en consecuencia, el costo computacional.
En este caso, es posible considerar incrustaciones tanto estáticas como contextuales para este propósito.

Para aumentar el rendimiento, los vectores de palabras deben estar relacionados con el dominio. Idealmente, cuando
se utilizan incrustaciones de palabras estáticas, estas deberían obtenerse utilizando un corpus que capture las relaciones del
dominio. Esto requiere una enorme cantidad de datos que en ocasiones pueden no estar disponibles.
Lo mismo se aplica a los modelos de lenguaje previamente entrenados. Estos modelos se pueden ajustar para aumentar el
rendimiento en el conocimiento del dominio. Se esperaría que los resultados producidos por las incrustaciones contextuales
fueran mejores que los obtenidos utilizando las incrustaciones estáticas. Sin embargo, en dominios bastante cerrados, esta
diferencia puede no ser perceptible, si no existe un alto nivel de ambigüedad.
Sin embargo, los métodos basados en incrustaciones permiten un mejor rendimiento que Bag of Words.
Esta técnica se utiliza con frecuencia en casos en los que los modelos se basan principalmente en representaciones
numéricas de los datos del texto, como los enfoques de aprendizaje profundo. De hecho, el trabajo desarrollado por Xu et al.
emplea un algoritmo de incrustación de palabras para permitir la utilización de redes neuronales recurrentes, más precisamente
unidades de memoria a corto plazo [42]. En este caso, los autores utilizan un modelo de lenguaje de red neuronal word2vec
basado en conversaciones del dominio que intentan abordar (servicio al cliente). El trabajo desarrollado por Dundar E. et al
aplicó un enfoque híbrido que combinaba palabras clave con incrustaciones de palabras para un chatbot de respuesta a
preguntas [116].
Utilizaron las incrustaciones como una extensión para la coincidencia de palabras clave. Las incorporaciones se obtuvieron
utilizando un corpus de conversaciones relacionadas con el dominio que estaba disponible.

3.1.4 Gestión de diálogos y generación de respuestas

Los robots de Chatter utilizan la información extraída mediante algunos de los métodos explorados anteriormente para generar
respuestas a las entradas del usuario.

3.1.4.1 Basado en reglas

La gran mayoría de los chatbots se basan en reglas, lo que significa que las respuestas proporcionadas se generan mediante
un conjunto de reglas que normalmente están codificadas a mano. Las respuestas se seleccionan de una base de
conocimientos predefinida de acuerdo con la entrada del usuario, por lo que no crea texto nuevo. Por lo tanto, la construcción
de esta base de conocimiento es muy costosa en términos de tiempo y recursos humanos, lo que también la hace no escalable
[117]. Esto funciona haciendo coincidir un patrón recibido con una plantilla de
Machine Translated by Google

3.1 Chatbots y comunicación 39

la base de conocimientos y se aplica principalmente en aplicaciones de dominio cerrado. El trabajo realizado por
Kasinathan et al. [118] emplea una metodología basada en reglas en un chatterbot destinado a detectar y diagnosticar
enfermedades entre los pacientes. El sistema hace uso de una base de conocimientos y un grupo de reglas de inferencia
basadas principalmente en declaraciones SI y ENTONCES que permiten generar respuestas. Sin embargo, como se
indicó anteriormente, el sistema debe reconocer ciertas palabras clave para poder continuar y si no comprende una palabra
clave solicitará una entrada diferente para la misma pregunta.

3.1.4.2 Recuperación de información basada

Sin embargo, con la aparición de redes sociales como Twitter y Reddit que permiten a los usuarios establecer una
conversación, se crearon grandes conjuntos de datos de diálogo y modelos de recuperación de información [119]. Los
desarrolladores podrían analizar estos conjuntos de datos conversacionales y crear automáticamente pares compuestos
por una expresión y una respuesta. Estos modelos reciben la información de entrada y el patrón la compara con el conjunto
de pares de enunciado y respuesta para seleccionar una respuesta. Las posibles respuestas se clasifican de acuerdo
con el algoritmo de coincidencia y la de mayor clasificación se elige como salida [120]. La desventaja de utilizar modelos
de recuperación es que puede resultar difícil recopilar un corpus de los pares dados para algunos dominios específicos.
Una vez más, este modelo no crea texto nuevo, solo selecciona respuestas predefinidas de un corpus. Lommatzsch et al.
[121] exploran una metodología de recuperación de información para construir un chatbot que ayude a los usuarios a
encontrar información en grandes bases de conocimiento. Este estudio parte de la premisa de que las listas de Preguntas
Frecuentes pueden servir como base de conocimiento para generar las respuestas que el usuario requiere.

Además, la comparación entre la entrada del usuario y el conjunto de textos que tiene la respuesta se puede realizar
mediante un método de índice invertido. Es decir, el algoritmo TF­IDF (Frecuencia de términos – Frecuencia de
documentos inversa) se aplica ampliamente. Este algoritmo corresponde a una estadística numérica que intenta identificar
la importancia relativa de cada palabra en el corpus. Considera la frecuencia con la que aparece cada palabra en un
documento y la relaciona con la frecuencia de los documentos que contienen ese término específico, ponderando las
palabras según eso. Las palabras con pesos elevados son términos que son frecuentes en un documento determinado
pero que no aparecen en otros documentos. De esta manera, filtra palabras muy comunes (por ejemplo, palabras vacías)
o palabras que aparecieron muy pocas veces y pueden no ser relevantes para el dominio. Para aumentar la calidad de la
conversación, los autores también implementaron un estado de memoria que consideraba el contexto de las entradas,
aunque adopta un enfoque manual en lugar de inferir automáticamente el final del contexto. Pregunta al usuario si la
pregunta que realizó sigue siendo o no sobre el mismo tema que se definió previamente, para poder dar respuestas
coherentes. Además, se pueden utilizar técnicas basadas en incrustaciones de palabras y modelos de lenguaje para
seleccionar la respuesta adecuada. Al codificar cada expresión, las métricas de distancia o los modelos de clasificación se
pueden utilizar para hacer coincidir las entradas del usuario con las diferentes respuestas que el chatbot puede reproducir.
El trabajo desarrollado por Henderson et al. [122] y Gu et al. [123] utilizaron modelos de lenguaje previamente entrenados
para mejorar el rendimiento de la recuperación de respuestas. Estos modelos son más conscientes del contexto completo
de la conversación, lo que puede ser crucial en conversaciones de varios turnos.
Machine Translated by Google

40 Lo último

3.1.4.3 Modelos generativos

Por otro lado, y como su nombre lo indica, los modelos generativos crean una salida de texto basada en la entrada
del usuario. Lo hace mediante el uso de una arquitectura codificador­decodificador que primero crea una
representación vectorial de la expresión del usuario que luego se decodifica para generar la respuesta. Como era
de esperar, estos modelos necesitan un corpus de entrenamiento anotado. Esto suele verse como un problema
de traducción en el que una consulta se traduce en una respuesta [119]. Además, los modelos generativos pueden
utilizar diferentes algoritmos. Además de los algoritmos de aprendizaje automático basados en estadísticas más
tradicionales, también se pueden utilizar el aprendizaje profundo [124] y el aprendizaje por refuerzo [125] . Estos
modelos producen conversaciones de mejor calidad, consideradas más interactivas, informativas y coherentes
que las generadas por modelos estadísticos [126]. Además, el trabajo de Xu et al. mencionado en la Sección
3.1.3.2 [42] emplea un enfoque de aprendizaje profundo basado en una arquitectura de red neuronal recurrente.
Este modelo es capaz de asignar la entrada del usuario a una salida utilizando una metodología codificador­
decodificador. El codificador asigna la entrada a un vector de tamaño fijo y el decodificador asigna ese vector a un
formato de texto. Tanto el codificador como el decodificador están compuestos por unidades LSTM que pueden
mantener y aprender un estado de memoria que es fundamental para filtrar información secuencial y generar
resultados más comprensibles. Esta técnica se denomina aprendizaje de secuencia a secuencia (Seq2Seq), en el
que una secuencia de palabras de entrada se asigna a una secuencia de palabras de salida. El sistema fue creado
para ayudar en el servicio al cliente, por lo que se entrenó en un corpus de conversaciones de Twitter. El conjunto
de datos estuvo compuesto por aproximadamente 1 millón de conversaciones entre usuarios y agentes de varias
marcas. Una vez más, en esta tarea se pueden aplicar modelos lingüísticos. El trabajo realizado por Wang et al.
[127] concluyó que BERT se puede utilizar para muestrear oraciones. Los resultados obtenidos por estos autores
mostraron que esta técnica puede producir una gama más amplia de frases que los algoritmos Seq2Seq, aunque
la calidad es inferior.

3.1.5 Bases de conocimiento

Como se vio anteriormente, los chatbots necesitan bases de información para generar respuestas adecuadas a
las intenciones de los usuarios. La información se puede codificar o representar de varias formas. Además, en los
chatbots orientados a tareas es importante contar con un servicio para realizar los trabajos que se requieren, como
una llamada a una API.

3.1.5.1 Bases de datos relacionales

Uno de los tipos de bases de conocimientos más utilizados son las bases de datos relacionales (RDB). Esta
técnica se puede utilizar para almacenar información de dominio o datos de diálogo, de modo que el bot pueda
acceder y utilizar entradas y respuestas anteriores. De esta manera, puede hacer que la conversación sea más
coherente y significativa. Los RDB generalmente se implementan utilizando el lenguaje SQL (lenguaje de consulta
estructurado), lo que significa que la información recuperada de la entrada del usuario debe convertirse en una
consulta SQL, y viceversa, para que el sistema pueda insertar y recuperar información de los datos. base.
Machine Translated by Google

3.2 Herramientas de construcción de chatbots 41

3.1.5.2 Ontologías

Otra forma de proporcionar conocimiento mundial al sistema es utilizar ontologías. Una ontología (o red
semántica) consiste en un conjunto de conceptos relacionados relacional y jerárquicamente. Es una
representación lógicamente estructurada de las relaciones entre conceptos del dominio, que se puede
representar gráficamente [128]. Las ontologías a menudo se construyen con jerarquías taxonómicas de clases,
que comprenden la definición de clase y la relación abarcada [129]. De esta manera, los agentes inteligentes
pueden percibir las relaciones dadas e incluso implicar nuevos enunciados utilizando reglas de razonamiento
[130]. También es importante estandarizar y sistematizar el modelo que se está creando, de modo que la
recuperación de información sea más simple, organizada y basada en un vocabulario definido [129]. Por tanto,
las ontologías definen el universo conceptual de conocimiento del sistema, agrupando toda la información
importante en un marco interconectado. Una vez más, el formato de intención del usuario extraído debe coincidir
con el de la ontología para que sea posible recuperar la información deseada.

3.2 Herramientas de construcción de chatbots

En esta sección se explorarán las herramientas para el desarrollo de chatbot. El funcionamiento interno, así
como las ventajas, desventajas y posibles desafíos para el próximo trabajo.

3.2.1 Reconocimiento de voz y síntesis de voz

Los marcos integrados que comprenden módulos de voz a texto y de texto a voz están ampliamente difundidos
y utilizados en la construcción de chatbots. Probablemente la más utilizada sea Google Cloud Speech­to­Text9
y Text­to­Speech10, aunque hay otras soluciones comerciales disponibles. La siguiente sección explora algunos
de los marcos más utilizados para las tareas consideradas. Es ventajoso utilizar marcos que tengan tanto
reconocimiento como síntesis de voz, ya que la integración es más simple y fluida. En las Tablas 3.1 y 3.2,
respectivamente , se presenta una comparación completa entre las herramientas de voz a texto y de texto a
voz .

3.2.1.1 Nube de Google

El módulo de conversión de voz a texto de Google Cloud es capaz de procesar una gran cantidad de vocabulario
en 120 idiomas diferentes. Emplea redes neuronales profundas para el reconocimiento de voz y es capaz de
generar texto en tiempo real. La reducción de ruido y el filtrado de contenido se utilizan para aumentar la solidez
y lograr transcripciones de mejor calidad. Además, existe la posibilidad de personalización tanto del modelo
seleccionado (diferentes procesos de optimización según el contexto, por ejemplo llamadas telefónicas, entrada
de voz o vídeo) como de algunas palabras clave del dominio de la aplicación. También hay algunas funciones
beta que se pueden implementar para elevar la interactividad y la calidad del agente: puntuación automática y
detección de idioma y registro del hablante para múltiples hablantes.
contextos.

9https://cloud.google.com/speech­to­text
10https://cloud.google.com/text­to­speech
Machine Translated by Google

42 Lo último

También es importante considerar el precio asociado con este servicio. Tiene un plan gratuito
Esto es muy ventajoso para fines de investigación ya que se incluyen las características necesarias.

Los servicios de Google Cloud también tienen un módulo de texto a voz que está disponible
gratuitamente para todos los usuarios. Al igual que con la función Speech­to­Text, el TTS de Google utiliza
enfoques de aprendizaje profundo para generar salidas de voz que se asemejan a la interacción humana.
De hecho, este marco utiliza el trabajo WaveNet desarrollado por van den Oord et al. explica en la Sección
3.1.1.2, lo que lo convierte en un método generativo para la síntesis de voz. También admite 30 modismos
diferentes, incluidos portugués e inglés, ajustes de velocidad del habla y SSML para funciones prosódicas
y fonéticas.

3.2.1.2 Microsoft Azure

Otra tecnología muy utilizada para el reconocimiento y síntesis de voz son los servicios proporcionados
por Microsoft Azure11: Bing Speech­to­Text y Text­to­Speech. Este servicio utiliza el enfoque estocástico
descrito en la Sección 3.1.1.1 para el reconocimiento de voz, mientras crea los modelos a través de
arquitecturas de redes neuronales recurrentes [131]. Además, permite personalizar el Modelo Acústico,
el Modelo de Lenguaje y el acento en varios idiomas, como inglés y portugués brasileño. Sin embargo,
para el portugués europeo estas opciones de personalización sólo están disponibles para el modelo de
idioma. Por otro lado, el módulo Text­to­Speech tiene dos enfoques diferentes para la síntesis de voz. El
enfoque basado en redes neuronales, que ofrece mejores resultados al tener en cuenta características
prosódicas y transiciones de palabras más fluidas, sólo está disponible en unos pocos idiomas, incluido el
inglés. Realiza predicción de prosodia y síntesis de voz simultáneamente, lo que permite un habla más
natural y una reducción de la fatiga auditiva. El segundo enfoque, que utiliza sonidos pregrabados y
procesa la prosodia y la fonética en dos pasos, es compatible con el portugués europeo. Dicho esto,
también cabe destacar la opción formativa que ofrece este servicio. De hecho, es posible entrenar el
software implementado proporcionando datos anotados. Esto permite una precisión mejorada en contextos
de dominios específicos, con respecto al reconocimiento de voz. Al considerar la síntesis de voz, existe
la posibilidad de crear una voz personalizada utilizando registros de voz y texto sin formato o SSML.
También cuenta con una instancia gratuita que tiene un tiempo limitado (ASR) o número de caracteres
(TTS).
11https://azure.microsoft.com/en­us/services/cognitive­services/speech­services/
Machine Translated by Google

3.2 Herramientas de construcción de chatbots 43

Tabla 3.1: Comparación de herramientas de voz a texto

Tabla 3.2: Comparación de herramientas de conversión de texto a voz

3.2.2 Marcos de identificación de intenciones y gestión del diálogo

Al igual que con los servicios de voz, se encuentran disponibles comercialmente marcos para el reconocimiento de intenciones
y la gestión del diálogo. Estas herramientas aplican algoritmos de PNL automáticamente para crear el motor de comprensión
del lenguaje natural que controla el flujo de la conversación. La gran mayoría de estos frameworks se basan en el concepto
de intención y su identificación, siendo ampliamente utilizados para chatbots orientados a tareas [121]. Para explicar los
enfoques basados en la intención, se explicará el caso de Dialogflow. La alternativa al uso de estos frameworks es el desarrollo
Machine Translated by Google

44 Lo último

e integración del chatbot utilizando herramientas de PNL y corpus de capacitación que pueden ser un conjunto de datos
públicos o un corpus de dominio específico que debe ser recopilado y anotado por el equipo de desarrolladores. La
comparación entre los distintos marcos se representa en la Tabla 3.3.

3.2.2.1 Flujo de diálogo

Dialogflow12 es la herramienta dedicada de Google para la creación de agentes conversacionales de un extremo a otro.
Se ejecuta en Google Cloud Platform y combina la experiencia, los productos y los amplios recursos de aprendizaje
automático de Google para permitir la integración en varias aplicaciones. Este servicio es utilizado por varias empresas
que ya cuentan con productos en el mercado para llevar la experiencia del consumidor al siguiente nivel. Además,
Dialogflow también se utiliza en investigación y desarrollo con fines académicos. Puede manejar varios idiomas
diferentes, incluidos inglés y portugués.

El servicio prestado por Google abarca varios objetos importantes que se explicarán más adelante.

• Agentes

En Dialogflow, los agentes son los objetos que manejan la conversación con el usuario final. Un agente está
compuesto por un módulo de comprensión del lenguaje natural que tiene como objetivo comprender el lenguaje
humano y extraer información estructurada que puede ser utilizada por otros servicios. En otras palabras, el
agente es similar a un empleado de un call center que está capacitado para afrontar escenarios predecibles con
un alto nivel de flexibilidad [132];

• Intenciones

Como se indicó anteriormente, una intención define la intención percibida de un usuario cuando se comunica
con el agente conversacional. Cada agente requiere la definición de las posibles intenciones del usuario. La
expresión del usuario (enunciado) coincide con la mejor intención que el agente puede detectar. Este proceso de
comparación también se denomina clasificación de intenciones [133]. En el ejemplo dado en la documentación
de Dialogflow, se crea un agente "meteorológico" y se define la intención de "pronóstico". Esta intención coincidirá
con expresiones que requieren información de pronóstico del tiempo, como se ve en la Figura 3.5. Además, el
agente también se puede codificar para extraer la información requerida de las expresiones del usuario que
serán necesarias para calcular una consulta determinada. En este caso el momento y lugar deseado son datos
importantes para dar una respuesta más concreta.

Figura 3.5: Ejemplo de coincidencia de intención de flujo de diálogo [133]

El flujo de intención en Dialogflow se representa en la Figura 3.6 y comprende los siguientes bloques [133]:

12https://dialogflow.com/
Machine Translated by Google

3.2 Herramientas de construcción de chatbots 45

– Frases de entrenamiento: al crear una intención, se deben proporcionar frases de entrenamiento al sistema para
que el agente aprenda lo que el usuario final puede decir cuando requiera una acción específica. Las frases de
entrenamiento constituyen el corpus de cada intención, que se amplía aún más mediante los algoritmos de
procesamiento del lenguaje natural de Dialogflow. Esto significa que no se deben insertar todas las combinaciones
posibles de frases que correspondan a una intención determinada, ya que el sistema es capaz de comprender el
significado subyacente de la acción y crear oraciones similares para entrenar.

– Acción: como era de esperar, las intenciones están relacionadas con acciones que se pueden activar después de la intención.

clasificación. Es posible definir la acción que desencadena cada intención.

– Parámetros: cuando el sistema hace coincidir una expresión de usuario con una intención, es posible extraer los
datos de la expresión como parámetros. Posteriormente, estos parámetros se pueden combinar con tipos de
entidades utilizados para generar respuestas o iniciar cualquier otra acción en el sistema. Los datos vienen de
forma estructurada, lo que facilita las funciones mencionadas.

– Respuestas: Las respuestas que produce el sistema también se pueden definir en el intent.
Estas respuestas pueden ser textuales, habladas o visuales con el fin de presentar alguna información, pedir
más datos o finalizar la conversación.

Figura 3.6: Coincidencia de intenciones de flujo de diálogo y flujo de respuesta [133]

• Entidades

Los parámetros a que se refiere el inciso anterior se denominan entidades y corresponden a las entidades mencionadas
en el numeral 2.3. Se atribuye un tipo de entidad a cada entidad después de guiar su extracción de la expresión del
usuario. Dialogflow tiene varios tipos de entidades ya definidos que puede utilizar el desarrollador. Además de estos,
existe la posibilidad de crear nuevos tipos de entidades proporcionando ejemplos al sistema [134]. Bajo el alcance de
este trabajo, sería necesario crear, por ejemplo, un tipo de entidad para que los alimentos coincidan con los que están
presentes en las recetas.

• Contexto
Machine Translated by Google

46 Lo último

El agente conversacional a menudo necesita contexto para que la respuesta generada aborde el objetivo de la
interacción. Por tanto, el flujo de la conversación requiere contexto para volverse más natural y comprensible.
La configuración de intención permite la definición de entradas y salidas contextuales y esto es utilizado por el
agente para mantener la coherencia a lo largo de la conversación [135].

• Intenciones de seguimiento

También es posible determinar combinaciones de intenciones que normalmente ocurren de forma secuencial.
La intención de seguimiento se implementa como hija de una intención principal determinada y solo coincidirá si
esta última coincide en el turno de conversación anterior. Estos pares de intenciones están unidos por un
contexto generado que relaciona ambos. En la intención principal se crea un contexto de salida, mientras que
en la intención secundaria se genera un contexto de entrada coincidente. Esta característica no se limita a dos
intenciones, ya que es posible crear estructuras anidadas de múltiples intenciones de seguimiento [136]. El
ejemplo proporcionado en la Figura 3.7 muestra cómo los pares de intenciones pueden funcionar para concertar
un tipo especial de cita, es decir, una cita para un corte de pelo. Esto es particularmente útil en escenarios de
expresiones de "sí" o "no".

Figura 3.7: Ejemplo de intención de seguimiento de Dialogflow con una cita para un corte de pelo. Las intenciones se
combinan mediante los contextos de entrada y salida [136].

Teniendo en cuenta que se supone que el chatter bot desarrollado interactúa con el sistema de recomendación,
la conexión entre Dialogflow y el sistema debe procesarse de la siguiente manera [137], representada en la Figura 3.8:

1. Entrada del usuario;

2. El sistema envía la expresión del usuario a la API del chatbot para que la intención y otros datos
es detectado y extraído;

3. Después de la detección y comparación de la intención, la respuesta (con los datos requeridos: intención, acción)
y parámetros) se genera y se envía de vuelta al sistema;

4. Utilizando la información de la respuesta, el sistema realiza las consultas necesarias y otras


operaciones;

5. Luego se envía la respuesta final al usuario;

6. El usuario puede leer u escuchar la respuesta y obtener el resultado deseado.


Machine Translated by Google

3.2 Herramientas de construcción de chatbots 47

Figura 3.8: Interacción entre un sistema y la API de Dialogflow. Se procesa de acuerdo con los pasos que se
describen a continuación [137].

3.2.2.2 Ingenio.ai

Wit.ai13, otra herramienta de construcción de chatbot, sigue un enfoque similar al descrito en la sección anterior.
La principal diferencia radica en el hecho de que Wit.ai no puede generar respuestas, se centra únicamente en
la clasificación de intenciones y la extracción de entidades para devolver un archivo JSON estructurado con la
información. Esta información luego se puede utilizar para consultar una base de datos o activar respuestas
basadas en reglas en un módulo externo. Además, este software es de código abierto y completamente gratuito.
Por lo tanto, es posible acceder al código del software y cambiarlo según la voluntad del usuario.

3.2.2.3 LUIS.ai

La unidad de comprensión del lenguaje natural de Microsoft se llama LUIS.ai14. Este motor es muy similar tanto
a Dialogflow como a Wit.ai (basado en intenciones). Se utiliza para recuperar expresiones de los usuarios en
archivos JSON estructurados que se pueden utilizar para consultar bases de conocimiento. Sin embargo, el
componente del administrador de diálogo es difícil de personalizar. De hecho, LUIS.ai debe integrarse con el
marco de Azure Bot para que pueda responder al usuario. Utiliza respuestas prealmacenadas en lugar de
generadas, lo que disminuye la naturalidad y la inmersión de la conversación. Algunas ventajas que están
presentes en los servicios de Microsoft Azure son la integración tanto con la interfaz de voz mencionada en la
Sección 3.2.1.2 como con un servicio de alojamiento de bases de datos. También tiene una opción gratuita para desarrolladores.

3.2.2.4 Tipo de código abierto

Otro jugador en el dominio de la construcción de chatbots es Rasa, un marco de código abierto que se ha vuelto
cada vez más popular debido a su flexibilidad y también al hecho de que es de código abierto y gratuito. Rasa
utiliza un enfoque similar a Dialogflow (un agente basado en intenciones y entidades) e incluye también la parte
de gestión del diálogo, a diferencia de Wit.ai. Al ser de código abierto,

13https://wit.ai/
14https://www.luis.ai/home
Machine Translated by Google

48 Lo último

Este marco otorga un enorme nivel de personalización de cada aspecto del proceso. Es posible
personalizar los modelos de clasificación utilizados para el reconocimiento de intención/entidad, así como
el modelo que controla las siguientes acciones o respuestas del chatbot. La canalización de NLU también
es personalizable, lo que permite agregar componentes específicos, como analizadores de opiniones o
módulos de corrección ortográfica. El componente de gestión del diálogo se basa en la recuperación, lo
que puede ser suficientemente bueno para agentes de dominio cerrado, aunque exige la creación o
recopilación de posibles respuestas.
Machine Translated by Google

nnóósiicecan
lan
sbr:octso
a
ó
n
io
niog
cisp
ó
fa
co
biecn
toim
aln
tprb:sa
ilre
e t3
a
ásoa
nh
ea
trm
.in
aC
dT
3ycvil
e
p
g
d
3.2 Herramientas de construcción de chatbots
49
Machine Translated by Google

50 Lo último

3.3 Evaluación de chatbots

El chatbot desarrollado en este trabajo deberá ser validado, previo a su despliegue, según los métodos y
parámetros de evaluación correctos y adecuados. La evaluación también es crucial para guiar la construcción
del agente propuesto y evaluar la utilidad de las funciones. Con respecto al rendimiento de las respuestas
generadas, existen algunas métricas implementadas en la literatura que pueden usarse y apoyarse en la similitud
de palabras superpuestas para evaluar el sistema:

• BLEU [138] – Utiliza la aparición de n­gramas para calcular el rendimiento.

• METEOR [139] – También considera sinónimos de las palabras tokenizadas

• ROUGE [140] – destinado a abordar el resumen; utiliza secuencia de palabras que no


tienen que ser contiguos para comparar las oraciones

Estas métricas se desarrollaron por primera vez para validar la traducción automática; sin embargo, se
pueden adaptar a la evaluación de generación de respuestas [141]. Estos métodos no siempre dan la mejor
evaluación debido a la variabilidad intrínseca del habla y las posibles respuestas. Como método de superposición
de palabras, las respuestas válidas con redacción diferente se clasifican erróneamente con una puntuación
negativa. Dicho esto, los métodos basados en incrustaciones de palabras parecen eludir las limitaciones
mencionadas. Estos modelos comparan el significado de las respuestas generadas con las esperadas. Por lo
tanto, las métricas de incrustación de palabras producen mejores evaluaciones que pueden distinguir los agentes
de referencia de los agentes de última generación más complejos [142]. Además, las métricas basadas en la
recuperación, como el recuerdo o la precisión, también se han utilizado para evaluar los agentes de diálogo
[143], principalmente en chatbots orientados a tareas.

Sin embargo, las métricas presentadas no representan adecuadamente el juicio humano [144], que
comprende un conjunto más amplio de dimensiones (como coherencia, expectativas, profundidad del
conocimiento conversacional, comportamiento sentimental, confianza, cobertura de dominio y compromiso),
además de la exactitud de las mediciones. información proporcionada [145]. De hecho, varios estudios han
demostrado que la opinión humana sobre los agentes de diálogo puede ser muy diferente de la evaluación
proporcionada por estas métricas [142], [146]. Por tanto, se debe tener en cuenta el criterio humano a la hora de
validar un agente conversacional, aunque esto puede resultar prohibitivamente costoso en términos de recursos
humanos especializados. Es prácticamente imposible evaluar adecuadamente cada iteración de un agente que
se está desarrollando con experiencias basadas en humanos. Dicho esto, se han desarrollado modelos de
evaluación basados en aprendizaje automático que incorporan opiniones humanas como datos de entrenamiento,
como ADEM [147], un modelo basado en RNN que utiliza contexto y opiniones humanas para predecir juicios
tanto a nivel de oración como de sistema) o RUBER [ 148], que utiliza la incrustación de palabras para evaluar
la similitud con la verdad fundamental y la combina con el resultado de un RNN que verifica la relación entre la
consulta y la respuesta. Más recientemente, se han aplicado métodos que utilizan el aprendizaje adversario a la
evaluación automática de sistemas de generación de respuestas, lo que demuestra que se pueden entrenar
modelos de aprendizaje profundo para discriminar las respuestas generadas por computadora de las respuestas
humanas [149].

Aunque estos modelos y métricas de evaluación automática intentan cerrar la brecha con el juicio humano,
también se deben realizar experiencias basadas en humanos para una evaluación completa del agente
conversacional. Para ello, se deben definir métricas relevantes y formas de cuantificarlas.
Machine Translated by Google

3.4 Chatbots relacionados con la nutrición y la salud 51

La satisfacción del usuario se puede evaluar a nivel de sesión y a nivel de respuesta. El primero se ocupa del
sentimiento del usuario durante toda la sesión de conversación con el agente, mientras que el segundo evalúa la
idoneidad de las respuestas. La metodología más común es la utilización de puntuaciones medias de opinión, en las
que se pide a cada usuario que califique el parámetro específico que se está analizando con un valor de un intervalo
pequeño (por ejemplo, de 1 a 5) o una clasificación cualitativa equivalente (por ejemplo, ejemplo, excelente, bueno,
malo) [150]. En cuanto a la experiencia del usuario, existen cuestionarios de referencia que tienen como objetivo
evaluar diferentes métricas. Es decir, la Escala de Usabilidad del Sistema [151] (SUS), en la que los usuarios deben
expresar su nivel de acuerdo utilizando una escala simétrica de acuerdo­desacuerdo (escala Likert [152]) de 10
preguntas para obtener una puntuación de usabilidad numérica sobre 100. Esta La prueba evalúa el sistema
independientemente de si es un chatbot o no. A menudo se utiliza para software, sitios web, hardware o incluso
aplicaciones industriales. Además, esta métrica se puede comparar con valores de referencia para comprender la
usabilidad general del sistema [153]. Otra ventaja de este sistema es la fuerte correlación con el Net Promoting Score.
Esta última es una métrica desarrollada por Reichheld [154] que mide la lealtad del usuario. También se utiliza
ampliamente en escenarios empresariales para evaluar la calidad de las relaciones con los clientes de una empresa.

Un cuestionario similar es el Cuestionario de experiencia del usuario (UEQ) desarrollado por Laugwitz et al. [155].
Éste pretende evaluar sistemas interactivos según 6 escalas diferentes (Atractivo, Perspicuidad, Eficiencia,
Confiabilidad, Estimulación y Novedad), basadas en 26 pares de adjetivos con significados opuestos. Este cuestionario
también tiene resultados comparativos para una mayor comparación y análisis. Las pruebas de campo también se
pueden diseñar como pruebas A/B donde el objetivo es evaluar dos instancias diferentes del mismo sistema. Los dos
sistemas se distribuyen aleatoriamente entre los probadores para que evalúen las diferentes versiones de un mismo
componente.
De esta manera es posible decidir sobre una característica específica basándose en el juicio humano [156].

3.4 Chatbots relacionados con la nutrición y la salud

En cuanto a las aplicaciones reales de los chatbots en el campo de la salud, en los últimos 20 años se han desarrollado
una serie de enfoques. Esta sección presenta algunos de los trabajos relacionados con agentes conversacionales
relacionados con la nutrición y la salud.

Según la revisión realizada por Montenegro et al. [39], los agentes de asesoramiento y coaching son las dos
modalidades que guían el desarrollo de agentes conversacionales relacionados con la salud.
La función de este último es entrenar al usuario para que aprenda una nueva tarea o habilidad. Estos módulos se
utilizan principalmente para la formación de médicos o para crear entornos de pacientes simulados donde los
estudiantes, investigadores y médicos puedan aprender y conocer nuevos casos. Por otro lado, los agentes de
asesoramiento se utilizan en los casos en los que el compromiso social es necesario para animar al usuario a
modificar sus hábitos hacia otros más saludables [157]. Además, pueden utilizarse como herramientas de apoyo para
pacientes que padecen trastornos de salud emocional [158].

En cuanto a los objetivos para los que se crean los agentes, el mismo informe refiere que estos se pueden
dividir en seis tipos: (1) Asistencia, (2) Formación, (3) Específicos para personas mayores, (4) Diagnóstico, (5)
Educación y (6) Prevención. El primer tipo tiene como objetivo ayudar a los especialistas sanitarios y a los pacientes
en las tareas diarias. En el caso de pacientes se pueden utilizar para ayudar en terapéuticas o tratamientos que
requieran ejercicios cognitivos [159]. El segundo tipo de agentes suele ser utilizado por estudiantes o
Machine Translated by Google

52 Lo último

médicos para aprender nuevas habilidades o para proporcionar situaciones hipotéticas que permitan la práctica de
los conocimientos adquiridos. El modelo desarrollado por Rizzo at al. [160] simula un paciente que permite el
entrenamiento de habilidades clínicas, mediante un agente conversacional. El tercer tipo se centra en la interacción
con la población mayor. Es una población que, en la mayoría de las ocasiones, tiene baja inclinación a adoptar nuevas
tecnologías y trata de evitar cualquier contacto innecesario con ellas. Existen algunos agentes creados para ayudar a
las personas mayores en tareas necesarias como las relacionadas con la salud o las tareas del hogar. El trabajo
desarrollado por Tokunaga et al. [161] intentó crear un cuidador de personas mayores virtual inteligente. En este
trabajo, el autor concluyó que algunos de los desafíos de desarrollar un cuidador virtual para personas mayores son
la falta de personalización y habilidades de aprendizaje para adaptarse rápidamente a las necesidades del usuario.
El autor afirma que estos problemas provienen de la creación de agentes que no se adaptan específicamente a cada
usuario y carecen de las habilidades de aprendizaje necesarias para adaptarse a los diferentes contextos y
preferencias de los usuarios. Para abordar estas limitaciones, el autor implementa un conjunto de funciones que son
altamente personalizables y que pueden manejar información personal, creando así compromiso y aumentando la
confianza del usuario en el sistema. El sistema se adapta a las condiciones del usuario. Como ejemplo dado por los
autores, cuando se trata de un usuario con discapacidad auditiva, el sistema pronuncia las respuestas más lento y
más alto que la configuración predeterminada. Dicho esto, es importante ser consciente de las deficiencias y las
condiciones de salud del usuario para desarrollar un sistema que sea capaz de superar estas limitaciones y brindar
una experiencia superior.
Además, el trabajo realizado por Bickmore et al. [162] emplearon un agente conversacional como asesor virtual para
brindar apoyo y asesoramiento sobre actividad física de manera inteligente y personalizada, dirigido a la población de
edad avanzada. El agente actuó como consejero que ayudó a los usuarios a cambiar sus hábitos de ejercicio. Los
autores concluyeron que la utilización de un compañero de salud con el objetivo de motivar cambios de hábitos fue
una medida exitosa. Los resultados indicaron que el grupo de pacientes que utilizó el agente aumentó el nivel de
actividad física realizada, en comparación con el grupo de control que no utilizó el robot acompañante. El cuarto grupo
de agentes conversacionales centra sus esfuerzos en el diagnóstico ofreciendo una forma de predecir enfermedades
en función de comportamientos o síntomas. Estos agentes pueden estar presentes en un contexto clínico [115],
ayudando al médico a tomar decisiones más correctas o en el dispositivo móvil de un paciente [163] donde podría
rastrear y monitorear el comportamiento del usuario o servir como un diario para registrar los síntomas y su evolución. .
El último tipo se ocupa de la prevención de afecciones o enfermedades. Bajo este alcance, los agentes pueden
brindar asistencia en la decisión del usuario de una vía de prevención, o en trastornos cognitivos y emocionales como
la predicción y prevención de rasgos suicidas o conductas depresivas [164], [165].

Los chatbots complementarios suelen considerarse agentes de asesoramiento que intentan cambiar los hábitos
alimentarios de un usuario. Teniendo esto en cuenta, los investigadores frecuentemente implementan un agente
incorporado [115], [162], [166] que se cree que aumenta la confianza y el compromiso [167].

Más concretamente, el trabajo desarrollado por Fadhil [168] estudia los desafíos relacionados con un chatbot
como medio de recomendación de comida. El autor destaca la participación del usuario como un concepto central en
las aplicaciones que abordan hábitos de estilo de vida. Afirma que la humanidad del agente es una característica
crucial que debería mejorarse mucho. Esto se logra mediante los algoritmos generativos involucrados, tanto en la
síntesis del habla como en la generación de respuestas. Otra nota importante que refiere el autor es la personalidad
y coherencia en el fluir del diálogo. Dicho esto, resulta muy relevante realizar un seguimiento preciso del contexto del
diálogo, ya que los usuarios esperan que el agente recuerde la información indicada anteriormente, como el nombre,
el sexo o las opciones elegidas.
Una técnica que se utiliza en los chatbots disponibles comercialmente es la predicción o recomendación.
Machine Translated by Google

3.5 Resumen 53

ción de la siguiente solicitud del usuario. De esta manera el usuario es guiado a las tareas disponibles y no se
siente perdido al interactuar con el agente por primera vez. Además, los resultados obtenidos por Xu et al. [42]
concluyó que las aportaciones de los usuarios se pueden clasificar en dos clases: solicitudes emocionales y
solicitudes informativas. En las primeras, los usuarios expresan sus emociones, opiniones o actitudes respecto a
un tema determinado, mientras que en las segundas los usuarios requieren información para resolver un problema determinado.
El agente implementado debe poder identificar y abordar adecuadamente tanto las solicitudes como las solicitudes
fuera del dominio. Además, la encuesta realizada por Abd­alrazaq [169] informó que los chatbots basados en reglas
tuvieron una adopción más amplia en contextos de salud, ya que esta tecnología se considera más segura y
confiable, sin errores impredecibles, en comparación con los enfoques generativos para la creación de respuestas.
Sin embargo, estos chatbots suelen tener una tarea específica y sencilla y no son lo suficientemente flexibles para
mantener una conversación, lo que se considera un factor importante en la creación de participación.

El diseño del chatbot debe considerar todos los aspectos importantes a los que se hizo referencia a lo largo
de este apartado. Las funciones de personalización y creación de participación se consideran de suma importancia
en la aceptabilidad y utilización continua del sistema, lo cual es un requisito clave en agentes que se enfocan en
alterar los hábitos de los usuarios.

3.5 Resumen
Este capítulo describió los fundamentos de la construcción de chatbot que son cruciales para comprender la
articulación de los diversos componentes, a saber, la NLU y la Gestión del Diálogo, que son partes clave. Además,
mencionó y describió algunas herramientas disponibles que permiten el desarrollo, así como las razones detrás de
la selección de Rasa como el marco preferido.
También se destacaron las métricas de evaluación, concretamente la inclusión de un proceso de validación de
usuarios. Este capítulo finaliza describiendo algunos chatbots relacionados con la salud existentes y los desafíos
que pueden surgir a lo largo del diseño y desarrollo.

Dicho esto, el siguiente capítulo presenta el alcance y la estructura de este trabajo, detalla las condiciones
iniciales y delinea los casos de uso que abordará el agente conversacional desarrollado.
Machine Translated by Google

54 Lo último
Machine Translated by Google

Capítulo 4

Un chatbot para niños

En este capítulo se explicará en detalle el problema abordado incluyendo el alcance de la tesis, los
recursos disponibles, así como la herramienta seleccionada y su estructura.

4.1 Descripción del problema

Esta sección caracterizará el problema en términos de las tareas que deben realizarse, el posicionamiento
en el ecosistema Lifana y también los recursos disponibles y los enfoques adoptados para superar las
limitaciones. El objetivo de este trabajo es crear un chatbot que pueda reemplazar la interfaz gráfica de
usuario en la aplicación Lifana. Por tanto, el trabajo consiste en la construcción de un sistema que sea
capaz de codificar información no estructurada a partir de la entrada del usuario (comprensión del
lenguaje) y consultar al sistema de recomendación la acción/información solicitada. Además, se debe
contemplar el flujo inverso: la información solicitada, que estará en un formato estructurado, debe
decodificarse y combinarse con lenguaje natural para generar un mensaje de texto/hablado (ver Figura
4.1). Por lo tanto, cada acción posible en la aplicación debe asignarse a un comando (o varios comandos)
en el chatbot. El chatbot tendrá que atender comandos, de manera similar a lo que hacen los asistentes
inteligentes comunes (como Siri o Google Assistant). Por lo tanto, la atención se centrará en el desarrollo
de esas relaciones mando/acción.

55
Machine Translated by Google

56 Un chatbot para niños

Figura 4.1: Representación gráfica del alcance del trabajo de tesis. El agente establece la comunicación entre el
sistema de recomendación y el usuario.

4.1.1 API similares

La aplicación móvil Lifana funciona recuperando e insertando información en una base de datos a través de solicitudes
HTTP a una API REST. De esta manera, se puede acceder a la información a través de varios métodos diferentes,
como un sitio web, una aplicación móvil o una interfaz de programación. Este método sirve no solo como fuente de
información sino también como medio de comunicación entre el chatbot y el motor de recomendación y la base de
datos. La salida de las solicitudes suele estar en formato JSON, que se puede analizar para extraer la información
necesaria. La API se divide en dos partes principales que tienen acceso a diferentes servicios: la parte nutricionista y
la parte planificadora de comidas. La parte nutricionista se ocupa de la información nutricional que los investigadores
y nutricionistas de Fraunhofer recopilaron y procesaron para hacer posibles las recomendaciones. Estos servicios
son utilizados principalmente por nutricionistas para complementar el sistema y posibilitar las siguientes solicitudes:

• Información ampliada de recetas, incluyendo la posibilidad de consultar recetas por ingrediente, de­
Contenido nutricional adaptado y etiquetado según restricciones dietéticas.

• Información ampliada sobre ingredientes, que incluye la clasificación LanguaL entre otros
etiquetas y contenido nutricional detallado.

• Otras funciones relacionadas con la creación de recetas y estimación de necesidades nutricionales que no
serán consideradas en el chatbot, ya que están dirigidas a los nutricionistas que trabajan en el back­end de la
aplicación.

La parte del planificador de comidas está formada por los servicios dirigidos al propio usuario. Estos son los servicios
más utilizados por la aplicación móvil y se ocupan de:

• La planificación de comidas incluye la creación, visualización y eliminación de planes de alimentación para


franjas horarias y/o comidas específicas. También pertenecen a este grupo las tareas relacionadas con la
sustitución de comidas por alternativas y solicitudes de contenido nutricional por días, comidas o partes de una comida.
Machine Translated by Google

4.2 Datos disponibles 57

El contenido nutricional que es posible solicitar a través de estos servicios ha reducido la información, presentando
sólo los nutrientes más importantes (hidratos de carbono, proteínas, lípidos, sal,
contenido de azúcar, agua y energía). Además, sólo es posible abordar la escala
recetas y no la dosis básica de la receta. Las recetas se escalan según las preferencias del usuario.
necesidades nutricionales.

• Búsqueda de ingredientes por nombre; sin embargo, no es posible solicitar información nutricional.

• Gestión de información personal del usuario, como la adición o modificación de datos demográficos.
datos del usuario (peso, altura, nombre, nivel de actividad, entre otros) o restricciones dietéticas (vegetariano,
diabético o vegano).

• Servicios de calificación de recetas e ingredientes que otorgan una puntuación a cada ingrediente o receta. Este
La puntuación se considerará al crear nuevos planes.

• Funciones relacionadas con otros servicios externos como la integración con el nivel de actividad de Fitbit
estimador y con el carrito de compras. Estas funciones no serán abordadas en este trabajo.

Durante el desarrollo, la comprensión y prueba de la API se realizó a través del Post­


Plataforma man1 , que permitía visualización de respuestas y gestión de código.

4.2 Datos disponibles

Esta sección explora los recursos disponibles en términos de datos al comienzo del desarrollo.
mento.

4.2.1 Datos relacionados con los alimentos

Como se indicó anteriormente, la base de datos de recetas e ingredientes de Lifana contiene mucha información sobre
los ingredientes y las recetas. Esta información será útil para modelar las preferencias alimentarias.
Las recetas y los ingredientes están conectados en una base de datos relacional mediante un conjunto de claves primarias en
la forma de números de identificación (id's). Lo mismo ocurre con cada receta escalada (ver Apartado 2.2.1.1), cada comida
del plan y el plan en sí. Es posible navegar a través del
información utilizando estas claves primarias. Una estructura simplificada de la base de datos se presenta en
Figura 4.2. La mayoría de las solicitudes de API funcionan proporcionando la identificación de un componente determinado, ya sea en

la URL o en el cuerpo de la solicitud. Además, cada entidad tiene atributos. Por ejemplo, cada
ingrediente tiene sus valores nutricionales y facetas LanguaL que los describen según un conjunto de
características diferentes, tal y como se menciona en el apartado 2.2.2. Además, cada receta tiene información sobre su
idoneidad al considerar restricciones dietéticas. El hecho de que cada ingrediente esté etiquetado
Las facetas de LanguaL son cruciales para un modelado de preferencias adecuado.

1https://www.postman.com/
Machine Translated by Google

58 Un chatbot para niños

Figura 4.2: Esquema simplificado de la base de datos que incluye solo los elementos principales del plan y sus
relaciones

También es fundamental comprender la estructura de los planes de alimentación generados por el motor de
recomendaciones. Cada plan de alimentación tiene una identificación de semana, ya que el objetivo principal del
motor de recomendaciones es crear planes para períodos de tiempo semanales (el objetivo es equilibrar tanto el
contenido nutricional como el tipo de comidas a lo largo de una semana). No obstante, es posible planificar un
número arbitrario de días para una semana. El segundo y tercer nivel de la estructura son el día y la comida, respectivamente.
El día corresponde al día de la semana y la comida corresponde a las posibles comidas de cada día (desayuno,
merienda, almuerzo, merienda, cena y sobremesa). Cada comida se compone entonces de hasta tres partes de
comida, donde una de ellas es siempre el plato principal y las demás pueden ser la bebida, el postre, la fruta o la
sopa, dependiendo de la comida que se esté considerando. En cuanto a las partes de la comida, éstas corresponden
a las recetas escalonadas antes mencionadas que se componen de ingredientes. Esta jerarquía es muy importante
para el desarrollo de los casos de uso en el agente.

4.2.2 Datos iniciales de PNL

El desafío más difícil de este trabajo fue la falta de un conjunto de datos adecuado para las tareas de NLU, es decir,
el reconocimiento de entidades y la clasificación de intenciones. Teniendo en cuenta que el objetivo es crear un
agente inteligente que comprenda una entrada de texto y luego haga una predicción sobre la siguiente acción a
realizar, los datos serán necesarios como ocurre con toda aplicación de IA. Sin embargo, debido al dominio y
alcance muy cerrado y específico de este chatbot, no había un conjunto de datos disponible para la parte NLU con
intenciones o incluso entidades anotadas, ni para la gestión del diálogo, como conversaciones grabadas entre un
nutricionista y un paciente. El mayor inconveniente de no contar con un conjunto de datos adecuado es la falta de
validación en los métodos que se aplican para resolver las diferentes tareas. El
Machine Translated by Google

4.3 Marco Rasa 59

El enfoque utilizado para superar este problema y poner en marcha el chatbot se explicará con más detalle en la
Sección 5.1.1.

4.3 Marco Rasa

Teniendo en cuenta los recursos antes mencionados y el hecho de que este framework es gratuito y de código
abierto, el framework seleccionado para la construcción del chatbot fue Rasa. Como se menciona en la sección
3.2.2.4, este marco utiliza un enfoque similar al Dialogflow de Google. Se basa en intenciones y presenta una forma
de aliviar la carga de trabajo en términos de combinar varios módulos de PNL para diferentes tareas de procesamiento
del lenguaje y permite un esfuerzo enfocado en hacer que el agente sea lo más natural y atractivo posible. En las
siguientes secciones se explicará la estructura y funcionamiento de Rasa. Rasa aplica un enfoque separado en el
que la gestión de NLU y Diálogo se consideran de forma independiente. Por lo tanto, se puede dividir en dos partes
principales: Rasa NLU, que se ocupa del componente de comprensión del lenguaje natural, y Rasa Core, que se
ocupa de la gestión del diálogo.

4.3.1 Rasa NLU

Como su nombre lo indica, esta parte del marco Rasa presenta las herramientas necesarias para superar las tareas
de comprensión del lenguaje natural, es decir, la identificación de intenciones y el reconocimiento de entidades.

4.3.1.1 Formato de datos

Normalmente, cuando se desarrolla un agente de IA, se necesitan datos para entrenar los modelos, aunque hay
agentes que no los requieren (por ejemplo, aprendizaje por refuerzo). En este caso, Rasa NLU guarda todos los
datos de texto en un archivo Markdown2, que es una sintaxis de formato de texto sin formato fácil de leer que se
puede convertir a otros formatos como JSON. Este archivo contiene cada expresión agrupada por cada intención
diferente y con las entidades anotadas e identificadas. La Figura 4.3 muestra un ejemplo del formato de datos de
entrenamiento utilizado por Rasa.

2https://daringfireball.net/projects/markdown/
Machine Translated by Google

60 Un chatbot para niños

Figura 4.3: Ejemplo ilustrativo de algunas muestras para tres propósitos diferentes. Tenga en cuenta que las entidades se
anotan utilizando "[]", con el nombre de la entidad correspondiente y el sinónimo entre corchetes.

También es posible enumerar en este archivo otras fuentes de datos que complementan las tareas de NLU, como
expresiones regulares (regex), sinónimos y tablas de búsqueda. Estos últimos son archivos de texto con una lista de
ejemplos para cada entidad, que el modelo de clasificación utiliza como característica para aumentar las tasas de
reconocimiento de entidades.

4.3.1.2 Canalización de PNL

Para obtener la intención y las entidades presentes en cada enunciado, es necesario procesar el texto utilizando técnicas
de procesamiento del lenguaje natural. En Rasa, esto se puede definir como un conjunto de técnicas que se aplican al
texto. La canalización consta de varios componentes diferentes que generalmente requieren un tipo de datos específico y
generan uno diferente. En este caso, hay cuatro tipos principales de datos que este marco utiliza para clasificar en última
instancia las expresiones: texto, tokens, características y entidades. Por ejemplo, el primer componente de la canalización
suele ser una función tokenizadora que recibe texto y genera tokens. Los extractores de entidades generalmente reciben
tokens como entradas y luego generan las entidades reconocidas, utilizando también características extraídas de otros
componentes. Una tubería se compone comúnmente de tres partes principales:

1. Tokenización : estos componentes a menudo reciben texto sin formato como entrada y, después de procesarlo,
generan una lista de tokens que pueden ser palabras o frases (n­gramas). Rasa tiene soporte predeterminado para
un conjunto de algoritmos de tokenización.

2. Caracterización : como su nombre lo indica, estos algoritmos extraen características a nivel de token que se pueden
usar en los siguientes componentes, los que se ocupan del proceso de clasificación.
Los caracterizadores se pueden dividir en dos grupos según el tipo de características que producen: características
densas o características dispersas. Un buen ejemplo de característica dispersa es el vector BoW, ya que le faltan
muchos valores (para las palabras del vocabulario que no están presentes en la oración). Las características
densas pueden ser incrustaciones de palabras o vectores a nivel de oración.
Machine Translated by Google

4.3 Marco Rasa 61

3. Clasificación de intención/reconocimiento de entidad : utilizando las funciones extraídas anteriormente, estos


componentes pueden clasificar la intención de la expresión y extraer sus entidades. Una vez realizada esta
tarea, la información no estructurada en la entrada de texto se ha transformado en datos estructurados que
se pueden usar para determinar la siguiente acción del bot o hacer que el bot los extraiga.

información de una base de conocimientos.

Este enfoque hace que el marco sea extremadamente flexible y modular. Sin embargo, el orden de los componentes
es muy importante para un correcto funcionamiento. Los componentes están codificados usando Python y es
posible seleccionarlos de un conjunto de predefinidos o crear otros personalizados usando bibliotecas externas
como NLTK o spaCy. Rasa también ha incorporado soporte para tokenizadores y características de modelos de
lenguaje específicos, como BERT y sus variaciones. En cuanto a los modelos de clasificación utilizados en el
último grupo de componentes descrito anteriormente, Rasa presenta un conjunto de opciones plug­and­play que
se pueden aplicar y ajustar fácilmente para cada caso. Estas opciones van desde un modelo de clasificación de
intenciones basado en BoW y campos aleatorios condicionales (CRF) para el reconocimiento de entidades, hasta
modelos de clasificación basados en transformadores de modelos de lenguaje para intenciones y entidades.
Además, los desarrolladores de Rasa han creado una arquitectura de clasificación basada en transformadores
que puede realizar conjuntamente la identificación de intenciones y el reconocimiento de entidades, lo cual vale la pena destacar.

• Transformador de doble intención y entidad

Esta arquitectura se basa en el trabajo de Goo et al. [170], que afirman que abordar estas dos tareas de
forma independiente puede aumentar la propagación de errores y, por lo tanto, una arquitectura multitarea
individual debería ver su rendimiento mejorado a partir de la mejora mutua entre las dos tareas. El
clasificador Dual Intent and Entity Transformer (DIET) es una arquitectura modular que puede aceptar
varios tipos de incrustaciones de palabras como entradas y coincide con las arquitecturas de última
generación actuales en precisión, con la principal ventaja de ser más rápido tanto en el entrenamiento como
en el entrenamiento. y tiempo de inferencia que los modelos de lenguaje grandes como BERT [171]. Este
último factor es crucial en los agentes conversacionales, ya que el tiempo de respuesta es un factor muy importante a considera
En estos casos es necesario llegar a un compromiso entre rendimiento y sincronización.
Sin embargo, DIET puede ofrecer ambas cosas, ya que supera el ajuste fino de BERT en conjuntos de
datos NLU de referencia como GLUE [172] y SuperGLUE [173]. Todas las partes de esta arquitectura
pueden ser habilitadas o deshabilitadas, otorgando el referido esquema modular. Funciona recibiendo la
lista de tokens ordenados extraídos de componentes anteriores y codificándolos utilizando algún tipo de
modelo previamente entrenado: ya sea incrustaciones de palabras previamente entrenadas (por ejemplo,
GloVe o Word2Vec) o modelos de lenguaje previamente entrenados (por ejemplo, BERT [90 ] , ELMo [174]
o GPT [175]). Siguiendo la metodología adoptada por Devlin et al. en BERT [90], se agrega un token de
clasificación __CLS__ al final de cada secuencia. Este token otorga información contextual adicional a los
vectores de palabras. Luego, la arquitectura combina estos vectores obtenidos en el paso anterior con
características dispersas extraídas de cada token, concatenándolas. Las características concatenadas
pasan a través de una capa de alimentación directa completamente conectada para igualar el tamaño de la
capa transformadora posterior. Los pesos de la capa de avance se comparten entre cada capa. El vector
que sale de la capa del transformador luego pasa a través de una capa de etiquetado CRF para predecir
etiquetas de entidad para cada token: la parte de Reconocimiento de entidad nombrada. Con respecto a la
clasificación de intenciones, la salida de la capa transformadora para el token __CLS__ está incrustada en
un espacio vectorial que también incluye los vectores de cada etiqueta de intención. Luego, el modelo
intenta maximizar la similitud entre la etiqueta correcta y
Machine Translated by Google

62 Un chatbot para niños

el token y minimizar la similitud entre las etiquetas incorrectas y el token, utilizando la pérdida del producto
escalar. Esta es la métrica utilizada para clasificar las intenciones en el momento de la inferencia. Además,
esta arquitectura también utiliza un enfoque de token enmascarado durante el entrenamiento.
Aproximadamente el 15% de los tokens en una oración se sustituyen por el token __MASK__, que luego
está sujeto a la misma ruta que todos los demás tokens. Luego, el modelo incorpora tanto el token de
máscara como el token que se desenmascaró originalmente y calcula una pérdida similar a la utilizada en
la clasificación de intenciones (pérdida de producto escalar). Según los autores [171] y basándose en el
trabajo de Yoshihashi et al. [176], este método de agregar un objetivo de reconstrucción enmascarado en
el entrenamiento serviría no solo como factor de regularización sino también como una forma de hacer
que el modelo aprenda características más generales del texto, en lugar de capturar solo características
discriminativas para mejorar las puntuaciones de clasificación. El modelo se entrena con el objetivo de
reducir una función de pérdida combinada que suma los tres procesos explicados anteriormente:
Reconocimiento de Entidades Nombradas, Clasificación de Intenciones y Reconstrucción Enmascarada.
Como enfoque modular, cualquiera de esas pérdidas puede desactivarse. Además, todos los
hiperparámetros de este modelo se pueden ajustar para aumentar el rendimiento. La arquitectura se puede ver en la Figura 4.4.

Figura 4.4: Arquitectura del modelo Dual Intent y Entity Transformer. El modelo fue desarrollado por Bunk et al.
y tiene como objetivo ofrecer un rendimiento de última generación manteniendo al mismo tiempo un tiempo de
inferencia reducido [171]

También existe la posibilidad de utilizar modelos personalizados basados en las características que se
extrajeron de los otros componentes, como redes neuronales recurrentes (por ejemplo, LSTM) que pueden
funcionar bien utilizando incrustaciones de palabras. Rasa framework utiliza un archivo de configuración que
enumera qué componentes deben usarse y sus parámetros y también su orden.
Machine Translated by Google

4.3 Marco Rasa 63

4.3.2 Sentido del Núcleo

El marco Rasa también tiene una parte dedicada a la Gestión del Diálogo con varias funciones, que van desde
acciones personalizables hasta la selección de respuestas. Esta parte se encarga igualmente del estado de la
memoria del chatbot y de su conexión a fuentes de datos externas. Controla todo el conocimiento del dominio,
permitiendo la construcción de un agente más consciente y perspicaz. De manera similar a la parte NLU, también
requiere datos de entrenamiento. Además de esto, la predicción de la próxima acción se basa en un conjunto de
políticas que crean un modelo de selección híbrido, que permite flexibilidad y un control ampliado sobre el resultado.
En las siguientes secciones se explorarán todos estos elementos para lograr una comprensión integral del marco.

4.3.2.1 Memoria del chatbot

Para mantener una conversación coherente a lo largo de varios turnos, el agente debe mantener un registro de
algunas de las entidades que se están reconociendo, así como de las intenciones pasadas. Es crucial que el bot
memorice cierta información para que la conversación tenga más sentido y parezca más

humano. Para ello, los agentes de Rasa cuentan con una clase tracker que almacena toda esta información durante
toda la conversación. Es decir, las entidades pueden almacenarse en espacios a los que pueden acceder las
acciones personalizadas o usarse como funciones para predecir la siguiente respuesta. Estos espacios se pueden
configurar para que se completen automáticamente si el nombre del espacio coincide exactamente con un tipo de
entidad. Por ejemplo, en el caso de este trabajo, el agente fue entrenado para reconocer la comida de la entidad
que, después de la extracción, puede almacenarse en la ranura del mismo nombre, sin problemas. Sin embargo,
las entidades que fueron reconocidas durante los turnos de conversación y no se guardaron en ningún espacio
también se pueden usar en las acciones personalizadas navegando por la información del rastreador, aunque no se
usan para la predicción. Los slots también son importantes para dar información personal sobre el usuario. A modo
de ilustración, el agente se puede programar para enviar un mensaje de bienvenida que se puede personalizar
utilizando información del usuario como el nombre o el sexo, consultado desde una base de datos o API y guardado
en las ranuras. De esta forma el usuario no tiene que presentarse cada vez.

4.3.2.2 Formato de datos

En el caso de Dialogue Management, el objetivo es predecir el siguiente paso de la conversación en función del
enunciado que ha introducido el usuario. Por tanto, tiene sentido que los datos de entrenamiento correspondan a un
conjunto de conversaciones guardadas en forma de una secuencia de intercambios entre el usuario y el agente.
Este formato incluye información sobre las intenciones identificadas y las respuestas previstas por el bot, así como
todos los espacios que se llenaron durante cada turno de conversación. Básicamente, consiste en una lista de
caminos de ejemplo que el agente puede tomar: historias. Al igual que con los datos de entrenamiento de NLU, las
historias se almacenan en un archivo Markdown para facilitar su lectura y escritura. La Figura 4.5 ilustra el formato
de datos utilizado en este caso. Es posible notar la intención del usuario y las acciones y respuestas desencadenadas
(sangría diferente).
Machine Translated by Google

64 Un chatbot para niños

Figura 4.5: Un ejemplo de historia que muestra las comidas planificadas para un tiempo determinado. Guarda todas las
ranuras configuradas en ese momento, así como la intención y las entidades extraídas por el módulo NLU y las respuestas
de los bots. Marcadas con "*" son las intenciones del usuario, mientras que las líneas sangradas que comienzan con "­"
indican las acciones o espacios de los bots.

4.3.2.3 Predicción de respuesta

La gestión del diálogo en Rasa se basa en un conjunto de políticas que controlan el proceso de predicción.
Es posible incluir múltiples políticas diferentes que se articulen según una jerarquía. Hay 5 posibles políticas predefinidas
para elegir en Rasa Core:

• Política dura

Como su nombre lo indica, esta política incluye una red neuronal recurrente implementada en Keras que entrena
con los datos de las historias y predice la siguiente acción. Los modelos recurrentes han sido la elección habitual
cuando se trata de datos secuenciales como agentes de IA conversacionales de dominio abierto [177] o cerrado
[178] , debido a su capacidad de estado de memoria. Estos modelos se basan en una arquitectura LSTM; sin
embargo, es posible anular el modelo por uno personalizado. El modelo predeterminado utiliza una capa softmax al
final para calcular la probabilidad de cada clase.
Además, la función de pérdida es de entropía cruzada categórica e intenta maximizar el valor de precisión, apropiado
para un problema de clasificación de clases múltiples. El hecho de que las conversaciones puedan considerarse
como una secuencia de estructuras de datos ordenadas justifica la necesidad del módulo recurrente en la
arquitectura. De esta manera, se tienen en cuenta los giros de conversación que ocurrieron en diferentes momentos.
Las historias de los datos de entrenamiento se codifican en incrustaciones durante el entrenamiento. De esta
manera, el modelo puede recibir una nueva expresión del usuario y, a través de un codificador entrenado, predecir
la siguiente acción.

• Política de diálogo sobre integración de transformadores (TED)


Machine Translated by Google

4.3 Marco Rasa sesenta y cinco

Según el trabajo de Vlasov et al. [179], la aplicación de arquitecturas de autoatención permite al modelo seleccionar los giros

de conversación que deben considerarse para la predicción, en lugar de considerarlos todos relevantes a priori. Por tanto,

este tipo de modelo es más adecuado para manejar conversaciones de varios turnos. De hecho, los RNN deberían poder

predecir con precisión todos los escenarios posibles si se dispone de un corpus adecuado y lo suficientemente grande para

el entrenamiento [179]. Vlasov et al. También trabajó en la adaptación de la arquitectura RNN para superar un aspecto

intrínseco de la misma que no es deseado en el modelado de diálogo. El hecho de que los RNN consideren la secuencia

completa de elementos de datos de entrada para generar la codificación no ayuda a que el modelo se generalice bien, a

menos que la arquitectura sea lo suficientemente compleja y tenga muchos datos disponibles para aprender qué es

realmente importante y qué olvidar. Sin embargo, este no es el caso de la mayoría de los agentes de IA conversacionales

que se están desarrollando, ya que se centran en tareas u objetivos muy específicos y, por tanto, no hay muchos datos

disponibles. De manera idéntica a la canalización de procesamiento de NLU para la clasificación, los desarrolladores de

Rasa [179] crearon una arquitectura basada en transformadores que es capaz de realizar gestión de diálogo, utilizando

incrustaciones: política de diálogo de incrustación de transformadores. Esta arquitectura se basa en el trabajo de Vlasov et

al. [180], donde la clasificación se basa en la similitud de las incrustaciones. La codificación y selección de giros importantes

la realiza el transformador que recibe como entrada los datos de giros anteriores, la intención del usuario y las entidades y

los slots que se guardaron. Estos datos se codifican en primer lugar como vectores binarios que indican qué intención o

entidades estaban presentes en el enunciado y qué espacios se llenan en ese momento (codificación one­hot). Durante el

entrenamiento, estos vectores pasan a través del transformador y luego a través de una capa de incrustación que también

incorpora todas las acciones posibles que el agente puede ejecutar. Luego, se calcula la similitud del producto escalar y es

la métrica que impulsa el proceso de aprendizaje. Además, esta estructura es capaz de ignorar mejor los giros cortos de

conversación que se desvían del objetivo que las arquitecturas recurrentes. El funcionamiento de la arquitectura y su

estructura se puede encontrar en la Figura 4.6


Machine Translated by Google

66 Un chatbot para niños

Figura 4.6: Arquitectura de política de diálogo de incorporación de transformadores y procesamiento de datos a lo largo de
dos turnos de conversación [179]

• Política de mapeo

Además, el marco Rasa permite una predicción estricta de acciones con la Política de mapeo. Esto garantiza que una
determinada intención siempre desencadene una acción o respuesta determinada.
Esto puede resultar útil para intenciones que en la mayoría de los casos esperan una respuesta predefinida, como un
saludo o una charla.

• Política de memorización

Esta política memoriza cada historia en el archivo de datos e intenta reproducir su ruta si la conversación actual
coincide con una historia grabada. Este método puede programarse para olvidar algunos giros de la historia y aun así
intentar predecir el siguiente paso basándose en rutas memorizadas.
Esto es útil en casos simples donde se supone que el usuario no tiene mucha libertad o las conversaciones solo
pueden seguir un número determinado de caminos.

• Política alternativa

Siempre que el agente no está seguro de la próxima predicción, la política Fallback se activa y realiza algún tipo de
acción que se puede personalizar. Esto sucede cuando ocurre uno de estos tres eventos: la confianza de identificación
de intención está por debajo del parámetro de umbral NLU; la intención más alta y la segunda más alta predichas
tienen una diferencia en confianza que es menor que el umbral de ambigüedad; o ninguna de las políticas es capaz
de predecir la siguiente acción con un nivel de confianza superior al umbral básico.

Cada umbral mencionado se puede cambiar y ajustar manualmente en el archivo de configuración.


Machine Translated by Google

4.3 Marco Rasa 67

Por lo general, la acción alternativa revierte la expresión del usuario para que no se tenga en cuenta en la conversación
para la predicción del siguiente turno.

• Política de formulario

En caso de que el agente tenga que recopilar un grupo de entidades, por ejemplo información personal para la creación
de perfiles, Rasa tiene una herramienta que maneja este escenario muy bien y de manera sencilla. Esto requiere que
se cree una acción de formulario en el archivo de acciones (consultado en la Sección 4.3.2.4). Esta acción debe aceptar
una plantilla que pueda recorrer los espacios requeridos y pedirle secuencialmente al usuario que los llene. El formulario
permite la validación de la información insertada y también una forma de volver a solicitar automáticamente al usuario
una información correcta.
Esto es útil para recopilar información para una llamada API o una búsqueda en una base de datos, por ejemplo.

Todas estas políticas se pueden activar en el agente, aunque sus predicciones se clasificarán según el siguiente orden,
que es el predeterminado determinado por Rasa, donde los números más pequeños tienen mayor prioridad:

1. Política de formularios

2. Política alternativa

3. Política de memorización

4. Política de mapeo

5. Política TED y Política Keras

Tanto el orden como cada política se pueden ajustar (cambiar los hiperparámetros) o anularlos por uno personalizado. Las
políticas deben enumerarse en el archivo de configuración junto con los parámetros correspondientes.

4.3.2.4 Respuestas y acciones personalizadas

Se espera que un agente de IA conversacional responda con mensajes de texto/voz. De hecho, muchas de las posibles
respuestas pueden ser puramente textuales. Las posibles respuestas deben almacenarse en archivos de dominio que recopilen
todo el conocimiento inicial del bot en términos de posibles intenciones, entidades, espacios, acciones y respuestas. Las
respuestas de texto deben enumerarse y agruparse para que el bot pueda elegir una entre las posibilidades. Se puede agregar
al pipeline un modelo NLG (Natural Language Generation) para que las respuestas se generen en un servicio externo que se
conecte a Rasa. Esta opción no será explorada en este trabajo. Además, las respuestas se pueden seleccionar de un conjunto
de posibilidades, ya sea al azar o basándose en un modelo de recuperación similar a la DIETA. El último método requiere
datos NLU extendidos y más detallados para crear grupos más pequeños de intenciones dentro de una gran clase de intención.
Por ejemplo, cuando se trata de diferentes tipos de charlas (por ejemplo, preguntas sobre el tiempo). Al separar las intenciones
de charla en dos subclases, se selecciona la respuesta de charla apropiada de acuerdo con la subclase de la intención. Esta
característica no se explorará en este trabajo, ya que el objetivo principal es manejar datos relacionados con la nutrición. No
obstante, como agente orientado a objetivos, debe tener la capacidad de realizar acciones más complejas que meras
respuestas textuales. Estas acciones funcionan exactamente igual que las respuestas de texto al considerar el diálogo.
Machine Translated by Google

68 Un chatbot para niños

gestión. Se consideran una posible respuesta al usuario y se puede predecir su ejecución.


A la luz de esto, es posible construir una colección de funciones codificadas en Python que aumenten las
funcionalidades del agente. Las acciones se guardan en un archivo al que el chatbot puede acceder y ejecutar.
Están en el formato de clases de Python que incluyen un método run que ejecuta el código que hay dentro de él,
de la misma forma que una función. Sin embargo, hay una característica distintiva: estas acciones deben devolver
una lista de eventos Rasa. Los siguientes elementos explican los eventos más importantes utilizados en este trabajo:

• Configuración de espacios: el resultado de la acción puede llenar un espacio con una entidad extraída de la
entrada del usuario o de una fuente externa, como una base de datos o una solicitud a una API. La ranura
que se establece constituye una característica que se puede utilizar para predecir el siguiente paso.

• Acción de seguimiento: también se permite establecer la siguiente acción activándola desde dentro de la
acción. Esto es muy valioso a la hora de controlar el flujo de la conversación. Por ejemplo, luego de una
solicitud a una API y según la respuesta existe la posibilidad de desencadenar diferentes respuestas por
parte del bot.

Durante la ejecución de la acción, se puede ordenar al chatbot que envíe algún tipo de mensaje al usuario,
aunque, a menos que estos mensajes sean activados por el evento de Acción de seguimiento, no se considerarán
para el modelado de diálogo. En cuanto al formato de las respuestas, pueden ir desde puro texto hasta imágenes,
incluyendo también botones. Estos últimos son una buena forma de presentar información estructurada y controlar
el flujo de la conversación, ya que cada botón tiene una carga útil personalizable que puede corresponder
directamente a una intención con entidades registradas.

4.3.3 Funciones adicionales

Otro conjunto de características que mejora la experiencia de uso de Rasa son el modo de aprendizaje interactivo
y la plataforma de implementación patentada que permite el acceso público al chatbot.

4.3.3.1 Aprendizaje interactivo

Cuando se trata de un entorno de bajos recursos, es importante tener una forma sencilla y eficiente de generar
datos, preferiblemente anotados. El modo de aprendizaje interactivo de Rasa permite exactamente este proceso
tanto para datos de NLU como para historias para el modelado de diálogos, aunque su impacto es mayor para la
creación de historias. Este modo ejecuta una versión del chatbot y en cada turno pregunta al desarrollador si la
intención identificada, las entidades reconocidas y la próxima acción prevista son correctas.
De esta manera, es posible corregir algunos errores que comete el chatbot al depurar las acciones y crear nuevos
datos. De hecho, la conversación que estaba manteniendo el bot puede guardarse en los archivos correspondientes.
Las expresiones anotadas se guardan en el archivo de datos de NLU y los turnos y espacios de la conversación se
guardan en el archivo de historias.
Machine Translated by Google

4.4 Especificación de casos de uso 69

4.3.3.2 Sentir X

Como se mencionó anteriormente, Rasa también tiene una plataforma de implementación para el chatbot,
aunque se puede implementar en varias plataformas como Facebook Messenger3 , Slack4 o incluso la
plataforma móvil Telegram5 . A pesar de ello, su plataforma, Rasa X, tiene algunas ventajas desde el punto de
vista del desarrollo. Se conecta a repositorios remotos como Github6 y actualiza fácilmente el código que se
cambió localmente, después de enviarlo al repositorio. Además, todas las funciones conversacionales que se
pueden incluir en el chatbot (como los botones de respuesta de imágenes) están optimizadas para funcionar en
esa plataforma. Además, existe la posibilidad de enviar una URL de usuario invitado a un evaluador cuya
conversación con el agente luego se guarda y se puede anotar y guardar aún más para capacitación, utilizando
la interfaz Rasa X. Otra gran ventaja es la posibilidad de realizar un aprendizaje interactivo con una interfaz
gráfica de usuario que facilita el proceso (en lugar de utilizar la línea de comandos).

4.4 Especificación de casos de uso

Posteriormente a la selección del framework y análisis de los recursos disponibles en términos de datos y API,
era importante definir y seleccionar los casos de uso del producto final y en consecuencia las tareas que debería
ser capaz de ejecutar. Luego de un extenso análisis de las funciones habilitadas por la App Lifana y teniendo
en mente un paradigma conversacional, se seleccionaron las siguientes tareas como adecuadas. Algunas de
ellas no son posibles en la App, o requieren de un esfuerzo excesivo, aunque se vuelven más sencillas en el
chatbot. Los casos de uso se resumen en la Tabla 4.1 y se explican en las siguientes secciones. Estos casos
de uso corresponden a una definición conceptual, mientras que la concreción práctica se explora en la Sección
5.4.1 .

4.4.1 Acciones del plan de alimentación

Existe un conjunto de acciones posibles respecto al manejo del plan de alimentación que incluye las siguientes
opciones:

UC.1 Creación de plan de alimentación

Esta es una de las tareas principales de la aplicación y debe asignarse directamente al agente
conversacional. El usuario debería poder generar un plan de alimentación para un período de tiempo y/o
comida determinados. La hora y la comida se extraerán de la expresión del usuario o de espacios
grabados. En la App la creación de planes es para un día a la vez o para una semana. Además, la
creación de comidas específicas requiere que el usuario desactive todas las demás comidas en la
configuración de la App, proceda a la creación del plan y las reactive nuevamente.
Este proceso se facilitará mediante el uso del chatbot. Debería poder crear comidas para varios días
individuales a la vez, como el fin de semana.

3https://www.messenger.com/
4https://slack.com/
5https://web.telegram.org/
6https://github.com/
Machine Translated by Google

70 Un chatbot para niños

UC.2 Eliminación del plan de alimentación

El plan de alimentación también se puede eliminar después de su creación. En este caso, la API solo admite la eliminación de

una semana completa, por lo que el usuario solo podrá eliminar el plan de toda la semana también. Esta no es una función

muy utilizada, el foco debería estar en otras acciones más complejas e importantes.

UC.3 Visualización del plan de alimentación

Esta es probablemente la tarea más compleja que debe realizar el chatbot. El mayor nivel de complejidad viene aportado por

la posibilidad de ver cualquier elemento del plan de alimentación: días completos, las comidas de un día, las partes de una

comida determinada o incluso combinaciones de estos elementos, como ver todos los postres de dos días específicos de la

semana. La ventaja de la conversación es que permite la posibilidad de realizar solicitudes con un mayor nivel de especificidad,

en comparación con la estructura de navegación fija y secuencial de la App móvil. Además, la organización de dicha salida

debe seleccionarse cuidadosamente para que se mantenga la estructura de la jerarquía y el usuario pueda leer fácilmente

todas las opciones. Además, debe permitir la navegación dentro de cada categoría si se necesitan más detalles.

UC.4 Visualización de comidas alternativas

Una vez creado el plan, el usuario puede ver comidas alternativas si esa comida no es adecuada o si desea sustituirla.

UC.5 Sustitución de comidas

Esta acción ocurre siempre después de la descrita anteriormente y, como su nombre lo indica, el usuario puede sustituir la

comida original del plan por una de las alternativas proporcionadas por el caso de uso anterior.

4.4.2 Acciones de contenido nutricional

Verificar la información nutricional sobre los elementos del plan también es un caso de uso común. El usuario podrá solicitar ver la

información sobre cada uno de los elementos presentes en el plan, desde el día hasta la parte de comidas, incluidas las comidas.

Además, el usuario puede querer comprobar el contenido nutricional de un determinado ingrediente solicitándolo de un plan de

alimentación o buscándolo de forma genérica. Por lo tanto las acciones son las siguientes:

UC.6 Comprobar el contenido nutricional de un día

UC.7 Comprobar el contenido nutricional de una comida

UC.8 Comprobar el contenido nutricional de una parte de la comida

UC.9 Comprobar el contenido nutricional de un ingrediente

Éste se puede dividir en solicitar el contenido nutricional de un ingrediente que está presente en una receta y al que se está

accediendo en ese momento o solicitar la información genérica sobre un ingrediente que puede tener múltiples valores en la

base de datos (por ejemplo, buscar queso). genéricamente, en lugar de un determinado tipo de queso). Esta última tarea

requiere
Machine Translated by Google

4.4 Especificación de casos de uso 71

un algoritmo para hacer coincidir la entidad (ingrediente) que se pronunció y sus valores en la base de datos.
Este algoritmo se abordará en la Sección 5.3. Esta acción no es posible en la Aplicación; sin embargo tiene
sentido implementarlo en el chatbot, ya que la información está disponible.

4.4.3 Acciones de preferencia alimentaria

Esta también es una tarea muy importante que debe realizar el chatbot. En la aplicación, las preferencias del usuario
se modelan mediante una calificación numérica (de 1 a 5) y controlan la frecuencia de veces que una determinada
receta o ingrediente aparece en los planes. Sin embargo, el modelado de preferencias a través de la conversación
normalmente no se realiza utilizando una calificación numérica. Más bien, se puede hacer utilizando verbos o
adjetivos con diferentes niveles de intensidad. Este desafío se abordará en la Sección 5.2. Dado que es posible
calificar tanto ingredientes como recetas, se van a considerar las siguientes acciones:

UC.10 Expresar preferencia hacia una receta

En este caso, el usuario puede expresar su preferencia hacia una parte de la comida después de comprobarla
haciendo referencia al nombre de la receta o a la parte de la comida correspondiente.

UC.11 Expresar preferencia hacia un ingrediente

Esta acción puede referirse a un ingrediente que forma parte de una comida o, de manera similar a la acción
del contenido nutricional, hacia un ingrediente genérico. Esto último implica una búsqueda en la base de datos
de las coincidencias correctas.

4.4.4 Acciones relacionadas con el usuario

También hay una parte de la App que se ocupa del perfil del usuario. Hay varios detalles que el usuario debe ingresar
para tener una correcta experiencia de planificación de comidas. El chatbot debe poder recopilar esos datos
personales, presentarlos al usuario o cambiarlos más tarde. Además, esta información es importante para una
experiencia personalizada en la que el bot se refiere a los usuarios por su nombre, por ejemplo. Por lo tanto, se
considerarán las siguientes acciones:

UC.12 Recopilación de información personal

Al igual que con la aplicación, el usuario es guiado a través de una serie de preguntas para completar la
información personal requerida para la generación del plan adecuado. Así será el proceso de bienvenida del
bot a nuevos usuarios

UC.13 Visualización de Información Personal

El usuario puede solicitar ver qué información sabe el robot sobre él o ella.

UC.14 Alteración de Información Personal

Es posible que sea necesario actualizar los datos del usuario para que sean correctos. Por ejemplo, el peso o
las restricciones dietéticas pueden cambiar con el tiempo.
Machine Translated by Google

72 Un chatbot para niños

Tabla 4.1: Casos de uso delineados para integrar en el chatbot

grupo de casos de uso Casos de uso Descripción


Generar un plan de alimentación para un conjunto
UC.1 Creación de plan de alimentación
determinado de parámetros.
UC.2 Eliminación del plan de comidas Eliminación del plan para una semana determinada UC.3
Acciones del plan de alimentación
Visualización del plan
Ver el plan creado previamente
de comidas UC.4
Visualización de comidas alternativas Ver una lista de alternativas para una comida determinada

Seleccionar y sustituir una comida del plan.


UC.5 Sustitución de comidas

Consultar el valor nutricional de un día, una comida,


UC.6 ­ UC.9 Consultar
Acciones de contenido nutricional una parte de una comida o un ingrediente
contenido nutricional

Transmitir los gustos del usuario utilizando un


UC.10 y UC.11 Preferencia
Acciones de preferencia alimentaria lenguaje natural hacia una receta o un ingrediente.
expresa

UC.12 Recopilación Solicite los detalles del usuario para habilitar comidas
de Información Personal personalizadas
Acciones relacionadas con el usuario
UC.13 Visualización
Ver los datos personales almacenados
de Información Personal UC.14
Alteración de
Actualización de datos personales guardados
Información Personal

4.5 Resumen
Este capítulo presentó una descripción más profunda del alcance de este trabajo, incluidos los desafíos que
deben superarse y la estructura del desarrollo. Define la ubicación de este trabajo en proceso e introduce las
condiciones iniciales para el desarrollo, así como los casos de uso que se considerarán en el desarrollo del
agente conversacional. La falta de un conjunto de datos orientó algunas de las decisiones tomadas a lo largo
de la tesis, principalmente en la validación
procesos.

El trabajo considerará un total de 14 Casos de Uso, agrupados en 4 conjuntos, que constituyen los
escenarios más comunes de utilización del sistema. Algunos de estos casos de uso se asignarán a intenciones
que desencadenarán acciones que realizan la tarea prevista por el usuario.

El siguiente capítulo explorará la configuración experimental utilizada para abordar las tareas presentadas
(NLU, Gestión del Diálogo, Modelado de Preferencias y Maridaje de Alimentos), junto con los resultados
obtenidos.
Machine Translated by Google

Capítulo 5

Desarrollo de chatbots

En este capítulo se presenta la descripción de la metodología adoptada para desarrollar completamente el chatbot.
El trabajo se puede dividir en tres etapas diferentes:

• Componente NLU – En esta parte se analizará el enfoque adoptado y los algoritmos utilizados, así como los
resultados obtenidos para la clasificación de intenciones y el reconocimiento de entidades. Como se indicó
anteriormente, estos dos procesos son los que definen el componente NLU del chatbot.

• Modelado de preferencias: los algoritmos y enfoques adoptados para modelar las preferencias se investigarán
junto con los resultados.

• Componente de Gestión del Diálogo – Se explorará el componente de Gestión del Diálogo, haciendo referencia
también a sus resultados. Más precisamente, esta sección contiene la descripción de las acciones que mapean
los Casos de Uso definidos en la Sección 4.4, así como los modelos utilizados para predecir las acciones del
chatbot según el flujo de conversación (incluyendo intenciones, entidades y turnos de conversación pasados).

5.1 Enfoque NLU

En esta sección se explorará la metodología utilizada para abordar los desafíos de NLU junto con los diferentes
resultados obtenidos de los procedimientos aplicados. Esto incluye tanto la clasificación de intenciones como el
reconocimiento de entidades a partir de la entrada del usuario.

5.1.1 Datos NLU

La primera parte de esta sección abordará el conjunto de datos NLU que se recopiló para entrenar adecuadamente
la canalización NLU del agente (modelos de aprendizaje automático). En Rasa, los procesos incluidos en el
componente NLU (clasificación de intenciones y extracción de entidades) requieren datos anotados (ver Figura 4.3)
que constan de varios ejemplos para cada intención con las entidades resaltadas. Como se mencionó en la Sección
4.2.2, inicialmente no había datos de NLU disponibles. Sin embargo, el desarrollo del chatbot no fue posible sin un
conjunto de datos adecuado. Esto llevó a la decisión de recolectar

73
Machine Translated by Google

74 Desarrollo de chatbots

un conjunto de datos de origen público para iniciar el módulo NLU. Por lo tanto, se recopiló un conjunto de datos de las intenciones que

representan los principales casos de uso del chatbot. Idealmente, los datos recopilados deberían anotarse tanto con intenciones como
con entidades. Sin embargo, para facilitar la tarea de los voluntarios, sólo fue necesario anotar las entidades relacionadas con la

alimentación. El conjunto de datos se recopiló mediante un formulario de Google1 que se envió a una amplia comunidad. En total, 81

voluntarios completaron el formulario, dando ejemplos de cada intención. El formulario no estaba dirigido a la población de usuarios

finales, ya que la recopilación de intenciones es independiente de la edad del usuario. El objetivo era crear suficientes ejemplos para

que un modelo de aprendizaje automático pudiera generalizarse sobre nuevos datos. Los datos se recopilaron en el idioma inglés.

El formulario presentaba el chatbot y el sistema de recomendación y explicaba el alcance del trabajo. El formulario estaba

dividido en secciones que correspondían a las intenciones. El caso de uso o intención y un ejemplo se presentaron al principio de la

página y luego se pidió al voluntario que escribiera una, dos o tres (dependiendo de la intención) ejemplos de la oración que usaría

para alcanzar el objetivo descrito. De los casos de uso presentados en la Sección 4.4, los que tuvieron un mayor rango de variabilidad

y los que fueron más importantes para las acciones principales del chatbot fueron los seleccionados para su recopilación en el

formulario. Aquí está la lista de intenciones que fueron

recopilados mediante el formulario:

• Cree un plan para un período de tiempo y/o comida determinados (2 ejemplos): el período de tiempo y la comida dependían del

voluntario para decidir. De esta manera se logró aumentar la variabilidad en la combinación de tiempo y comidas (mapas a

UC.1).

• Pida ver un plan para un período de tiempo determinado y/o comida y/o parte de la comida (3 ejemplos). Una vez más, los

parámetros dependían de la decisión del voluntario. Esta va a ser una de las acciones que más tendrá que realizar el chatbot,

por lo que se le pidió al voluntario que diera tres ejemplos (mapas a UC.3).

• Pida cambiar la comida (2 ejemplos): en esta sección, el voluntario podría escribir una orden para cambiar explícitamente un

elemento del plan o referirse a él por el nombre de la receta/ingredientes presentes. Como tal, también estaba presente un

cuadro de texto separado para el alimento en caso de que hicieran referencia a uno (mapas a UC.4).

• Preguntar por composición nutricional (2 ejemplos) – Una vez más es posible preguntar por la composición nutricional

(incluyendo nutrientes específicos como proteínas, lípidos o carbohidratos) de cualquier elemento del plan o de un ingrediente

elegido genéricamente. Por esta razón, se incluyó un cuadro de texto que incluye el alimento referido (mapas a UC.6 ­ UC.9).

• Expresar preferencia (3 ejemplos): otro caso de uso frecuente será expresar gusto o disgusto hacia algunos ingredientes o

recetas. En este caso, se pidió a los voluntarios que dieran tres ejemplos de oraciones que expresaran una preferencia hacia

un ingrediente o una comida/parte de una comida. Sin embargo, para modelar correctamente la preferencia en un valor

numérico, los voluntarios también debieron evaluar la intensidad de la preferencia en una escala de 0 a 5, donde 0 es

extremadamente negativo y 5 es extremadamente positivo. Además, en caso de que se mencionara un alimento, se les pidió

que lo repitieran en un cuadro de texto separado para que la anotación se pudiera hacer automáticamente (mapas a UC.10 y

UC.11).

1https://www.google.com/forms/about/
Machine Translated by Google

5.1 Enfoque NLU 75

• Dar información al bot (1 ejemplo) – Esto simularía la introducción de datos personales o su alteración. De
manera similar a la intención anterior, el tipo de información fue decisión de un voluntario (se corresponde con
UC.12).

• Solicitar ver la información personal guardada (1 ejemplo): el voluntario podría solicitar ver toda la información o
campos específicos como nombre, fecha de nacimiento o restricciones dietéticas. El tipo de datos personales
lo decidía el voluntario (se corresponde con UC.13).

De esta manera, fue posible recopilar datos ya divididos por intención y también aumentar la cantidad de
ejemplos de alimentos (nombres de recetas o ingredientes). Es importante reunir una colección diversa de entidades
alimentarias, ya que es un vasto grupo léxico que el clasificador debe aprender. El formulario (que se muestra en la
Sección A.1) reunió un total de 81 respuestas. Luego, los datos sin procesar se analizaron y seleccionaron para
eliminar valores atípicos o respuestas fuera de alcance. Se mantuvieron los errores ortográficos para aumentar la
solidez del modelo contra ellos. Además, las entidades relacionadas con el plan de alimentación (ver Tabla 5.1)
fueron anotadas al formato aceptado por Rasa (ver Figura 4.3). Después de estos pasos de procesamiento, se
agregaron más ejemplos a los extraídos del formulario. Otros intents menores que no presentan tanta variación como
los recogidos en el formulario se agregaron manualmente al archivo de datos de NLU.

Además, el análisis de las respuestas del formulario permitió una mayor percepción de las funciones que
deberían estar disponibles en el chatbot. Hubo algunos ejemplos que no estaban considerados en el plan inicial del
agente. Es decir, marcos de tiempo como "ahora" o "mes", o configuraciones de comidas como "próxima comida".
Este análisis es muy importante ya que permite recopilar los detalles utilizados en las solicitudes y que deben ser
manejados correctamente por el chatbot.
Se agregaron ejemplos incorrectos o fuera de alcance a los grupos de intención incorrectos o de charla. Teniendo
esto en cuenta, el conjunto de datos final para la fase de capacitación de NLU contiene 1502 muestras, divididas por
19 intenciones y 1513 instancias para 15 tipos de entidades diferentes.

Sumando a estos datos, se incluyeron dos archivos de tablas de búsqueda para mejorar el rendimiento del
reconocimiento de entidades: una tabla de búsqueda para nombres de personas extraída del Instituto dos Registos
e do Notari­ado [181] con 4097 nombres y una con nombres de alimentos. Este último se extrajo de la base de datos
Lifana y luego se procesó para eliminar palabras que no formaban parte del léxico alimentario. La tabla de búsqueda
de alimentos resultó de los nombres de los ingredientes y de los nombres de tres tipos de facetas de LanguaL que se
consideró que describían mejor los ingredientes. El recuento final de términos es 1302.
Estos tres descriptores de LanguaL se explorarán más a fondo en la Sección 5.3.

Los números detallados y la descripción del conjunto de datos se pueden observar en las Tablas 5.1 y 5.2.
Machine Translated by Google

76 Desarrollo de chatbots

Tabla 5.1: Descripción de las entidades utilizadas por el agente

Número de

Tipo de entidad Descripción Valores

Muestras
Un campo del perfil de usuario con los distintos niveles de 12
nivel de actividad más bajo, bajo, medio o alto
actividad que puede tener el usuario. Se utiliza
como carga útil de los botones que muestran alternativas.
elegido_­ ID de la alternativa (de la base de –
alternativa Su propósito es establecer un espacio en la memoria de los
datos)
bots.
Similar a elegido_alternativa. Guarda la identificación de la
id de una comida o una comida
comida_elegida –
comida/parte de la comida para visualización o
contenido nutricional. Día parte (de la base de datos)

de la semana que ingresa el usuario, utilizado en las acciones


que requieren un período de tiempo o alcance del plan (por 129
comida del día Lunes domingo
ejemplo, creación de plan, visualización o contenido
nutricional).
Captura las partes de la comida que conforman el plan.
plato principal, bebida, sopa, fruta o postre 113
parte_comida Se utiliza en los mismos escenarios que day_meal
y sinónimos
Información
del perfil de usuario que se utiliza para establecer las
Restricciones diabetes, vegetariano o vegano y 29
de la dieta restricciones en la base de datos, lo que permite una
sinónimos
planificación de comidas
personalizada. Cualquier término relacionado con los
alimentos, que se utiliza para expresar preferencias o
alimento
Nombres de alimentos o ingredientes (por 320
para indicar una receta o ingrediente. Se creó una
ejemplo, queso, carne o ciruelas)
tabla de búsqueda con ejemplos adicionales debido a
la alta variabilidad de este tipo de
género entidad. Parte del perfil de usuario. masculino o femenino y sinónimos 14

desayuno, refrigerio de la mañana,


comida
Elementos de comida del plan, utilizados para las mismas 236
almuerzo, refrigerio de la tarde, cena o
acciones que day_meal y food_part
después de la cena y sinónimos Cualquier
Cualquier número ingresado por el usuario, utilizado para número en formato de texto o numérico
*
número datos personales (altura, peso), para seleccionar opciones (por ejemplo, sesenta y ocho o 68) calorías
y para dar calificaciones.

Las diferentes características nutricionales. Es (energía), carbohidratos,

nutritivo lípidos (grasas), proteínas , sal, agua 131


Se utiliza para comprobar campos de contenido nutricional
específicos.
o azúcar y sinónimos Valores como
semanal, mañana,
mensual o fin de semana. Luego
se asignan a uno de los
Captura el alcance del tiempo utilizado para la creación siguientes: ahora, día, semana o 353
período o visualización del plan. mes.

Guarda los nombres de las personas y también tiene


nombre_persona una mayor variabilidad, por lo que se creó una tabla de Nombres de primera y última persona 45
búsqueda con nombres.

nombre, sexo, altura, peso, restricción,


información 131
Diferentes campos del perfil personal. fecha de nacimiento o nivel de
personal
actividad y sinónimos
Puede variar desde una fecha completa
Se utiliza en cada acción que requiere una inversión de tiempo *
tiempo hasta un día de la semana, incluyendo
(por ejemplo, creación o visualización de un plan). intervalos de tiempo.
Total:
1513
* Estas entidades son extraídas por Duckling Extractor (Sección 5.1.7.2) y, por lo tanto, no están anotadas en el conjunto de datos.
Machine Translated by Google

5.1 Enfoque NLU 77

Tabla 5.2: Descripción de las intenciones definidas y el número correspondiente de muestras en el conjunto de datos

Número
Intención Descripción
de muestras

afirmar El usuario está de acuerdo con algo o da una opinión positiva. 47


respuesta

El comando para crear un plan. Puede incluir tiempo 179


crear_plan y entidades relacionadas con

comidas. El usuario dice que quiere ver los ingredientes de 31


ver_el_ingrediente
algo El usuario
expresa preferencia hacia un plan 281
informar_preferencia
elemento o una receta/ingrediente El
comando para mostrar el plan o cualquier elemento específico 306
mostrar_plan
elemento del plan El
show_nutricional_­ usuario solicita ver el contenido nutricional de cualquier 168
contenido elemento del plan Se
dar_info_personal negar utiliza para indicar un valor sobre algún detalle personal El usuario 164

no está de acuerdo con algo o da una 21


respuesta negativa El
show_alternative_­ usuario pide ver alternativas o sustituir una
38
comida parte de la comida
gracias dada El usuario expresa gratitud El 45

usuario solicita ver las comidas de un día determinado o el 22


ver_las_comidas
partes de una
comida Se utiliza como carga útil del botón para indicar que se presiona. –
informar_comida_del_dia Establece una ranura con

identificación de comida. Se utiliza como carga útil del botón para indicar que se presiona. –
informar_ingrediente
Establece un espacio con la identificación
saludar del ingrediente Cualquier tipo 28

de saludo Cualquier tema que no esté relacionado con el tema o las tareas de 41
charla
el chatbot El

usuario solicita ver la información personal que 90


mostrar_información_personal
se guarda en la base de datos El

usuario solicita actualizar cualquier campo de la base de datos personal 11


cambio_información_personal
perfil El
comando para eliminar el plan. A menudo requiere una 19
eliminar_plan marco de

adiós tiempo Para decir adiós al bot 11


Total: 1502

Las siguientes secciones describen la configuración experimental utilizada para lograr tanto la clasificación de intenciones

como la extracción de entidades. Con el fin de alcanzar el mejor rendimiento con los datos disponibles, se realizó una serie de

experimentos utilizando varios canales y se analizaron los resultados.

Las técnicas y conjuntos de características empleados se implementan en Rasa y, por lo tanto, algunas combinaciones no están

permitidas o requieren que partes específicas de la tubería funcionen juntas. Estas técnicas y

Las características se describen en la sección siguiente.

5.1.2 Descripción de las técnicas

Para crear el pipeline con el mejor rendimiento, se probaron varias combinaciones utilizando los recursos disponibles en Rasa.

Estos recursos se explicarán ahora:


Machine Translated by Google

78 Desarrollo de chatbots

• Tokenizadores

– SpaCy Tokeniser: este algoritmo de tokenizador tiene un mayor rendimiento que el tokenizador de espacios en blanco

más simple que solo considera el espacio entre tokens para separarlos. El algoritmo implementado en el marco

spaCy2 utiliza una jerarquía de reglas y heurísticas para manejar casos específicos.

– BERT Tokeniser: cuando se utilizan funciones generadas por modelos de lenguaje como BERT, es posible que sea

necesario emplear el Tokeniser correspondiente. En este caso, BERT utiliza un proceso de tokenización basado en

WordPieza, que divide las palabras en un conjunto de subunidades comunes, mejorando el manejo de palabras raras

o invisibles [182].

• Destacadores

– Sklearn Count Vectors Featuriser: este algoritmo funciona creando una representación de bolsa de palabras para la

expresión basada en los tokens extraídos del paso anterior, utilizando las herramientas proporcionadas por la

biblioteca Sklearn3 Python. Además, se puede configurar para aumentar el espacio de funciones agregando n­

gramas, cuyo tamaño también se puede controlar.

En este caso, además del BoW basado en tokens, también se incluyó una representación para n­gramas con

tamaños de 1 a 4.

– Características léxicas y sintácticas: este algoritmo extrae características basándose en una ventana deslizante que

se mueve sobre cada token. Las características extraídas se describen en la Tabla 5.3 y consisten principalmente en

propiedades a nivel de palabra, como prefijos, sufijos o mayúsculas/minúsculas y características sintácticas como

etiquetas PoS. La descripción de las características se muestra en la Tabla 5.4.

– Característica de expresión regular: este componente verifica las coincidencias entre los tokens de la entrada del

usuario y los ejemplos en las tablas de búsqueda y crea un vector de características dispersas que toma el valor 1

cuando hay una coincidencia y el valor 0 cuando hay una coincidencia. no es rival. Como ejemplo, en la oración "La

tarta de manzana es mi postre favorito", considerando que tanto "manzana" como "tarta" están presentes en la tabla

de búsqueda, el vector de características resultante sería [1 1 0 0 0 0].

– Vectores de palabras GloVe – Las incrustaciones de palabras GloVe previamente entrenadas se utilizan como densas
características para el clasificador

– Incorporaciones BERT: de manera similar a las incorporaciones GloVe, las incorporaciones BERT también se utilizan

en algunas tuberías como características densas en un intento de obtener mejores resultados, según la característica

contextual presente en estas incorporaciones.

• Clasificadores

– Máquinas de vectores de soporte (SVM): como enfoque de aprendizaje automático más tradicional, se utiliza una SVM

como modelo de clasificación. Es un buen modelo para tareas sencillas de varias clases. Las SVM intentan separar

las muestras de cada clase utilizando hiperplanos que maximizan el margen entre las distintas clases en espacios

de dimensiones superiores. Rasa no permite la combinación de funciones escasas con SVM debido a la gran

cantidad de funciones

2https://spacy.io/
3https://scikit­learn.org/stable/
Machine Translated by Google

5.1 Enfoque NLU 79

Espacio dimensional creado por características dispersas. El SVM se optimizó usando grid.

buscar en los parámetros mostrados en la Tabla A.1

– Campos aleatorios condicionales (CRF): una vez más, como enfoque de aprendizaje automático más tradicional, este

clasificador se utilizó para el reconocimiento de entidades. CRF es un discriminativo

modelo de clasificación que tiene en cuenta el contexto (o el estado vecino variable) para

hacer predicciones y eso es ventajoso cuando se trata de datos de texto. Las predicciones se modelan como un modelo

gráfico con dependencias entre predicciones. El

En este caso se habilitó el esquema de etiquetado BILOU

– Clasificador DIET con la parte transformadora: este componente se describió en la Sección


ción 4.3.1.2.

– Clasificador DIET sin la parte transformadora – Esta es una alteración del anterior

clasificador donde las capas del transformador están deshabilitadas. Esto significa que solo las capas totalmente

conectadas con feed­forward están disponibles para entrenamiento y clasificación.

Tabla 5.3: Características dispersas extraídas para el reconocimiento de entidades mediante CRF. La descripción está en la Tabla 5.4.

Ficha anterior Token de interés Siguiente ficha


bajo, título, superior, BOS, EOS, prefijo5,
bajo, título, superior bajo, título, superior
prefijo2, sufijo5, sufijo3, sufijo2, pos

Tabla 5.4: Descripción de las escasas características utilizadas para el reconocimiento de entidades

Característica Descripción
baja Comprueba si el token está en minúsculas.
superior Comprueba si el token está en mayúsculas.

título Comprueba si el token comienza con un carácter en mayúscula y todo


los caracteres restantes están en minúsculas
dígito Comprueba si el token contiene solo dígitos.
prefijo5 Tome los primeros cinco caracteres del token.
prefijo2 Toma los dos primeros caracteres de la ficha.
sufijo5 Toma los últimos cinco caracteres del token.
sufijo3 Toma los últimos tres caracteres de la ficha.
sufijo2 Toma los dos últimos caracteres del token.
sufijo1 Toma el último carácter de la ficha.

posición Tome la etiqueta Parte del discurso del token

Las siguientes secciones describen los enfoques empleados que utilizan combinaciones de las técnicas y características

mencionadas anteriormente.

5.1.3 Clasificación de intenciones

La primera tarea que debe abordarse en el desarrollo de la parte NLU del chatbot es crear un modelo que sea capaz de clasificar las

expresiones del usuario en una de las intenciones mencionadas en la Tabla 5.2.

Este problema es una tarea de clasificación de clases múltiples con 19 clases. La distribución de clases no es uniforme.
Machine Translated by Google

80 Desarrollo de chatbots

porque la mayoría de los ejemplos de intenciones se crearon a través del formulario descrito en la Sección 5.1.1, que
abordaba solo las intenciones más importantes, así como aquellas que pueden haber aumentado la variabilidad. Los
enfoques se resumen en la Tabla 5.5. Tenga en cuenta que el clasificador DIET empleado no tiene la parte del etiquetador
CRF, responsable de la extracción de entidades, ya que el objetivo es realizar una clasificación de intenciones.

5.1.3.1 Enfoques

Los enfoques descritos se dividen según los conjuntos de características que emplean: BoW (características escasas),
incrustaciones de palabras previamente entrenadas (características densas), modelo de lenguaje (características densas) y
un enfoque mixto (características densas y escasas).

En un esfuerzo por crear una puntuación de referencia, se implementó el modelo más simple basado en un algoritmo
de bolsa de palabras para la clasificación de intenciones. Este pipeline corresponde a una Bolsa de Palabras con Clasificador
DIET (transformador desactivado) – I.A1. Se espera que tenga el peor desempeño de todos los ductos probados.

La segunda tubería utilizada (I.A2) fue muy similar a la presentada anteriormente, sin embargo, se habilitó la
arquitectura del transformador en el Clasificador DIET, lo que se espera que aumente el rendimiento, ya que se supone que
la parte del transformador selecciona las características importantes en función de rendimiento – Bolsa de palabras con
DIET Classifier (transformador habilitado).

Después de crear una línea de base utilizando características dispersas, con el objetivo de mejorar el rendimiento,
se consideró otro enfoque utilizando recursos más recientes y complejos, concretamente características densas a partir de
incrustaciones de palabras. Las siguientes canalizaciones utilizan vectores previamente entrenados con GloVe del modelo
spaCy. Además de esto, se probaron diferentes modelos de clasificación: el clasificador DIET con y sin transformador, y

un SVM. Estas canalizaciones corresponden a los vectores I.B1 ­ GloVe de id con clasificador DIET (transformador
deshabilitado), I.B2 ­ vectores GloVe con clasificador DIET (transformador habilitado) y I.B3 ­ vectores GloVe con SVM.

Teniendo en cuenta el mayor rendimiento de los modelos de lenguaje en las tareas de PNL, tiene sentido implementar
un canal que los aproveche. Por esa razón, se probó un conjunto de canalizaciones que utilizan un modelo BERT
previamente entrenado de Hugging Face y varios clasificadores diferentes, a saber, canalizaciones I.C1: incrustaciones de
BERT con clasificador DIET (transformador desactivado), I.C2: incrustaciones de BERT con clasificador DIET (transformador
habilitado) e I.C3 – incorporaciones BERT con SVM

Además de estos enfoques más simples que se basan solo en un tipo de características, tiene sentido combinarlos
en un proceso más complejo. Así, se implementó un grupo de variaciones de este enfoque siguiendo la misma lógica de los
anteriores. BERT Tokeniser se utiliza en todos los procedimientos ya que es un requisito para extraer incrustaciones de
palabras BERT. Estas canalizaciones corresponden a id's I.D1: incrustaciones BERT más BoW con clasificador DIET
(transformador deshabilitado), I.D2: incrustaciones BERT más BoW con clasificador DIET (transformador habilitado) e I.D3:
incrustaciones BERT más BoW con SVM.
Machine Translated by Google

5.1 Enfoque NLU 81

Tabla 5.5: Pipelines probados para clasificación de intenciones

Acercarse Tokenizador de identificación Destacados Clasificador


DIETA (transformador
I.A1 espacial Vectores de conteo de Sklearn
Línea de base – Arco desactivado)
DIETA (transformador
I.A2 espacial Vectores de conteo de Sklearn
activado)
DIETA (transformador
I.B1 espacio Vectores de palabra guante
desactivado)
Incrustaciones de Word previamente entrenadas
DIETA (transformador
I.B2 espacial Vectores de palabra guante
activado)
I.B3 espacial Vectores de palabra guante SVM
DIETA (transformador
I.C1 BERT Incrustaciones BERT
desactivado)
Modelo de lenguaje
DIETA (transformador
I.C2 BERT Incrustaciones BERT
activado)
I.C3 BERT Incrustaciones BERT SVM
Vectores de conteo de Sklearn + BERT DIETA (transformador
ID1 BERT
incrustaciones desactivado)
Mezclado
Vectores de conteo de Sklearn + BERT DIETA (transformador
ID2 BERT
incrustaciones activado)
Vectores de conteo de Sklearn + BERT
ID3 BERT SVM
incrustaciones

5.1.3.2 Evaluación experimental

Cada tubería de la Tabla 5.5 fue entrenada 3 veces usando 2 proporciones diferentes de tren/prueba (80/20 y

70/30). El objetivo de probar diferentes ratios tren/prueba era comparar la robustez del modelo.

al reducir los datos de entrenamiento. La tabla 5.6 resume los resultados medios (con desviación estándar) obtenidos para cada

experimento en relación con la identificación de intenciones. Presenta datos macro y ponderados.

promedios de precisión, recuperación y puntuación f1, así como exactitud. Los resultados también consideran los diferentes
ratios de prueba.

A primera vista, es posible observar que el modelo con mayor precisión global es

el correspondiente a la configuración I.D3, que combina ambas características de BoW con contextuales

incrustaciones y utiliza SVM como clasificador. De hecho, los enfoques que utilizan SVM tuvieron mayores

valores de precisión entre todas las combinaciones. La razón detrás de esto puede ser el hecho de que el conjunto de datos

era pequeño y, por lo tanto, los modelos de aprendizaje profundo (DIETA con y sin transformador) tienden a sobreajustarse

más fácilmente, lo que se refleja en los resultados. Respecto a ambos modelos de aprendizaje profundo, un interesante

Surge un patrón: la arquitectura basada en transformador proporciona mejores resultados generales que la

con el transformador deshabilitado en las configuraciones que usan características BoW, mientras que lo contrario

sucede sólo con rasgos densos. Esto puede deberse a la forma en que se diseñó la arquitectura del transformador.

desarrollado. El módulo transformador puede estar utilizando su mecanismo de atención para seleccionar correctamente

funciones de la amplia gama de funciones escasas proporcionadas. Además, los resultados obtenidos por

El modelo de transformador mejora drásticamente cuando se utilizan funciones dispersas en comparación con funciones densas.

solo.

El conjunto de características que proporcionaron los peores resultados generales son las incrustaciones de palabras

previamente entrenadas de GloVe, a pesar de que el modelo de aprendizaje profundo sin el transformador funcionó.

En realidad, es mejor con las incrustaciones de GloVe que cuando se usan solo funciones escasas. Estos resultados

también puede explicarse por la existencia de errores tipográficos en las frases de entrenamiento, que

obstaculizar la atribución de una incrustación correcta a un token determinado. Esto no sucede con el
Machine Translated by Google

82 Desarrollo de chatbots

Vectores del modelo de lenguaje BERT debido al hecho de que el tokenizador se basa en WordPieces, que

Disminuye el número de tokens sin un vector correcto. Todos los modelos funcionan mejor cuando

utilizando características escasas y densas combinadas, es decir, la DIETA con transformador habilitado

que ve un aumento en el rendimiento, alcanzando valores cercanos a los obtenidos por el

SVM. Otro factor interesante que vale la pena mencionar es la pequeña diferencia entre el

resultados generales de SVM con características densas y dispersas (I.D3) y SVM con BERT

sólo incrustaciones de palabras (I.C3), lo que sugiere que las escasas características sólo están dando una ligera

mejora. Sin embargo, esto no es válido al comparar I.B3 (características del guante) con I.C3

o I.D3, que muestra que las incrustaciones contextuales proporcionan mejores conocimientos para la clasificación de intenciones.

que las incrustaciones estáticas previamente entrenadas.

Existe una brecha notable entre las métricas calculadas utilizando un promedio macro y un

peso promedio. Esto se debe a la naturaleza del desequilibrio de clases del conjunto de datos. En realidad, esto demuestra

que los modelos están dando mayor importancia a las clases con más muestras, lo que lleva a

puntuaciones más bajas en los que tienen menos muestras. Al observar los promedios de las puntuaciones de F1, es

posible observar que tanto I.D3 como I.D2 son los modelos que muestran una menor brecha entre los

macro y los valores ponderados. Esto puede indicar que una mayor cantidad de funciones pueden

ayudar al modelo a diferenciar entre muestras de baja ocurrencia.

Además, los valores de recuperación son más bajos que los puntajes de precisión cuando se considera la macro

promedio, aunque ocurre lo contrario al considerar el promedio ponderado. Esta espectáculos

que recuperar valores para clases con pocos ejemplos es bajo, lo que implica que el modelo no

Tengo mucha confianza a la hora de afrontar estas clases. Sólo los clasifica cuando tiene

un alto nivel de certeza, lo que lleva a una mayor precisión en esas clases.

Tanto I.D2 como I.D3 son buenos candidatos para el proceso de identificación de intenciones del agente.

Tabla 5.6: Resultados de la identificación de intenciones utilizando las diferentes configuraciones descritas anteriormente

Promedio Macro Peso promedio


Porcentaje de prueba del modelo Precisión Recordar F1 Precisión Recordar F1 Exactitud
20 0,684 ± 0,047 0,638 ± 0,054 0,634 ± 0,052 0,825 ± 0,015 0,805 ± 0,013 0,802 ± 0,015 0,805 ± 0,059
I.A1
30 0,674 ± 0,043 0,617 ± 0,075 0,618 ± 0,068 0,786 ± 0,044 0,769 ± 0,043 0,760 ± 0,044 0,769 ± 0,048
20 0,738 ± 0,040 0,668 ± 0,027 0,677 ± 0,015 0,843 ± 0,005 0,835 ± 0,007 0,828 ± 0,005 0,835 ± 0,041
I.A2
30 0,703 ± 0,041 0,605 ± 0,063 0,628 ± 0,062 0,803 ± 0,035 0,801 ± 0,035 0,790 ± 0,035 0,801 ± 0,033
20 0,710 ± 0,026 0,620 ± 0,025 0,642 ± 0,009 0,837 ± 0,011 0,847 ± 0,012 0,833 ± 0,011 0,847 ± 0,034
I.B1
30 0,541 ± 0,100 0,494 ± 0,087 0,492 ± 0,087 0,760 ± 0,027 0,791 ± 0,041 0,762 ± 0,027 0,791 ± 0,110
20 0,343 ± 0,036 0,236 ± 0,037 0,234 ± 0,039 0,514 ± 0,063 0,472 ± 0,080 0,399 ± 0,063 0,472 ± 0,050
I.B2
30 0,290 ± 0,090 0,210 ± 0,023 0,201 ± 0,038 0,467 ± 0,017 0,445 ± 0,032 0,367 ± 0,017 0,445 ± 0,107
20 0,712 ± 0,044 0,622 ± 0,026 0,643 ± 0,027 0,828 ± 0,011 0,834 ± 0,005 0,821 ± 0,011 0,834 ± 0,063
I.B3
30 0,697 ± 0,015 0,614 ± 0,031 0,636 ± 0,019 0,818 ± 0,020 0,825 ± 0,019 0,813 ± 0,020 0,825 ± 0,021
20 0,529 ± 0,015 0,481 ± 0,011 0,478 ± 0,009 0,761 ± 0,005 0,805 ± 0,005 0,770 ± 0,005 0,805 ± 0,019
I.C1
30 0,407 ± 0,050 0,444 ± 0,048 0,414 ± 0,045 0,712 ± 0,014 0,781 ± 0,018 0,740 ± 0,014 0,781 ± 0,058
20 0,559 ± 0,058 0,468 ± 0,024 0,476 ± 0,032 0,752 ± 0,019 0,793 ± 0,023 0,754 ± 0,019 0,793 ± 0,050
I.C2
30 0,516 ± 0,034 0,447 ± 0,020 0,448 ± 0,031 0,726 ± 0,013 0,768 ± 0,017 0,730 ± 0,013 0,768 ± 0,037
20 0,779 ± 0,013 0,672 ± 0,036 0,701 ± 0,021 0,863 ± 0,015 0,865 ± 0,015 0,856 ± 0,015 0,865 ± 0,018
I.C3
30 0,727 ± 0,055 0,631 ± 0,053 0,656 ± 0,053 0,839 ± 0,013 0,848 ± 0,016 0,835 ± 0,013 0,848 ± 0,078
20 0,720 ± 0,033 0,672 ± 0,018 0,674 ± 0,015 0,861 ± 0,020 0,855 ± 0,018 0,848 ± 0,020 0,855 ± 0,012
I.D1
30 0,686 ± 0,083 0,640 ± 0,037 0,640 ± 0,056 0,834 ± 0,013 0,830 ± 0,015 0,821 ± 0,013 0,830 ± 0,114
20 0,770 ± 0,028 0,688 ± 0,050 0,703 ± 0,043 0,867 ± 0,013 0,862 ± 0,016 0,853 ± 0,013 0,862 ± 0,031
I.D2
30 0,687 ± 0,060 0,615 ± 0,046 0,629 ± 0,052 0,815 ± 0,008 0,832 ± 0,012 0,814 ± 0,008 0,832 ± 0,078
20 0,782 ± 0,006 0,675 ± 0,043 0,704 ± 0,030 0,865 ± 0,019 0,866 ± 0,021 0,857 ± 0,019 0,866 ± 0,008
I.D3
30 0,792 ± 0,076 0,642 ± 0,068 0,664 ± 0,070 0,842 ± 0,016 0,852 ± 0,021 0,839 ± 0,016 0,852 ± 0,092
Machine Translated by Google

5.1 Enfoque NLU 83

5.1.4 Reconocimiento de entidades

La segunda tarea que el chatbot debe poder completar en términos de NLU es el reconocimiento y extracción de entidades de
las expresiones del usuario. Este es un problema de etiquetado de secuencias con 15 clases.
El conjunto de datos utilizado en la sesión de capacitación se describe en la Tabla 5.1.

Para el reconocimiento de entidades se adoptó un enfoque comparable al adoptado en la clasificación de intenciones. Se


probaron un conjunto de diferentes combinaciones de extractores de características y modelos de clasificación para comprender
cuál proporcionaba los mejores resultados. Los diversos oleoductos se resumen en la Tabla 5.7.

5.1.4.1 Enfoques

Una vez más, como punto de partida, se implementó el enfoque más simple que utiliza vectores dispersos. Además, se
probaron dos modelos de clasificación para este conjunto de características: el etiquetador CRF y el DIET con el modo de
extracción de entidades activado y el modo de intención desactivado. En este caso se habilita la parte transformadora del
clasificador DIET, ya que de lo contrario sería muy similar a utilizar sólo el CRF. Se probaron los canales E.A1 – Funciones
dispersas con etiquetador CRF y E.A2 – Funciones dispersas con clasificador DIET (transformador habilitado) de la Tabla 5.7 .

El uso de características densas, como vectores de palabras, puede aumentar el rendimiento en el reconocimiento de
entidades nombradas. Debido a este hecho, se implementaron dos métodos que aprovechan las incorporaciones de GloVe
previamente entrenadas (iguales a las utilizadas en la clasificación de intenciones). En cuanto a los modelos de clasificación,
las configuraciones se mantuvieron del enfoque anterior. En este caso se probaron las tuberías E.B1 – vectores GloVe con
etiquetador CRF y E.B2 – vectores GloVe con clasificador DIET (transformador habilitado).

Las incorporaciones de modelos de lenguaje previamente entrenados también se pueden utilizar para la extracción de
entidades. Por esta razón, se implementaron dos pipelines que aplican esta técnica: E.C1 – incrustaciones BERT con etiquetador
CRF y E.C2 – incrustaciones BERT con DIET Classifier (transformador habilitado).

De manera similar a la clasificación de intenciones, se probó una metodología que une ambos tipos de características.
En este caso, las características dispersas son similares a las utilizadas en el primer enfoque, mientras que las características
densas provienen del modelo BERT. Se implementaron las siguientes variaciones: E.D1: funciones dispersas e incrustaciones
de BERT con etiquetador CRF y E.D2: funciones dispersas e incrustaciones de BERT con clasificador DIET (transformador
habilitado)
Machine Translated by Google

84 Desarrollo de chatbots

Tabla 5.7: Tuberías ensayadas para reconocimiento de entidad

Acercarse Tokenizador de identificación Destacados Clasificador


Características léxicas y sintácticas spaCy E.A1 CRF
Base
DIETA (transformador
Características léxicas y sintácticas spaCy E.A2
activado)
E.B1 espacio Vectores de palabra guante CRF
Incrustaciones de Word previamente entrenadas
Vectores de palabra guante
DIETA (transformador
E.B2 espacial
activado)
E.C1 BERT Incrustaciones BERT CRF
Modelo de lenguaje
E.C2 BERT DIETA (transformador
Incrustaciones BERT
activado)
E.D1 BERT Destacador léxico y sintáctico CRF
Mezclado + incrustaciones BERT
E.D2 BERT Destacador léxico y sintáctico DIETA (transformador
+ incrustaciones BERT activado)

5.1.4.2 Evaluación experimental

Las condiciones experimentales fueron similares a la clasificación de intenciones. Las tuberías fueron entrenadas y

Probado tres veces con dos relaciones tren/prueba diferentes (80/20 y 70/30). Los resultados mostrados

En la Tabla 5.8 se muestra el desempeño promedio (y la desviación estándar) obtenido por los distintos

combinaciones de características y clasificadores relacionados con el reconocimiento de entidades. Un patrón evidente es el

Resultados generales superiores de las configuraciones que utilizan la arquitectura del transformador. esta arquitectura

considera toda la oración donde la entidad está presente y selecciona las mejores características de la

conjunto de funciones disponibles, mientras que el extractor CRF solo considera el token antes y después

la ficha de interés. El módulo de atención puede desempeñar un papel crucial en la selección de las características y

capturar el contexto.

Curiosamente, los mejores resultados se obtuvieron utilizando el conjunto de características densas proporcionadas por

Vectores GloVe (E.B2), que proporcionaron los peores resultados para la identificación de intenciones (como se informa en

Cuadro 5.6). En un dominio cerrado donde los tipos de entidades son muy diferentes, como es el caso de este

En el trabajo, las incrustaciones no contextuales pueden ayudar al modelo de clasificación a aprender mejor los patrones.

y aumentar aún más el rendimiento. En estos casos, el contexto no es crucial para la extracción de entidades.

Sin embargo, tanto los resultados obtenidos utilizando únicamente las características dispersas (E.A2) como la combinación de

las incrustaciones de palabras escasas y contextuales (E.D2) proporcionaron puntuaciones muy cercanas a las mejores

valores. Esto puede sugerir que las escasas características son, de hecho, muy efectivas para el reconocimiento de entidades.

en comparación con el enfoque E.C2 que utiliza solo las incrustaciones contextuales.

De manera similar a lo que sucedió en la identificación de intenciones, las puntuaciones macro son más bajas que las ponderadas.

puntuaciones, lo que se explica por el hecho de que el modelo en realidad falla más en clases con menos

ejemplos. Otro aspecto intrigante es el puntaje macro promedio F1 para ambas configuraciones E.B2.

y E.D2, que es mayor para la prueba que utilizó menos entrenamiento. Esto demostró que el modelo

se desempeña mejor en las clases con menos ejemplos cuando se entrena con menos datos, lo que sugiere algunos

nivel de sobreajuste.
Machine Translated by Google

5.1 Enfoque NLU 85

Tabla 5.8: Resultados para el reconocimiento de entidades utilizando las diferentes configuraciones descritas anteriormente

Promedio Macro Peso promedio


Porcentaje de prueba del modelo Precisión Recordar F1 Precisión Recordar F1
20 0,748 0,037 0,614 0,013 0,657 0,022 0,887 0,029 0,801 0,018 0,833 0,018
E.A1
30 0,696 0,025 0,579 0,046 0,622 0,038 0,875 0,035 0,791 0,024 0,825 0,024
20 0,775 0,065 0,767 0,055 0,767 0,062 0,878 0,034 0,879 0,029 0,876 0,029
E.A2
30 0,794 0,039 0,734 0,072 0,756 0,062 0,878 0,044 0,847 0,046 0,859 0,046
20 0,781 0,032 0,761 0,031 0,759 0,033 0,898 0,023 0,841 0,024 0,865 0,024
E.B1
30 0,770 0,025 0,747 0,052 0,745 0,041 0,888 0,027 0,838 0,021 0,857 0,021
20 0,843 0,032 0,782 0,048 0,801 0,048 0,905 0,059 0,877 0,056 0,888 0,056
E.B2
30 0,877 0,022 0,782 0,068 0,806 0,050 0,915 0,051 0,866 0,043 0,884 0,043
20 0,844 0,031 0,699 0,044 0,739 0,060 0,927 0,025 0,820 0,037 0,856 0,037
E.C1
30 0,837 0,047 0,638 0,019 0,688 0,035 0,922 0,019 0,786 0,031 0,828 0,031
20 0,867 0,062 0,770 0,111 0,793 0,091 0,893 0,045 0,848 0,035 0,860 0,035
E.C2
30 0,839 0,100 0,725 0,077 0,744 0,113 0,905 0,018 0,823 0,032 0,843 0,032
20 0,785 0,072 0,648 0,033 0,692 0,041 0,910 0,022 0,804 0,029 0,844 0,029
E.D1
30 0,804 0,025 0,576 0,006 0,639 0,006 0,939 0,031 0,791 0,030 0,841 0,030
20 0,794 0,059 0,736 0,036 0,746 0,048 0,894 0,029 0,873 0,030 0,875 0,030
E.D2
30 0,880 0,046 0,768 0,040 0,790 0,058 0,880 0,007 0,861 0,016 0,859 0,016

5.1.5 Clasificación de intención conjunta y extracción de entidad

Como se indica en la Sección 4.3.1.2, el modelo de clasificación DIET es capaz de realizar pruebas combinadas

clasificación de intenciones y extracción de entidades, utilizando la suma de ambas funciones de pérdida para optimizar la

modelo. La hipótesis que se va a probar con estas configuraciones adicionales es que el

El rendimiento de los dos procesos mejora si se entrenan juntos.

5.1.5.1 Enfoques

A la luz de lo dicho anteriormente, los pipelines destacados que lograron los mejores resultados en general

fueron modificados para probar la metodología de clasificación combinada. El conjunto de tuberías experimentadas.

se muestra en la Tabla 5.9. Las canalizaciones probadas fueron IE.A1: funciones escasas con DIET Classifier
(transformador habilitado), IE.A2 – Vectores GloVe con clasificador DIET (transformador habilitado), IE.A3

– Incorporaciones BERT con DIET Classifier (transformador habilitado) e IE.A4 – Funciones escasas y

Incorporaciones BERT con clasificador DIET (transformador habilitado)

Tabla 5.9: Tuberías probadas para clasificación de intención conjunta y reconocimiento de entidad

Acercarse Identificación Tokenizador Destacados Clasificador


Sklearn Count Vectores + Léxico DIETA (transformador
Base IE.A1 espacial
y destacador sintáctico activado)

Vectores de palabra guante


DIETA (transformador
Incrustaciones de Word previamente entrenadas IE.A2 spaCy
activado)

IE.A3 BERT DIETA (transformador


Modelo de lenguaje Incrustaciones BERT
activado)
Sklearn Count Vectores + Léxico
Mezclado IE.A4 BERT DIETA (transformador
y Destacador Sintáctico +
activado)
Incrustaciones BERT
Machine Translated by Google

86 Desarrollo de chatbots

5.1.5.2 Evaluación experimental

Para mantener el patrón, se aplicaron las mismas condiciones de entrenamiento y prueba. El modelo

fue entrenado y probado tres veces usando dos proporciones diferentes de entrenamiento/prueba (80/20 y 70/30). Por

Al observar los resultados de la Tabla 5.10 (puntajes promedio con desviación estándar), es posible

para ver que la configuración multitarea ayudó a mejorar el rendimiento del proceso de reconocimiento de entidades en todas las

configuraciones. En cuanto a la clasificación de intenciones, sucedió algo similar excepto por

la configuración IE.A4, que utiliza la combinación de características densas y dispersas. En esto

En este caso, la disminución puede ser causada por el conjunto de características extra escasas para el reconocimiento de la entidad que el

el modelo tiene que afrontar. Esto puede aumentar el tamaño del espacio de características y, por tanto, favorecer el sobreajuste.

por lo tanto, disminuye el rendimiento de referencia (IE.A1). Una vez más, los vectores GloVe han mostrado

ser el mejor conjunto de características para el reconocimiento de entidades. Esto puede deberse a que los valores no cambian

que asumen los vectores, lo cual es favorable para un dominio cerrado como el alcance de este trabajo.

Esto significa que no hay suficiente variación en el significado de las palabras para las incrustaciones contextuales.

para marcar la diferencia en el reconocimiento de entidades. Este rendimiento mejorado en una tarea (extracción de entidades)

pareció aprovechar las puntuaciones obtenidas en la clasificación de intenciones. Esto es principalmente visible en

las configuraciones IE.A1 e IE.A2, mientras que la configuración IE.A3 mostró un ligero aumento. Comparando

Los resultados de extracción de entidades para la configuración IE.A1 e IE.A3 refuerzan la premisa de que en este

dominio cerrado, estas características menos cambiantes proporcionan mejores resultados, ya que solo hay una pequeña

mejora desde las escasas funciones hasta las incrustaciones contextuales.

Sin embargo, las incrustaciones contextuales demuestran ser mejores para la clasificación de intenciones (enfoque

IE.A3), donde puede haber más variación y el contexto juega un papel más importante. Sin embargo, al observar estos resultados

queda claro que la regularización agregada al combinar

las dos tareas mejora el rendimiento en ambas tareas.

Tabla 5.10: Resultados obtenidos para la extracción de entidades conjuntas y la clasificación de intención utilizando el clasificador
DIET

Promedio Macro Recuperación de


Porcentaje de prueba del modelo Precisión Recordar F1 precisión promedio F1 Exactitud

20 ponderada 0,765 0,061 0,707 0,043 0,724 0,046 0,857 0,024 0,861 0,025 0,854 0,025 0,861 0,024
IE.A1
30 0,738 0,068 0,716 0,094 0,714 0,090 0,840 0,035 0,840 0,039 0,834 0,039 0,840 0,035
20 0,729 0,019 0,732 0,034 0,724 0,025 0,862 0,009 0,868 0,008 0,862 0,008 0,868 0,009
IE.A2
30 0,685 0,035 0,690 0,049 0,679 0,042 0,851 0,011 0,861 0,011 0,853 0,011 0,861 0,011
Intención
20 0,787 0,048 0,756 0,049 0,755 0,041 0,890 0,020 0,886 0,021 0,883 0,021 0,886 0,020
IE.A3
30 0,749 0,064 0,730 0,038 0,730 0,046 0,874 0,033 0,882 0,029 0,875 0,029 0,882 0,033
20 0,683 0,075 0,623 0,102 0,632 0,092 0,824 0,029 0,820 0,036 0,811 0,036 0,820 0,029
IE.A4
30 0,717 0,015 0,679 0,012 0,679 0,023 0,832 0,027 0,834 0,021 0,825 0,021 0,834 0,027
20 0,890 0,014 0,874 0,044 0,875 0,024 0,895 0,022 0,874 0,004 0,881 0,004 0,854 0,050 0,801 0,079 –
IE.A1 –
30 0,805 0,025 0,877 0,047 0,8 57 0,012 0,861 0,012 0,878 0,025 0,870 0,006 0,867 0,021 0,922 0,026
20 0,888 0,005 0,902 0,005 0,834 0,037 0,810 0,008 0,806 0. 034 0,922 0,002 0,874 0,017 0,894 0,017 –
IE.A2 –
30 0,861 0,013 0,715 0,064 0,767 0,039 0,901 0,038 0,828 0,026 0,855 0,026 0,884 0,039 0,716 0,040
Entidad 20 0,771 0,010 0,911 0,037 0,820 0,022 0,8 55 0,022 0,879 0,039 0,800 0,024 0,819 0,038 0,922 0,000 –
IE.A3 –
30 0,874 0,011 0,892 0,011 0,869 0,056 0,754 0,049 0,795 0,013 0,915 0. 020 0,859 0,004 0,882 0,004
20 –
IE.A4 –
30

5.1.6 Funciones de expresiones regulares

En la Sección 4.3.1.1 se mencionó que la extracción de entidades podría mejorarse utilizando funciones de expresión regular, es

decir, explotando tablas de búsqueda. De hecho, como se menciona en la Sección 5.1.1, dos

Se crearon tablas de búsqueda para mejorar aún más el rendimiento del chatbot al manejar
Machine Translated by Google

5.1 Enfoque NLU 87

Grandes entidades de léxico: nombres de personas y nombres de alimentos. Con el fin de evaluar la variación en

rendimiento, también se probaron dos canalizaciones que utilizan estas características. Estos ductos utilizan el Regular

Característica de expresión descrita en la Sección 5.1.2.

5.1.6.1 Enfoques

En este caso sólo se probaron dos ductos, los cuales corresponden a los de mejor puntaje con el

adición de las características Regex. Esto significa que las tuberías son similares a IE.A2 e IE.A4.

Son: IE­RG.A2: funciones dispersas e incorporaciones BERT con clasificador DIET (transformador

habilitado) + Tablas de búsqueda e IE­RG.A2: funciones dispersas e incrustaciones de BERT con DIET

Clasificador (transformador habilitado) + Tablas de búsqueda. Los ductos se resumen en la Tabla 5.11.

Tabla 5.11: Canalizaciones probadas para clasificación de intención conjunta y reconocimiento de entidades con tabla de búsqueda
características

Acercarse Identificación Tokenizador Destacados Clasificador


Palabra previamente entrenada Vectores de palabras de guante + Regex DIETA (transformador
IE­RG.A1 espacial Destacador
Incrustaciones activado)
Sklearn Count Vectores + Léxico

y Destacador Sintáctico + DIETA (transformador


Mezclado IE­RG.A2 BERT
Incorporaciones BERT + Regex activado)
Destacador

5.1.6.2 Evaluación experimental

Las condiciones de entrenamiento y prueba para estos ductos son iguales a las anteriores (3 veces con
ratios tren/prueba 70/30 y 80/20). La tabla 5.12 resume los resultados obtenidos para las configuraciones antes mencionadas.

Como era de esperar, hay un ligero aumento en las puntuaciones F1 para el reconocimiento de entidades en ambas configuraciones,

en comparación con las mismas tuberías sin las características de la versión anterior.

tablas de consulta (IE.A2 e IE.A3 en la Tabla 5.10). Este aumento es aún más evidente al analizar

las puntuaciones individuales de las entidades para las que se creó una tabla de búsqueda. De hecho, la Tabla 5.13

muestra que los valores de F1 para ambas entidades aumentaron en los dos modelos. Es más, es posible

Observe que la causa principal de esta mejora es un mayor valor de recuperación. Esto significa que,

Al utilizar tablas de búsqueda, el modelo puede mejorar el reconocimiento de las muestras positivas.

dejando fuera las muestras menos positivas. La brecha es mayor para la entidad nombre_persona, probablemente debido a

el hecho de que los datos de entrenamiento tenían menos muestras de nombres y la tabla de búsqueda es más extensa

al comparar con las entidades alimentarias.

De hecho, la adición de tablas de búsqueda mejora los resultados para el reconocimiento de entidades.

Sin embargo, también ayudó a ambos modelos a aumentar la precisión de la clasificación de intenciones. Esto refuerza

que la metodología de doble tarea presenta beneficios para el desempeño general del modelo.
Machine Translated by Google

88 Desarrollo de chatbots

Tabla 5.12: Resultados de extracción de entidades y clasificación de intenciones para las configuraciones mediante búsqueda
tablas como forma de mejorar el rendimiento

Modelo Promedio Macro Precisión promedio


Porcentaje excluido ponderada Recuperación F1 0,002 0,754 0,039 0,763 0,032
de precisión 0,796
Recordar F1 Exactitud

20 0,885 0,013 0,883 0,013 0,880 0,013 0,883 0,012


IE­RG.A1
30 0,795 0,010 0,754 0,039 0,761 0,002 0,880 0,002 0,880 0,003 0,875 0,003 0,880 0,005
Intención
20 0,776 0,061 0,714 0,029 0,728 0,044 0,868 0,018 0,866 0,020 0,860 0,020 0,866 0,011
IE­RG.A2
30 0,741 0,027 0,682 0,067 0,696 0,054 0,850 0,018 0,848 0,019 0,843 0,019 0,848 0,022
20 0,903 0,000 0,858 0,037 0,870 0,024 0,906 0,006 0,891 0,008 0,896 0,008 0,836 0,102 0,796 0,054 –
IE­RG.A1 –
30 0,807 0,079 0,892 0,016 0,8 77 0,022 0,882 0,022 0,877 0,054 0,830 0,011 0,839 0,027 0,905 0,051
Entidad 20 0,898 0,036 0,896 0,036 0,828 0,035 0,748 0,041 0,769 0. 012 0,900 0,023 0,868 0,010 0,876 0,010 –
IE­RG.A2 –
30

Tabla 5.13: Puntajes de desempeño individuales para las entidades afectadas por la adición de una búsqueda
tabla (comida y nombre_persona)

Modelo comida de Precisión Recordar F1


entidad 0,927 0,048 0,860 0,033 0,891 0,006
IE.A2
nombre_persona 0,754 0,041 0,912 0,030 0,824 0,010
alimento 0,901 0,020 0,861 0,002 0,880 0,011
IE.A4
nombre_persona 0,736 0,233 0,681 0,027 0,701 0,118
alimento 0,919 0,044 0,904 0,013 0,911 0,015
IE­RG.A1
nombre_persona 0,826 0,104 0,909 0,193 0,865 0,146
alimento 0,910 0,006 0,902 0,085 0,905 0,038
IE­RG.A2
nombre_persona 0,801 0,215 1,000 0,000 0,883 0,127

5.1.7 Componentes adicionales

Con el fin de aumentar el rendimiento y mejorar la experiencia del chatbot, además de facilitar
algunas tareas que se explicarán con más detalle, se agregaron algunos componentes NLU adicionales a
la tubería. Estos componentes no afectan las puntuaciones de clasificación. Además del Tonkeniser,
Modelo de características y clasificación, los componentes explorados en las siguientes secciones fueron
añadido al enfoque final.

5.1.7.1 Corrector ortográfico

Una buena experiencia con un agente conversacional requiere un manejo adecuado de los errores. A saber,
Al considerar la entrada de texto, existe la posibilidad de que se envíen palabras mal escritas al chatbot. Por un lado, el
modelo debería ser lo suficientemente robusto como para manejar palabras desconocidas, dado
no sólo al hecho de que algunas de las características léxicas permanecerían iguales sino también al hecho de que el modelo
Capacidad de inferir el sentido de las palabras circundantes. Por otra parte, dependiendo de
el error ortográfico, la extracción de entidades podría verse afectada en gran medida, lo que provocaría una falla al abordar al usuario

peticiones. Por esa razón, tiene mucho sentido incluir en el proceso un proceso de preprocesamiento
paso que intenta abordar los errores tipográficos incluso antes de que se produzca la tokenización. Teniendo esto
En mente, el módulo de revisión ortográfica se implementó en la parte superior del proceso utilizando SymSpell
Biblioteca Python4 . Funciona comparando cada palabra de la oración con un modelo de vocabulario.
a través de la distancia de Levenshtein. Esta métrica de distancia calcula la diferencia entre palabras en
una base de personaje. El vocabulario se basa en Google Book N­gram Viewer5 y SCOWL – Spell

4https://github.com/wolfgarbe/SymSpell
5http://storage.googleapis.com/books/ngrams/books/datasetsv2.html
Machine Translated by Google

5.1 Enfoque NLU 89

Listas de palabras orientadas al corrector6 . El primero es una colección de palabras y su frecuencia respectiva
entre un gran corpus de libros, mientras que el segundo es un diccionario de palabras en inglés. El autor de la
biblioteca creó el diccionario final cruzando las dos listas. Dada una palabra W mal escrita, calcula las opciones
más cercanas según la distancia de Levenshtein. Calcula todas las posibilidades para una distancia de edición
de hasta n, donde n es la distancia máxima de Levenshtein desde la palabra hasta cualquier candidato. Luego
de ese paso aplica un filtro para seleccionar solo palabras del diccionario y luego calcula la probabilidad
condicional de W correspondiente a cualquiera de los candidatos, siempre que la distancia de edición y la
frecuencia de las palabras. Este algoritmo es muy rápido, alcanza una velocidad de 5000 palabras por
segundo, lo que significa que puede usarse en el momento de la inferencia, durante la conversación. Además,
puede lidiar con espacios insertados o eliminados entre tokens, mediante el análisis de compuestos de
bigramas, lo cual es una gran ventaja sobre otros algoritmos de revisión ortográfica comunes, como el
pyspellchecker7 de Norvig o el GNU Aspell8 de Atkinson .

5.1.7.2 Extractor de entidades patito

Duckling9 es un extractor de entidades desarrollado por Wit.Ai que originalmente fue desarrollado como un
analizador de fechas, aunque incorpora otras capacidades útiles. Transforma datos no estructurados en datos
estructurados que el chatbot puede utilizar fácilmente. Como ejemplo, analiza "3 de enero de 1997" en
"1997­01­03T00:00:00:000­00:00". Es un modelo híbrido que utiliza reglas y aprendizaje automático para
extraer esas entidades. Es capaz de extraer y analizar un gran grupo de entidades, de las cuales algunas se
utilizarán en este trabajo. Es decir, el tiempo será muy importante para la creación y visualización del plan, el
número puede referirse a una opción, a una calificación o incluso a información personal (peso o altura), y el
ordinal es crucial para la selección de opciones. La principal ventaja de utilizar Duckling es que puede
reconocer intervalos de tiempo (como "fin de semana" o "los próximos días"), fechas completas (como el
ejemplo anterior) o incluso días de la semana y analizarlos hasta el momento actual. hora y fecha.
Esto significa que el usuario podrá indicar un día de la semana sin necesidad de introducir una fecha, por
ejemplo. Esto hace que el chatbot sea más consciente de la fecha y hora actual y mejora la calidad tanto de
las conversaciones como de las consultas.

5.1.7.3 Análisis de sentimiento

El objetivo de incluir un componente de Análisis de Sentimiento era modelar aún más las preferencias con
respecto al plan. Este componente extrae el sentimiento capturado en la entrada del usuario como una entidad
que llena un espacio de la memoria del agente. El sentimiento suele ser negativo, neutral o positivo y también
puede tener un valor de magnitud, que representa la intensidad del sentimiento. De esta manera puede ser
utilizado por las acciones para adaptar la respuesta y calificar los elementos de la comida.
Este componente solo requiere el texto ingresado por el usuario sin procesamiento adicional, además de la
revisión ortográfica que se ejecuta al comienzo de cada nueva entrada. Este componente se explicará y
analizará con más detalle en la Sección 5.2, que trata sobre el modelado de preferencias.

6http://wordlist.aspell.net/
7https://pyspellchecker.readthedocs.io/
8http://aspell.net/
9https://duckling.wit.ai/
Machine Translated by Google

90 Desarrollo de chatbots

5.1.7.4 Mapeador de sinónimos

Rasa también permite la implementación de un mapeador de sinónimos. Este componente es responsable de convertir entidades

extraídas en sinónimos definidos, lo que permite una reducción de la variabilidad y la normalización. Requiere una lista de posibles

sinónimos para un valor de entidad determinado (ver Figura 5.1).

Dicho esto, puede ser otra solución para las palabras mal escritas, ya que los errores más comunes pueden incluirse en la lista. En

este trabajo, el mapeador de sinónimos también funcionará como normalizador para entidades relacionadas con el plan. Todas las

palabras clave en la base de datos están en mayúsculas, por lo tanto, el asignador de sinónimos convertirá entidades como "cena"

en "CENA", de modo que esta transformación no tenga que ocurrir en las funciones de acciones personalizadas.

Figura 5.1: Sinónimos definidos para la palabra "CENA"

5.1.8 Canalización final de NLU

Teniendo en cuenta los resultados explorados en las secciones anteriores, así como los componentes adicionales que se

describieron, el proceso final consta de los siguientes componentes:

1. Corrector ortográfico SymSpell

2. Analizador de sentimiento VADER (descrito en la siguiente sección)

3. Tokenizador spaCy

4. Vectores de palabras GloVe como características densas

5. Funciones de expresión regular (escasas)

6. Clasificador de DIETA

7. Extractor de entidad patito

8. Mapeador de sinónimos

Hay algunas consideraciones importantes con respecto al oleoducto. El orden del mismo es de suma importancia, ya que

algunos de los componentes toman como insumos la salida de los anteriores.


Machine Translated by Google

5.1 Enfoque NLU 91

El corrector ortográfico, el analizador de sentimientos VADER y el tokenizador solo requieren la entrada de texto.
Por otro lado, todas las características (vectores GloVe y características Regex) requieren tokens para funcionar.
adecuadamente. El clasificador DIET necesita las características extraídas previamente para realizar tanto la clasificación
interna como el reconocimiento de entidades, mientras que Duckling Extractor solo requiere tokens.
El asignador de sinónimos debe ser el último componente ya que asigna las entidades reconocidas en
nuevos valores de acuerdo con los ejemplos que se dieron en los datos de entrenamiento. La entrada del usuario es
pasa por todos estos componentes y el resultado es su intención inherente y las entidades que
están presentes.

Se realizó una evaluación experimental similar (3 veces con una proporción de tren/prueba de 80/20) para
Este proceso y algunas métricas adicionales se extrajeron de los resultados. La tabla 5.14 resume la
promedios ponderados para el pipeline final. Como se puede observar, los resultados son muy similares
a los obtenidos en la Tabla 5.12.

Tabla 5.14: Clasificación de intenciones y resultados de reconocimiento de entidades para el proceso final

Intención de recuperación
de precisión promedio F1 Exactitud

ponderada 0,899 ± 0,016 0,879 ± 0,020 0,890 ± 0,018 0,893 ± 0,018



Entidad 0,902 ± 0,020 0,889 ± 0,019 0,890 ± 0,021

Además, la Figura 5.2 muestra el número de conjeturas correctas e incorrectas según


la confianza del sistema. Los resultados mostrados en este gráfico son importantes para la selección de
valores de umbral utilizados para aceptar o rechazar una predicción, es decir, el umbral NLU mencionado en
Sección 4.3.2.3 para la Política alternativa. En este caso, un buen valor umbral se situaría entre
0,65 y 0,80, ya que este es el intervalo donde el número de aciertos y fallos son cercanos entre sí

otro. El valor debe elegirse de acuerdo con la métrica que se desea optimizar: una menor
El valor aumentaría la recuperación, mientras que un valor más alto aumentaría la precisión. En este trabajo, el
El valor seleccionado fue 0,65 para abordar el menor recuerdo causado por el desequilibrio de clases de la
conjunto de datos. Además, la matriz de confusión para la clasificación de intenciones se muestra en la Figura A.4.1.
Machine Translated by Google

92 Desarrollo de chatbots

Figura 5.2: Histograma de aciertos y errores según la confianza del modelo para la clasificación de intenciones

5.2 Modelado de preferencias

Una de las ventajas de utilizar el lenguaje natural como medio de comunicación es la mayor facilidad para
expresar preferencias y opiniones. Sin embargo, los humanos han desarrollado un modelo de preferencia
basado en datos conversacionales que puede ser un desafío para una computadora aprender.
Según Ohlsson et al. [183], las preferencias alimentarias corresponden a las posiciones evaluativas que
expresan las personas hacia los alimentos, incluida la evaluación cualitativa y también cuánto les gustan y
disgustan a las personas los alimentos. De hecho, una máquina requerirá una clasificación cuantitativa de los
alimentos para poder modelar adecuadamente la preferencia. Sin embargo, la escala hedónica habitual
("¿Cuánto te gusta o no te gusta un alimento?") utilizada para expresar la preferencia le quita naturalidad a la
interacción a través de la conversación. Por lo tanto, el caso de uso de expresión de preferencia (UC.10 y
UC.11 de la Sección 4.4.3) requirió la implementación de un algoritmo capaz de transformar la preferencia
cualitativa en un valor cuantitativo. La extracción de sentimientos del texto puede desempeñar un papel en
esta tarea.

La cuantificación del sentimiento presente en una oración suele estar relacionada con el sujeto de la
oración. Esto significa que, al expresar preferencia a través de recursos verbales, la respuesta general
Machine Translated by Google

5.2 Modelado de preferencias 93

El sentimiento del insumo puede ser un buen indicador del nivel de aceptabilidad con respecto a un alimento determinado.
Actualmente, existe una gran cantidad de herramientas de análisis de sentimiento que se pueden aplicar a cualquier canal.
En este trabajo, se estudiarán dos analizadores de sentimientos muy extendidos: VADER NLTK Sentiment Analyser10 y el
componente de minería de sentimientos de la API de lenguaje natural de Google Cloud11 .
Se seleccionaron estas dos opciones debido a que ambas producen una puntuación de magnitud con respecto a la intensidad
del sentimiento, que se utilizará para modelar las preferencias.

Para crear un modelo numérico que sea apropiado para el alcance de este trabajo y también validar los resultados, se
utilizaron los datos recopilados durante la recopilación del conjunto de datos mencionado en la Sección 5.1.1 . Como
recordatorio, se pidió a los voluntarios que dieran varios ejemplos de expresión de preferencia combinada con el valor de
intensidad de preferencia percibida de 0 a 5. Como ejemplo, la oración "Odio las manzanas" tendría un valor de intensidad
más cercano a 0 que la oración "¡No me gustan las manzanas!", ya que el sentimiento en el primer ejemplo es más fuerte
que en el segundo. En las siguientes secciones se explorarán las herramientas antes mencionadas y los resultados obtenidos.

5.2.1 Analizador de sentimiento VADER NLTK

Valence Aware Dictionary and sEntiment Reasoner (VADER) es una herramienta de análisis de sentimientos basada en
léxico y reglas basada en el trabajo de Hutto et al. [184] que fue desarrollado para los sentimientos expresados en las redes
sociales. Está preparado para lidiar con jergas y abreviaturas muy comunes en los mensajes de texto. Este diccionario es
sensible tanto a la polaridad como a la intensidad de los sentimientos. El diccionario VADER se utiliza junto con la biblioteca
NLTK para procesar las frases y extraer un resultado para cada una. El diccionario tiene un conjunto de tokens calificados
positiva y negativamente que coinciden con la oración del usuario. Además, Hutto et al. Realizó una investigación sobre un
gran conjunto de datos de tweets para llegar a un grupo de heurísticas que describan mejor los sentimientos en las oraciones.

Los autores concluyeron que había 5 heurísticas que alteran el flujo de

el sentimiento en una oración:

• Puntuación: la presencia de puntuación, es decir, el signo de exclamación, en el texto escrito corresponde a un aumento
en la magnitud del sentimiento que se expresa. Una frase que termina con una exclamación se considera más intensa
que la misma frase pero con un punto normal.

• Uso de mayúsculas: otra característica interesante del texto escrito informal es el uso de mayúsculas en algunas
palabras para enfatizarlas. Esto es particularmente claro cuando se trata de tokens en mayúsculas que realmente
maximizan su sentimiento intrínseco.

• Modificadores de grado: los adverbios de grado normalmente alteran la intensidad de la palabra a la que se refieren.
Esto puede representar un cambio positivo o negativo, según el adverbio.

• Conjunciones contrastivas: el uso de conjunciones contrastivas como "pero" o "sin embargo" puede cambiar la polaridad
del sentimiento en la oración. Normalmente el sentimiento que sigue a la conjunción es el sentimiento que prevalece
en la oración.

10https://www.nltk.org/howto/sentiment.html
11https://cloud.google.com/natural­language
Machine Translated by Google

94 Desarrollo de chatbots

• Análisis de trigramas para invertir el sentimiento: la regla de los trigramas se definió empíricamente como
el número óptimo de tokens a considerar al verificar la negación del sentimiento en una oración.

VADER funciona aplicando este conjunto de reglas a las fichas de la frase y concediéndoles una
puntuación. Luego, la puntuación se suma y se normaliza entre 1 y ­1. Este resultado corre­

responde a la puntuación compuesta o magnitud del sentimiento en esa oración. Este método también
devuelve otro valor que representa la ración de partes de la oración o documento que caen en cada nivel de
polaridad: negativa, neutral o positiva. En el alcance de este trabajo, el valor compuesto se utilizará tanto para
evaluar el sentimiento general en la oración como para cuantificar el sentimiento.
Además, VADER es muy rápido, lo cual es una característica deseada para un agente en tiempo real, como
un chatbot.

5.2.2 API de lenguaje natural de Google Cloud

Por el contrario, el analizador de sentimientos de Google Cloud es un enfoque basado en el aprendizaje


profundo. Los algoritmos y modelos no son públicos y no se puede acceder a ellos ni está disponible
información sobre ellos. Sin embargo, es conocido como uno de los mejores canales de PNL. De manera
similar al algoritmo VADER, califica cada oración de ­1 (negativo) a 1 (positivo) según su intensidad de sentimiento.
Esta función tiene un coste asociado que depende del número de solicitudes que recibe.
No obstante, es importante comparar ambos modelos para comprender sus diferencias y limitaciones. También
tiene un modo que calcula el sentimiento de una entidad determinada; sin embargo, después de la visualización
de los resultados, se seleccionó el modo estándar para el sentimiento de oración completa.

5.2.3 Análisis de sentimiento para el modelado de preferencias

Con el fin de comprender qué clasificador era el mejor para incorporar en el agente conversacional, ambos se
probaron con la verdad del terreno recopilada en el formulario de Google. La distribución de las respuestas se
muestra en la Figura 5.3.
Machine Translated by Google

5.2 Modelado de preferencias 95

Figura 5.3: Distribución de muestras por clase de intensidad

Los algoritmos presentados anteriormente se probaron utilizando los datos recopilados para crear un modelo que
pueda adaptarse al alcance del trabajo. Se calculó y almacenó la magnitud del sentimiento de cada oración en el conjunto
de datos (después de eliminar las muestras fuera de alcance). Ambos algoritmos califican la intensidad del sentimiento de
­1 a 1, mientras que el formulario pedía una calificación de preferencia de 0 a 5. Este intervalo es más apropiado para la
comprensión humana. Por esa razón, las puntuaciones almacenadas en los algoritmos se normalizaron para que coincidan
con el rango de 0 a 5 utilizando una función lineal simple, representada en la Ecuación 5.1.

5
tasa[1,5] = (tasa[−1,1] + 1) × 2 (5.1)

Tras la transformación se analizaron algunas métricas para evaluar la calidad de las predicciones, tomando como base
las valoraciones recogidas en el formulario. Se calculó la correlación de Spearman entre la verdad fundamental y las
puntuaciones obtenidas por ambos modelos. Esta métrica evalúa si la relación entre dos distribuciones puede describirse
mediante una función monótona y otorga una puntuación de ­1 a 1, donde ­1 significa que mientras una disminuye la otra
aumenta y 1 significa que siguen la misma dirección. En pocas palabras, es 1 si todas las muestras de ambas distribuciones
están en el mismo lugar ordinal. La puntuación se penaliza según la diferencia en el orden. También se calculó la correlación
de Pearson. Es similar a la correlación de Spearman, aunque es menos flexible para los valores atípicos ya que intenta
relacionar las dos distribuciones mediante una función lineal.

Además, se calcularon métricas de error (error absoluto medio y error cuadrático medio) para toda la distribución y por
clase. Además, se calcularon métricas estadísticas (media, mediana y desviación estándar) por clase. Los resultados se
pueden observar en las Tablas 5.15 y 5.16.
Machine Translated by Google

96 Desarrollo de chatbots

Tabla 5.15: Correlación de Spearman y Person, error absoluto medio y raíz cuadrática media
Error para el conjunto de datos completo, por analizador de opiniones

VADER de Google Cloud

HAY 0,85 1.11

RMSE 1.20 1,45

Lancero 0,73 0,67

pearson 0,82 0,68

Tabla 5.16: Medidas de tendencia central por clase, para cada clasificador (tanto limitado como no
tapado)

Google Cloud VADER Google Cloud limitado VADER limitado


Media 0,38 1,68 0,07 1.19
0 Mediana 0
Est. Desv. 0 1 0 1.34
Media 0,56 0,85 0,37 1.24
1 Mediana 2
Est. desarrollador 0,21 0 0,73 1,68 2 0,73 0,12 0 0,69 1.18
Media 0,73 2,15 0,46 2.04
2 Mediana 2
Est. Desv. 0 2 0 0,96
Media 0,96 0,73 0,99 2,89
3 Mediana 3
Est. Desv. 2,93 2,81 2,89 1.19
Media 3 3 3 4.14
4 Mediana 4
Est. Desv. 1,82 0,92 1,95 0,88
Media 4,90 3,76 4,90 3.95
5 Mediana 5
Est. desarrollador 5 0,41 4,23 5 1,56 4 0,58 3,42 4 1,04 5 0,41 4,22 5 1,68 1.61

A primera vista, es posible notar que el valor de correlación de Google Cloud Spearman

es más alto que el de VADER. Esto significa que el modelo produce predicciones que se alinean mejor con

la verdad fundamental que los valores predichos por VADER. Sin embargo, ambos valores están muy por encima de 0.

y cercano a 1, lo que muestra que ambos pueden escalar correctamente la intensidad de los sentimientos cuando

expresando preferencias. Lo mismo ocurre con los valores de correlación de Pearson, es decir que, una vez

Nuevamente, ambos modelos pueden predecir la variación de la intensidad del sentimiento en esa escala.

Al observar los valores de error, es posible ver que el error absoluto medio fue menor para

el modelo de Google que para VADER. Después de un análisis más detallado para comprender la razón detrás

estos valores, fue posible concluir que el modelo de Google Cloud manejó mejor los valores atípicos

e intentos fallidos que VADER. Esto es especialmente claro en las clases más extremas (0 y 5).

Estas clases también producen los errores más grandes cuando el modelo no logra predecir o da una respuesta incorrecta.

predicción ya que están en los extremos. Aparte de esto, las clases no están equilibradas en el

conjunto de datos. De hecho, las clases que tienen más muestras son exactamente 0 y 5 (Figura 5.3).
Machine Translated by Google

5.2 Modelado de preferencias 97

Este hecho puede estar sesgando las métricas de error medio del clasificador VADER. Por lo tanto, se adoptó otro
enfoque para analizar los datos. Las métricas de error se calcularon por clase, ver
Tabla 5.17 y Figura 5.4.

Tabla 5.17: Valores promedio de MAE calculados por clase para ambos modelos antes y después del tope

VADER de Google Cloud Google Cloud limitado VADER limitado

ES LA 1.00 0,85 1.03 0,86

(a) MAE por clase para el sentimiento anal de Google(b) MAE por clase para el analizador de sentimientos de VADER
yser (con y sin límite) Cloud (con y sin límite)

Figura 5.4: Valores del Error Absoluto Medio calculados por clase para ambos modelos

Respecto a VADER, confirmó que los mayores valores de error ocurren en las extremidades. También,
Al observar los valores estadísticos centrales por clase, es decir, la mediana, el patrón se repite (Tabla 5.16).
segunda columna). Las mayores diferencias con la mediana de predicción y el valor de la clase.
sucede en las extremidades. Esto se explica por el hecho de que no hay más clases antes.
0 y después del 5, concentrando todos los valores posibles en el siguiente bin. Este fenómeno no
Permita que los valores más bajos compensen los más altos y viceversa. Además, es muy difícil
tener una predicción exactamente en los extremos ya que representaría lo más negativo o positivo
Sentimiento que uno puede expresar usando texto. En este caso, el sentimiento hacia un ingrediente, incluso
si el usuario no quiere ese ingrediente en sus planes de alimentación, nunca llegará a esos niveles. En
por el contrario, las predicciones para las clases 1 a 4 tienen valores centrales más cercanos a los reales
valor, teniendo también una desviación estándar más baja. Para estos intervalos, el modelo realmente tiene una buena
poder de predicción. Los valores medios de error absoluto también son más bajos en estas clases centrales.

Por otro lado, el analizador de sentimientos de Google Cloud muestra un patrón completamente opuesto.
Los valores de error son realmente menores en las extremidades y mayores en el centro. al mirar
valores medianos (Tabla 5.16, primera columna), es posible notar que, aunque los valores para 0
y 5 están más cerca del valor correcto, los valores del centro no coinciden con los contenedores correctos por
una gran diferencia.
Machine Translated by Google

98 Desarrollo de chatbots

El modelo final para expresar preferencias debe tener en cuenta el mecanismo de calificación del sistema de
recomendación Lifana que va de 0 a 1. Los valores extremos de la escala de calificación en el motor Lifana tienen
características especiales, a saber, la calificación negativa o de valor cero. Si alguna receta o ingrediente obtiene una
calificación de cero, el recomendador dejará de incluir ese elemento en futuros planes de alimentación. Teniendo en
cuenta que es prácticamente imposible obtener una puntuación de cero utilizando cualquiera de los analizadores de
sentimientos, una solución que simplemente asigna las puntuaciones de [­1; 1] rango a [0; 1] rango no consideraría esto.
Por esa razón, se crearon umbrales inferior y superior para asignar algunas predicciones a cero (por debajo del umbral
inferior) o cinco (por encima del umbral superior). Los valores de predicción entre esos umbrales se conservaron y se
asignaron linealmente a la escala correcta. De esta manera, es posible realizar la acción de eliminación expresando un
sentimiento muy negativo. Teniendo esto en cuenta, y también el hecho de que Google Cloud no es gratuito a gran escala,
se seleccionó VADER como método de análisis de sentimiento utilizado para modelar las preferencias.

Para crear el modelo con precisión, el umbral inferior se fijó en el valor de la mediana correspondiente a las
predicciones para la clase 0. La misma lógica se aplica al umbral superior, que se fijó en el valor medio de las predicciones
para la clase 5. Por tanto, el modelo de preferencia sigue el algoritmo expresado en la Ecuación 5.2. La distribución de las
predicciones tanto para la clase 0 como para la clase 5, antes y después del límite por el valor mediano, para cada uno de
los modelos se representa en las Figuras 5.5 y 5.6.

0
predicción ≤ −0,60
predicción+1
preferencia = 2 −0,60 ≤ predicción ≤ 0,60 0,60 ≤ (5.2)

1 predicción

(a) Número de predicciones para la clase 0 utilizando VADER (b) Número de predicciones para la clase 5 utilizando
VADER con límite y sin límite con límite y sin límite

Figura 5.5: Diferencia en las predicciones para el modelo de VADER antes y después de aplicar la regla de limitación
descrita en la Ecuación 5.2, para las clases 0 y 5
Machine Translated by Google

5.2 Modelado de preferencias 99

(a) Número de predicciones para la clase 0 utilizando Google (b) Número de predicciones para la clase 5 utilizando Google
Modelo de nube con y sin límite Modelo de nube con y sin límite

Figura 5.6: Diferencia en las predicciones para el modelo de Google Cloud antes y después de aplicar la regla de limitación
descrita en la Ecuación 5.2, para las clases 0 y 5

Se nota el cambio en el número de predicciones puntuadas 0 y 5, antes y después de aplicar la regla de limitación. El
cambio es mayor en el clasificador VADER que en el modelo de Google Cloud, como se esperaba. Sin embargo, al observar
la Tabla 5.16, es posible observar que los valores medianos y medios para cada clase son más precisos usando el modelo
de VADER que el modelo de Google Cloud, después de limitar los resultados.

Además, si la calificación cae dentro del intervalo central (de 1 a 4), el chatbot guardará el valor de preferencia
correspondiente (normalizado a [0;1]) y pedirá al usuario una calificación de 0 a 5, para poder confirmar la calificación
percibida. Esto cubriría las predicciones fallidas y la mayor variabilidad presente en las clases medias. De hecho, al examinar
los lemas más frecuentes para cada clase, este patrón se hizo evidente. Como se puede percibir en los gráficos de la Figura
5.7, la variabilidad de los lemas de palabras en las clases centrales es mayor que en las extremidades. Estos últimos
presentan una mayor homogeneidad en los términos utilizados. Sin embargo, si el usuario no está dispuesto a dar una
calificación, la evaluación prevista aún se almacenará, por eso es crucial tener una alta precisión con respecto a las clases
centrales.
Machine Translated by Google

100 Desarrollo de chatbots

(b) Las 12 palabras más frecuentes para calificar la intensidad 1


(a) Las 12 palabras más frecuentes para calificar la intensidad 0

(c) Las 12 palabras más frecuentes para calificar la intensidad 2 (d) Las 12 palabras más frecuentes para calificar la intensidad 3

(e) Las 12 palabras más frecuentes para calificar la intensidad 4 (f) Las 12 palabras más frecuentes para calificar la intensidad 5

Figura 5.7: Los gráficos muestran los 12 lemas de palabras más frecuentes para cada clase. Es posible
Veamos que las clases centrales (1 a 4) tienen mayor variabilidad. Por el contrario, las clases 0 y 5 son
más heterogéneo, teniendo algunos términos que aparecen mucho más que otros.
Machine Translated by Google

5.3 Maridaje de alimentos 101

5.3 Maridaje de alimentos

Otro desafío crucial que surgió al intentar modelar las preferencias dietéticas respaldadas por un conjunto de datos
de ingredientes y recetas fue el algoritmo de coincidencia que mapeó las entidades capturadas por el módulo NLU a
partir de la oración del usuario con las entradas correctas en el conjunto de datos.

El primer enfoque para resolver este problema consistió en realizar una búsqueda basada en palabras en la
base de datos para encontrar coincidencias exactas en los nombres de los ingredientes. El método se mejoró con
una coincidencia difusa de palabras para conocer las variaciones de palabras. Aunque no existe una gran variabilidad
en los nombres de los ingredientes, este método a menudo dejaba sin recuperar varias opciones correctas y no tenía
en cuenta los grupos de alimentos. De hecho, la gente generalmente expresa sus preferencias hacia amplios grupos
de ingredientes cuyo nombre no coincide con el nombre de los ingredientes. Esto significa que al considerar más de
un ingrediente que se puede agrupar, las personas suelen utilizar su hiperónimo para expresar una preferencia.
Siguiendo esta línea de pensamiento, el algoritmo implementado debería ser capaz de discernir entre ingredientes
individuales y grupos de alimentos. Esto llevó a la exploración de sintetizadores y bases de datos de léxico como
WordNet12 [185] o ConceptNet13 [186] como forma de clasificar cada ingrediente. Además, la combinación de estas
bases de conocimiento con la información proporcionada por las facetas de LanguaL sobre cada ingrediente creó un
interesante conjunto de características para clasificar los ingredientes. Sin embargo, todavía existía el desafío de
conectar el ingrediente con las respectivas representaciones en el conjunto de datos. Esto se considera una tarea de
clasificación en el campo de la recuperación de información. Basado en el trabajo de Wu et al. [187], el enfoque
diseñado para esta tarea se basa en el uso o creación de incrustaciones para la clasificación de ingredientes.

La lógica detrás de este método es que cualquier entidad puede ser incrustada mediante un modelo de incrustación
neuronal aprendiendo las relaciones de representaciones de características entre colecciones de esas entidades. El
espacio vectorial es el mismo para todas las entidades, lo que permite al modelo clasificar entidades, documentos u
objetos según la medida de similitud con una entidad de consulta determinada. No es necesario que estos últimos
sean del mismo tipo que los elementos que se clasifican. Para crear incrustaciones adecuadas, se pueden tomar dos
caminos: proporcionar datos anotados al modelo, como entidades de consulta, tuplas de coincidencias de bases de
datos; o aprender incorporaciones no supervisadas de las relaciones entre las entidades. Teniendo esto en cuenta,
las facetas de LanguaL pueden presentarse como clases para los ingredientes, concretamente las facetas A, B y C,
que se explicarán con más detalle (la lista completa de categorías utilizadas se encuentra en la Tabla A.3).

• Faceta A – Los ingredientes se clasifican según el grupo de alimentos al que pertenecen.


En este caso, la faceta A recoge varios estándares internacionales para la agrupación de alimentos. Para
efectos de este trabajo se considerará la clasificación de los Grupos de Alimentos europeos por considerarse
como la de mayor granularidad.

• Faceta B – Aborda la fuente de alimento y tiene varios niveles de jerarquía. Para este trabajo sólo se considerará
el último y más específico nivel. Por ejemplo, la fuente alimenticia de la leche es la vaca y la fuente alimenticia
de las pasas es la uva. Esta faceta es especialmente importante para agregar alimentos que correspondan a
su fuente alimentaria, como frutas y verduras o tipos de pescado.

• Faceta C – La última categoriza la parte del animal o planta de la que se extrae el ingrediente. A modo de
ejemplo, el descriptor del queso en esta clasificación es leche. Este

12https://wordnet.princeton.edu/
13https://conceptnet.io/
Machine Translated by Google

102 Desarrollo de chatbots

La faceta presenta la menor conexión con los términos del lenguaje actual, aunque puede ser importante
discernir semánticamente entre ingredientes similares.

Una correcta clasificación del ingrediente en estos tres grupos permite recuperar posibles candidatos. Aún así,
a la vista de los datos disponibles ninguno de los caminos antes mencionados era una opción ideal para un
buen desempeño, ya que algunos de los grupos tienen un solo ingrediente. Esto no se generalizará bien para
datos nuevos.

Dado esto, la idea de utilizar incrustaciones para mapear tanto los ingredientes como sus facetas en un
espacio vectorial requirió recurrir a vectores previamente entrenados. Sin embargo, la mayoría de las
incrustaciones de palabras previamente entrenadas disponibles, como Word2Vec o GloVe, se generaron
procesando enormes corpus de texto genérico, sin especial atención al léxico alimentario. Este hecho puede
perjudicar el rendimiento del algoritmo de combinación de alimentos. El trabajo desarrollado por Jaan
Altosaar14 generó un conjunto de incrustaciones preentrenadas centradas en alimentos, utilizando un corpus
de instrucciones de recetas. El objetivo de su trabajo era crear un sistema de recomendación de recetas que
uniera ingredientes para crear nuevas recetas basadas en las incorporaciones de esos ingredientes. Aunque
las incrustaciones están especializadas para alimentos, no capturan las relaciones semánticas entre
hiperónimos e hipónimos entre ingredientes. En cambio, estas incorporaciones codificaron las relaciones que
tienen varios ingredientes cuando se usan juntos. A modo de ejemplo, según esta metodología el parmesano
se acerca más a la pasta que al cheddar, aunque son dos tipos de queso. Esto se debe al hecho de que los
dos primeros se utilizan juntos muchas veces en recetas, mientras que es bastante raro mezclar parmesano y
queso cheddar en la misma receta. Este enfoque no sería apropiado para la clasificación de ingredientes,
aunque es un enfoque interesante para nuevas recetas y puede impulsar su creación para la base de datos del
sistema de recomendación Lifana. Tansey et al. siguen un enfoque similar. [188] que codifica dietas completas
en un espacio vectorial utilizando una combinación de incrustaciones de Word2Vec e información nutricional.

5.3.1 ConceptNet Numberbatch y modernización

Ambos enfoques mencionados anteriormente demuestran que la información alimentaria puede codificarse en
un espacio vectorial. Teniendo esto en cuenta, un conjunto de incrustaciones previamente entrenadas
generadas a partir del gráfico de conocimiento de ConceptNet se consideró como una opción adecuada para
codificar los ingredientes y los descriptores de LanguaL en un espacio vectorial mientras se mantienen las
relaciones semánticas entre los términos. ConceptNet Numberbatch15, como se indicó anteriormente, es un
conjunto de incrustaciones previamente entrenado que tiene en cuenta el conocimiento estructurado de sentido
común de ConceptNet, que otorga información sobre sus significados además del contexto en el que aparecen.
Se construyó utilizando un conjunto que une información de ConceptNet, GloVe, Word2Vec y OpenSubtitles
2016 [186], empleando una técnica llamada retrofitting que se explicará con más detalle.

El retrofitting es una técnica desarrollada por Faruqui et al. [189] que tiene como objetivo incorporar los
datos presentes en léxicos semánticos como WordNet o ConceptNet en un espacio vectorial de palabras
previamente definido. Este método no genera nuevas incrustaciones, sino que refina el espacio vectorial para
tener en cuenta la información relacional, lo que significa que las palabras que están vinculadas léxicamente

14https://jaan.io/food2vec­augmented­cooking­machine­intelligence/
15https://github.com/commonsense/conceptnet­numberbatch
Machine Translated by Google

5.3 Maridaje de alimentos 103

juntos deberían tener representaciones vectoriales similares. Funciona aplicando una transformación vectorial lineal a los vectores

que cierra la brecha entre palabras relacionadas y aumenta la distancia entre palabras no relacionadas léxicamente. La

transformación conduce a una función de pérdida Ψ que debe minimizarse y se representa en la Ecuación 5.3, donde qˆi es el

vector inicial, qi el vector adaptado y qj sus vecinos en la ontología (los vectores que se supone deben acercarse). Los parámetros

α y β controlan la fuerza relativa de cada parcela en la ecuación y se pueden ajustar para obtener el máximo rendimiento.

norte

2
Ψ= ∑ + ∑ βij qi − qj (i,j)
2
(5.3)
E
yo=1
αi qi − qˆi

Para minimizar la pérdida representada en la Ecuación 5.3, se debe diferenciar, resultando

en la Ecuación 5.4, que corresponden a la transformación lineal aplicada a los vectores.

∑j:(i,j) E βijqj + αiqˆi ∑j:


qi = (5.4)
(i,j) E βij + αi

Al analizar cuidadosamente la ecuación, se puede concluir que corresponde al promedio ponderado de la incorporación del

vector inicial y los vectores que representan los conceptos vinculados a él, controlados por los parámetros α y β, donde los primeros

atributos aumentaron la relevancia del vector inicial. y este último controla la importancia de los conceptos vinculados.

5.3.2 Evaluación experimental

Con el fin de crear un mecanismo para la clasificación de ingredientes, se utilizaron incrustaciones previamente entrenadas de

Numberbatch para codificar la información. Cada una de las facetas de LanguaL antes mencionadas se codificó utilizando el

promedio de las incrustaciones de cada palabra que compone el nombre de la faceta, después de la eliminación de las palabras

vacías utilizando el diccionario de palabras vacías de NLTK. Los nombres suelen estar compuestos por más de una palabra por lo

que este proceso requirió de varios pasos:

1. Tokenización: para obtener cada token individual, se utilizó el tokenizador spaCy.

2. Eliminación de palabras vacías: cada token extraído se compara con un diccionario de palabras vacías para eliminarlas y

evitar que se vuelvan a adaptar a ellas.

3. Normalización de palabras: las palabras se normalizan para eliminar las inflexiones en plural, lo cual es

particularmente común en este conjunto de datos

4. Coincidencia de diccionario: el último paso consiste en hacer coincidir los tokens con las palabras del diccionario para extraer

las incrustaciones. Sin embargo, hay algunas palabras que no están presentes en el léxico o no tienen el formato correcto.

Para solucionarlo se realizan los siguientes pasos:

(a) Cree todos los bigramas posibles y verifique si existen en el léxico.

(b) Si no, verifique si los tokens individuales existen en el léxico


Machine Translated by Google

104 Desarrollo de chatbots

(c) Si no, verifique si alguna ficha tiene guiones (también muy común) y elimínela
primero creando un bigrama y si el bigrama no es parte del léxico une las fichas. El
El último paso aquí es abordar cada parte como un token separado y verificar si está presente.
en el diccionario

(d) De lo contrario, realice una coincidencia aproximada utilizando la biblioteca FuzzyWuzzy Python. Calcula la
distancia de Leven­shtein a todas las palabras posibles en el diccionario y recupera la más probable.
candidato que tiene sólo una edición de distancia, si hay alguna

(e) Si no, cree un vector de valor cero para emular la incrustación.

Algunas de las reglas se basan en la exploración de datos mediante la búsqueda de patrones y aspectos comunes que
puede influir en el proceso. Por ejemplo, respecto al grupo Pescados y Mariscos, el resultado
la incrustación sería el promedio de los vectores de Pescados y Mariscos, ignorando la palabra y.
Con este método fue posible clasificar cada ingrediente como un grupo de cada faceta.
La información sobre la distribución de clases está presente en la Tabla 5.18. Tenga en cuenta que no todos
El ingrediente tiene los tres descriptores.

Tabla 5.18: Detalles sobre los datos de ingredientes

faceta A faceta B faceta C

Número de clases 33 213 79

Número de ingredientes 903 902 902

Después de crear incrustaciones para cada ingrediente y descriptor, se realizó la clasificación y


para evaluar la calidad de los resultados se tomó la precisión por clase. La tabla 5.19 resume la
resultados obtenidos para dos conjuntos de incrustaciones previamente entrenadas: GloVe (sin información de ontología) y
ConceptNet Numberbatch (actualizado con información de ontología).

Tabla 5.19: Resultados de precisión para la clasificación de ingredientes según las facetas de LanguaL, utilizando varios
modelos de incrustaciones previamente entrenados diferentes

Exactitud

Modelo
Faceta A Faceta B Faceta C

Guante 400k vocabulario 0,28 0,32 0,09

ConceptNet Número de lotes 0.42 0,40 0,09

La clasificación se realizó según el mismo criterio utilizado por Wu et al. en [187],


cuál es la similitud coseno entre las incorporaciones de cada ingrediente y las incorporaciones
de la clase. La clase más similar (valor más alto) se consideró como la predicción hecha por el
Machine Translated by Google

5.3 Maridaje de alimentos 105

modelo. Como es posible observar, los resultados obtenidos con el enfoque Numberbatch fueron superiores a los
obtenidos con GloVe. Esto demuestra que la modernización en realidad incorporó cierta información semántica en las
incrustaciones.

Sin embargo, los resultados no fueron muy destacados y dejaron un amplio margen de mejora.
Por esa razón, al ser LanguaL una ontología que incorpora información léxica sobre los alimentos en un estilo de gráfico
de conocimiento, estas relaciones establecidas pueden usarse para modernizar las incorporaciones de Numberbatch
previamente entrenado para que sean más conscientes de la semántica de los alimentos. Se espera que esta técnica
mejore los resultados obtenidos antes de la modernización. Se realizaron varios experimentos para comprender la mejor
manera de crear un diccionario de incrustación apropiado. Había 3 formas posibles de realizar la modernización con los
datos disponibles:

A. Actualizar incrustaciones de clases con los vectores de los ingredientes que pertenecen a cada una
clase

B. Adaptación de incrustaciones de ingredientes utilizando los vectores de las clases a las que pertenecen

C. Combinar los dos enfoques anteriores y modernizar tanto los ingredientes como las clases.

Cada procedimiento presenta ventajas y desventajas. El procedimiento A no cambiará las incrustaciones asociadas
a cada ingrediente, sino que codifica cada etiqueta según los ingredientes que contiene. Esto puede representar una
ventaja para aplicaciones del mundo real cuando se trata de ingredientes que no forman parte de la base de datos. En
estos casos, siempre que haya ingredientes similares en la base de datos, el modelo aún podría clasificar la consulta y
manejar la preferencia. Por el contrario, el procedimiento B cambia los vectores que representan los ingredientes para
que coincidan con la incrustación de la etiqueta de clase. Se espera que este método converja fácilmente ya que cada
ingrediente sólo se adaptará utilizando, como máximo, 3 conceptos, lo que no ocurre en el método anterior. El
procedimiento C intenta cambiar ambos elementos hacia una representación convergente. Esto cambiará y adaptará
ambos tipos de datos entre sí, lo que puede resultar perjudicial al manejar nueva información. Además, es posible que
no se logre la convergencia ya que algunos de los conceptos están relacionados de diferentes maneras. El enfoque
seleccionado debe considerar el desempeño obtenido después de la adaptación para las tres clases al mismo tiempo,
ya que solo habrá una representación de inclusión por ingrediente. La modernización de una clase individualmente
puede dañar las clases previamente modernizadas. Aunque un método puede proporcionar mejores resultados que
otro para una faceta individual, el desempeño conjunto debería guiar el desarrollo. Los resultados se obtuvieron
utilizando la validación cruzada de K­Fold con 6 pliegues seleccionados al azar (ver Tabla 5.20). Esto aseguraría que
las metodologías fueran validadas adecuadamente. La sesión de modernización duró 20 iteraciones y después de cada
iteración se validan los resultados. Según los resultados, se actualiza el parámetro β . Si los resultados aumentaron en
general (entre las 3 facetas), el valor no se actualiza y se ejecuta la siguiente iteración con el mismo peso; de lo
contrario, el valor aumenta en un factor del 20 %. El valor inicial de β se establece en 1, al igual que α, sin embargo,
este último se fija en 1 para toda la sesión. De esta forma, en el punto de partida, tanto el vector a reequipar como las
definiciones tienen el mismo peso, lo que permite no perder información intrínseca de las palabras.
Machine Translated by Google

106 Desarrollo de chatbots

Tabla 5.20: Resultados de precisión para la clasificación de ingredientes según las facetas de LanguaL, utilizando tres
diferentes enfoques de modernización

Exactitud

Acercarse
Faceta A Faceta B Faceta C

Resultados iniciales (sin modernización) 0,412 ± 0,044 0,447 ± 0,027 0,108 ± 0,023

Enfoque A 0,6475 ± 0,029 0,505 ± 0,050 0,402 ± 0,046

Enfoque B 0,412 ± 0,044 0,447 ± 0,027 0,108 ± 0,023

Enfoque C 0,504 ± 0,054 0,417 ± 0,050 0,242 ± 0,035

Al observar la Tabla 5.20 queda claro que el enfoque que produce los mejores resultados generales es
Enfoque A, donde las clases se modernizaron incorporando información sobre los ingredientes.
Esto demostró la hipótesis de que el enfoque A trata mejor los datos invisibles que los otros enfoques, al no alterar los
valores de los ingredientes. Durante el entrenamiento del enfoque B fue
No es posible hacer converger el modelo. Esto tiene sentido cuando se piensa en el proceso de prueba. Las
incorporaciones de ingredientes del conjunto de entrenamiento se están modificando de acuerdo con LanguaL.
información, sin embargo, los del conjunto de validación no han sufrido esta alteración. Esto significa

que la puntuación de clasificación será prácticamente la misma en este caso. Respecto al enfoque C, es
Es posible ver una mejora en ambas facetas A y C, aunque la precisión de la faceta B disminuyó. Cojinete
Teniendo en cuenta estos resultados y el buen manejo percibido de los nuevos datos, se seleccionó el enfoque A como
el método para crear el nuevo conjunto de incrustaciones que se utilizarán en la recuperación de ingredientes.

A pesar de que hay una clara mejora en la precisión de la clasificación, debido a la


formato de nomenclatura de los ingredientes, las incrustaciones pueden estar considerando información que no es
relevante para la clasificación. La siguiente lista ilustra algunos ejemplos de nombres de ingredientes presentes.
en bases de datos similares.

• Piña, enlatada en jugo

• Pasta, natural, fresca, cruda

• Huevos, pollo, enteros, crudos

• Cebollas, crudas

• Atún, enlatado en salmuera, escurrido

• Queso, Edam

• Pimientos, pimientos verdes, hervidos en agua con sal


Machine Translated by Google

5.3 Maridaje de alimentos 107

En la mayoría de los casos, el nombre incluye información adicional que puede no ser relevante para el
modelado de preferencias, como el método de cocción o la forma de conservación. Además, los nombres no
siempre siguen la misma lógica porque derivan de varias fuentes. Como consecuencia de ello, no fue posible
crear reglas para el procesamiento de nombres antes de la modernización. Un ejemplo de tal regla sería eliminar
cada palabra después de la primera coma; sin embargo, como se observa en los ejemplos anteriores, algunas
características importantes con respecto a los ingredientes están presentes después de la primera o incluso la
segunda coma. Este preprocesamiento tendría que realizarse a mano, lo que no sería práctico. Como forma de
abordar este problema, se aplicó una versión alterada del algoritmo TF­IDF (ver Sección 3.1.4.2) como mecanismo
de ponderación. De esta manera, las palabras que no son importantes para distinguir clases tendrán menos
importancia al actualizar las incrustaciones.

Las ponderaciones de TF­IDF se calcularon de dos maneras diferentes, dependiendo de lo que se


consideraba un documento. Antes de detallar los métodos, es importante mencionar que el elemento a reequipar
y los elementos que se utilizarán para reequipar de ahora en adelante se denominarán conceptos y definiciones,
respectivamente.

1. Documento corresponde a las definiciones de cada concepto.

Para ilustrar este caso, al actualizar el concepto Pescado y Marisco, un documento comprendería todos los
nombres de ingredientes que pertenecen a esa clase. Esto potenciaría la parte de Término­Frecuencia ya
que suele haber varios ingredientes con nombres similares, variando sólo el método de cocción, por
ejemplo. Además, se castigarían palabras que aparecen en conceptos diferentes, como los métodos de
cocción o conservación que son comunes a distintos tipos.

2. El documento corresponde a cada ingrediente individual/nombre de clase.

En este caso Term­Frequency no se beneficiará, aunque Inverse Document Frequency castigará aún más
a los tokens que aparecen en muchos ingredientes o clases.

Las incrustaciones se modernizaron una vez más utilizando el método A con cada uno de los enfoques TD­
IDF y uno híbrido adicional que utiliza la frecuencia de términos calculada mediante el procedimiento 1 y la
frecuencia de documentos inversa calculada mediante el procedimiento 2. Con este enfoque híbrido, el objetivo
es castigar aún más palabras que aparecen en muchos conceptos y potencia palabras que pertenecen a una sola
clase y pueden ser más importantes para un buen desempeño. Los resultados se presentan en la Tabla 5.21. Una
vez más, se tomaron mediante K­Fold Cross Validation con 6 pliegues.
Machine Translated by Google

108 Desarrollo de chatbots

Tabla 5.21: Resultados de precisión para la clasificación de ingredientes según las facetas de LanguaL, utilizando el
enfoque A para la adaptación con diferentes métodos de ponderación TF­IDF

Exactitud

Enfoque TF­FDI
Faceta A Faceta B Faceta C

Resultados iniciales (sin ponderación TF­IDF) 0,6475 ± 0,029 0,505 ± 0,050 0,402 ± 0,046

TF­IDF 1 0,690 ± 0,031 0,595 ± 0,064 0,451 ± 0,031

TF­IDF 2 0,682 ± 0,041 0,563 ± 0,061 0,411 ± 0,047

TF­IDF 3 (híbrido) 0,692 ± 0,026 0,595 ± 0,048 0,451 ± 0,021

De hecho, la ponderación TF­IDF mejora los resultados, como se muestra en la Tabla 5.21. Cada experimentado
El método aumentó el rendimiento en comparación con la modernización sin ponderación. Sin embargo,
Está claro que TF­IDF 3, el método híbrido, en realidad presenta los mejores resultados en general, mostrando
mejoras en los tres grupos de etiquetas. El método 1 presentó resultados similares para la faceta B y
faceta C, aunque los valores de error son mayores y la precisión para la faceta A es menor. TF­IDF 2
presentó los peores resultados de los tres. El método de ponderación híbrido en realidad resultó ser
es el mejor para tratar este tipo de datos debido a que castiga selectivamente los términos según su
frecuencia en diferentes grupos.

La mejora evidente en los resultados del uso de incrustaciones genéricas previamente entrenadas asegura que
La información semántica de alimentos disponible en LanguaL se incorporó a vectores de palabras. El siguiente
La sección explorará el algoritmo diseñado para clasificar y recuperar ingredientes basándose en una consulta.
entidad, que aprovecha un conjunto de incorporaciones de ConceptNet Numberbatch previamente entrenadas
modernizado con información semántica de LanguaL, a través del enfoque A y utilizando la ponderación híbrida TF­IDF
(TF­IDF 3).

5.3.2.1 Recuperación de ingredientes

El propósito de crear incrustaciones de palabras que capturaran las relaciones semánticas presentes en el
La ontología LanguaL debía recuperar del conjunto de datos los ingredientes correctos, dada una entidad de consulta.
extraído de la entrada del usuario. Un proceso de recuperación perfecto reuniría todos los ingredientes que corresponden
a la consulta en función de la clasificación de esa consulta. La entidad podrá indicar a un grupo
de ingredientes, a un ingrediente específico o incluso a un grupo de ingredientes que no coinciden exactamente
las etiquetas LanguaL descritas al principio de esta sección.

Teniendo esto en cuenta, el algoritmo tiene los siguientes pasos:

1. Reconocimiento de entidades
Machine Translated by Google

5.3 Maridaje de alimentos 109

La entidad se extrae de la entrada del usuario a través del módulo NLU descrito en la Sección 5.1.8

2. Preprocesamiento

Se aplica un método de preprocesamiento idéntico al descrito en la Sección 5.3.2 a la entidad extraída, de


modo que coincida con el formato correcto del diccionario de incrustación.

3. Codificación

Los tokens o token ahora se pueden codificar en una incrustación promediando las incrustaciones de cada
token en la consulta.

4. Clasificación

Luego, la incorporación de consultas se clasifica en cada una de las tres facetas utilizando la similitud del
coseno como métrica de distancia para clasificar las posibles clases candidatas. La clase que presentó el valor
de distancia más bajo (mayor similitud de coseno) a la entidad de consulta se selecciona como etiqueta prevista.
Dicho esto, cada consulta está etiquetada con un código LanguaL por faceta.

5. Primer proceso de extracción

El algoritmo extraerá cada ingrediente de la base de datos (a través de una solicitud REST a la API) que
coincida con al menos 2 de los 3 descriptores de LanguaL como posibles candidatos.
Estos candidatos se filtran según dos métricas de similitud basadas en diferentes características:

• Coincidencia difusa de palabras para encontrar palabras que coincidan efectivamente con la entidad de consulta

• Similitud de coseno para un mayor filtrado

Estos dos modos de filtrado generarán dos listas de candidatos fuertes.

6. Algoritmo de coincidencia

Las listas mencionadas se cruzan para extraer coincidencias exactas. Si la intersección

da como resultado un elemento, ese elemento se considera la coincidencia correcta y el proceso finaliza. Sin
embargo, si la intersección da como resultado más de un ingrediente, se siguen más pasos de selección. La
premisa es que el usuario probablemente se estaría refiriendo a un grupo de ingredientes (como la carne) o a
un ingrediente que tiene muchas entradas diferentes en la base de datos (el mismo producto alimenticio con
diferentes métodos de cocción o técnicas de conservación).
En este caso, el algoritmo comprobará si existe una fuerte coincidencia entre la consulta y cualquiera de las
etiquetas de LanguaL que la clasificaron utilizando una medida de similitud de coseno a partir de incrustaciones.
Si alguno de los descriptores tiene un valor de similitud superior a un valor de umbral definido, se compara
mediante coincidencia difusa. Si la distancia de Levenshtein no es superior a una edición, se considera una
coincidencia y el algoritmo devuelve todos los ingredientes que se describen utilizando ese código LanguaL. En
caso de que haya más de una coincidencia, regresará según el orden A, B, C. Si ninguno de los descriptores
de LanguaL pasa los pasos de coincidencia, se pueden tomar dos caminos:

• Si la lista de ingredientes extraída mediante la incorporación de similitud en el paso 5 no está vacía, se


devolverá como resultado final de la consulta, considerándose un grupo de ingredientes que no coinciden
específicamente con ningún descriptor de LanguaL.
Machine Translated by Google

110 Desarrollo de chatbots

• Si la lista está vacía, se considera que la consulta no tiene coincidencias en la base de datos.

Los umbrales referidos en el pipeline se definieron mediante observación, con el fin de maximizar la
precisión. Un aumento en el valor del umbral representaría un aumento en la precisión con la consiguiente
disminución en la recuperación. Este método será validado mediante pruebas de usuario explicadas en el
Capítulo 6, ya que falta un conjunto de datos anotado que pueda servir como validación.

5.4 Gestión del diálogo

En esta sección se explorarán y analizarán los procedimientos utilizados para abordar la parte de gestión del
diálogo del agente junto con los resultados obtenidos para los diferentes métodos.

5.4.1 Respuestas

Como se menciona en la Sección 4.3.2.4, las respuestas se pueden recuperar a partir de un conjunto de
respuestas predefinidas, generalmente en formato de texto (aunque pueden ser imágenes o botones) o acciones
personalizadas que ejecutan un código determinado. Los primeros se guardan en el archivo del dominio,
habilitando el proceso de recuperación. Además, las respuestas de texto se pueden activar desde funciones
personalizadas para brindar comentarios al usuario. Hay un total de 102 muestras de respuestas textuales
(ilustradas en la Figura 5.8), divididas en 57 clases de respuestas. Es posible dar más de un ejemplo de
respuesta, de manera que el chatbot presente variabilidad en las respuestas que envía. Estas muestras se
crearon manualmente. La siguiente sección explorará las acciones personalizadas.

Figura 5.8: Ejemplos de respuestas textuales

Además, para convertirse en un verdadero asistente virtual, el chatbot debe poder interactuar con servicios
externos. En este caso, el agente interactuará con la API de Lifana, descrita en la Sección 4.1.1, a través de
acciones personalizadas. Se crearon un total de 27 acciones, incluido un formulario (consulte Política de
formularios en la Sección 4.3.2.3), utilizando Python para mapear todos los casos de uso definidos previamente.
Estas acciones se pueden agrupar ya que muchas de ellas están anidadas y se activan desde el interior de
otras acciones. También es importante mencionar que la solicitud de autenticación a la API está codificada para
actualizar el token de acceso cada 5 minutos, con el fin de evitar la pérdida de autorización y mayores
complicaciones con la solicitud a la API.
Machine Translated by Google

5.4 Gestión del diálogo 111

5.4.1.1 Iniciar sesión

Rasa brinda la posibilidad de alterar la acción que se ejecuta en cada inicio de sesión. Al anular esta acción, es
posible hacer que recupere información del usuario de la base de datos a través de una solicitud API y la guarde
en espacios. Esta información corresponde a datos personales del usuario que pueden ser útiles para una
experiencia más personalizada. Además, dependiendo de la información recuperada, esta primera acción
desencadenará diferentes respuestas en forma de mensaje. En caso de que el usuario ya esté registrado, el bot
enviará un mensaje de saludo que incluye el nombre del usuario y algunas sugerencias de comandos que puede
abordar. En caso contrario, el bot envía un mensaje de bienvenida incluyendo las mismas sugerencias y,
además, pregunta si el usuario es capaz de responder a unas preguntas que recogerán su información personal.
Después del mensaje de bienvenida variable, el bot espera la entrada del usuario para poder continuar.

5.4.1.2 Formulario inicial

Se planeó que el chatbot funcionara de un extremo a otro, incluido el proceso de creación de perfiles. Por ello,
se desarrolló un Formulario Rasa para recolectar información de forma organizada y secuencial.
Se activa tras una respuesta positiva a la pregunta mencionada en el apartado anterior. El agente comienza a
preguntar por cada detalle (nombre, fecha de nacimiento, sexo, entre otros). Luego valida la información extraída
de intenciones, entidades o el propio texto y la guarda en espacios. Por ejemplo, en la pregunta de nombre, el
módulo NLU debe extraer el nombre del usuario como una entidad (nombre_persona) que luego se guarda en
la ranura correspondiente al nombre. Si la validación falla o el módulo NLU no es capaz de extraer una intención/
entidad correcta, el bot envía un mensaje diciendo que la entrada no es válida y solicita la información una vez
más. Esta acción se ilustra en las Figuras B.1.2 y B.1.3 y corresponde al Caso de Uso UC.12.

5.4.1.3 Crear plan

Una de las acciones centrales del chatbot es la creación de planes (caso de uso UC.1). Esta acción es muy
compleja y contiene varias heurísticas para funcionar correctamente. La creación del plan se basa en un período
de tiempo. Como se menciona en la Sección 4.1.1, esto se puede hacer semanalmente o diariamente. El primer
paso de esta acción es la transformación del período referido en el ingreso del usuario a un formato que sea
compatible con la API. Dicho esto, la entidad de período extraída de la entrada del usuario se transformará en
una de estas cuatro opciones: "ahora", "día", "semana" o "mes". Si no se captura ni ingresa ninguna entidad de
período, la acción verificará si se extrajo o no una entidad de tiempo. Si la hora de la entidad se extrajo de la
entrada, el período se establece en "día", de lo contrario se establece en "ahora" y la hora se establece en la
fecha de ese momento. Por el contrario, si se define un período, se verifican secuencialmente un conjunto de
condiciones:

1. Si "mes" forma parte de la entidad, el período se establece en "mes". Esto cubrirá los casos en los que la
entidad sea "mes" o "mensual". En este caso, el chatbot enviará un mensaje advirtiendo al usuario sobre
el tiempo extendido que requerirá el proceso de creación. Además, el mensaje dice que el sistema no
está pensado para planes mensuales, ya que el contenido nutricional se considera para cada semana.
Machine Translated by Google

112 Desarrollo de chatbots

2. Si "fin de semana" es parte de la entidad, el período se establece en "día", ya que luego creará un plan para

esos días específicos

3. Si "semana" es parte de la entidad, el período se establece en "semana" para abordar los casos en los que es "semana" o

"semanal".

4. Si "ahora" es parte de la entidad, el período se establece en "ahora"

5. Cualquier otro valor establecerá el período en "día".

Después de configurar correctamente el valor para el período, la entidad de tiempo se transformará al formato correcto. El

tiempo se puede extraer de 3 formas diferentes: una sola cadena con una fecha, una lista de fechas o un intervalo que incluye la
primera fecha y la última fecha (formato de... a...). Esto último es útil para períodos de tiempo que no coinciden con un día o una

semana, como "fin de semana" o "los próximos días". En caso de que el período sea "semana", el objetivo es obtener una única

fecha que pertenezca a esa semana. Teniendo esto en cuenta, los formatos de lista e intervalo se convierten a una sola fecha,

normalmente seleccionando la primera fecha. Por el contrario, el formato deseado sería una lista de fechas. Por lo tanto, si el

período es "día", el formato del intervalo se transformará en una lista de las fechas que le pertenecen.

De manera similar, si "mes" es el período, la hora generalmente se extrae como la fecha del primer día del mes. Ante esto, es

necesario crear una lista de las fechas de todos los días de ese mes. Este es el motivo del aumento del tiempo de consultas

mensuales. Después de transformar estas dos entidades, la acción verifica si el usuario especificó alguna comida o no. Se

extraería como una entidad y se guardaría en el espacio food_division.

Cuando se recopila toda la información, la solicitud se envía a la API y, según el código de estado de respuesta, el chatbot

envía diferentes mensajes de éxito o fracaso. En caso de que el plan se haya creado correctamente, el chatbot activa la opción

de respuesta que pregunta si el usuario quiere ver el plan creado o no. Esta acción se ilustra en la Figura B.1.5.

5.4.1.4 Mostrar plan

La función para mostrar un plan al usuario, según los diferentes parámetros de consulta, es probablemente el grupo de acciones

más importante y complejo codificado en el agente (corresponde al caso de uso UC.3). El alto nivel de complejidad se origina en

la mayor variabilidad de las posibles consultas utilizando todos los elementos del plan de alimentación (día, comida y parte de

comida). Esta acción se divide en dos partes principales, donde la primera parte está compuesta por una función que transforma

la información de entrada y desencadena la siguiente acción del segundo grupo. Este grupo reúne 3 acciones diferentes que se

encargan de mostrar el plan al usuario, mediante botones, para una mejor organización.

La primera acción realiza un procesamiento idéntico a las entidades de tiempo y período, si la acción anterior no fue la

creación del plan, en cuyo caso solo recupera el formato ya correcto. Lo primero que verifica la acción es la presencia de

entidades en el último ingreso del usuario y la existencia de una consulta previa para mostrar el plan. Si no hay entidades en la

expresión del usuario y hay una consulta previa, el bot simulará esa consulta nuevamente, ya que supone que el usuario quiere

volver a ver el mismo plan.


Machine Translated by Google

5.4 Gestión del diálogo 113

En caso contrario verifica si se crea un plan para las fechas seleccionadas y en caso contrario envía un
mensaje al usuario advirtiendo que no había ningún plan disponible y preguntando si el usuario está
dispuesto a crear uno. Si se crea el plan, la acción lo recuperará de la base de datos (incluida la información
de identificación de todas las comidas) y lo ordenará cronológicamente, ya que el orden no se mantiene en
la base de datos. Además de ordenarlo por tiempo, también organiza las partes de la comida según un
orden definido para que aparezcan todas de la misma forma. El plan ordenado y las identificaciones
correspondientes se almacenan en las ranuras del bot.

Según las entidades que se extrajeron del input, esta primera acción desencadenará diferentes
acciones. Si el período es "semana" o "día" y la fecha corresponde a un intervalo de días se activará una
acción que muestra cada día como un botón con el plan para ese día dentro. El contenido del plan estará
controlado por la presencia o ausencia de entidades de comida o partes de comida en la entrada del usuario.
Por el contrario, si el objetivo es ver sólo las comidas o partes de las comidas de un día concreto, se activará
una acción que mostrará las comidas de ese día. Además, si los espacios para comidas están configurados
para una comida específica, se mostrarán botones para las partes de la comida que la componen.

Los botones que se muestran en esta y otras acciones tienen dos propósitos diferentes. La primera es
organizar la información en secciones según las consultas. Facilita el proceso de comprensión. Además,
aunque la mecánica del chatbot funciona mayoritariamente mediante mensajes de texto, crea un nivel extra
de navegación que puede facilitar el acceso a más información o activar acciones adicionales. Es una forma
intuitiva de seleccionar elementos en una interfaz de usuario. Los botones tienen una opción de carga útil
que codifica la información de cada botón y la envía al chatbot cuando se presiona. En este caso, los botones
desencadenan la acción que muestra el siguiente nivel de organización. Por ejemplo, si un usuario está
viendo las comidas de toda la semana, donde cada botón corresponde a un día, al presionarlo en un día se
le mostrarán las comidas de ese día. Esta acción se ilustra en la Figura B.1.4.

5.4.1.5 Información nutricional

El usuario podrá requerir información sobre el contenido nutricional de cada elemento del plan de alimentación
(casos de uso UC.6 a UC.9). Además de estos, el usuario también podrá solicitar información nutricional
sobre ingredientes, tanto al ver el plan, como en una consulta individual sin referencia del plan. Esta función
también se divide en varias acciones que abordan diferentes elementos del plan. Es decir, el día, las
comidas, las partes de las comidas y los ingredientes tienen cada uno diferentes acciones de recuperación
del contenido nutricional. Estas acciones tienen en cuenta los datos proporcionados por el usuario en forma
de entidades y solicitan a la API la información adecuada. La selección de qué acciones llevar a cabo está
definida por el modelo de gestión del diálogo. En este caso se tendrá en cuenta el nivel del plan que se está
mostrando y las entidades extraídas. Como forma de ilustrar esta situación, si un usuario ve las comidas de
un día y pregunta cuál es el contenido nutricional sin proporcionar ninguna entidad de comida, la predicción
del modelo debería mostrar el contenido de ese día. Por otro lado, si alguna comida estaba presente en la
expresión del usuario, el modelo debería activar la acción que muestra el contenido nutricional de una
comida.

También se da el caso en el que un usuario solicita información sobre un ingrediente. En este


escenario, el algoritmo primero comprobará si se muestra un plan. Si el usuario está viendo el plan, verifica
si el ingrediente de la consulta coincide con alguno de los ingredientes presentes en el plan mediante la
comparación de lemas de palabras y, en un caso positivo, recupera la información de ese
Machine Translated by Google

114 Desarrollo de chatbots

ingrediente. Si no hay coincidencias, o el chatbot no muestra ningún plan actualmente, se activa el algoritmo de
recuperación de ingredientes descrito en la Sección 5.3.2.1 para obtener los candidatos. Si hay más de un candidato,
la acción mostrará la información promedio de todos los ingredientes.

Con respecto a la navegación basada en botones, después de presionar un botón, se envía un mensaje que
pregunta si el usuario desea ver el siguiente nivel en la jerarquía del plan o la información nutricional. Una respuesta
a esta pregunta referente a la información nutricional desencadenará la acción respectiva para recuperar y presentar
el contenido. Un ejemplo de esta acción se muestra en la Figura B.1.7.

5.4.1.6 Expresar preferencia

La expresión de preferencias también es una característica importante de este chatbot (casos de uso UC.10 y UC.11).
Siempre que el componente NLU identifique la intención que corresponde a la expresión de preferencia, se debe
activar una acción que verifique si el usuario se refiere a una receta o a un ingrediente.
Esta acción luego desencadena otras acciones que manejan la calificación en sí. Además, existen dos formas de
expresar preferencia indicando el nombre del ingrediente o receta, o haciendo referencia a la comida o parte de la
comida.

La primera acción de este conjunto funciona de manera similar a la descrita en la Sección 5.4.1.5.
El chatbot comprueba si el usuario ve un plan o no. Si es así, primero intenta seleccionar el elemento del plan en
función de las entidades (comida, parte de la comida, día), si estaban definidas en la entrada. De lo contrario, el
chatbot intenta hacer coincidir la entidad de alimentos de la consulta con un elemento del plan. Sin embargo, si el
caso es que el bot no muestra los ingredientes de una parte de la comida y en su lugar muestra un día o una comida,
una coincidencia positiva conducirá a la calificación de esa receta completa. Por el contrario, si se muestran los
ingredientes, se procederá a una clasificación de ese ingrediente. Una vez más, al no tener coincidencia se activará
el algoritmo de recuperación de ingredientes para seleccionar los candidatos que serán calificados posteriormente.

Después de la recuperación de la coincidencia o del ingrediente, el bot actualiza la calificación de preferencia


utilizando la magnitud del sentimiento extraída del módulo NLU (como entidad) y procesada utilizando el algoritmo
descrito en la Sección 5.2. Además, en el caso de que la puntuación caiga en los valores centrales, el bot pregunta al
usuario si está dispuesto a dar una puntuación numérica a ese ingrediente o receta (de 0 a 5). Luego, la calificación
se actualiza aún más y, en caso de que sea un valor negativo, el robot envía un mensaje sugiriendo que cada parte
de la comida que incluya ese ingrediente o receta puede ser reemplazada.
Si el usuario acepta esa sugerencia, el agente conversacional procede a cambiar todas las partes de la comida que
cumplan esa condición.

5.4.1.7 Comidas alternativas

El usuario tiene la libertad de cambiar cualquier parte de la comida que desee (caso de uso UC.4 y UC.5). Para ello
se utiliza el mismo mecanismo de casación que en las actuaciones anteriores. Después de obtener la parte de comida
correcta, junto con su número de identificación, se envía una solicitud a la API para recuperar alternativas.
Estas alternativas se generan de acuerdo con la misma heurística que guía la creación del plan y se explica en la
Sección 2.2. Luego, las alternativas se muestran al usuario a través de botones, para que el usuario pueda seleccionar
una opción. Asimismo, el proceso de selección podrá ser a través de texto, donde se espera que el usuario haga
referencia ya sea a la posición ordinal de la alternativa o a su nombre. una coincidencia
Machine Translated by Google

5.4 Gestión del diálogo 115

Luego se activa el algoritmo para seleccionar la opción adecuada. El último paso es la sustitución de la comida original
por la alternativa seleccionada.

5.4.1.8 Mostrar información personal

Es posible que los usuarios quieran comprobar qué datos personales ha guardado el agente (caso de uso UC.13). Esta
acción se activa después de detectar la intención de mostrar el perfil. Si no se extrae ningún detalle específico como
entidad, el chatbot mostrará toda la información guardada; de lo contrario, atenderá la solicitud del usuario.

5.4.1.9 Cambiar información personal

Es importante que el agente sea capaz de actualizar la información personal del usuario (caso de uso UC.14), para
que los planes se generen de acuerdo con los datos más recientes. La acción es similar a la anterior, sin embargo,
esta requiere un detalle de usuario específico para actualizarse. El chatbot extrae el detalle del usuario requerido para
ser actualizado (ej. nombre, fecha de nacimiento, peso, entre otros) y el nuevo valor. Después de eso, envía una
solicitud a la API para actualizar un detalle específico con el nuevo valor.

5.4.2 Conjunto de datos de gestión del diálogo

Una vez más, faltaron datos que pudieran usarse para entrenar y evaluar modelos. Por esa razón, se creó un conjunto
de datos de posibles caminos que puede tomar el chatbot a través de la metodología de aprendizaje interactivo descrita
en la Sección 4.3.3.1. La creación del conjunto de datos requirió un módulo NLU sólido y optimizado, por lo que se
generó después de finalizar la canalización de NLU. En el primer paso, sin ningún conocimiento previo del chatbot, las
historias (consulte la Sección 4.3.2.2 para conocer el formato de los datos) se crearon a mano. Cuando se recopiló
una cantidad satisfactoria de datos, se entrenó el modelo para que fuera capaz de hacer algunas predicciones iniciales,
aliviando al mismo tiempo el proceso de anotación y aumentando así la velocidad de recolección. Además, las acciones
que se supone deben ocurrir inmediatamente después de que se identifique una intención se asignaron para activarse
mediante la Política de asignación, descrita en la Sección 4.3.2.3. Esto también facilitaría las predicciones y la creación
de conjuntos de datos. Las acciones asignadas a intenciones se representan en la Tabla 5.22.
Machine Translated by Google

116 Desarrollo de chatbots

Tabla 5.22: Mapeo Intención­Respuesta. La identificación de cualquiera de esas intenciones desencadenará


automáticamente la acción respectiva como respuesta del agente conversacional.

Intención Acción asignada

crear_plan Acción Crear plan

mostrar_plan 1ª función de la acción Mostrar Plan

Acción Mostrar comida alternativa Función que identifica la


mostrar_comida_alternativa
comida correcta y muestra alternativas

saludar Saludar respuesta

eliminar_plan Acción Eliminar plan

El siguiente paso fue poblar el conjunto de datos con la ayuda de dos voluntarios. A
Se entregó a los voluntarios una descripción de los casos de uso y las acciones que los codifican para que
podían entender la mecánica inherente. Además, se tomó la retroalimentación de los voluntarios.
en cuenta para mejorar aún más las interacciones entre las acciones y la respuesta del agente en un asistente
experimento de Oz [190] moda.

El conjunto de datos utilizado para entrenar el modelo empleado en las pruebas de experiencia del usuario consistió
de 87 historias que corresponden a una variedad de caminos que puede tomar la conversación. Este conjunto de datos
puede ampliarse aún más utilizando los datos de las sesiones de prueba o de futuros usuarios.

5.4.3 Evaluación Experimental de Gestión del Diálogo

Se probaron tres enfoques diferentes con respecto al algoritmo de predicción: un enfoque basado en reglas para obtener
una puntuación de referencia, un enfoque basado en redes neuronales recurrentes (LSTM) y un enfoque basado en reglas.
Enfoque basado en transformadores. Estos enfoques corresponden a la Política de Memorización, a la
Política de Keras y a la Política TED, descrita en la Sección 4.3.2.3. Las combinaciones probadas son
se muestran en la Tabla 5.23 y corresponden a: DM.1 – Basado en reglas – Política de memorización, DM.2 – Red
neuronal recurrente – Política Keras y DM.3 – Transformador – Política TED. El primer oleoducto
Se espera que produzca los peores resultados y corresponde a la puntuación inicial.
Machine Translated by Google

5.5 Resumen 117

Tabla 5.23: Canales de Gestión del Diálogo probados. Los pipelines cambian en las Políticas utilizadas para
predicción de acción

Acercarse Identificación Políticas

Línea de base: basada en reglas DM.1 Política de formularios, Política de respaldo, Política de mapeo y
Política de memorización
Neural recurrente Política de formularios, Política de respaldo, Política de mapeo y
DM.2
Red Política dura

Transformador DM.3 Política de formularios, Política de respaldo, Política de mapeo y


Política TED

Se tomó una metodología similar a la utilizada en la validación de NLU: los modelos fueron
Probado tres veces para dos proporciones diferentes de tren/prueba: 80/20 y 70/30, para evaluar la robustez.

contra diferentes tamaños de conjuntos de entrenamiento. Los resultados se representan en la Tabla 5.24.

Tabla 5.24: Resultados de los enfoques de Gestión del Diálogo

Porcentaje de prueba del modelo F1 Exactitud


20 0,741 ± 0,018 0,586 ± 0,027
DM.1
30 0,698 ± 0,032 0,536 ± 0,039

20 0,859 ± 0,016 0,754 ± 0,025


DM.2
30 0,823 ± 0,029 0,701 ± 0,042

20 0,899 ± 0,013 0,815 ± 0,025


DM.3
30 0,875 ± 0,023 0,778 ± 0,037

Una historia correcta corresponde a predecir correctamente cada acción/respuesta para el


toda la historia. Como se puede observar, la Política de Memorización tiene el peor desempeño de
las tres configuraciones, debido al hecho de que no se generaliza bien para datos invisibles. Cuando
Al comparar la política TED con la política Keras, está claro que la primera tiene un mejor desempeño
demostrando la superioridad de las arquitecturas de transformadores. El módulo de atención permite al
modelo para seleccionar lo que es efectivamente importante sin necesidad de un gran conjunto de datos para saber qué
ignorar, que es el caso de la arquitectura recurrente de Keras Policy. El modelo seleccionado para
el chatbot era la política TED. La inclusión de más datos de entrenamiento también es crucial para mejorar
desempeño y alcanzar un alto nivel de calidad en el agente. Idealmente, los datos de entrenamiento contendrían
todos los caminos posibles que el agente pueda tomar.

5.5 Resumen
Este capítulo exploró las evaluaciones experimentales de las tareas que fueron necesarias para construir el
chatbot.

Respecto al componente NLU, concretamente para la clasificación de intenciones y el reconocimiento de entidades


tareas, se realizaron un grupo de experimentos para evaluar la mejor combinación entre
características y modelos de clasificación. Las funciones probadas variaron desde funciones dispersas más tradicionales
hasta incorporaciones contextuales más recientes generadas por modelos de lenguaje. El enfoque que
proporcionó los mejores resultados para ambas tareas fue una canalización que empleó tanto GloVe previamente capacitado
Machine Translated by Google

118 Desarrollo de chatbots

incorporaciones y características Regex de tablas de búsqueda, así como un modelo de clasificación basado en transformadores
para clasificación de intenciones conjuntas y reconocimiento de entidades. Esta modalidad de entrenamiento conjunto ha
demostrado mejorar los resultados para ambas tareas.

Además, se agregaron componentes adicionales al canal NLU que no influyen directamente en la clasificación de
intenciones ni en el reconocimiento de entidades, para permitir otras funciones que el chatbot debe realizar, a saber, un
corrector ortográfico, un analizador de sentimientos y un extractor de entidades previamente entrenado. y analizador y
mapeador de sinónimos.

Este capítulo también describió la evaluación experimental que llevó a la decisión de incluir el analizador de sentimientos
VADER en la cartera de componentes de NLU. Este componente se utiliza para crear una calificación cuantitativa para un
ingrediente o receta determinado en función de la intensidad del sentimiento y la polaridad extraídas de las aportaciones del
usuario. Este módulo juega un papel fundamental en el caso de uso de expresión de preferencias, donde el usuario debe
poder indicar una inclinación hacia cualquier elemento del plan utilizando lenguaje natural. El algoritmo desarrollado utilizó las
métricas extraídas de VADER con algunas modificaciones insertadas para adaptarse adecuadamente al sistema de
recomendación de Lifana.

Además, en este capítulo se describió el algoritmo de combinación de alimentos que es responsable de recuperar todos
los ingredientes correctos de la base de datos de alimentos de Lifana de acuerdo con una entidad de consulta determinada.
Este algoritmo se basa en la premisa de que las incrustaciones de palabras pueden capturar relaciones contextuales entre
palabras. Sin embargo, las incrustaciones de palabras convencionales como GloVe o Word2Vec no codifican completamente
las relaciones semánticas entre términos relacionados con los alimentos. Para resolver este problema, se aplicó la técnica de
retrofitting en un intento de incorporar aún más las relaciones semánticas que están presentes en las bases de conocimiento,
más precisamente en LanguaL, en los vectores de palabras. Dicho esto, se desarrolló un algoritmo de coincidencia que utiliza
varias métricas de similitud, incluida la similitud de coseno entre incrustaciones. Los parámetros de esta técnica se pueden
optimizar aún más con la ayuda de un conjunto de datos adecuado.

En este capítulo también se explicó el enfoque de desarrollo de las acciones que mapean los casos de uso descritos en
la Sección 4.4 , incluidas las diversas heurísticas y reglas, así como las entidades requeridas. El capítulo finalizó con la
descripción de la evaluación experimental que permitió seleccionar un pipeline de predicción para la gestión del diálogo,
basado en Políticas Rasa. La arquitectura transformadora mostró el mejor desempeño y fue seleccionada para entrenar el
modelo utilizado en el agente que fue sujeto a evaluación de experiencia de usuario. De hecho, el siguiente capítulo explora
las pruebas de experiencia del usuario que se realizaron para una validación completa y en profundidad del chatbot y el trabajo
realizado.
Machine Translated by Google

Capítulo 6

Evaluación de la experiencia del usuario

Una evaluación completa de un sistema interactivo requiere también juicio humano, además de métricas de
rendimiento. Esta segunda etapa de validación es muy importante para perfeccionar aún más el sistema y sus
capacidades para cumplir con las expectativas del usuario. Para ello es necesario analizar y estudiar la
experiencia del usuario. Este capítulo explora el procedimiento utilizado en la evaluación del juicio humano con
respecto a una versión finalizada del chatbot.

6.1 Protocolo experimental – Prueba de usabilidad

Con el objetivo de estudiar adecuadamente la dimensión de experiencia de usuario del chatbot, se diseñó un test
de usabilidad. Además, este tipo de estudios requiere la presencia de voluntarios para interactuar con el agente.
Las siguientes secciones detallarán la prueba planificada y los pasos que permitieron a los evaluadores utilizar
el chatbot.

Basado en el trabajo de Holmes et al. [191] que aplicaron métricas convencionales de usabilidad y
experiencia del usuario para evaluar la interacción del usuario con un chatbot de salud, se desarrolló un proceso
de prueba. Los autores mencionados utilizaron dos cuestionarios bien establecidos: el Cuestionario de experiencia
de usuario (UEQ) [155] y la Escala de usabilidad del sistema (SUS) [153], que evalúan tanto la experiencia del
usuario (desde varias perspectivas que se exploran más a fondo en las siguientes secciones) como la usabilidad. ,
respectivamente. Además, los autores crearon un cuestionario orientado a chatbot que siguió el esquema del
SUS, para poder compararlo con él. Como se mencionó en la Sección 3.3, existen valores de referencia para
estas pruebas, lo que constituye una ventaja a la hora de realizar un análisis comparativo.

Dicho esto, la prueba completa se compone de tres partes. Debido a la naturaleza orientada a objetivos del
agente, la primera parte de la prueba requiere que el voluntario complete un conjunto de cinco tareas que
coinciden con los casos de uso más comunes del chatbot. Además, inmediatamente antes y después de cada
tarea, el evaluador debe responder una pregunta única de facilidad que sirva para recoger la dificultad percibida
de la tarea (antes), así como su dificultad real (después), en una escala del 1 al 7. , donde 1 es muy difícil y 7 es
muy fácil.

119
Machine Translated by Google

120 Evaluación de la experiencia del usuario

Una vez completadas las tareas, se le indica al usuario que responda tres cuestionarios: SUS, UEQ y el cuestionario
de usabilidad centrado en el chatbot. El tercer y último paso es la validación del algoritmo de recuperación de ingredientes
descrito en la Sección 5.3.2.1. Los cuestionarios se enviaron mediante un Formulario de Google, que permite un fácil
análisis, utilizando la herramienta de hoja de cálculo. El chatbot se implementó en una máquina virtual de Google Cloud
utilizando Rasa­X. Esto crea una interfaz de conversación que se puede enviar a los evaluadores compartiendo una URL.
Los pasos del protocolo son los siguientes:

1. El voluntario firmó el formulario de consentimiento.

2. Se entregó acceso al chatbot y formulario al voluntario.

3. Se explicaron al voluntario las instrucciones y los detalles de la prueba (consulte la Sección B.2.1).

4. El voluntario completó el cuestionario demográfico (prueba previa)

5. Se leyó cada tarea al voluntario, lo que confirmó su comprensión.

6. El voluntario respondió la pregunta previa a la tarea sobre facilidad única.

7. El voluntario realizó la tarea bajo la supervisión del coordinador.

8. El voluntario respondió la pregunta de facilidad única posterior a la tarea.

9. Una vez completadas todas las tareas, el voluntario completó las encuestas de usabilidad descritas.
arriba

10. Posterior a las encuestas, se respondieron las preguntas de recuperación de ingredientes.

11. Al final, el voluntario brindó comentarios adicionales sobre el agente, que pueden usarse para mejorarlo aún más
como trabajo futuro.

Además, se registró el tiempo transcurrido hasta la finalización de la tarea para poder realizar más comparaciones. El
protocolo se llevó a cabo de forma remota debido a las restricciones de distanciamiento social.

6.1.1 Tareas de prueba

La primera parte de la prueba está compuesta por las siguientes 5 tareas:

1. Proceso de bienvenida del Chatbot

La tarea consiste en crear un perfil de usuario utilizando el chatbot. El agente solicita varios datos personales de
forma secuencial para llenar los espacios y crear el perfil.

2. Genera un plan de alimentación y mira los ingredientes.

El voluntario debe ordenarle al robot que cree un plan de alimentación para el almuerzo del lunes y verifique los
ingredientes del plato principal.

3. Consulta el plan y expresa preferencia

El voluntario debe pedir ver el plan de la cena del lunes y expresar su preferencia por un ingrediente del mismo.
Machine Translated by Google

6.1 Protocolo experimental – Prueba de usabilidad 121

4. Crea un plan, revisa las comidas y pide una alternativa

Esta tarea se completa después de crear una comida para los próximos días, verificar uno de los postres de la cena
del día y sustituirlo por una alternativa.

5. Consulta el plan y pregunta por el contenido nutricional.

El voluntario debe obtener el contenido nutricional de un día/comida/parte/ingrediente, después de comprobarlo.

Las tareas tienen dificultad creciente y están compuestas por subtareas que se repiten de tarea en
tarea, para que sea posible comprender la curva de aprendizaje del uso del chatbot.

6.1.2 Escala de usabilidad del sistema

Como se mencionó en la Sección 3.3, SUS es una escala Likert que tiene como objetivo evaluar sistemas interactivos desde
el punto de vista de la usabilidad. Consta de 10 preguntas de puntuación de opinión donde el usuario debe referir su nivel de
acuerdo hacia una frase. Los puntajes obtenidos de esta prueba se pueden comparar con valores de referencia para
comprender la usabilidad general de este sistema en comparación con una escala establecida. Más específicamente, las
puntuaciones SUS superiores a 68,0 se consideran superiores a la media según un estudio realizado por Bangor et al. [192].
El mismo estudio calificó las puntuaciones utilizando adjetivos o letras desde "peor imaginable" (puntuaciones de 0 a 25)
hasta "mejor imaginable" (puntuaciones > 84,1). Los mismos autores en otro estudio relacionaron las puntuaciones del SUS
con la aceptabilidad y concluyeron que una puntuación superior a 71,1 significa que el sistema es "Aceptable", sin embargo,
una puntuación inferior a 62,6 clasifica el sistema como "No Aceptable" [ 193]. Además, SUS también está relacionado con
Net Promoter Score, que tiende a medir la lealtad de los usuarios [154]. Una puntuación superior a 78,8 significa que el
usuario es un "Promotor" mientras que una puntuación inferior a 62,7 lo clasifica como "Detractor". Valores que se encuentran
entre

aquellos se clasificarán como "pasivos" [194].

6.1.3 Cuestionario de Experiencia del Usuario

El UEQ [155] intenta evaluar exhaustivamente la experiencia del usuario. Se basa en seis factores que se resumen en la
Tabla 6.1 y se evalúan mediante un cuestionario que pregunta al usuario el nivel de acuerdo con varios pares de adjetivos
opuestos. Mide en qué medida el sistema cumplió con las expectativas de los usuarios. Una vez más, las puntuaciones
pueden compararse con un punto de referencia [195].
Machine Translated by Google

122 Evaluación de la experiencia del usuario

Tabla 6.1: Factores evaluados por el Cuestionario de Experiencia de Usuario

Factor Descripción

Atractivo Grado en el que a los usuarios les "gusta" el sistema

Perspicuidad Facilidad para aprender y dominar el sistema.

Eficiencia Esfuerzo requerido para completar las tareas, tiempos de reacción del sistema.

Confiabilidad Grado de control del usuario, Previsibilidad/seguridad del sistema

Estimulación ¿Qué tan divertido/emocionante es usar el sistema?

Novedad Creatividad/Interés por los usuarios

6.1.4 Cuestionario de usabilidad del chatbot

El Cuestionario de Usabilidad de Chatbot (CUQ) fue elaborado por Holmes et al. [191] como una forma de medir
adecuadamente las puntuaciones de usabilidad de los chatbots. Tiene en cuenta varios factores que son
intrínsecos a la experiencia de un agente conversacional: personalidad, incorporación, comprensión, respuesta,
navegación, gestión de errores e inteligencia. Teniendo esto en cuenta desarrollaron 16
preguntas que utilizan el mismo método que el SUS, las preguntas se resumen en la Tabla 6.2 . Las puntuaciones
obtenidas en este cuestionario se pueden normalizar para que coincidan con el rango proporcionado por el SUS y más
comparado.
Machine Translated by Google

6.1 Protocolo experimental – Prueba de usabilidad 123

Tabla 6.2: Preguntas del Cuestionario de Usabilidad del Chatbot.

Preguntas

La personalidad del chatbot era realista y atractiva.

El chatbot parecía demasiado robótico

El chatbot fue acogedor durante la configuración inicial.

El chatbot parecía muy antipático.

El chatbot explicó bien su alcance y finalidad

El chatbot no dio ninguna indicación sobre su propósito.

El chatbot fue fácil de navegar.

Sería fácil confundirse al utilizar el chatbot

El chatbot me entendió bien

El chatbot no reconoció muchas de mis entradas

Las respuestas del chatbot fueron útiles, apropiadas e informativas.

Las respuestas del chatbot no fueron relevantes

El chatbot se enfrentó bien a cualquier error o equivocación.

El chatbot parecía incapaz de manejar ningún error.

El chatbot fue muy fácil de usar.

El chatbot era muy complejo

6.1.5 Validación de maridaje de alimentos

Después de las encuestas, el voluntario debe sugerir un ingrediente (uno que aún no haya sido seleccionado por otros
evaluadores). Tanto los resultados obtenidos mediante el algoritmo de recuperación de ingredientes (basado en
incrustaciones) como los resultados mediante la función de búsqueda implementada en la API (coincidencia difusa basada
en el nombre) se muestran al voluntario, que debe responder a tres preguntas.

1. Si las opciones recuperadas por el algoritmo de incrustaciones son correctas o no en una escala de 4 valores desde
"totalmente incorrecto" hasta "totalmente correcto", incluyendo "mayormente incorrecto" y "mayormente correcto".

2. Si hay alguna opción en los resultados de la búsqueda, también debería estar en la lista de resultados de incrustaciones.
Las respuestas a esta pregunta pueden variar desde "ninguno falta" hasta "todos faltan", incluidos "algunos faltan" y
"muchos faltan".
Machine Translated by Google

124 Evaluación de la experiencia del usuario

3. ¿Cuál es la opción preferida para la recuperación de ingredientes?

De esta manera es posible evaluar el algoritmo desarrollado desde el punto de vista del usuario, utilizando
algunas métricas de precisión y recuperación aproximadas, así como el método preferido.

6.2 Resultados

Un total de 22 voluntarios realizaron la prueba, la mayoría de ellos ya había utilizado al menos una vez un agente
conversacional o un asistente inteligente. Sin embargo, la mayoría los usa menos de una vez al mes (ver Figura 6.1). La
edad de los voluntarios no coincidía con la edad del usuario final debido a restricciones de distanciamiento social.

Figura 6.1: Frecuencia de uso del chatbot voluntario

6.2.1 Pregunta de facilidad única

En cuanto a la dificultad percibida y real de las tareas, es posible ver en la Figura 6.2 que, en promedio, las tareas se
perciben como menos fáciles que su facilidad real. Al observar la Figura 6.3, que analiza la diferencia entre dificultad real
y preconcebida por tarea, se refuerza la misma idea: las tareas son más fáciles de lo que los voluntarios pensaban
inicialmente.

Excluyendo la Tarea 1, que no está relacionada con el plan, la Tarea 4 presentó la diferencia promedio más baja.
Sin embargo, esta tarea es la que requiere más pasos y su valor de diferencia es muy cercano al calculado para la Tarea
2, que es la primera tarea relacionada con el plan que debe realizar el voluntario. Esto muestra que, aunque la Tarea 4
es la más compleja, la curva de aprendizaje es lo suficientemente rápida como para que los voluntarios se sientan tan
seguros como cuando realizan la Tarea 2, que es el primer contacto.

El valor de la diferencia también aumenta de una tarea a otra, lo que demuestra que los usuarios pueden aprender
a trabajar con el bot fácilmente y sentirse cada vez más cómodos. De hecho, el valor de diferencia de dificultad más alto
se registra para la Tarea 5 que es la que da más libertad al usuario.

Además, otro indicador de una mayor percepción de facilidad es el valor casi constante de la dificultad preconcebida
a lo largo de las diversas tareas, a pesar de que aumentan en complejidad (ver Figura 6.3. Además, si observamos los
valores absolutos de facilidad real, están cerca del máximo ( 7) para tres tareas, mientras que las otras dos son la Tarea
2 (la primera relacionada con el plan) y la Tarea 4 (la más compleja).
Machine Translated by Google

6.2 Resultados 125

Respecto a la Tarea 1 surge el mismo patrón, el valor preconcebido de lo fácil que será
fue inferior a la facilidad real de la tarea.

Con el fin de respaldar aún más estas observaciones, se calculó la probabilidad por pares de T­Student para
las puntuaciones previas y posteriores. Los valores de probabilidad, presentados en la Tabla 6.3, muestran que
estas distribuciones son estadísticamente diferentes, con p < 0,05.

Esto sugiere que los voluntarios comienzan a sentirse más cómodos con el sistema a lo largo de la sesión de
prueba.

Figura 6.2: Valores promedio para la pregunta de evaluación de dificultad previa y posterior a la tarea

Figura 6.3: Valores de diferencia promedio entre facilidad preconcebida y facilidad real por tarea
Machine Translated by Google

126 Evaluación de la experiencia del usuario

Tabla 6.3: Probabilidad de la prueba t­Student por pares. Todos los valores están por debajo de 0,05, lo que significa que
la diferencia es estadísticamente significativa.

Tarea 1 Tarea 2 Tarea 3 Tarea 4 Tarea 5

Probabilidad t de Student 3,9 × 10−4 5,9 × 10−4 1,12 × 10−6 5,6 × 10−4 1,12 × 10−6

6.2.2 Tiempos de finalización

La Figura 6.4 muestra el tiempo promedio de finalización de cada tarea en segundos. En estos resultados surge un patrón
similar al observado en la evaluación de la dificultad: el tiempo hasta su finalización disminuye desde la Tarea 2 hasta la
última tarea, excluyendo la Tarea 4, que requiere más pasos. Además, el tiempo empleado por el desarrollador también
se representa en el gráfico como punto de referencia. Es posible ver que este valor es consistentemente menor que el
tiempo promedio de los voluntarios. Sin embargo, el tiempo del desarrollador cae dentro de los intervalos de error para las
tareas que inherentemente requieren más pasos (Tareas 1 y 4). Esto puede sugerir que en la Tarea 4 el cuello de botella
no es la capacidad o el conocimiento sobre el sistema, sino los tiempos de inferencia del chatbot.

Figura 6.4: Tiempo promedio de finalización por tarea para los voluntarios. El tiempo que tarda el desarrollador también
está representado por la línea como término de comparación.

6.2.3 Puntuación de usabilidad del sistema

El puntaje promedio final del SUS para el sistema fue de 84,7 ± 8,4, lo que posiciona a este sistema por encima del puntaje
de referencia, "Excelente" en el sistema de calificación de adjetivos del SUS y "Aceptable" en la escala de aceptabilidad.
La puntuación más baja fue 67,5 y la más alta fue 97,5 (ver Figura 6.5). Por lo tanto, este sistema tiene un alto grado de
usabilidad cuando se consideran las puntuaciones SUS tradicionales, aunque estas puntuaciones de referencia no han
incluido puntuaciones de usabilidad de agentes conversacionales.
Machine Translated by Google

6.2 Resultados 127

Figura 6.5: Diagrama de caja que representa las puntuaciones SUS obtenidas en la prueba. El promedio es 84,7, el
el mínimo fue 67,5 y el máximo fue 97,5. Es posible observar que el primer cuartil es
por encima del valor de referencia 68,0

6.2.3.1 Cuestionario de experiencia del usuario

Este cuestionario produce 6 métricas diferentes según el factor que mide. El


Las puntuaciones se normalizaron a un rango que va de ­3 a 3 y se muestran en la Tabla 6.4. Los valores
También se compararon con el benchmark de cada factor y se puede consultar en la Figura 6.6.

Tabla 6.4: Resultados UEQ para cada factor y comparación con el Benchmark. El promedio calculado
también se presenta el resultado medio promediando cada voluntario (escala: [­3;3])

Escala Estándar medio Comparación de desarrolladores con el punto de Interpretación


Atractivo 1.98 referencia 0,77 Excelente En el rango del 10% de mejores resultados
Perspicuidad 2,31 0,52 Excelente En el rango del 10% de mejores resultados
Eficiencia 1,82 0,71 Bien En el rango del 10% de mejores resultados
Confiabilidad 1,76 0,76 Excelente En el rango del 10% de mejores resultados
Estimulación 1,84 Novedad 0,66 Excelente En el rango del 10% de mejores resultados
Promedio 1,90 0,68 Excelente En el rango del 10% de mejores resultados
1,93 0,58 ­
Machine Translated by Google

128 Evaluación de la experiencia del usuario

Figura 6.6: Comparación de referencia para cada factor evaluado por la UEQ

Como se muestra en la tabla anterior, el chatbot se clasificó con puntuaciones altas en todos los factores en
comparación con los puntos de referencia. Los factores que peores resultados obtuvieron fueron Eficiencia y
Confiabilidad, aunque este último aún se considera Excelente.

En cuanto a la eficiencia, la baja puntuación puede deberse al mayor tiempo que tardan en procesarse
algunas solicitudes a la API, que es el principal cuello de botella en términos de duración de la tarea. Esto se
percibe como un inconveniente de un chatbot. Además, la interfaz de usuario utilizada para la implementación
(Rasa X) tenía algunas fallas, que también pueden afectar la percepción de la eficiencia del chatbot.

En confiabilidad se analizaron indicadores como previsibilidad, apoyo brindado, seguridad y expectativas. La


seguridad no es posible evaluar adecuadamente mediante la prueba que se diseñó, lo que generó una gran
cantidad de resultados de rango medio. Además, la previsibilidad y el apoyo son los indicadores con menor
puntuación entre los cuatro. De hecho, estos indicadores deben mejorarse, especialmente en los escenarios
fallidos, que idealmente serían ninguno. Sin embargo, en caso de que eso suceda, ya sea por un problema de un
chatbot o por un problema relacionado con la API, se debe brindar una retroalimentación clara y adecuada al
usuario. Esto se puede lograr optimizando los modelos y los umbrales de confianza y creando respuestas de
retroalimentación específicas para cada caso para cada error. Esta es, de hecho, la parte del agente conversacional
que tiene mayor margen de mejora.

Por otro lado, el mejor valor se logra con Perspicuity, que tiene en cuenta la comprensibilidad, facilidad,
complejidad y claridad del sistema. Estos resultados refuerzan la observación hecha en la Sección 6.2.1 , que
afirma que el sistema es realmente muy fácil de aprender, con una curva de aprendizaje rápida. Es muy deseable
que la población de edad avanzada adopte y utilice esta tecnología.

Para poder comparar aún más esta prueba con los otros cuestionarios, el promedio de los 6
Los factores se calcularon para cada voluntario y se utilizarán en la siguiente sección.

6.2.4 Cuestionario de usabilidad del chatbot

Los resultados obtenidos para este cuestionario fueron normalizados al mismo intervalo utilizado por el SUS
(0­100), para que sea posible compararlos con los benchmarks.
Machine Translated by Google

6.2 Resultados 129

La puntuación media del CUQ fue de 82,9 ± 8,6. Una vez más, está muy por encima del valor de referencia de 68,0 y
posiciona al chatbot en las mismas categorías que la puntuación SUS.

El valor máximo de CUQ es mayor que el valor máximo de SUS y el valor mínimo de CUQ es menor que el valor mínimo
de SUS. Sin embargo, la distribución de los valores CUQ es más compacta que la del SUS porque el rango intercuartil es más

pequeño (ver Figuras 6.5 y 6.7). Además, los resultados pueden mostrar un ligero sesgo positivo ya que la mediana es menor
que la
significar.

Figura 6.7: Diagrama de caja que representa los puntajes CUQ obtenidos en la prueba. El promedio es 82,9, el mínimo fue
65,6 y el máximo fue 98,44.

6.2.5 Comparación de cuestionarios

Un análisis importante a realizar es si los distintos cuestionarios evalúan del mismo modo al chatbot o no. Las figuras 6.8, 6.9
y 6.10 muestran las distintas puntuaciones del cuestionario comparadas entre sí. En términos generales, las relaciones entre
las distintas puntuaciones del cuestionario muestran una propensión lineal.

Figura 6.8: Puntuaciones SUS vs UEQ por parcela de voluntarios


Machine Translated by Google

130 Evaluación de la experiencia del usuario

Figura 6.9: Puntuaciones SUS vs CUQ por gráfico de voluntarios

Figura 6.10: Puntajes UEQ vs CUQ por parcela de voluntarios

Para confirmar esta tendencia, se calculó la correlación de Persona entre cada par de
puntuaciones del cuestionario (ver Tabla 6.5). Los valores del UEQ se normalizaron para la escala 0­100. El
Todos los valores están cerca de 1, lo que significa que la relación puede aproximarse mediante un aumento.
función lineal. El valor más alto se obtuvo para el SUS y CUQ. Este hecho podría deberse a
el CUQ está inspirado en el SUS.

Tabla 6.5: Valores de correlación de Pearson por pares para los distintos cuestionarios utilizados

SUS Y UEQ SUS Y CUQ UEQ Y CUQ

Correlación de Pearson 0,835 0,842 0,797


Machine Translated by Google

6.2 Resultados 131

La puntuación CUQ es inferior a la del SUS, sin embargo, la diferencia entre ellos no es estadísticamente
significativa (p < 0,05). En realidad, se calculó la probabilidad t­Student para cada par y los resultados pueden
consultarse en la Tabla 6.6. La diferencia entre las puntuaciones del SUS y UEQ es estadísticamente significativa
(p < 0,05), mientras que la diferencia entre UEQ y CUQ no es estadísticamente significativa, aunque existe una
correlación lineal mayor entre SUS y UEQ que CUQ y UEQ. Esto puede sugerir que CUQ y UEQ están midiendo
aspectos similares del chatbot. Además, considerando que 2 la R
corresponde a la superposición entre lo que miden los cuestionarios, es posible decir que aproximadamente
el 63% de la varianza en la puntuación CUQ puede ser explicada por el UEQ. Por lo tanto, el 37% de este valor
podría estar relacionado con otros factores que están más estrechamente relacionados con los agentes
conversacionales y que no están siendo capturados por la UEQ.

Tabla 6.6: Probabilidades t­Student para la combinación por pares de cada cuestionario

SUS Y UEQ SUS Y CUQ UEQ Y CUQ

probabilidad t de Student 0.045 0,098 0.610

6.2.6 Maridaje de alimentos

Debido a la falta de un conjunto de datos adecuado, la validación del algoritmo de combinación de alimentos se
realizó mediante un cuestionario al usuario. Las preguntas intentaron evaluar la recordación y precisión del algoritmo
desarrollado. La Figura 6.11 muestra la distribución de respuestas para la pregunta que abordaba la exactitud de
los resultados mostrados mediante el algoritmo de búsqueda basado en incrustaciones. Los resultados presentados
se pueden asignar a la precisión del sistema, ya que mide cuántas de las respuestas positivas son realmente
verdaderas. Los resultados muestran que el algoritmo desarrollado tiene un alto nivel de precisión. La mayor parte
de los resultados de la consulta son totalmente correctos, lo que significa que los ingredientes que muestra están
relacionados con el término de la consulta.

Figura 6.11: Frecuencia de respuesta para la evaluación de la precisión de la combinación de alimentos


Machine Translated by Google

132 Evaluación de la experiencia del usuario

La recuperación es también otra métrica importante que debe tenerse en cuenta. La Figura 6.12 muestra la
frecuencia de respuesta respecto a la comparación realizada entre la búsqueda basada en palabras ya implementada en
la API y el algoritmo desarrollado. El objetivo era identificar elementos que estaban correctamente presentes en el
primero y faltantes en el segundo. Esto no calcularía la recuperación real del modelo, ya que requeriría una lista de todos
los elementos correctos por consulta. No obstante, es una buena comparación para detectar elementos faltantes. Los
resultados muestran que la mayor parte de las respuestas fueron positivas, por lo que el recuerdo también es elevado.
Sin embargo, es posible afirmar que el modelo muestra una mayor precisión en comparación con el recuerdo.

Figura 6.12: Frecuencia de respuesta para la evaluación del retiro del mercado de correspondencia de alimentos

La Figura 6.13 muestra las respuestas a la pregunta que juzgaba qué algoritmo de búsqueda preferían los usuarios.
Muestra que, aunque la retirada es inferior a la precisión y el algoritmo no siempre recopila todas las muestras de
ingredientes del conjunto de datos, los usuarios prefieren que la calificación se aplique solo a los ingredientes correctos.
Imaginando una calificación de 0 (eliminación de ingredientes de los planes), esto sugiere que los usuarios prefieren
lidiar con ingredientes presentes incorrectamente que con ingredientes eliminados incorrectamente.
Machine Translated by Google

6.3 Resumen 133

Figura 6.13: Frecuencia de respuesta para la preferencia del modelo de combinación de alimentos

6.3 Resumen
Este capítulo explora las pruebas de usabilidad y experiencia del usuario que son cruciales para una completa
Evaluación de chatbots. Se comienza describiendo el protocolo utilizado el cual se divide en dos partes: la
pruebas de tareas y los cuestionarios. Se presenta el análisis estadístico de los resultados obtenidos.
También se presenta y discute en este capítulo.

En general, el agente conversacional desarrollado en este trabajo mostró buenos resultados en


comparación con los valores de referencia para cada prueba, aunque se pueden realizar mejoras posteriores. También,
Se realiza un análisis conjunto de los cuestionarios, con el fin de valorar su idoneidad respecto a la evaluación
del chatbot. Además, también se evaluó el algoritmo de recuperación de alimentos recurriendo
a la opinión del usuario. Los resultados muestran que, aunque todavía hay margen de optimización, el
algoritmo proporciona buenos resultados y es el enfoque preferido en comparación con la concordancia de palabras.
buscar.

El análisis realizado en este capítulo proporciona información valiosa que puede guiar más
desarrollo de este chatbot, así como validar algunas decisiones que se tomaron a lo largo de la fase de
desarrollo.
Machine Translated by Google

134 Evaluación de la experiencia del usuario


Machine Translated by Google

Capítulo 7

Conclusión y trabajo futuro

La desnutrición es un trastorno que afecta a miles de millones de personas en todo el mundo y su principal
causa es la falta de una dieta adecuada. La alta prevalencia e incidencia de enfermedades relacionadas con
la desnutrición representan una enorme carga social y económica para el mundo. Dicho esto, tiene sentido
estudiar y desarrollar planes y recomendaciones dietéticas que ayuden a la población a ingerir una selección
de alimentos más saludable y comidas correctamente preparadas. Sin embargo, la creación de un plan de
alimentación o la definición de requerimientos dietéticos depende del usuario individual y de sus características.
Además, requiere amplios recursos humanos y mano de obra para analizar cada caso y proporcionar un plan
dietético adecuado. Dadas estas limitaciones, los complementos de nutrición han surgido como una herramienta
que permite al usuario acceder fácilmente a información nutricional y planes de alimentación relevantes. De
hecho, estos complementos suelen corresponder a una aplicación móvil que simplemente se instala en el
teléfono inteligente y que es un activo ampliamente disponible. Sin embargo, la interacción entre estos sistemas
y el usuario se produce a través de una pantalla y entradas táctiles. Esta forma de interacción puede resultar
confusa y, a menudo, desalentadora para la población de edad avanzada.

En este contexto se hace evidente la necesidad de una forma de interacción más inmersiva, con el fin de
estimular una tasa de uso más amplia y mayor de estos sistemas de recomendación nutricional. El sistema
de recomendación Lifana de Franhofer es un ejemplo de una tecnología que podría mejorarse mediante la
implementación de una forma renovada de interacción. Ésta es la motivación subyacente para la creación de
un agente conversacional que se integrará en el sistema. Así, este documento comprende los conceptos
básicos para una Tesis de Maestría que aborde las necesidades antes mencionadas.

La investigación subyacente a este trabajo cubre las técnicas y algoritmos que a menudo se emplean en
la construcción de agentes conversacionales. Los métodos de comprensión del lenguaje natural son el núcleo
del chatbot, mientras que el reconocimiento y la síntesis de voz también desempeñan un papel importante en
la calidad de la interacción del agente. Estos dos componentes no forman parte del alcance de este trabajo,
aunque su implementación encajaría fácilmente en el proceso del chatbot. De hecho, la detección de voz
idealmente resolvería el problema de los errores ortográficos, ya que su resultado siempre está escrito
correctamente. Además, el agente que se está desarrollando para conversaciones totalmente basadas en
texto permite una integración perfecta con estos módulos.

Dicho esto, la identificación de la intención subyacente del usuario en una expresión y

135
Machine Translated by Google

136 Conclusión y trabajo futuro

la predicción de la respuesta del próximo chatbot son las funciones clave para el correcto funcionamiento de un
chatbot orientado a tareas. Ambas tareas se realizaron utilizando el marco Rasa, que incluía un conjunto de
herramientas de última generación que facilitaron el desarrollo del chatbot. Para superar la falta inicial de un conjunto
de datos adecuado, se recopilaron dos conjuntos de datos correctamente anotados: un conjunto de expresiones
centradas en NLU de origen público que luego se ajustaron y anotaron y también un conjunto de datos de
interacciones por turnos entre humanos y chatbots, recopilados con el Ayude a dos voluntarios a través de la opción
Rasa Interactive Learning. El objetivo de estos conjuntos era iniciar la creación del chatbot y se recomienda ampliarlos
aún más con datos reales del usuario. Esto conducirá a un aumento en el rendimiento del chatbot, con menos casos
de falla o mejores escenarios de falla.
Se consideró la opción de utilizar estructuras de oraciones con diferentes espacios para el aumento de datos,
aunque la utilización de datos reales se consideró una mejor opción. La ausencia de datos guió muchas opciones
tomadas durante el trabajo y dificultó la validación de algunos componentes agregados. No obstante, con la
recopilación de más datos, este trabajo sentó las bases y proporcionó soporte para un agente virtual en constante
mejora.

El componente NLU desarrollado durante este trabajo tenía la tarea de clasificar la intención y extraer entidades
de la entrada del usuario. Se probaron varias arquitecturas, incluida una arquitectura basada en transformador con
un cabezal de atención que es el estado actual del arte para problemas de PNL.
Además, se utilizaron modelos tradicionales de aprendizaje automático, incluido un SVM, que generó resultados muy
mejores para la clasificación de intenciones que el modelo transformador y un CRF para el reconocimiento de
entidades. Además, también se experimentaron diferentes conjuntos de características que representan niveles
crecientes de complejidad. Estas características van desde características dispersas tradicionales a nivel de token
hasta incrustaciones de palabras contextuales y previamente entrenadas generadas a partir de modelos de lenguaje
de vanguardia. Se esperaría que el modelo que utiliza las incrustaciones contextuales más recientes y complejas
superara a los otros métodos; sin embargo, debido al dominio cerrado de este trabajo, los mejores resultados para
ambas tareas se obtuvieron utilizando incrustaciones de palabras estáticas previamente entrenadas. Tanto la
clasificación de intenciones como la extracción de entidades se manejaron de forma multitarea donde el modelo de
clasificación utilizó la pérdida combinada de ambos problemas para guiar el entrenamiento. Este método se logró
utilizando la arquitectura de transformador DIET desarrollada por Rasa y mostró los mejores resultados en general.

Una vez que se seleccionó y probó el proceso de NLU, fue posible centrar los esfuerzos en la parte de Gestión
del Diálogo. Se probaron varias arquitecturas y se seleccionó la arquitectura basada en transformador debido a sus
puntuaciones de rendimiento más altas. Las pruebas relativas a esta parte no fueron tan extensas como las de la
NLU ya que el conjunto de datos recopilados era mucho más pequeño.
El objetivo era construir un modelo y un conjunto de datos que funcionaran lo suficientemente bien juntos para un
funcionamiento adecuado del chatbot. Este conjunto de datos se expande fácilmente almacenando conversaciones
de los evaluadores que pueden anotarse posteriormente. Dicho esto, el rendimiento del chatbot se beneficiará de
este proceso de recopilación.

Para complementar el chatbot y mejorar la calidad de las recomendaciones, hubo que modelar las preferencias
alimentarias en función de los comentarios del usuario. Por este motivo, se desarrollaron dos componentes
adicionales: el modelado de preferencias y los algoritmos de comparación de alimentos. Lo primero se logró utilizando
una herramienta de análisis de sentimiento que encaja en el proceso de NLU. Esto requirió un análisis en profundidad
de dos analizadores de sentimiento. Se exploraron los resultados para crear un mecanismo de calificación apropiado
basado en los datos recopilados en el formulario NLU. Este componente ex­
Machine Translated by Google

Conclusión y trabajo futuro 137

Se analizó la intensidad del sentimiento presente en la expresión del usuario al referirse a una preferencia hacia
un ingrediente o receta. Este valor de magnitud luego se convirtió a la escala correcta. Además, se debía tener
en cuenta el algoritmo de calificación utilizado por la API para adaptar la calificación basada en el sentimiento
en consecuencia. Los valores tienen diferentes ponderaciones y, por tanto, diversos efectos en la planificación
de las comidas. Este componente se puede optimizar aún más con la recopilación de más datos de
preferencias. De hecho, con suficientes datos, se puede entrenar un modelo de clasificación de un extremo a
otro, lo que capturará mejor la información presente en el conjunto de datos y se adaptará al mecanismo de
puntuación de la API. Para un correcto funcionamiento de este modelo de preferencia, la calificación calculada
debe aplicarse al conjunto correcto de ingredientes mencionados por el usuario. De hecho, el proceso de
coincidencia entre la entidad de consulta extraída del texto y los distintos ingredientes de la base de datos no
es trivial debido tanto a la presencia de varias instancias de cada ingrediente como a las relaciones semánticas
inherentes presentes en este conjunto léxico. Teniendo esto en cuenta, se desarrolló un algoritmo de
coincidencia basado en incrustaciones en un intento de capturar las relaciones semánticas entre términos alimentarios.
Estas relaciones están codificadas como un gráfico de conocimiento en la ontología alimentaria LanguaL, que
se utilizó como estándar para la clasificación de ingredientes. Esta información semántica codificada a través
de Lan­guaL se incorporó a un conjunto de incrustaciones de palabras previamente entrenadas mediante
retrofitting. El conjunto elegido fue ConceptNet Numberbatch, ya que ya estaba adaptado utilizando un gráfico
de conocimiento de propósito general y, por lo tanto, sus resultados de referencia fueron mejores que los del
uso de incrustaciones de GloVe. El conjunto de vectores de palabras obtenido después de la adaptación con
LanguaL se utiliza como base para el algoritmo de coincidencia. Funciona aplicando pasos de filtrado
secuenciales a los candidatos, en función de varias métricas de similitud. El objetivo final es obtener una lista
de ingredientes que coincidan con la entidad de consulta, ya sea un grupo de ingredientes o uno individual. Los
umbrales de similitud definidos durante el desarrollo de este algoritmo se basaron en la visualización y pueden
optimizarse con un conjunto de datos creado para este propósito. Además, el conjunto de incrustaciones
generado ahora incluye las relaciones semánticas presentes en los alimentos. Por lo tanto, esta información
se puede explorar más a fondo para diferentes aplicaciones, como la sustitución de ingredientes o la creación
de recetas, aprovechando las relaciones entre diferentes ingredientes en la base de datos. Además, la
combinación de estas incrustaciones con conjuntos como food2vec puede suponer un buen recurso para la
sugerencia o creación automática de recetas basadas en preferencias personales, aumentando el número de
recetas disponibles en la base de datos. El algoritmo desarrollado fue validado por la opinión de los usuarios.
La conclusión extraída del análisis de esos resultados es que los usuarios prefieren la precisión a la recuperación cuando se trata
Esto significa que, en general, se prefirió el algoritmo basado en incrustaciones a la búsqueda de palabras.
El algoritmo generalmente falla al recuperar todas las muestras cuando forman parte de un ingrediente complejo
que incluye varios otros. La clasificación de esas muestras suele basarse en el ingrediente principal. Otra forma
de mejorar el rendimiento es alterando estos complejos ingredientes (que en ocasiones son platos completos)
dividiéndolos en sus componentes. Esta sugerencia también facilitaría la creación de recetas y la sustitución de
ingredientes, ya que las recetas se vuelven más modulares.

Para realizar una evaluación completa del chatbot desarrollado, se debe tener en cuenta la experiencia
del usuario. Por lo tanto, se diseñó una prueba de usabilidad basada en tareas singulares. Las tareas
seleccionadas están inspiradas en los casos de uso más comunes del chatbot e intentan explorar cada acción
del mismo. Además, las tareas están diseñadas para aumentar en complejidad y en el grado de libertad
otorgado al usuario. Después de las tareas, se solicita al voluntario que responda tres cuestionarios que tienen
como objetivo evaluar la calidad general del sistema. Las métricas extraídas del
Machine Translated by Google

138 Conclusión y trabajo futuro

Los cuestionarios y su comparación con los benchmarks permitieron concluir que el chatbot está bien
construido y sus funciones están bien integradas, desde el punto de vista de la usabilidad.

Un aspecto crucial que se puede mejorar es la mecánica fallida del chatbot. Debería afrontar mejor
los errores y presentar comentarios detallados de los problemas que ocurren tanto en la parte
conversacional como en las solicitudes a la API. Este es uno de los factores que debe fortalecerse para
una posible aplicación comercializada.

El desarrollo modular adoptado en este trabajo permite la conversión del idioma inglés a cualquier
otro idioma siempre que haya recursos lingüísticos disponibles, como conjuntos de incrustaciones de
palabras previamente entrenadas y un conjunto de datos apropiado.

En conjunto, la realización de este trabajo fue fundamental para una comprensión completa de los
requisitos y técnicas que intervienen en la construcción de un agente conversacional que debería ser
capaz de mejorar la interacción y el compromiso entre un usuario y un sistema de recomendación. El
marco utilizado, Rasa, permitió un desarrollo e integración rápidos y eficientes entre todos los componentes.
El producto final se puede implementar en varias aplicaciones de chat como Facebook Messenger,
Telegram o incluso Slack, sin necesidad de descargar una aplicación adicional, o como función integrada
en otros dispositivos como aparatos de cocina inteligentes (con la adición de voz). control S).
Machine Translated by Google

Bibliografía

[1] Base de datos ­ Eurostat. [En línea]. Disponible: https://ec.europa.eu/eurostat/web/population­demography­


migration­projections/population­projections­/database .

[2] Organización Mundial de la Salud, “Informe mundial sobre el envejecimiento y la salud”, Organización Mundial de la Salud.

zación, Ginebra, Suiza, Tech. Rep., 2015.

[3] D. Baez­Franceschi y JE Morley, “Fisiopatología del catabolismo asociado con la desnutrición en los
ancianos”, en Malnutrición en los ancianos, Steinkopff, 1999, págs. 19­29. doi: 10.1007/978­3­642­47073­8{\_}
4.

[4] SS Schiffman, “Pérdidas del gusto y el olfato en el envejecimiento normal y las enfermedades”, JAMA, vol.
278, núm. 16, págs. 1357–62, número: 0098­7484. [En línea]. Disponible: http://www.ncbi.nlm.nih. gov/
pubmed/9343468.

[5] N. Kshetrimayum, CVK Reddy, S. Siddhana, M. Manjunath, S. Rudraswamy y S.


Sulavai, “Calidad de vida relacionada con la salud bucal y estado nutricional de la población
institucionalizada de 60 años o más en la ciudad de Mysore, India”, Gerodontology, vol. 30, núm. 2,
págs. 119–125, junio de 2013, issn: 07340664. doi: 10.1111/j.1741­2358.2012.00651.x.
[En línea]. Disponible: http://doi.wiley.com/10.1111/j.1741­2358.2012.00651.x.

[6] RO Hansson, WH Jones, BN Carpenter y JH Remondet, “Soledad y adaptación a la vejez”, The


International Journal of Aging and Human Development, vol. 24, núm. 1, págs. 41–53, enero de 1987,
issn: 0091­4150. doi: 10. 2190/82XB­5L9T­JWKE­U6T8. [En línea].
Disponible: http://journals.sagepub.com/doi/10.2190/82XB­5L9T­JWKE­U6T8.

[7] MP Thompson y LK Morris, “Pérdida de peso inexplicable en personas mayores ambulatorias”, Revista de
la Sociedad Estadounidense de Geriatría, vol. 39, núm. 5, págs. 497–500, 1991, issn: 15325415. doi:
10.1111/j.1532­5415.1991.tb02496.x.

[8] K. Shifler Bowers, E. Francis y JL Kraschnewski, La doble carga de la desnutrición en los Estados Unidos
y el papel de las organizaciones sin fines de lucro, diciembre de 2018. doi: 10.1016/j.pmedr.
2018.10.002.

[9] WJ Evans y D. Cyr­Campbell, “Nutrición, ejercicio y envejecimiento saludable”, Revista de la Asociación


Dietética Estadounidense, vol. 97, núm. 6, págs. 632–638, 1997, issn: 00028223. doi: 10.1016/
S0002­8223(97)00160­0.

[10] C. Evans, “Desnutrición en las personas mayores: un fracaso multifactorial para prosperar”, The Permanente
Journal, vol. 9, núm. 3, julio de 2005, issn: 15525767. doi: 10.7812/tpp/05­056.

139
Machine Translated by Google

140 BIBLIOGRAFÍA

[11] CC­H. Chen, LS Schilling y CH Lyder, “Un análisis conceptual de la desnutrición en las personas mayores”,
Journal of Advanced Nursing, vol. 36, núm. 1, págs. 131­142, octubre de 2001, issn: 0309­2402. doi:
10.1046/j.1365­2648.2001.01950.x. [En línea]. Disponible: http://doi.wiley.com/10.1046/
j.1365­2648.2001.01950.x .

[12] Development Initiatives, “Global Nutrition Report Shining a light to spur action on nutrition 2018”,
Development Initiatives, Bristol, Reino Unido, Tech. Rep., 2018.

[13] Desnutrición. [En línea]. Disponible: https://www. OMS . int / sala de noticias / fichas informativas /
detalle/desnutrición.

[14] Rojer AG, Kruizenga HM, Trappenburg MC, Reijnierse EM, Sipilä S, Narici MV, Hogrel JY, Butler­Browne
G, McPhee JS, Pääsuke M, Meskers CG, Maier AB y de van der Schueren MA, “The prevalencia de
desnutrición según la nueva definición de ESPEN en cuatro poblaciones diversas”, Nutrición Clínica, vol.
35, núm. 3, págs. 758–762, junio. 2016, issn: 15321983. doi: 10.1016/j.clnu.2015.06.005.

[15] JI van Zwienen­Pot, M. Visser, M. Kuijpers, MF Grimmerink y HM Kruizenga, “Desnutrición en pacientes de


rehabilitación en hogares de ancianos”, Clinical Nutrition, vol. 36, n° 3, págs. 755–759, junio. 2017, issn:
15321983. doi: 10.1016/j.clnu.2016.06.003.

[16] M. Visser, D. Volkert, C. Corish, C. Geisler, LC de Groot, AJ Cruz­Jentoft, C. Lohrmann, EM O'Connor, K.


Schindler y MA de van der Schueren, “Tackling El creciente problema de la desnutrición en las personas
mayores: La Desnutrición en las Personas Mayores (MaNuEL)
Knowledge Hub”, Boletín de Nutrición, vol. 42, núm. 2, págs. 178–186, junio de 2017, issn: 14719827.
doi: 10.1111/nbu.12268. [En línea]. Disponible: http://doi.wiley.com/10.1111/nbu.
12268.

[17] H. Kruizenga, S. van Keeken, P. Weijs, L. Bastiaanse, S. Beijer, G. Huisman­de Waal, H.


Jager­Wittenaar, C. Jonkers­Schuitema, M. Klos, W. Remijnse­Meester, B. Witteman y A. Thijs, “Encuesta
de detección de desnutrición en 564 063 pacientes: los pacientes con una puntuación positiva en la
detección de desnutrición permanecen en el hospital 1,4 días más ”, Revista Estadounidense de Nutrición
Clínica, vol. 103, núm. 4, págs. 1026–1032, abril de 2016, issn: 0002­9165. doi: 10.3945/ ajcn.115.126615.
[En línea]. Disponible: https://academic.oup.com/ajcn/article/103/4/1026/4662899 .

[18] P. Abizanda, A. Sinclair, N. Barcons, L. Lizán y L. Rodríguez­Mañas, Costos de la malnutrición en adultos


mayores institucionalizados y que viven en comunidades: una revisión sistemática, enero de 2016. doi:
10.1016/j.jamda.2015.07.005.

[19] JF Guest, M. Panca, JP Baeyens, F. de Man, O. Ljungqvist, C. Pichard, S. Wait y L. Wilson, “Impacto
económico en la salud del manejo de pacientes después de un diagnóstico comunitario de desnutrición
en el Reino Unido”, Nutrición clínica, vol. 30, núm. 4, págs. 422–429, agosto de 2011, issn: 02615614.
doi: 10.1016/j.clnu.2011.02.002.

[20] S. Khalatbari­Soltani y P. Marques­Vidal, “El costo económico de la desnutrición hospitalaria en Europa;


una revisión narrativa”, Nutrición Clínica ESPEN, vol. 10, núm. 3, e89–e94, 2015, issn: 24054577. doi:
10.1016/j.clnesp.2015.04.003. [En línea]. Disponible: http://dx. doi.org/10.1016/j.clnesp.2015.04.003.
Machine Translated by Google

BIBLIOGRAFÍA 141

[21] Cederholm T, Barazzoni R, Austin P, Ballmer P, Biolo G, Bischoff SC, Compher C, Correia I, Higashiguchi T,
Holst M, Jensen GL, Malone A, M. Directrices ESPEN sobre definiciones y terminología de nutrición
clínica ”, Nutrición Clínica, vol. 36, núm. 1, págs. 49–64, 2017, edición: 15321983 .

[22] Síntomas y tratamientos de la desnutrición ­ Enfermedades y condiciones | NHS informa. [En línea].
Disponible: https : / / www . nhsinformar. scot / enfermedades ­ y ­ condiciones / nutricionales /
desnutrición.

[23] D. Ribeiro, J. Ribeiro, MJM Vasconcelos, EF Vieira y AC de Barros, “SousChef: Sistema mejorado de
recomendación de comidas para adultos mayores portugueses”, Comunicaciones en Informática y Ciencias
de la Información, vol. 869, págs. 107–126, 2018, issn: 18650929. doi: 10 . 1007/978­3­319­93644­4{\_}6.

[24] S. Mika, “Desafíos para los sistemas de recomendación nutricional”, Actas del taller CEUR, vol. 786, págs. 25
a 33, 2011, issn: 16130073.

[25] Nutrición. [En línea]. Disponible: https://www.who.int/health­topics/nutrition.

[26] D. Volkert, AM Beck, T. Cederholm, A. Cruz­Jentoft, S. Goisser, L. Hooper, E. Kiess­wetter, M. Maggio, A.


Raynaud­Simon, CC Sieber, L. Sobotka , D. van Asselt, R. Wirth y SC Bischoff, “Directriz ESPEN sobre
nutrición e hidratación clínica en geriatría”, Nutrición clínica. vol. 38, núm. 1, págs. 10–47, 2019, issn:
15321983. doi: 10.1016/j.clnu.
2018.05.024. [En línea]. Disponible: https://doi.org/10.1016/j.clnu.2018.05.024.

[27] Demografía de la propiedad y adopción de dispositivos móviles en los Estados Unidos | Centro de Investigación
Pew. [En línea]. Disponible: https://www. investigación de pew. org / internet / fact­sheet / móvil/.

[28] La propiedad de teléfonos inteligentes está creciendo rápidamente en todo el mundo, pero no siempre de la
misma manera | Centro de Investigación Pew. [En línea]. Disponible: https://www. investigación de pew.
org/global/2019/ 02/05/la­propiedad­de­smartphones­está­creciendo­rápidamente­en­todo­el­mundo­pero­
no ­siempre­igualmente/.

[29] K. Singh y AB Landman, “Mobile Health”, en Key Advances in Clinical Informatics: Transforming Health Care
Through Health Information Technology, Elsevier Inc., julio de 2017, págs. 183­196, isbn: 9780128095256.
doi: 10.1016/B978­0­12­809523­2.00013­3.

[30] “MHealth Economics 2017 – Estado actual y tendencias futuras en salud móvil”,

[31] Seguimiento de la salud | Centro de Investigación Pew. [En línea]. Disponible: https://www.pewresearch.
org/internet/2013/01/28/tracking­for­health/.

[32] Los Millennials destacan por su uso de la tecnología | Centro de Investigación Pew. [En línea]. Disponible:
https://www.pewresearch.org/fact­tank/2019/09/09/us­spawns­technology­
usar/.

[33] Publicación del consejo: Cómo la IA está revolucionando la atención médica. [En línea]. Disponible: https://
www. forbes.com/sites/forbestechcouncil/2020/01/15/how­ai­is­revolutionizing­health­care/#5c12023a403c .
Machine Translated by Google

142 BIBLIOGRAFÍA

[34] D. Ribeiro, J. Machado, J. Ribeiro, MJM Vasconcelos, EF Vieira y AC De Barros, “SousChef: Sistema móvil de
recomendación de comidas para adultos mayores”, ICT4AWE 2017 ­ Actas de la 3ª Conferencia Internacional
sobre Tecnologías de la información y la comunicación para un buen envejecimiento y e­Salud, núm. Ict4awe,
págs. 36–45, 2017. doi: 10.5220/0006281900360045.

[35] E. Van den Broeck, B. Zarouali y K. Poels, “Efectividad de la publicidad del chatbot: ¿Cuándo llega el mensaje?”,
Computers in Human Behavior, vol. 98, págs. 150–157, septiembre de 2019, issn: 07475632. doi: 10.1016/
j.chb.2019.04.009.

[36] PB Brandtzaeg y A. Følstad, “Why people use chatbots”, en Lecture Notes in Computer Science (incluidas las
subseries Lecture Notes in Artificial Intelligence y Lecture Notes in Bioin­formatics), vol. 10673 LNCS, Springer
Verlag, 2017, págs. 377–392, isbn: 9783319702834. doi: 10.1007/978­3­319­70284­1{\_}30.

[37] SS Sundar, Efectos Meida 2.0: Efectos sociales y psicológicos de las tecnologías de la comunicación,
2009.

[38] SS Sundar y AM Limperos, “Uses and Grats 2.0: New Gratifications for New Me­dia”, Journal of Broadcasting &
Electronic Media, vol. 57, núm. 4, págs. 504–525, octubre de 2013, issn: 0883­8151. doi: 10. 1080/08838151.
2013. 845827. [En línea]. Disponible: http://www.
tandfonline.com/doi/abs/10.1080/08838151.2013.845827.

[39] JLZ Montenegro, CA da Costa y R. da Rosa Righi, “Encuesta de agentes conversacionales en salud”, Sistemas
Expertos con Aplicaciones, vol. 129, págs. 56–67, 2019, issn: 09574174. doi: 10.1016/j.eswa.2019.03.054.
[En línea]. Disponible: https://doi.org/10.1016/j.
nuevo.2019.03.054.

[40] Consorcio GUIDE, “Definiciones de grupos de usuarios, necesidades del usuario final, análisis de requisitos y
pautas de implementación”, Tech. Rep., 2011. [En línea]. Disponible: http://edream­h2020. UE/.

[41] Cómo los chatbots podrían reemplazar a su departamento de recursos humanos ­ BBC Worklife. [En línea].
Disponible : https://www.bbc.com/worklife/article/20180315­how­chatbots­podría­reemplazar­su­
Departamento de Recursos Humanos.

[42] A. Xu, Z. Liu, Y. Guo, V. Sinha y R. Akkiraju, “Un nuevo chatbot para el servicio al cliente en las redes sociales”,
en Conferencia sobre factores humanos en sistemas informáticos ­ Actas, vol. 2017­mayo, Association for
Computing Machinery, mayo de 2017, págs. 3506–3510, isbn: 9781450346559. doi: 10.1145/3025453.3025496.

[43] P. Wu y C. Miller, “Resultados de un estudio de campo: la necesidad de una relación emocional entre las
personas mayores y sus tecnologías de asistencia”, Foundations of Augmented Cognition, Vol 11, págs. 889–
898, 2005.

[44] J. Feine, S. Morana y U. Gnewuch, “Medición de la satisfacción del encuentro de servicio con chatbots de servicio
al cliente mediante análisis de sentimiento”, Wirtschaftsinformatik 2019 Proceed­ings, febrero de 2019. [En
línea]. Disponible: https://aisel. aisnet. org/wi2019/track10/ papers/2.

[45] L. Sobotka, Ed., Conceptos básicos de nutrición clínica, 4º. Galeno, 2012.

[46] “QUIÉN | Metas Mundiales de Nutrición 2025: Resumen de políticas sobre el retraso del crecimiento”, OMS, 2018.

[47] “Índice de masa corporal ­ IMC”, enero de 2020.


Machine Translated by Google

BIBLIOGRAFÍA 143

[48] “Prevención y control de enfermedades no transmisibles en la Red de Salud de Europa Sudoriental Un análisis
de la colaboración intersectorial”, Tech. Rep., 2012.

[49] Organización Mundial de la Salud, “Estadísticas sanitarias mundiales 2018: seguimiento de la salud para los
ODS, objetivos de desarrollo sostenible”, Organización Mundial de la Salud, Ginebra, Suiza, Tech.
Rep., 2018. [En línea]. Disponible: https://www. OMS . int / gho / publicaciones / estadísticas_de_salud _

mundial/2018/es/.

[50] Enfermedades no transmisibles. [En línea]. Disponible: https://www.who.int/news­room/fact­


fichas/detalle/enfermedades­no­transmisibles.

[51] Desnutrición NHS ­ NHS. [En línea]. Disponible: https://www. nhs. es / condiciones /
desnutrición/.

[52] F. Branca, A. Lartey, S. Oenema, V. Aguayo, Stordalen GA, R. Richardson, M. Arvelo y A. Afshin, BMJ (2010),
en línea, vol. 364, enero. doi: 10.1136/bmj.l296, issn: 17561833 .

[53] E. Kesse­Guyot, S. Péneau, C. Méjean, F. Szabo de Edelenyi, P. Galan, S. Hercberg y D. Lairon, “Perfiles de
consumidores de alimentos orgánicos en una gran muestra de adultos franceses: Resultados del estudio de
cohorte Nutrinet­Santé”, PLoS ONE, vol. 8, núm. 10 de octubre de 2013, issn: 19326203. doi: 10.1371/
journal.pone.0076998.

[54] Sistemas alimentarios y dietas: afrontar los desafíos del siglo XXI. 2016, isbn: 9780995622807.

[55] GBD Comparar | Centro de visualización IHME. [En línea]. Disponible: https://vizhub.healthdata.org/
gbd­comparar/.

[56] OMS, “Hoja informativa de la OMS N◦394 Dieta saludable”, Ginebra, Suiza, Tech. Rep., 2015.
[En línea]. Disponible: http://www.who.int/mediacentre/factsheets/fs394/en/.

[57] Organización Mundial de la Salud, “Consulta de expertos FAO/OMS. Dieta, nutrición y prevención de
enfermedades crónicas: informe de una consulta conjunta de expertos OMS/FAO, Ginebra, 28 de enero”,
Tech. Representante 2, 2003, págs. 61–71.

[58] Organización Mundial de la Salud, “Directrices de la OMS: Ingesta de azúcares para adultos y niños”, Datos de
catalogación en publicaciones de la Biblioteca de la OMS, vol. 26, núm. 4, págs. 34–36, 2015, issn: 20354606.
doi: 9789241549028.

[59] B. Burlingame, C. Nishida, R. Uauy y R. Weisell, “Grasas y ácidos grasos en la nutrición humana: Introducción”,
Ginebra, Suiza, Tech. Representante 1­3, 2009, págs. 5­7. doi: 10. 1159/000228993.

[60] OMS, “Ingesta de sodio para adultos y niños”, Tech. Rep., 2012. [En línea]. Disponible:
http://www.ncbi.nlm.nih.gov/pubmed/23658998.

[61] Parlamento Europeo y Consejo, “Reglamento (UE) nº 1169/2011 del Parlamento Europeo y del Consejo, de 25
de octubre de 2011, sobre el suministro de información alimentaria a los consumidores (2011), Diario Oficial
L304, 22.11.2011, pag. 18–63”, Diario Oficial de la Unión Europea, L 304, 22 de noviembre de 2011, vol. 54,
págs. 18–63, 2011. doi: 10.3000/19770677.L{\_ }2011.304.eng. [En línea]. Disponible: https://eur­lex.europa.eu/
legal­content/EN/TXT/?uri=OJ:L:2011:304:TOC .

[62] FO Isinkaye, YO Folajimi y BA Ojokoh, Sistemas de recomendación: principios, métodos


y evaluación, noviembre de 2015. doi: 10.1016/j.eij.2015.06.005.
Machine Translated by Google

144 BIBLIOGRAFÍA

[63] SH Min e I. Han, “Detección del patrón de variante temporal del cliente para mejorar los sistemas de
recomendación”, Sistemas expertos con aplicaciones, vol. 28, núm. 2, págs. 189–199, febrero de 2005,
issn: 09574174. doi: 10.1016/j.eswa.2004.10.001.

[64] G. Adomavicius y A. Tuzhilin, Hacia la próxima generación de sistemas de recomendación: un estudio del
estado del arte y posibles extensiones, junio de 2005. doi: 10.1109/TKDE.2005.99.

[65] LS Chen, FH Hsu, MC Chen y YC Hsu, “Desarrollo de sistemas de recomendación teniendo en cuenta la
rentabilidad del producto para los vendedores”, Ciencias de la información, vol. 178, núm. 4, págs. 1032–
1048, febrero de 2008, issn: 00200255. doi: 10.1016/j.ins.2007.09.027.

[66] KB Cohen, Procesamiento biomédico del lenguaje natural y minería de textos, Error. Elsevier Inc., 2013,
págs. 141–177, isbn: 9780124016781. doi: 10.1016/B978­ 0­ 12­ 401678­ 1.00006­ 3.
[En línea]. Disponible: http://dx.doi.org/10.1016/B978­0­12­401678­1.00006­3.

[67] R. Ferreira, RD Lins, SJ Simske, F. Freitas y M. Riss, “Evaluación de la similitud de oraciones mediante
análisis léxico, sintáctico y semántico”, Habla y lenguaje por computadora, vol. 39, págs. 1 a 28,
septiembre de 2016, issn: 10958363. doi: 10.1016/j.csl.2016.01.003.

[68] T. Pedersen, SV Pakhomov, S. Patwardhan y CG Chute, “Medidas de similitud y relación semántica en el


dominio biomédico”, Journal of Biomedical Informatics, vol. 40, núm. 3, págs. 288–299, junio de 2007,
issn: 15320464. doi: 10.1016/j.jbi.2006.06.004.

[69] I. Bornkessel­Schlesewsky y M. Schlesewsky, “El papel de la información de prominencia en la comprensión


en tiempo real de construcciones transitivas: un enfoque translingüístico”, Language and Linguistics
Compass, vol. 3, núm. 1, págs. 19 a 58, enero de 2009, issn: 1749818X. doi: 10.1111/
j.1749­818X.2008.00099.x. [En línea]. Disponible: http://doi.wiley.com/10.1111/j.1749­818X.2008.00099.x .

[70] E. Cambria y B. White, Saltando curvas de PNL: una revisión del procesamiento del lenguaje natural re­
búsqueda, 2014. doi: 10.1109/MCI.2014.2307227.

[71] JM Gómez­Pérez, D. Vila, R. Denaux y C. Badenes, “Técnicas híbridas para PNL basada en conocimiento:
los gráficos de conocimiento se encuentran con el aprendizaje automático y todos sus amigos”, CEUR
Work­shop Proceedings, vol. 2065, págs. 69 y 70, 2017, issn: 16130073.

[72] M. Zhou, N. Duan, S. Liu y H.­Y. Shum, “Progreso en PNL neuronal: modelado, aprendizaje y razonamiento”,
Ingeniería, enero de 2020, issn: 20958099. doi: 10.1016 /j.eng.2019.
12 . 014. [En línea]. Disponible: https://linkinghub. más aún. com/recuperar/pii/
S2095809919304928.

[73] FA Zaraket y A. Jaber, “MATAr: etiquetador basado en morfología para árabe”, en Actas de la Conferencia
Internacional IEEE/ACS sobre Sistemas y Aplicaciones Informáticas, AICCSA, 2013,
isbn: 9781479907922. doi: 10.1109/AICCSA.2013.6616418.

[74] M. Sabra y A. Alawieh, Anotador semiautomático para aplicaciones médicas de PNL: acerca de la
herramienta. Elsevier Inc., 2019, págs. 143–150, isbn: 9780128095560. doi: 10.1016/b978­ 0­ 12­ 809556­
0.00010­ 1. [En línea]. Disponible: http://dx.doi.org/10.1016/B978­ 0­ 12­
809556­0,00010­1.

[75] FYY Choi, P. Wiemer­hastings y J. Moore, “Análisis semántico latente para la segmentación de textos”,
Actas de la Conferencia de 2001 sobre métodos empíricos en el procesamiento del lenguaje natural, vol.
102, págs. 109­117, 2001.
Machine Translated by Google

BIBLIOGRAFÍA 145

[76] CD Manning, H. Schütze y G. Weikurn, “Fundamentos del procesamiento estadístico del lenguaje natural”,
SIGMOD Record, vol. 31, núm. 3, págs. 37–38, 2002, issn: 01635808. doi:
10.1145/601858.601867.

[77] M. Hassler y G. Fliedl, “Preparación de textos mediante tokenización extendida”, en WIT Transactions on
Information and Communication Technologies, vol. 37, 2006, págs. 13 a 21, ISBN: 1845641787. doi:
10.2495/DATA060021.

[78] S. Sun, C. Luo y J. Chen, “Una revisión de las técnicas de procesamiento del lenguaje natural para sistemas
de minería de opiniones”, Information Fusion, vol. 36, págs. 10 a 25, 2017, issn: 15662535. doi: 10.1016/
j.inffus.2016.10.004. [En línea]. Disponible: http://dx.doi.org/10.1016/j.
infus.2016.10.004.

[79] A. Goyal, V. Gupta y M. Kumar, Técnicas recientes de clasificación y reconocimiento de entidades


nombradas: una revisión sistemática, agosto de 2018. doi: 10.1016/j.cosrev.2018.06.001.

[80] M. McTear, Z. Callejas y D. Griol, La interfaz conversacional. Cham: Springer International Publishing,
2016, ISBN: 978­3­319­32965­9. doi: 10.1007/978­ 3­ 319­ 32967­ 3.
[En línea]. Disponible: http://link.springer.com/10.1007/978­3­319­32967­3.

[81] A. Taylor, M. Marcus y B. Santorini, “The Penn Treebank: An Overview”, en 2003,


págs. 5–22. dos: 10.1007/978­94­010­0201­1{\_}1.

[82] MF Porter, “Un algoritmo para la eliminación de sufijos”, Tech. Reps.

[83] JM Moreira, ACPLF de Carvalho y T. Horváth, Introducción general a los datos


Analítica. 2018, isbn: 9781119296256. doi: 10.1002/9781119296294.

[84] PH Chen, Elementos esenciales del procesamiento del lenguaje natural: lo que debe hacer el radiólogo
Know, enero de 2019. doi: 10.1016/j.acra.2019.08.010.

[85] E. Delavenay y K. Delavenay, “Una introducción a la traducción automática”, 1960. [En línea].
Disponible: https://ulti.in.net/1577490887.pdf.

[86] H. Liu, T. Christiansen, WA Baumgartner y K. Verspoor, “BioLemmatizer: una herramienta de lematización


para el procesamiento morfológico de texto biomédico”, Journal of Biomedical Se­mantics, vol. 3, núm.
1, pág. 3, 2012, edición: 2041­1480. doi: 10.1186/2041­1480­3­3. [En línea].
Disponible: http://jbiomedsem.biomedcentral.com/articles/10.1186/2041­1480­3­
3.

[87] CD Manning, P. Raghavan y H. Schütze, Introducción a la recuperación de información. Leva­


puente University Press, 2008, pág. 482, isbn: 9780521865715.

[88] M.­C. De Marneffe y CD Manning, “Manual de dependencias mecanografiadas de Stanford”, Tech.


Rep., 2008. [En línea]. Disponible: http://www.universaldependencies.org.

[89] T. Mikolov, K. Chen, G. Corrado y J. Dean, “Estimación eficiente de representaciones de palabras en el


espacio vectorial”, en 1ª Conferencia Internacional sobre Representaciones de Aprendizaje, ICLR 2013 ­
Actas del seguimiento del taller, Conferencia Internacional sobre Representaciones de Aprendizaje, ICLR,
2013.

[90] J. Devlin, M.­W. Chang, K. Lee, KT Google y AI Language, “BERT: entrenamiento previo de transformadores
bidireccionales profundos para la comprensión del lenguaje”, Tech. Rep. [En línea].
Disponible: https://github.com/tensorflow/tensor2tensor.
Machine Translated by Google

146 BIBLIOGRAFÍA

[91] A. Vaswani, G. Brain, N. Shazeer, N. Parmar, J. Uszkoreit, L. Jones, AN Gomez, Ł.


Kaiser e I. Polosukhin, “La atención es todo lo que necesitas”, Tech. Reps.

[92] P. Wargnier, A. Malaisé, J. Jacquemot, S. Benveniste, P. Jouvelot, M. Pino y AS Rigaud, “Hacia la


monitorización de la atención de adultos mayores con deterioro cognitivo durante la interacción con un
agente conversacional encarnado ”, en 2015, tercer taller internacional IEEE VR sobre tecnología de
asistencia virtual y aumentada, VAAT 2015, Instituto de Ingenieros Eléctricos y Electrónicos Inc., julio
de 2015, págs. 23–28, isbn: 9781467365185. doi: 10 . 1109 / IVA .
2015.7155406.

[93] J. Weizenbaum, “ELIZA­Un programa informático para el estudio de la comunicación en lenguaje natural
entre el hombre y la máquina”, Tech. Rep. 1, 1966, págs. 36–71. [En línea]. Disponible: http://i5.nyu.edu/
~mm64/x52.9265/january1966.html.

[94] AM Turing, “Maquinaria informática e inteligencia”, en Machine Intelligence: Perspec­


tives on the Computational Model, Taylor y Francis, enero de 2012, págs. 1–28, isbn: 9781136525049.
doi: 10.1093/mind/lix.236.433.

[95] S. Hussain, O. Ameri Sianaki y N. Ababneh, “Una encuesta sobre técnicas de diseño y clasificación de agentes
conversacionales/chatbots”, en Advances in Intelligent Systems and Computing, vol. 927, Springer
Verlag, 2019, págs. 946–956, isbn: 9783030150341. doi: 10.1007/978­3­030­15035­8 {\_}93.

[96] JR Bellegarda, “Implementación de tecnología de asistente personal a gran escala: la experiencia Siri”,
Tech. Rep., 2013.

[97] AV Haridas, R. Marimuthu y VG Sivakumar, “Una revisión crítica y un análisis de las técnicas de
reconocimiento de voz: el camino a seguir”, Revista internacional de sistemas de ingeniería inteligentes
y basados en el conocimiento, vol. 22, núm. 1, págs. 39–57, 2018, issn: 18758827. doi: 10.3233/
KES­180374.

[98] L. Deng, J. Li, JT Huang, K. Yao, D. Yu, F. Seide, M. Seltzer, G. Zweig, X. He, J. Williams, Y. Gong y A.
Acero , “Avances recientes en aprendizaje profundo para la investigación del habla en Microsoft”, Tech.
Rep., 2013, págs. 8604–8608. doi: 10.1109/ICASSP.2013.6639345.

[99] G. Hinton, L. Deng, D. Yu, G. Dahl, AR Mohamed, N. Jaitly, A. Senior, V. Vanhoucke, P. Nguyen, T.
Sainath y B. Kingsbury, “Deep neural Redes para modelado acústico en reconocimiento de voz: puntos
de vista compartidos de cuatro grupos de investigación”, IEEE Signal Processing Magazine, vol. 29,
núm. 6, págs. 82–97, 2012, issn: 10535888. doi: 10.1109/MSP.2012.2205597.

[100] F. Seide, G. Li y D. Yu, “Transcripción de voz conversacional utilizando redes neuronales profundas
dependientes del contexto”, Tech. Rep., 2011.

[101] A. vd Oord, S. Dieleman, H. Zen, K. Simonyan, O. Vinyals, A. Graves, N. Kalchbrenner, A. Senior y K.


Kavukcuoglu, “WaveNet: un modelo generativo para audio sin formato ”, Tecnología.
Rep., 2016. [En línea]. Disponible: http://arxiv.org/abs/1609.03499.

[102] WaveNet: un modelo generativo para audio sin procesar | Mente profunda. [En línea]. Disponible: https://
deepmind.com/blog/article/wavenet­generative­model­raw­audio .

[103] L. Wittgenstein, Investigaciones filosóficas (GEM Anscombe, PMS Hacker, J. Schulte, Trans.) PMS Hacker
y J. Schulte, Eds. Wiley­Blackwell, 2009, ISBN: 9781405159289.
Machine Translated by Google

BIBLIOGRAFÍA 147

[104] JL ( L. Austin, JO ( O. Urmson y M. Sbisà, Cómo hacer cosas con palabras. Oxford
Prensa universitaria, 1976, pág. 169, isbn: 9780192812056.

[105] JR Searle, Actos de habla. Cambridge University Press, enero de 1969, isbn: 9780521096263. doi: 10.1017/
CBO9781139173438. [En línea]. Disponible: https://www.cambridge.org/core/product/identifier/
9781139173438/type/book .

[106] S. Palmer, R. Woolfe, J. Martin y F. Margison, El modelo conversacional. 2014, págs. 101­1 58–73, isbn:
9783319329659. doi: 10.4135/9781446280409.n3.

[107] J. Allen, Comprensión del lenguaje natural. Pub Benjamín/Cummings. Co, 1995, pág. 654, isbn:
9780805303346.

[108] T. Kï, H. Uszkoreit y F. Xu, “Uso de relaciones sintácticas y semánticas para el reconocimiento de actos de
diálogo”, Tech. Rep., 2010, págs. 570–578. [En línea]. Disponible: http://www. metaversum.com/.

[109] N. Webb y T. Liu, “Investigación de la portabilidad de frases clave derivadas de corpus para
Clasificación de la Ley de Diálogo”, Tech. Rep., 2008, págs. 977–984.

[110] D. Verbree, R. Rienks y D. Heylen, “Etiquetado de diálogo­acto mediante la selección inteligente de funciones;
results on multiple corpora”, en 2006 IEEE ACL Spoken Language Technology Workshop, SLT 2006,
Proceedings, 2006, págs. 70–73, isbn: 1424408733. doi: 10.1109 /SLT.2006.326819.

[111] S. Keizer y RO Den Akker, “Reconocimiento de actos de diálogo en condiciones de incertidumbre utilizando
redes bayesianas”, Natural Language Engineering, vol. 13, núm. 4, págs. 287–316, diciembre de 2007, issn:
13513249. doi: 10.1017/S1351324905004067.

[112] M. Nagata y T. Morimoto, “Primeros pasos hacia el modelado estadístico del diálogo para predecir el tipo de
acto de habla del siguiente enunciado”, Speech Communication, vol. 15, núm. 3­4, págs. 193–203, 1994,
issn: 01676393. doi: 10.1016/0167­6393(94)90071­X.

[113] J. Romportl y J. Matoušek, “Estructuras prosódicas formales y su aplicación en PNL”, en Lecture Notes in
Computer Science (incluida la subserie Lecture Notes in Artificial Intelligence y Lecture Notes in
Bioinformatics), vol. 3658 LNAI, 2005, págs. 371–378, isbn: 3540287892. doi: 10.1007/11551874{\_}48.

[114] WL Wu, RZ Lu, JY Duan, H. Liu, F. Gao y YQ Chen, “Comprensión del lenguaje hablado mediante el
aprendizaje débilmente supervisado”, Habla y lenguaje por computadora, vol. 24, núm. 2, págs. 358–382,
abril de 2010, issn: 08852308. doi: 10.1016/j.csl.2009.05.002.

[115] L. Ni, C. Lu, N. Liu y J. Liu, “MANDY: Hacia una aplicación inteligente de chatbot en atención primaria”, en
Communications in Computer and Information Science, vol. 780, Springer Verlag, 2017, págs. 38–52, isbn:
9789811069888. doi: 10.1007/978­981­10­6989­5{\_}4.

[116] EB Dündar, TC ¸. Ekiç, O. Deniz y S. Arslan, “Un enfoque híbrido para responder preguntas para un
chatbot bancario en turco: ampliación de palabras clave con vectores integrados”, Tech. Reps.

[117] S. Arsovski, H. Osipyan, MI Oladele y AD Cheok, “Extracción automática de conocimientos de cualquier


Chatbot a partir de una conversación”, Sistemas expertos con aplicaciones, vol. 137, págs. 343–348,
diciembre de 2019, issn: 09574174. doi: 10.1016/j.eswa.2019.07.014.
Machine Translated by Google

148 BIBLIOGRAFÍA

[118] V. Kasinathan, FS Xuan, MHA Wahab y A. Mustapha, “Intelligent Healthcare


Chatterbot (HECIA): Estudio de caso de un centro médico en Malasia”, en la Conferencia IEEE de 2017
sobre sistemas abiertos, ICOS 2017, vol. 2018­enero, Institute of Electrical and Electronics Engi­neers Inc.,
febrero de 2018, págs. 32–37, isbn: 9781538607312. doi: 10.1109/ICOS.2017.8280270.

[119] J. Cahn, “CHATBOT: Arquitectura, diseño y desarrollo”, Tech. Rep., 2017.

[120] Z. Yan, N. Duan, J. Bao, P. Chen, M. Zhou, Z. Li y J. Zhou, “DocChat: una información
enfoque de recuperación para motores de chatbot que utilizan documentos no estructurados”, en la 54ª edición anual
Reunión de la Asociación de Lingüística Computacional, ACL 2016 ­ Long Papers, vol. 1, Asociación de
Lingüística Computacional (ACL), 2016, págs. 516–525, isbn: 9781510827585.
dos: 10.18653/v1/p16­1049.

[121] A. Lommatzsch y J. Katins, “Un enfoque basado en la recuperación de información para la construcción
Chatbots intuitivos para grandes bases de conocimiento”, Tech. Rep. [En línea]. Disponible: https:
//dialogflow.com/.

[122] M. Henderson, I. Vulicvulic, D. Gerz, I. Casanueva, P. Budzianowski, S. Coope, G. Sp­ithourakis, T.­H. Wen, NM
Mrkši ́c y P.­H. Su, “Entrenamiento de la selección de la respuesta neuronal
para sistemas de diálogo orientados a tareas”, Tech. Representante, págs. 5392–5404.

[123] J.­C. Gu, T. Li, Q. Liu, X. Zhu, Z.­H. Ling, Z. Su y S. Wei, “BERT consciente del hablante para
Selección de respuesta de múltiples turnos en chatbots basados en recuperación”, Tech. Reps.

[124] K. Cho, B. Van Merriënboer, C. Gulcehre, D. Bahdanau, F. Bougares, H. Schwenk y


Y. Bengio, “Aprendizaje de representaciones de frases utilizando codificador­decodificador RNN para estadística
traducción automática”, en EMNLP 2014 ­ Conferencia 2014 sobre Métodos Empíricos en Materia Natural
Procesamiento del lenguaje, Actas de la conferencia, Asociación de Lingüística Computacional (ACL), 2014,
págs. 1724–1734, isbn: 9781937284961. doi: 10.3115/v1/d14­1179.

[125] J. Li, W. Monroe, A. Ritter, M. Galley, J. Gao y D. Jurafsky, “Aprendizaje por refuerzo profundo para la generación
de diálogo”, en EMNLP 2016 ­ Conferencia sobre métodos empíricos en ciencias naturales.
Procesamiento del lenguaje, Actas, Asociación de Lingüística Computacional (ACL), 2016,
págs.100­1 doi: 10.18653/v1/d16­1127, isbn: 9781945626258 , 1192–1202.

[126] V. Rieser y O. Lemon, Aprendizaje por refuerzo para sistemas de diálogo adaptativo. Saltador
Berlín Heidelberg, 2011. doi: 10.1007/978­3­642­24942­6.

[127] A. Wang y K. Cho, “BERT tiene boca y debe hablar: BERT como modelo de lenguaje de campo aleatorio de
Markov”, Tech. Rep. [En línea]. Disponible: https://github. es /
abrazando cara/.

[128] SA Abdul­Kader y J. Woods, “Encuesta sobre técnicas de diseño de chatbot en sistemas de conversación de voz”,
Revista Internacional de Aplicaciones y Ciencias de la Computación Avanzadas, 2015.

[129] TR Gruber, “Hacia principios para el diseño de ontologías utilizadas para compartir conocimientos”, Revista
Internacional de Estudios Humanos ­ Informática, vol. 43, núm. 5­6, págs. 907–928, 1995,
issn: 10959300. doi: 10.1006/ijhc.1995.1081.

[130] L. Bradeško y D. Mladeni´c, “Un estudio de los sistemas Chabot a través de un premio Loebner
Competencia”, Tec. Rep., 2012. [En línea]. Disponible: http://www­ai.ijs.si/eliza­cgi­bin/eliza_script .
Machine Translated by Google

BIBLIOGRAFÍA 149

[131] W. Xiong, L. Wu, F. Alleva, J. Droppo, X. Huang y A. Stolcke, “The Microsoft 2017 Conversational Speech
Recognition System”, agosto de 2017. [En línea]. Disponible: http://arxiv.org/abs/1708.06073 .

[132] Agentes | Documentación de flujo de diálogo | Nube de Google. [En línea]. Disponible: https://cloud.
google.com/dialogflow/docs/agents­overview.

[133] Intenciones | Documentación de flujo de diálogo | Nube de Google. [En línea]. Disponible: https://cloud.
google.com/dialogflow/docs/intents­overview.

[134] Entidades | Documentación de flujo de diálogo | Nube de Google. [En línea]. Disponible: https://cloud.
google.com/dialogflow/docs/entities­overview.

[135] Contextos | Documentación de flujo de diálogo | Nube de Google. [En línea]. Disponible: https : / /
cloud.google.com/dialogflow/docs/contexts­overview.

[136] Intenciones de seguimiento | Documentación de flujo de diálogo | Nube de Google. [En línea]. Disponible: https:
//cloud.google.com/dialogflow/docs/contexts­follow­up­intents.

[137] Conceptos básicos del flujo de diálogo | Documentación de flujo de diálogo | Nube de Google. [En línea]. Disponible: https:
//cloud.google.com/dialogflow/docs/basics.

[138] K. Papineni, S. Roukos, T. Ward, W.­j. Zhu e Y. Heights, “IBM Research Report Bleu: un método para la
evaluación automática de la traducción automática”, Tech. Rep., 2001, págs. 1–10. doi:
10.3115/1073083.1073135. [En línea]. Disponible: http://dl.acm.org/citation.
cfm?id=1073135.

[139] S. Banerjee y A. Lavie, “METEOR: una métrica automática para la evaluación de MT con Im­
Correlación demostrada con los juicios humanos”, Tech. Reps.

[140] C.­Y. Lin, “ROUGE: Un paquete para la evaluación automática de resúmenes”, Tech. Reps.

[141] L. Nio, S. Sakti, G. Neubig, T. Toda y SN Naist, “Un sistema de diálogo con un ejemplo de conversación de
persona a persona”, Tech. Rep., págs. 41–42. [En línea]. Disponible: http://wordnet.princeton.edu/ .

[142] C.­W. Liu, R. Lowe, IV Serban, M. Noseworthy, L. Charlin y J. Pineau, “Cómo NO evaluar su sistema de diálogo:
un estudio empírico de métricas de evaluación no supervisadas para la generación de respuestas al diálogo”,
Tech. Reps.

[143] R. Lowe, N. Pow, I. Serban y J. Pineau, “The Ubuntu Dialogue Corpus: A Large Dataset for Research in
Unstructured Multi­Turn Dialogue Systems”, junio de 2015. [En línea]. Disponible: http://arxiv.org/abs/
1506.08909.

[144] M. Galley, C. Brockett, A. Sordoni, Y. Ji, M. Aim, C. Quirk, M. Mitchell, J. Gao y B.


Dolan, “∆bLEU: Una métrica discriminativa para tareas de generación con objetivos intrínsecamente
diversos”, en ACL­IJCNLP 2015 ­ 53ª Reunión Anual de la Asociación de Lingüística Computacional y la 7ª
Conferencia Internacional Conjunta sobre Procesamiento del Lenguaje Natural de la Federación Asiática de
Lenguaje Natural Procesamiento, Actas de la Conferencia, vol. 2, Asociación de Lingüística Computacional
(ACL), 2015, págs. 445–450, isbn: 9781941643730. doi: 10.3115/v1/p15­2073.

[145] S. Dutta, “Proyecto de bloque del Departamento de Lingüística Computacional de la Universidad de Sarre:
Proyecto de software de redes neuronales Evaluación de un chatbot neuronal de múltiples giros utilizando la
puntuación BLEU Autor:”, no. Abril de 2019. doi: 10.13140/RG.2.2.13374.84808.
Machine Translated by Google

150 BIBLIOGRAFÍA

[146] Y. Graham, N. Mathur y T. Baldwin, “Evaluación precisa de métricas de traducción automática a nivel de
segmento”, Tech. Rep., págs. 1183­1191. [En línea]. Disponible: https://github. com/ygraham/.

[147] R. Lowe, M. Noseworthy, IV Serban, N. A­Gontier, Y. Bengio y J. Pineau, “Hacia una prueba automática de
Turing: aprender a evaluar las respuestas del diálogo”, Tech. Rep. [En línea].
Disponible: https://github.com/mike­n­7/ADEM..

[148] C. Tao, L. Mou, D. Zhao y R. Yan, “RUBER: Un método no supervisado para la evaluación automática de
sistemas de diálogo de dominio abierto”, Tech. Rep. [En línea]. Disponible: http: // www.msxiaoice.com/.

[149] A. Kannan, G. Brain, O. Vinyals y G. Deepmind, “Evaluación adversaria del diálogo


Modelos”, tec. Rep., 2017.

[150] AS Lokman y MA Ameedeen, “Sistemas de chatbot modernos: una revisión técnica”, en Advances in Intelligent
Systems and Computing, vol. 881, Springer Verlag, 2019, págs. 1012–1023, isbn: 9783030026820. doi:
10.1007/978­3­030­02683­7{\_}75.

[151] J. Brooke, “SUS­A escala de usabilidad rápida y sucia”, Tech. Reps.

[152] R. Likert, “Una técnica para la medición de actitudes”, Archives of Psychology, vol. 22
140, pág. 55, 1932.

[153] JR Lewis y J. Sauro, “La estructura factorial de la escala de usabilidad del sistema”, Tech. Reps.

[154] FF Reichheld, “El número único que necesita para crecer”, Tech. Rep., 2003. [En línea]. Aprovechar­
capaz: www.hbr.org.

[155] B. Laugwitz, T. Held y M. Schrepp, “Construcción y evaluación de un cuestionario de experiencia de usuario”, en


2008, págs. doi: 10.1007/978­3­540­89350­9{\_}6. [En línea].
Disponible: http://link.springer.com/10.1007/978­3­540­89350­9_6.

[156] IV Serban, C. Sankar, M. Germain, S. Zhang, Z. Lin, S. Subramanian, T. Kim, M. Pieper, S. Chandar, NR Ke, S.
Rajeshwar, A. De Brebisson, J.M.R. Sotelo, D. Suhubdy, V.
Michalski, A. Nguyen, J. Pineau y Y. Bengio, “Un chatbot de aprendizaje por refuerzo profundo”, Tech. Rep.
[En línea]. Disponible: www.alicebot.org.

[157] WL Johnson, C. Labore y Y.­C. Chiu, “Un agente pedagógico para la intervención psicosocial en una
computadora portátil”, Tech. Rep., 2004.

[158] E. Hudlicka, “Entrenamiento virtual y entrenamiento de conductas saludables: ejemplo de entrenamiento en


meditación de atención plena”, Educación y asesoramiento para pacientes, vol. 92, núm. 2, págs. 160–166,
agosto de 2013, issn: 07383991. doi: 10.1016/j.pec.2013.05.007.

[159] L. Ring, T. Bickmore y P. Pedrelli, “Adaptación en tiempo real del asesoramiento sobre la depresión mediante un
agente conversacional”, Iprocedings, vol. 2, núm. 1, e27, diciembre de 2016, issn: 2369­6893. doi: 10.2196/
iproc.6065.

[160] A. ". Saltar, ". Rizzo, P. Kenny y TD Parsons, “Pacientes virtuales inteligentes para la formación de habilidades
clínicas”, Tech. Rep. 3, 2011. [En línea]. Disponible: http://www.dipp.nrw.de/..
Machine Translated by Google

BIBLIOGRAFÍA 151

[161] S. Tokunaga, H. Horiuchi, K. Tamamizu, S. Saiki, M. Nakamura y K. Yasuda, “Despliegue de un agente de


integración de servicios para el cuidado personalizado e inteligente de las personas mayores”, en la 15ª
Conferencia Internacional IEEE/ACIS de 2016. on Computer and Information Science, ICIS 2016 ­ Actas,
Institute of Electrical and Electronics Engineers Inc., agosto de 2016, isbn: 9781509008063. doi: 10.1109/
ICIS.2016.7550873.

[162] AC King, TW Bickmore, MI Campero, LA Pruitt y JL Yin, “Empleo de asesores virtuales en atención preventiva
para comunidades desatendidas: resultados de COMPASS

Estudio”, Revista de Comunicación en Salud, vol. 18, núm. 12, págs. 1449–1464, diciembre de 2013, issn:
1081­0730. doi: 10. 1080/10810730. 2013. 798374. [En línea]. Disponible: http://www. tandfonline.com/doi/
abs/10.1080/10810730.2013.798374.

[163] Á. Alesanco, J. Sancho, Y. Gilaberte, E. Abarca y J. García, “Bots en plataformas de mensajería, un nuevo
paradigma en la prestación de atención sanitaria: aplicación a la prescripción personalizada en dermatología”,
en IFMBE Proceedings, vol. 65, Springer Verlag, 2017, págs. 185–188, isbn: 9789811051210. doi:
10.1007/978­981­10­5122­7{\_}47.

[164] M. Hirano, K. Ogura, M. Kitahara, D. Sakamoto y H. Shimoyama, “Diseño de una aplicación de autorregulación
conductual para la atención de salud mental personal preventiva”, Health Psy­chology Open, vol. 4, núm. 1,
pág. 205 510 291 770 718, enero de 2017, issn: 2055­1029. doi: 10.1177/ 2055102917707185. [En línea].
Disponible: http://journals.sagepub.com/doi/10.1177/
2055102917707185.

[165] A. Bresó, J. Martínez­Miranda, C. Botella, R. M. Baños, and J. M. García­Gómez, “Usability and acceptability
assessment of an empathic virtual agent to prevent major depression”, Expert Systems, vol. 33, no. 4, pp.
297–312, Aug. 2016, issn: 02664720. doi: 10.1111/exsy.
12151. [En línea]. Disponible: http://doi.wiley.com/10.1111/exsy.12151.

[166] M. Turunen, J. Hakulinen, O. Ståhl, B. Gambäck, P. Hansen, MC Rodriguez Gancedo, RS De La Chamara, C.


Smith, D. Charlton y M. Cavazza Health and Fitness Companions”, Habla y lenguaje informático, vol. 25,
núm. 2, págs. 192­209, abril. 2011, issn: 08852308. doi: 10.1016/j.csl.2010.04.004.

[167] L. Dybkjær, NO Bernsen y W. Minker, “Evaluación y usabilidad de sistemas multimodales de diálogo en lenguaje
hablado”, Speech Communication, vol. 43, núm. 1­2, págs. 33–54, junio de 2004, issn: 01676393. doi:
10.1016/j.specom.2004.02.001.

[168] A. Fadhil, “¿Puede un Chatbot determinar mi dieta?: Abordar los desafíos de la aplicación de Chatbot para la
recomendación de comidas”, 2018. [En línea]. Disponible: http://arxiv.org/abs/
1802.09100.

[169] AA Abd­alrazaq, M. Alajlani, AA Alalwan, BM Bewick, P. Gardner y M. Househ, Una descripción general de las
características de los chatbots en la salud mental: una revisión del alcance, diciembre de 2019. doi: 10.1016/
j.ijmedinf.2019.103978.

[170] C.­W. Goo, G. Gao, Y.­K. Hsu, C.­L. Huo, T.­C. Chen, K.­W. Hsu y Y.­N. Chen, “Modelado controlado por
ranuras para el llenado de ranuras conjuntas y la predicción de intenciones”, Tech. Representante, págs. 753–757.
[En línea]. Disponible: https://github.com/.

[171] T. Bunk, D. Varshneya, V. Vlasov y A. Nichol, “DIET: Lightweight Language Understanding for Dialogue
Systems”, abril de 2020. [En línea]. Disponible: http://arxiv.org/abs/
2004.09936.
Machine Translated by Google

152 BIBLIOGRAFÍA

[172] A. Wang, A. Singh, J. Michael, F. Hill, O. Levy y SR Bowman, “GLUE: A Multi­Task Benchmark and
Analysis Platform for Natural Language Understanding”, abril de 2018.
[En línea]. Disponible: http://arxiv.org/abs/1804.07461.

[173] A. Wang, Y. Pruksachatkun, N. Nangia, A. Singh, J. Michael, F. Hill, O. Levy y SR


Bowman, “SuperGLUE: A Stickier Benchmark for General­Purpose Language Understanding Systems”,
mayo de 2019. [En línea]. Disponible: http://arxiv.org/abs/1905.00537.

[174] ME Peters, M. Neumann, M. Iyyer, M. Gardner, C. Clark, K. Lee y L. Zettlemoyer, “Representaciones de


palabras contextualizadas profundas”, en NAACL HLT 2018 ­ Conferencia 2018 del Capítulo de América
del Norte de la Asociación de Lingüística Computacional: Tecnologías del Lenguaje Humano ­ Actas de
la Conferencia, vol. 1, Asociación de Lingüística Computacional (ACL), febrero de 2018, págs. 2227–
2237, isbn: 9781948087278. doi: 10.18653/v1/n18­1202.

[175] AR Openai, KN Openai, TS Openai e IS Openai, “Mejora de la comprensión del lenguaje mediante
preentrenamiento generativo”, Tech. Rep., 2018. [En línea]. Disponible: https://gluebenchmark.com/
leaderboard .

[176] R. Yoshihashi, W. Shao, R. Kawakami, S. You, M. Iida y T. Naemura, “Aprendizaje de clasificación­


reconstrucción para el reconocimiento de conjuntos abiertos”, Actas de la Conferencia de la sociedad
informática del IEEE sobre Visión por computadora y reconocimiento de patrones, vol. 2019­junio, págs.
4011–4020, diciembre de 2018. [En línea]. Disponible: http://arxiv.org/abs/1812.04246.

[177] A. Sordoni, Y. Bengio, H. Vahabi, C. Lioma, JG Simonsen y J.­Y. Nie, “Un codificador­decodificador
jerárquico recurrente para sugerencias de consultas generativas basadas en el contexto”, Ccs '15, págs.
158–169, julio de 2015. [En línea]. Disponible: http://arxiv.org/abs/1507.02221.

[178] S. Sahay, SH Kumar, E. Okur, H. Syed y L. Nachman, “Modelado de intención, políticas de diálogo y
adaptación de respuesta para interacciones orientadas a objetivos”, Tech. Rep. [En línea].
Disponible: https://tfhub.dev/google/universal­sentence­encoder­.

[179] V. Vlasov, JEM Mosig y A. Nichol, “Dialogue Transformers”, octubre de 2015. 2019. [En línea].
Disponible: http://arxiv.org/abs/1910.00486.

[180] V. Vlasov, A. Drissner­Schmid y A. Nichol, “Generalización de pocas posibilidades a través del diálogo
Tasks”, noviembre de 2018. [En línea]. Disponible: http://arxiv.org/abs/1811.11707.

[181] Instituto de los Registros y del Notariado: Nombres de ciudadanos portugueses en los últimos 3 años.
[En línea]. Disponible: https://www.irn.mj.pt/sections/irn/a_registral/registos­ centrais/docs­da­
nacionalidade/vocabulos­admitidos­e/.

[182] Y. Wu, M. Schuster, Z. Chen, QV Le, M. Norouzi, W. Macherey, M. Krikun, Y. Cao, Q.S.
Gao, K. Macherey, J. Klingner, A. Shah, M. Johnson, X. Liu, Ł. Kaiser, S. Gouws, Y. Kato, T. Kudo, H.
Kazawa, K. Stevens, G. Kurian, N. Patil, W. Wang, C. Young, J. Smith, J. Riesa, A. Rudnick, O. Vinyals,
G. Corrado, M. Hughes y J. Dean, “Sistema de traducción automática neuronal de Google: reduciendo
la brecha entre la traducción humana y automática”, Tech.
Reps.

[183] T. Ohlsson, Enciclopedia de Ciencias de la Alimentación y Nutrición, 2003. doi: 10.1016/B0­12­227055­ X/


01335­3. [En línea]. Disponible: http://dx.doi.org/10.1016/B0­12­227055­X/01335­
3.
Machine Translated by Google

BIBLIOGRAFÍA 153

[184] CJ Hutto y E. Gilbert, “VADER: Un modelo parsimonioso basado en reglas para el análisis de sentimiento de
texto de redes sociales”, Tech. Rep., 2014. [En línea]. Disponible: http://sentic.
neto/.

[185] G. Miller y la Universidad de Princeton. Laboratorio de Ciencias Cognitivas., WordNet. prensa del MIT,
1998, isbn: 9780262561167.

[186] R. Speer, J. Chin y C. Havasi, “ConceptNet 5.5: An Open Multilingual Graph of General Knowledge”, diciembre
de 2016. [En línea]. Disponible: http://arxiv.org/abs/1612.03975.

[187] L. Wu, A. Fisch, S. Chopra, K. Adams, A. Bordes y J. Weston, “StarSpace: ¡Incorpore todas las cosas!”, en 32.ª
Conferencia AAAI sobre Inteligencia Artificial, AAAI 2018, AAAI prensa, septiembre de 2018, págs. 5569–
5577, isbn: 9781577358008.

[188] W. Tansey, EW Lowe y JG Scott, “Diet2Vec: análisis multiescala de datos dietéticos masivos”, Tech. Rep. [En
línea]. Disponible: http://www.loseit.com/.

[189] M. Faruqui, J. Dodge, SK Jauhar, C. Dyer, E. Hovy y NA Smith, “Retrofitting Word Vectors to Semantic Lexicons”,
Tech. Rep. [En línea]. Disponible: http://nlp.stanford. educación/.

[190] JF Kelley, “Una metodología de diseño iterativo para aplicaciones de información de oficina en lenguaje natural
fáciles de usar”, ACM Transactions on Information Systems (TOIS), vol. 2, núm. 1, págs. 26–41, enero de
1984, issn: 15582868. doi: 10.1145/357417.357420. [En línea]. Disponible: http://dl.acm.org/doi/
10.1145/357417.357420.

[191] S. Holmes, A. Moorhead, R. Bond, H. Zheng, V. Coates y M. McTear, "Pruebas de usabilidad de un chatbot de
atención médica: ¿Podemos utilizar métodos convencionales para evaluar las interfaces de usuario
conversacionales?" , en ECCE 2019 ­ Actas de la 31.ª Conferencia europea sobre ergonomía cognitiva:
"Diseño para la cognición", Nueva York, Nueva York, EE. UU.: Association for Comput­ing Machinery, Inc,
septiembre de 2019, págs. 207­214, isbn: 9781450371667. doi: 10.1145/3335082.
3335094. [En línea]. Disponible: http://dl. acm. org/citación. cfm? doide = 3335082 .
3335094.

[192] A. Bangor, P. Kortum y J. Miller, “Determinación de lo que significan las puntuaciones individuales del SUS:
adición de una escala de calificación de adjetivos”, Tech. Rep., 2009, págs. 114­123.

[193] A. Bangor, PT Kortum y JT Miller, “Una evaluación empírica de la escala de usabilidad del sistema”, Revista
Internacional de Interacción Humano­Computadora, vol. 24, núm. 6, págs. 574–594, agosto de 2008, issn:
10447318. doi: 10.1080/10447310802205776. [En línea]. Disponible: https://www.tandfonline.com/doi/abs/
10.1080/10447310802205776 .

[194] Medición de U: Predicción de puntuaciones de promotor neto a partir de puntuaciones de escala de usabilidad del sistema. [En línea].

Disponible: https://measuringu.com/nps­sus/.

[195] M. Schrepp, A. Hinderks y J. Thomaschewski, “Construcción de un punto de referencia para el cuestionario de


experiencia del usuario (UEQ)”, Revista internacional de multimedia interactiva e inteligencia artificial, vol. 4,
núm. 4, pág. 40, 2017, edición: 1989­1660. doi: 10.9781/ijimai.2017.
445.
Machine Translated by Google

154 BIBLIOGRAFÍA
Machine Translated by Google

Apéndice A

Información complementaria

En este capítulo se presenta información y resultados complementarios.

A.1 Cuestionario de evaluación – Formulario de Google

Esta sección incluye el Formulario de Google desarrollado para la recogida de datos. Es posible observar las
diversas solicitudes realizadas a los voluntarios.

155
Machine Translated by Google

Chatbot para un recomendador nutricional


Sistema
**TODAS LAS RESPUESTAS DEBEN ESTAR ESCRITAS EN INGLÉS. GRACIAS** [PT]
Como parte de mi tesis de maestría, estoy creando un chatbot para facilitar la navegación y la interacción
con un sistema de planificación de alimentos.
Un chatbot es un asistente virtual como Siri o Google Assistant que tenemos en nuestro móvil. Podemos darles
órdenes por voz o texto.
El propósito de este formulario es recopilar datos para validar mi modelo. Por lo tanto, se te presentarán algunas
tareas que el chatbot deberá poder realizar y se te pedirá que escribas un ejemplo de lo que le dirías al chatbot
para cada una. Sea creativo (no demasiado), ¡pero piense en cómo interactuaría con un chatbot! Se
presentarán 2/3 ejemplos por intención que son ilustrativos de las infinitas posibilidades y combinaciones.

**TODAS LAS RESPUESTAS DEBEN ESTAR EN INGLÉS. ¡GRACIAS!


** [ES] En el marco de mi tesis de maestría, estoy construyendo un chatbot para reemplazar y facilitar la
navegación y la interacción con un sistema de planificación de comidas.
Un chatbot es un asistente virtual como Siri o Google Assistant que todos tenemos en nuestros
smartphones. Puede dar comandos en forma de texto o voz.
El objetivo de este formulario es recopilar datos para validar mi sistema y agradecería mucho su ayuda. Por lo
tanto, les presentaré algunas tareas que el chatbot debería poder realizar. Te pediré que escribas un ejemplo
de lo que le dirías al chatbot para hacerlo. ¡Sea creativo (no demasiado) y piense cómo interactuaría con un
chatbot! Se le presentarán 2/3 ejemplos para ilustrar el número infinito de posibilidades y combinaciones.

Próximo
Página 1 de 9

Nunca enviar contraseñas a través de Google Forms.

Este contenido no ha sido creado ni respaldado por Google. Informar abuso ­ Términos de servicio ­ Política de privacidad

Formularios
Machine Translated by Google

Chatbot para un recomendador nutricional


Sistema
* Requerido

crear un plan

La primera tarea es pedirle al chatbot que cree un plan de alimentación. En esta etapa aún no tienes un plan, así que no le pidas al robot
que te muestre uno.
Puedes pedirle que cree un plan semanal o un plan diario. Puedes pedirle que lo cree para el periodo de tiempo que quieras, el próximo
lunes, fin de semana, la semana que viene, 30 de mayo…

El objetivo es escribir un ejemplo que demuestre que deseas generar un plan de alimentación, el tiempo depende de ti.

**TODAS LAS RESPUESTAS DEBEN ESTAR EN INGLÉS. ¡GRACIAS!**

Aquí te dejamos varios ejemplos:


¡Me gustaría que me crearas un plan para el próximo lunes!
Hola bot, creame un plan para esta semana por favor.
¡Necesito un plan para el fin de semana!

Ahora escribe tu propio ejemplo *

Tu respuesta

Ahora escribe tu propio ejemplo *

Tu respuesta

Página 3 de 9 Atrás Próximo

Nunca enviar contraseñas a través de Google Forms.

Este contenido no ha sido creado ni respaldado por Google. Informar abuso ­ Términos de servicio ­ Política de privacidad
Machine Translated by Google

Chatbot para un recomendador nutricional


Sistema
* Requerido

Pide ver un plano

Ahora puedes asumir que el plan ya está creado.


La segunda tarea es ver un plan para un periodo de tiempo determinado: una semana, un día, una comida específica, o incluso una parte
de ella como el plato principal, la bebida, el postre, la sopa o la fruta.

El objetivo es escribir un ejemplo que demuestre que quieres ver un plan de alimentación, la hora, la comida y la parte depende de ti.
Puedes incluirlos o no.

**TODAS LAS RESPUESTAS DEBEN ESTAR EN INGLÉS. ¡GRACIAS!**


Aquí hay varios ejemplos:
¡Muéstrame las comidas para la cena del lunes y el almuerzo del martes!
¿Qué tienes para mí para esta semana?
¿Cuál es la bebida para la merienda del domingo?
¿Qué comeré en sopa?
¿Cuál es mi próxima comida?

Ahora escribe tu propio ejemplo *

Tu respuesta

Ahora escribe tu propio ejemplo *

Tu respuesta

Ahora escribe tu propio ejemplo *

Tu respuesta
Machine Translated by Google
Tu respuesta

Página 4 de 9 Atrás Próximo

Nunca enviar contraseñas a través de Google Forms.

Este contenido no ha sido creado ni respaldado por Google. Informar abuso ­ Términos de servicio ­ Política de privacidad

Formularios
Machine Translated by Google

Chatbot para un recomendador nutricional


Sistema
* Requerido

Expresar preferencia alimentaria

Al ver el plan, puede que le guste o no le guste un ingrediente o una comida.


Debes informarle a tu bot lo que te gusta y lo que no te gusta para poder crear mejores recomendaciones.
En este caso te pediré que escribas también en un cuadro aparte el ingrediente o receta que dijiste. ¡Por favor no repitas los
ingredientes!
Como tercera tarea también te pediré que califiques la preferencia que diste de 0 a 5 según lo que escribiste.
Cuanto mayor sea el valor, más expresarás tu positividad.
Cuanto menor sea el valor, más expresarás tu sentimiento negativo.
El objetivo es valorar la intensidad de la frase y no el ingrediente.
Ejemplo: ¡Las fresas son mi comida favorita en el mundo! ­ 5 Ejemplo 2:
¡Odio las fresas! ¡Por favor, nunca crees un plan con ellos! ­ 0 Ejemplo 3: Me gustan las
fresas ­ 3

**TODAS LAS RESPUESTAS DEBEN ESTAR EN INGLÉS. ¡GRACIAS!**

Ejemplo: ¡Me gustan mucho las anchoas! Ahora escribe tu propio ejemplo *

Tu respuesta

Aquí escribes el ingrediente/comida. El ejemplo: anchoas *

Tu respuesta
Machine Translated by Google

*
Califica el sentimiento de la oración aquí del 0 al 5. Según el ejemplo yo respondería 4

Ejemplo 2: ¡Odio todas las comidas que contienen salmón ahumado! Ahora escribe tu
propio ejemplo *

Tu respuesta

Aquí escribes el ingrediente/comida. El ejemplo: salmón ahumado *

Tu respuesta

*
Califica el sentimiento de la oración aquí del 0 al 5. Según el ejemplo yo respondería 1

4
Machine Translated
4 by Google

Ejemplo 3: ¡La leche con chocolate es horrible! ¡Lo odio! Ahora escribe tu propio ejemplo *

Tu respuesta

Aquí escribes el ingrediente/comida. El ejemplo: leche con chocolate *

Tu respuesta

*
Califica el sentimiento de la oración aquí del 0 al 5. Según el ejemplo respondería 0

Página 5 de 9 Atrás Próximo

Nunca enviar contraseñas a través de Google Forms.

Este contenido no ha sido creado ni respaldado por Google. Informar abuso ­ Términos de servicio ­ Política de privacidad

Formularios
Machine Translated by Google

Chatbot para un recomendador nutricional


Sistema
* Requerido

Expresar preferencia alimentaria

Al ver el plan, puede que le guste o no le guste un ingrediente o una comida.


Debes informarle a tu bot lo que te gusta y lo que no te gusta para poder crear mejores recomendaciones.
En este caso te pediré que escribas también en un cuadro aparte el ingrediente o receta que dijiste. ¡Por favor no repitas los
ingredientes!
Como tercera tarea también te pediré que califiques la preferencia que diste de 0 a 5 según lo que escribiste.
Cuanto mayor sea el valor, más expresarás tu positividad.
Cuanto menor sea el valor, más expresarás tu sentimiento negativo.
El objetivo es valorar la intensidad de la frase y no el ingrediente.
Ejemplo: ¡Las fresas son mi comida favorita en el mundo! ­ 5 Ejemplo 2:
¡Odio las fresas! ¡Por favor, nunca crees un plan con ellos! ­ 0 Ejemplo 3: Me gustan las
fresas ­ 3

**TODAS LAS RESPUESTAS DEBEN ESTAR EN INGLÉS. ¡GRACIAS!**

Ejemplo: ¡Me gustan mucho las anchoas! Ahora escribe tu propio ejemplo *

Tu respuesta

Aquí escribes el ingrediente/comida. El ejemplo: anchoas *

Tu respuesta
Machine Translated by Google

*
Califica el sentimiento de la oración aquí del 0 al 5. Según el ejemplo yo respondería 4

Ejemplo 2: ¡Odio todas las comidas que contienen salmón ahumado! Ahora escribe tu
propio ejemplo *

Tu respuesta

Aquí escribes el ingrediente/comida. El ejemplo: salmón ahumado *

Tu respuesta

*
Califica el sentimiento de la oración aquí del 0 al 5. Según el ejemplo yo respondería 1

4
Machine Translated
4 by Google

Ejemplo 3: ¡La leche con chocolate es horrible! ¡Lo odio! Ahora escribe tu propio ejemplo *

Tu respuesta

Aquí escribes el ingrediente/comida. El ejemplo: leche con chocolate *

Tu respuesta

*
Califica el sentimiento de la oración aquí del 0 al 5. Según el ejemplo respondería 0

Página 5 de 9 Atrás Próximo

Nunca enviar contraseñas a través de Google Forms.

Este contenido no ha sido creado ni respaldado por Google. Informar abuso ­ Términos de servicio ­ Política de privacidad

Formularios
Machine Translated by Google

Chatbot para un recomendador nutricional


Sistema
* Requerido

Hacer un cambio en el plan

Imagina que el robot te muestra algunas comidas que no te gustan o que prefieres reemplazar. Le pedirás al bot algunas
alternativas. Puedes incluir comidas o partes. También puedes preguntar por los ingredientes de los sustitutos.

El objetivo es escribir un ejemplo que demuestre que desea cambiar algo en el plan de alimentación.

**TODAS LAS RESPUESTAS DEBEN ESTAR EN INGLÉS. ¡GRACIAS!**

Ejemplo: ¡Me gustaría sustituir el postre de esta comida por algo con chocolate!
Ahora escribe tu propio ejemplo *

Tu respuesta

Si mencionaste algún ingrediente por favor escríbelo aquí. Mencioné "chocolate",


así que escribiría chocolate aquí. De lo contrario puedes ignorar esta pregunta.

Tu respuesta

Ejemplo: ¿Puedes mostrarme algunos sustitutos del plato principal del almuerzo? Ahora
escribe tu propio ejemplo *

Tu respuesta
Machine Translated by Google

Si mencionaste algún ingrediente por favor escríbelo aquí. De lo contrario puedes


ignorar esta pregunta.

Tu respuesta

Página 6 de 9 Atrás Próximo

Nunca enviar contraseñas a través de Google Forms.

Este contenido no ha sido creado ni respaldado por Google. Informar abuso ­ Términos de servicio ­ Política de privacidad

Formularios
Machine Translated by Google

Chatbot para un recomendador nutricional


Sistema
* Requerido

Informacion personal

El robot debe saber algunas cosas sobre ti. En esta sección te pediré 2 comandos diferentes. En el primero deberás pedir
la información que los bots saben sobre ti. En el segundo le darás al bot algún tipo de información personal. Puedes preguntar/
decir tu nombre, edad, fecha de nacimiento, peso, altura, restricciones alimentarias (veganas, vegetarianas,
diabéticas...), nivel de actividad y sexo.

Solicita información que queda guardada en la memoria del bot.


Ejemplos para la primera tarea:
¡Me gustaría saber qué información tienes sobre mí!
¿Sabes cuándo es mi cumpleaños?
¡Di mi nombre!

Proporciona información personal al bot.


Ejemplos para la segunda tarea:
¡peso 85 kg y mido 1,82 metros!
Mi nombre es John Appleseed.
¡Tengo 27 años, bot!
Estoy muy muy activo durante la semana.

Ahora escribe tu propio ejemplo: 1.ª tarea *

Tu respuesta

Ahora escribe tu propio ejemplo: 2da tarea *

Tu respuesta

Página 7 de 9 Atrás Próximo


Machine Translated by Google

Chatbot para un recomendador nutricional


Sistema
* Requerido

Composición nutricional

Esta es la última sección.


Aquí deberás pedirle al bot información nutricional. Puedes pedir una comida específica, parte de la comida, ingrediente,
periodo de tiempo o una receta. También
puedes pedir conceptos nutricionales específicos (energía, proteínas, grasas, carbohidratos, sal, agua, vitaminas...)

Ejemplos:
¿Cuánta proteína y grasa contiene el almuerzo?
¿Cuál es el contenido nutricional de mis comidas de hoy?
¿Cuál es el contenido calórico de este postre?

Ahora escribe tu propio ejemplo *

Tu respuesta

Ahora escribe tu propio ejemplo *

Tu respuesta

Página 8 de 9 Atrás Próximo

Nunca enviar contraseñas a través de Google Forms.

Este contenido no ha sido creado ni respaldado por Google. Informar abuso ­ Términos de servicio ­ Política de privacidad

Formularios
Machine Translated by Google

170 Información complementaria

A.2 Parámetros SVM para búsqueda de grilla

Tabla A.1: Parámetros SVM para la optimización de la búsqueda en grid. Los valores subrayados son los
usado

Parámetro Valor

C 1, 2, 5, 10, 20, 100

Núcleo lineal, rbf

Gama 0,1, 0,01

Función de puntuación ponderado F1

Pliegues de validación cruzada 5

A.3 Hiperparámetros del clasificador DIET

Tabla A.2: Parámetros e hiperparámetros utilizados en DIET Classifier

Parámetro / Hiperparámetros Valor


Épocas 125 con parada anticipada
Número de capas del transformador 2
Número de cabezales de atención por capa de transformador 4
Tamaño del lote [64; 256] aumentando linealmente por época
Tasa de aprendizaje 0.001
Tamaño de incrustación 20
Pérdida softmax
Abandonar capas de avance 0,2
Conjunto de validación 10%
Machine Translated by Google

A.4 Categorías de idiomas 171

A.4 Categorías de idiomas

Tabla A.3: Posibles categorías para cada faceta de LanguaL

faceta Número de
idiomática Categorías
Categorías
hortalizas, excepto patatas; queso; frutas; jugos de fruta; pasta; pescados y mariscos; alimentos diversos; pulsos;
productos de panadería; pan y bollos; cereales de desayuno; carnes rojas y productos cárnicos; productos de azúcar,
Un producto excepto chocolate; vino; café, té, cacao en polvo; raíces y patatas con almidón; otras bebidas alcohólicas; 32
Tipo aceites vegetales; arroz y otros productos cerealeros; nueces; otros productos lácteos; leche; cerveza; margarina y
lípidos de origen mixto; huevos; aves y productos avícolas; mantequilla y grasas animales; chocolate; azúcar;
bebidas no alcohólicas; despojos; zanahoria de harina; vaca; piña; pera; naranja; animal (mamífero); trigo
duro; tomate; lenguado limón; guisante; fecha; mostaza; eglefino; familia de los cítricos; haba de soja; trigo; centeno;
pollo; planta productora de azúcar; grano; ruibarbo; ganado; brócoli; pepino; cebolla; uva; cacao; papa; caqui
común; ciruela; nuez; grosella negra; frijol mungo; caballa del atlántico; calabacín; planta productora de frutas;
arroz; cerdo; Romero; pacana; cordero; Palmera de cocos; maíz vegetal, amarillo; maíz de campo; cebada;
frambuesa roja; seta de campo; nabo sueco; planta productora de petróleo; pimiento verde; coles de Bruselas;
garbanzos; gallina; ciruela pasa; planta productora de hortalizas; limón; repollo rojo; coliflor; judías verdes; aceituna;
atún; palta; maní; atún listado; Ewe; lychee; albaricoque; Phaseolus vulgaris, cultivar de semillas comestibles; platija;
planta utilizada como fuente de alimento; clementina; palmera; sabio; fresa; planta utilizada para producir extracto o
concentrado; haba; plátano (musa); pavo (aves de corral); planta productora de nueces; cereza; bagre wels; agua;
lechuga romana; pescado, huesudo; planta productora de especias o aromas; melón; nuez de Brasil; avena
común; camarón; bacalao del atlántico; tomillo; animal utilizado como fuente de alimento; sésamo; mandarina;
champiñón; nectarina; ñame, tropical; berro; trucha arcoiris; grosella comestible; pimiento rojo; cilantro; salmón atlántico;
uva, europea; repollo; arenque del atlántico; orégano; durazno; almendra; canela; arándano americano; merlán
B­Comida europeo; pomelo; cártamo; sardina europea; Palomitas; pimienta cera húngara; té; kiwi; chirivía; fuente de alimento 207
Fuente desconocida; médula vegetal; levadura; anchoveta argentina; rábano; planta productora de almidón; haba; tomate
miniatura; oveja; espárragos; Rábano picante; frijol rojo; café; apio; guindilla; lechuga mantecosa; albahaca
dulce; cangrejo de roca comestible; menta verde; pimienta blanca; papaya; naranja satsuma; col rizada; remolacha;
pimienta negra; berenjena; macadamia; plátano francés; hidrógeno de sodio carbonatado; bovinos y porcinos; peces o
animales de aguas bajas; sandía; guisante de ojos negros; manzana; calamar; arveja; maní con otra nuez o
semilla; nabo; lenteja; Grosella; cebollino; aceituna verde; mango; anacardo; higo; arce de azúcar; girasol;
Hipogloso; becerro; granada; baya; gamba común; frijol negro; Puerro; pato; col rizada; pistacho; cigala;
cigala; fruta utilizada como verdura; maracuyá; familia del arenque; espinaca; guisantes, cultivares de semillas
comestibles; hongo; langosta europea; lechuga; cloruro de sodio; ciruela damascena; uva, sultana; batata; avellana
europea; perejil; nuez moscada; gama (cabra); hinojo de florencia; ajo; eneldo; bacalao; mora europea; lechuga
iceberg; frijol adzuki; Faisán; pino piñonero; Anguila; carbonero; planta productora de proteínas; raíz, tubérculo o bulbo
de colza, sin piel; Cuajada; fruta, sin piel, sin corazón, hueso o semilla; fruta; semilla, piel quitada, germen presente;
fruto o semilla; parte de carne esquelética, sin hueso ni cáscara; semilla, piel presente, germen presente; fruta,
con cáscara presente, sin corazón, hueso o semilla; semilla; parte de carne esquelética, sin hueso, sin
piel; fruta, sólo cáscara; huevo entero sin cáscara; jarabe de azúcar o sólidos de jarabe; tallo o tallo (sin hojas);
planta sobre la superficie, excluyendo frutos y semillas; leche; azúcar; fruta, cáscara presente, corazón, hueso o semilla
presente; extracto, concentrado o aislado de planta o animal; grasa o aceite; semilla germinada o germinada; parte
de carne esquelética, sin hueso, con piel; jugo; parte de carne esquelética, sin hueso ni piel, con grasa separable; hoja;
parte de carne esquelética, sin hueso ni piel, sin grasa separable; leche de nueces; leche o componente lácteo; semilla
en mazorca, con o sin cáscara; crema para batir ligera; cabeza (planta); parte de planta; crema; florete o flor; vaina que
contiene semillas pequeñas e inmaduras; crema ligera; fruto, piel indeterminada, sin corazón, hueso o semilla; parte
de carne esquelética; manteca; almidón; Miel; fruta, sin piel, con corazón, hueso o semilla presente; parte de planta o
C – Parte de animal no aplicable; lengua; riñón; crema o componente de crema; sangre; hígado; semilla, sin piel, sin germen
Planta o (endospermo); aceite de semilla; suero de la leche; parte de algas u hongos; azúcar morena; fruta, cáscara presente; 78
Animal crema espesa; ladrar; vaina o semilla; sacarosa; piel, animal; parte de planta o animal desconocida; animal entero o la
mayoría de sus partes utilizadas; raíz, tubérculo o bulbo, con cáscara; raíz; gordo, recortado; lanza o dispara; azucar
blanca; raíz, tallo, hoja o flor; salvado; extracto, concentrado o aislado de proteínas; parte de carne; tubérculo;
bulbo; planta entera o la mayoría de sus partes utilizadas; carne de órganos; raíz, tubérculo o bulbo, con parte de
cima; parte de carne esquelética, con hueso o concha; parte de carne esquelética, con hueso, con piel
Machine Translated by Google

172 Información complementaria

Figura A.4.1: Matriz de confusión obtenida para la clasificación de intenciones utilizando el proceso final de NLU
representado en la Sección 5.1.8.
Machine Translated by Google

apéndice B

Información complementaria

B.1 Interfaz del chatbot

Las siguientes figuras ilustran la interfaz utilizada en la fase de prueba. En estas Figuras se representan
diferentes acciones.

Figura B.1.1: Interfaz de usuario de Rasa X utilizada para pruebas de experiencia de usuario. Esta figura
ilustra el mensaje inicial, antes de la creación del perfil. Describe el alcance del chatbot y solicita la recopilación
de datos personales.

173
Machine Translated by Google

174 Información complementaria

Figura B.1.2: Interfaz de usuario de Rasa X utilizada para pruebas de experiencia de usuario. Esta figura ilustra los pasos
posteriores de la recopilación de datos personales.

Figura B.1.3: Interfaz de usuario de Rasa X utilizada para pruebas de experiencia de usuario. Esta figura ilustra los
últimos pasos de la creación del perfil.
Machine Translated by Google

B.1 Interfaz del chatbot 175

Figura B.1.4: Interfaz de usuario de Rasa X utilizada para pruebas de experiencia de usuario. Esta figura ilustra el
proceso de solicitar ver un plan. Además, el mensaje de bienvenida se personaliza según el nombre del usuario.

Figura B.1.5: Interfaz de usuario de Rasa X utilizada para pruebas de experiencia de usuario. Esta figura ilustra el
proceso de creación del plan.
Machine Translated by Google

176 Información complementaria

Figura B.1.6: Interfaz de usuario de Rasa X utilizada para pruebas de experiencia de usuario. Esta figura ilustra
la consulta de ingredientes.

Figura B.1.7: Interfaz de usuario de Rasa X utilizada para pruebas de experiencia de usuario. Esta figura ilustra
el proceso de solicitud de información nutricional.
Machine Translated by Google

B.2 Cuestionario de evaluación – Formulario de Google 177

B.2 Cuestionario de evaluación – Formulario de Google

Esta sección incluye tanto el protocolo que se leyó al inicio de cada sesión de prueba como el Formulario de Google desarrollado

para la Evaluación del Usuario. Es posible observar las tareas y los distintos cuestionarios.

B.2.1 Protocolo de prueba

En el marco de mi tesis, se desarrolló un chatbot que es responsable de la interfaz entre un sistema de recomendación nutricional

y un usuario.

Este sistema de recomendación fue desarrollado por Fraunhofer Portugal con la ayuda de un equipo de nutricionistas y

recopila información de varias bases de datos de ingredientes y recetas. Su objetivo es crear planes de alimentación semanales

personalizados según las necesidades nutricionales del usuario. Actualmente, la interacción se realiza a través de una aplicación

móvil, sin embargo, se probará una interfaz conversacional para simplificar la interacción y aumentar el compromiso.

La siguiente sesión de prueba tiene como objetivo agregar un componente de juicio humano a la evaluación del chatbot.

Teniendo esto en cuenta, la prueba se divide en tres partes: tareas de casos de uso, validación del algoritmo de recuperación

de alimentos y cuestionarios de usabilidad y experiencia de usuario.

La primera parte consta de 5 tareas que debe completar el voluntario e imitar los casos de uso más comunes del sistema.

Inmediatamente antes (pre­tarea) y después (post­tarea) de cada tarea, se debe responder una pregunta sencilla. Además, se

registrará el tiempo de finalización de cada tarea. Por lo tanto, lo ideal es realizar esta prueba en una computadora personal con

la opción de compartir pantalla habilitada. Las tareas se explican en el formulario que acompaña al examen y todas las

respuestas deben almacenarse allí.

Se requiere una tarea adicional para evaluar el algoritmo de recuperación de alimentos de la base de datos, donde se

mostrarán dos listas de ingredientes y se realizarán 3 preguntas para evaluar la exactitud de las funciones de recuperación. Las

listas corresponden a la respuesta obtenida al consultar la base de datos sobre un ingrediente determinado mediante una

búsqueda de coincidencia de palabras y una búsqueda semántica.

Después de completar cada tarea, el voluntario debe completar 3 cuestionarios que evalúan el chatbot como sistema

desde la perspectiva de usabilidad y experiencia del usuario (Cuestionario de usabilidad del sistema, Cuestionario de experiencia

del usuario y Cuestionario de usabilidad del chatbot). Las respuestas a estos cuestionarios no deben considerar la calidad de

las recomendaciones, ya que no son parte del alcance de este trabajo, ni la Interfaz Gráfica de Usuario utilizada para hablar con

el chatbot ya que es solo una forma fácil y conveniente de implementar el chatbot. para pruebas de usuarios mientras se tienen

herramientas de desarrollador disponibles. Además, la interfaz tiene un fallo en el que los mensajes enviados por el voluntario

sólo aparecen en el cuadro de chat después de la respuesta del chatbot. El objetivo de esta evaluación es el flujo conversacional

y la calidad de las respuestas, así como si el chatbot proporciona correctamente o no la información solicitada.

El enlace al chatbot y el formulario con las preguntas se enviarán a los voluntarios, ya que podrán proceder a completar la

parte de datos demográficos del formulario y esperar más instrucciones.


Machine Translated by Google

Cuestionario de chatbot de nutrición

Preguntas Respuestas

Sección 1 de 17

Cuestionario de chatbot de nutrición


Esta pregunta fue desarrollada para evaluar la experiencia del usuario del chatbot.

Después de la sección 1 Continuar a la siguiente sección

Sección 2 de 17

Datos demográficos
Descripción (opcional)

Nombre: (Opcional)

Texto de respuesta corta

*
Usuario de la aplicación

No

*
Edad

>15

15 ­ 17
Machine Translated by Google
18 ­ 23

24 ­ 34

35 ­ 44

45 ­ 54

55 ­ 64

>65

Género *

Femenino

Masculino

Prefiero no decirlo

Otro…

*
Niveles de escolaridad

Bachillerato (12º)

Licenciatura (licenciatura)

Maestría

Doctorado

*
¿Con qué frecuencia utiliza agentes conversacionales/asistentes inteligentes?

Nunca usado

Menos de una vez al mes

Una vez al mes


Machine Translated by Google
Una vez por semana

Una vez al día

Varias veces al día

Realmente confío en ellos

Después de la sección 2 Continuar a la siguiente sección

Sección 3 de 17

Tareas
En esta sección deberá realizar 5 tareas diferentes. Después de cada tarea, se le solicitará un
i Hola idfl k i yo i i b dd

Después de la sección 3 Continuar a la siguiente sección

Sección 4 de 17

Primera tarea (pre)


Descripción (opcional)

Objetivo: Completar el proceso de bienvenida del chatbot, introduce tus datos personales
Descripción (opcional)

*
Tarea previa: En una escala del 1 al 7, ¿qué tan fácil crees que será completar esta tarea?

1 2 3 4 5 6 7

muy duro muy fácil

Después de la sección 4
Machine Translated by Google
Después de la sección 4

Continuar a la siguiente sección

Sección 5 de 17

Primera tarea (publicación)

Descripción (opcional)

*
Tarea posterior: En una escala del 1 al 7, ¿qué tan fácil crees que fue completar esta tarea?

1 2 3 4 5 6 7

muy duro muy fácil

Después de la sección 5 Continuar a la siguiente sección

Sección 6 de 17

Segunda tarea (pre)

Descripción (opcional)

Objetivo: Generar un plan de alimentación para el almuerzo del lunes y verificar los ingredientes del plato principal.
Descripción (opcional)

*
Tarea previa: En una escala del 1 al 7, ¿qué tan fácil crees que será completar esta tarea?

1 2 3 4 5 6 7

muy duro muy fácil

Después de la sección 6 Continuar a la siguiente sección

Sección 7 de 17
Machine Translated by Google

Segunda tarea (publicación)

Descripción (opcional)

*
Tarea posterior: En una escala del 1 al 7, ¿qué tan fácil crees que fue completar esta tarea?

1 2 3 4 5 6 7

muy duro muy fácil

Después de la sección 7 Continuar a la siguiente sección

Sección 8 de 17

Tercera tarea (pre)

Descripción (opcional)

Objetivo: consultar el plan para la cena del lunes y expresar la preferencia por un ingrediente del mismo.

Descripción (opcional)

*
Tarea previa: En una escala del 1 al 7, ¿qué tan fácil crees que será completar esta tarea?

1 2 3 4 5 6 7

muy duro muy fácil

Después de la sección 8 Continuar a la siguiente sección

Sección 9 de 17

Tercera tarea (publicación)


Machine Translated by Google

Descripción (opcional)

*
Tarea posterior: En una escala del 1 al 7, ¿qué tan fácil crees que fue completar esta tarea?

1 2 3 4 5 6 7

muy duro muy fácil

Después de la sección 9 Continuar a la siguiente sección

Sección 10 de 17

Tarea asquerosa (pre)

Descripción (opcional)

Objetivo: crear un plan para los próximos días, marcar uno de los postres de la cena del día y

Descripción (opcional)

*
Tarea previa: En una escala del 1 al 7, ¿qué tan fácil crees que será completar esta tarea?

1 2 3 4 5 6 7

muy duro muy fácil

Después de la sección 10 Continuar a la siguiente sección

Sección 11 de 17

Fouh tarea (publicación)

Descripción (opcional)
Machine Translated by Google

*
Tarea posterior: En una escala del 1 al 7, ¿qué tan fácil crees que fue completar esta tarea?

1 2 3 4 5 6 7

muy duro muy fácil

Después de la sección 11 Continuar a la siguiente sección

Sección 12 de 17

¿Qué tarea (pre)

Descripción (opcional)

Objetivo: Obtener el contenido nutricional de un día/comida/parte/ingrediente, después de observarlo

Descripción (opcional)

*
Tarea previa: En una escala del 1 al 7, ¿qué tan fácil crees que será completar esta tarea?

1 2 3 4 5 6 7

muy duro muy fácil

Después de la sección 12 Continuar a la siguiente sección

Sección 13 de 17

Quinta tarea (publicación)

Descripción (opcional)

*
Tarea posterior: En una escala del 1 al 7, ¿qué tan fácil crees que fue completar esta tarea?
Machine Translated by Google
1 2 3 4 5 6 7

muy duro muy fácil

Después de la sección 13 Continuar a la siguiente sección

Sección 14 de 17

Preguntas posteriores a la prueba

Las siguientes secciones constan de tres cuestionarios de usabilidad y experiencia de usuario para evaluar la
todos fhhb
eso

Después de la sección 14 Continuar a la siguiente sección

Sección 15 de 17

Puntuación de usabilidad del sistema

Descripción (opcional)

*
Creo que me gustaría utilizar este sistema con frecuencia.

1 2 3 4 5

Muy en desacuerdo Totalmente de acuerdo

*
El sistema me pareció innecesariamente complejo.

1 2 3 4 5

Muy en desacuerdo Totalmente de acuerdo

Pensé que el sistema era fácil de usar.


Pensé
Machine que el sistema
Translated era fácil de usar.
by Google *

1 2 3 4 5

Muy en desacuerdo Totalmente de acuerdo

*
Creo que necesitaría el apoyo de un técnico para poder utilizar este sistema.

1 2 3 4 5

Muy en desacuerdo Totalmente de acuerdo

*
Encontré que las diversas funciones de este sistema estaban bien integradas.

1 2 3 4 5

Muy en desacuerdo Totalmente de acuerdo

*
Pensé que había demasiada inconsistencia en este sistema.

1 2 3 4 5

Muy en desacuerdo Totalmente de acuerdo

*
Me imagino que la mayoría de la gente aprendería a utilizar este sistema muy rápidamente.

1 2 3 4 5

Muy en desacuerdo Totalmente de acuerdo

*
El sistema me pareció muy complicado de utilizar.

1 2 3 4 5
Machine Translated by Google
Muy en desacuerdo Totalmente de acuerdo

*
Me sentí muy seguro al usar el sistema.

1 2 3 4 5

Muy en desacuerdo Totalmente de acuerdo

*
Necesitaba aprender muchas cosas antes de poder empezar a utilizar este sistema.

1 2 3 4 5

Muy en desacuerdo Totalmente de acuerdo

Después de la sección 15 Continuar a la siguiente sección

Sección 16 de 17

Cuestionario de experiencia de usuario


Descripción (opcional)

Pregunta
*

1 2 3 4 5 6 7

molesto (desagradable) agradable (agradable)

Pregunta
*

1 234567
Machine Translated by Google
no comprensible
comprensible (comprensible)
(incomprensible)

Pregunta
*

1 2 3 4 5 6 7

creativo (creativo) aburrido (sin creatividad)

Pregunta
*

1 2 34567

easy to learn (de fácil difficult to learn (de difícil


aprendiendo) aprendiendo)

Pregunta
*

1 2 3 4 5 6 7

valuable (valioso) inferior (inútil)

Pregunta
*

1 2 3 4 5 6 7

aburrido aburrido) emocionante (emocionante)

Pregunta
*

1 2 3 4 5 6 7
Machine Translated by Google

no interesante (poco interesante) interesante (interesante)

Pregunta
*

1 2 3 4 5 6 7

impredecible (impredecible) predecible (predecible)

Pregunta
*

1 2 3 4 5 6 7

fast (rápido) lento (lento)

Pregunta
*

1 2 3 4 5 6 7

inventivo (original) convencional (convencional)

Pregunta
*

1 2 3 4 5 6 7

obstructivo (obstructivo) solidario (conductor)

Pregunta
*
Machine Translated by Google
1 2 3 4 5 6 7

bien bien) malo (querer)

Pregunta
*

1 2 3 4 5 6 7

complicated (complicado) fácil fácil)

Pregunta
*

1 2 3 4 5 6 7

desagradable (poco interesante) agradable (atractivo)

Pregunta
*

1 2 3 4 5 6 7

habitual (común) vanguardia (vanguardista)

Pregunta
*

1 2 3 4 5 6 7

unpleasant (incómodo) pleasant (cómodo)

Pregunta
*
Machine Translated by Google

1 2 3 4 5 6 7

secure (seguro) no es seguro

Pregunta
*

1 2 3 4 5 6 7

motivar (motivar) desmotivador

Pregunta
*

1 2 34567

cumple con las expectativas (atinge como no cumple con las expectativas (não
Expectativas) cumple con las expectativas)

Pregunta
*

1 2 3 4 5 6 7

ineficiente eficiente

Pregunta
*

1 2 3 4 5 6 7

clear (evidente) confuso (confuso)

Pregunta
*
Machine Translated by Google

1 2 3 4 5 6 7

poco práctico (poco práctico) práctico (práctico)

Pregunta
*

1 2 3 4 5 6 7

organizado desordenado (desorganizado)

Pregunta
*

1 2 3 4 5 6 7

atractivo (atractivo) poco atractivo (feo)

Pregunta
*

1 2 3 4 5 6 7

friendly (simpático) unfriendly (antipático)

Pregunta
*

1 2 3 4 5 6 7

conservador (conservador) innovador (innovador)

Después de la sección 16
Machine Translated by Google
Después de la sección 16

Continuar a la siguiente sección

Sección 17 de 17

Cuestionario de usabilidad del chatbot


Descripción (opcional)

*
La personalidad del chatbot era realista y atractiva.

1 2 3 4 5

Muy en desacuerdo Totalmente de acuerdo

El chatbot parecía demasiado robótico


*

1 2 3 4 5

Muy en desacuerdo Totalmente de acuerdo

*
El chatbot fue acogedor durante la configuración inicial.

1 2 3 4 5

Muy en desacuerdo Totalmente de acuerdo

*
El chatbot parecía muy antipático.

1 2 3 4 5

Muy en desacuerdo Totalmente de acuerdo

*
El chatbot explicó bien su alcance y finalidad
Machine Translated by Google
1 2 3 4 5

Muy en desacuerdo Totalmente de acuerdo

*
El chatbot no dio ninguna indicación sobre su propósito.

1 2 3 4 5

Muy en desacuerdo Totalmente de acuerdo

*
El chatbot fue fácil de navegar.

1 2 3 4 5

Muy en desacuerdo Totalmente de acuerdo

*
Sería fácil confundirse al utilizar el chatbot

1 2 3 4 5

Muy en desacuerdo Totalmente de acuerdo

El chatbot me entendió bien *

1 2 3 4 5

Muy en desacuerdo Totalmente de acuerdo

*
El chatbot no reconoció muchas de mis entradas

1 2 3 4 5

Muy en desacuerdo Totalmente de acuerdo


Machine Translated by Google

*
Las respuestas del chatbot fueron útiles, apropiadas e informativas.

1 2 3 4 5

Muy en desacuerdo Totalmente de acuerdo

*
Las respuestas del chatbot no fueron relevantes

1 2 3 4 5

Muy en desacuerdo Totalmente de acuerdo

*
El chatbot se enfrentó bien a cualquier error o equivocación.

1 2 3 4 5

Muy en desacuerdo Totalmente de acuerdo

*
El chatbot parecía incapaz de manejar ningún error.

1 2 3 4 5

Muy en desacuerdo Totalmente de acuerdo

*
El chatbot fue muy fácil de usar.

1 2 3 4 5

Muy en desacuerdo Totalmente de acuerdo

*
El chatbot era muy complejo
Machine Translated by Google
1 2 3 4 5

Muy en desacuerdo Totalmente de acuerdo

También podría gustarte