Trabajo de grado - Maestría
Diseño de una arquitectura conversacional por texto que consuma servicios cognitivos de NLP y Machine Learning para la interacción con Chatbots mediante el uso de lenguaje natural
Autor
Florez Galeano, Sergio Alexander
Escobar ceballos , Nelson Orlan
Institución
Resumen
Este recurso cuenta con la contextualización del problema investigativo y su desarrollo, presentando un informe completo y detallado de la implementación, maquetación y analisis de los resultados propuestos por los autores. Este proyecto presenta el estado del arte del desarrollo de interfaces conversacionales y el diseño de arquitecturas de software, con el objetivo de lograr un impacto positivo en el desarrollo de chatbots comerciales. El resultado obtenido presenta una arquitectura que hace uso del procesamiento de lenguaje natural y serverless cómo una solución arquitectónica ideal y sostenible que satisface atributos de calidad claves, como la extensibilidad, escalabilidad y mantenibilidad, siguiendo las mejores prácticas y patrónes de diseño que permitan implementar un agente conversacional con capacidades para mantener una conversación basada en contexto e intencionalidad del mensaje recibido. This project presents the state of the art in the development of conversational interfaces and the design of software architectures, with the aim of achieving a positive impact on the development of commercial chatbots. The result obtained presents an architecture that makes use of natural language processing and serverless as an ideal and sustainable architectural solution that satisfies key quality attributes, such as extensibility, scalability and maintainability, following the best practices and design patterns that allow the implementation of a conversational agent with abilities to maintain a conversation based on the context and intent of the message received. Maestría Magíster en Ingeniería de Sistemas y Computación TABLA DE CONTENIDO
1. CAPÍTULO I: GENERALIDADES 9
1.1. Título 9
1.2. Definición del problema 10
Descripción del problema 10
Formulación del problema 11
1.3. Objetivo de la investigación 12
Objetivo general 12
Objetivos específicos 12
1.4. Justificación de la investigación 13
2. CAPÍTULO II: MARCO REFERENCIAL 14
2.1. Marco Conceptual 14
2.2. Marco de antecedentes 19
Historia del NLP 19
Inicios del NLP 19
Historia y evolución de los chatbots 24
2.3. Marco de teórico 27
Tendencias, casos de uso clave y necesidades de los chatbots 27
Expectativas o necesidades de los consumidores 27
Expectativas o necesidades de los desarrolladores 29
Arquitectura de un chatbot 29
Limitaciones y retos en los chatbots 30
Falta de información para entrenamiento 31
Poca capacidad de interpretación conversacional 31
Soporte multilenguaje y/o multiplataforma 32
Regulación en el manejo de la información 32
Introducción a las Arquitecturas Serverless 33
3. CAPÍTULO III: ESTADO DEL ARTE 42
3.1. Arquitecturas de Software 42
Diseño y elementos de la Arquitectura de software 42
Etapas del desarrollo de una arquitectura de software 45
4
Architecture Description Language (ADL) 56
Métodos para el análisis y elaboración de arquitecturas 59
Métodos de evaluación de arquitecturas de software 67
Metodología SEI (software Engineering Institute) para la creación de arquitecturas
de software 69
Metodología SEI para equipos pequeños de desarrollo 72
Metodología SEI-A, adaptación del SEI 73
3.2. NLP y NLU en el desarrollo de chatbots 76
¿Qué es el NLP? 76
Objetivos del NLP 77
Natural Language Understanding (NLU) 78
Técnicas usadas en el NLP 78
Arquitecturas basadas en NLP 84
Frameworks y plataformas NLP como servicio para el desarrollo de chatbots 89
4. CAPÍTULO V: DESARROLLO METODOLÓGICO
FASE 1 - ANÁLISIS (QAW-A) 98
4.1. Presentación de “LaraBot” cómo caso del estudio 98
4.2. Objetivos de negocio 99
4.3. Descripción del sistema 101
Presentación de componentes del sistema 101
4.4. Usuarios del sistema 104
Usuario Chat 104
Usuario Web 104
Usuario Desarrollador o Administrador 105
4.5. Requisitos específicos del sistema 105
Requisitos Funcionales 105
Requisitos no Funcionales o Atributos de Calidad 113
Restricciones de diseño 120
4.6. Aplicando QAW-A 122
Involucrados en QAW-A 122
Despliegue del método QAW-A 123
Resultados de QAW-A 144
5
5. CAPÍTULO VI: DESARROLLO METODOLÓGICO
FASE 2 - DISEÑO (ADD-A) 145
5.1. Involucrados en ADD-A 145
5.2. Despliegue del método ADD-A 145
ITERACIÓN #1 146
ITERACIÓN #2: #ChatPlatform 152
ITERACIÓN #3: #WebApp 159
ITERACIÓN #4: #InputGateway 165
ITERACIÓN #5: #IntentDetector 171
ITERACIÓN #6: #BotEngine 177
ITERACIÓN #7: #OutputInterface 182
ITERACIÓN #8 - Final 186
5.3. Resultados de ADD-A 201
6. CAPÍTULO VII: DESARROLLO METODOLÓGICO
FASE 3 - EVALUACIÓN (ATAM-A) 202
6.1. Involucrados en ATAM-A 202
6.2. Despliegue del método ATAM-A 202
7. CAPÍTULO VIII: DESARROLLO METODOLÓGICO
FASE 4 - DOCUMENTACIÓN (VAB-A) 233
7.1. Involucrados en VaB-A 233
7.2. Despliegue del método VaB-A 233
8. CAPÍTULO IX: IMPLEMENTACIÓN DE PROTOTIPO (VAB-A) 234
8.1. Tecnologías de desarrollo 234
8.2. Arquitectura de chatbot basada en componentes de tecnología específica 235
9. CAPÍTULO X: CONCLUSIONES Y TRABAJO FUTURO 237
9.1. Conclusiones 237
9.2. Trabajos futuros 241
10. CAPÍTULO XI: REFERENCIAS BIBLIOGRÁFICAS 243