CHATBOT asistente virtual (Python)


INTRODUCCIÓN 


Los sistemas de Chatbot en las IA, suelen poseer un alto grado de importancia, debido a que se basan en la  búsqueda de una solución al problema o inquietud presentada por el usuario, por ello son de vital importancia conocer, aprender la estructura y funcionamiento de estos sistemas para la resolución de los problemas presentados por los usuarios, de tal modo que la respuesta dada por el sistema sea acorde a la necesidad del usuario en la vida real y que este satisfaga las necesidades del mismo.
Por otro lado, se dará a conocer el desarrollo de un sistema de chatbot para la solución o respuesta a preguntas y/o interrogantes expuestas por los usuarios, que cotidianamente suelen presentarse en una conversación en la vida real, es decir, cuando se interactúa de Humano a Humano.
Cabe resaltar que dicho sistema está enfocado,  en que la maquina sea capaz de mantener y/o iniciar una conversación, esta parezca o se asimile a una plática de la vida real, es decir, como si estuviera interactuando con una persona, tanto que el mismo usuario puede entrenar al bot dándole mayor cantidad de respuestas a las preguntas planteadas por el mismo.
En la inteligencia artificial, el desarrollo, estudio y aplicación de sistemas de chatbot no solo están diseñados para imitar la conversación humana y entretener a los usuarios, por lo contrario ellos juegan un papel importante en la resolución de problemas en muchos campos, tales como, la educación, recuperación de información, negocios y en el comercio electrónico el cual en la actualidad está en pleno apogeo.
Por otro lado, los chatbot pueden facilitar la comunicación entre el usuario y máquina para la solución de dudas y/o inconvenientes, de modo que le permite al usuario expresar su interés, deseos o consultas directa y naturalmente, hablando, escribiendo y señalando, tanto que en su grado más alto sea una conversación fluida y entretenida.
A  continuación, vamos a dar a conocer cómo puede actuar los sistemas de chatbot y además cómo funcionan, basándonos en el desarrollado para el proyecto final de Inteligencia Artificial 2019.

TEORIA


En la actualidad, la necesidad de agentes conversacionales se ha agudizado con la generalización y uso de máquinas personales con el deseo de comunicarse, para cumplir dicho deseo,  sus creadores proporcionan interfaces de lenguaje natural, así como las personas usan el lenguaje para la comunicación humana, las personas quieren usar su lenguaje para comunicarse con las computadoras. Por ello acordaron que la mejor manera para facilitar la interacción humana con el ordenador (HCI) es permitiendo a los usuarios expresar sus interés, deseos o consultas directa y naturalmente, hablando, escribiendo y señalando.
 La arquitectura de chatbot integra un modelo de lenguaje y computacional algoritmos para emular la comunicación de chat informal entre un usuario humano y una computadora. Utilizando el lenguaje natural. Inicialmente, los desarrolladores crearon y utilizaron chatbots para divertirse, y utilizaron técnicas sencillas de búsqueda de palabras clave para encontrar una coincidencia de una entrada de usuario, como ELIZA (Weizenbaum, 1966, 1967).
Durante los años setenta y ochenta, antes de la llegada de las interfaces gráficas de usuario, vieron rápido crecimiento en el texto y la investigación de interfaz de lenguaje natural, por ejemplo, Acantilado y atwell (1987), Wilensky et (1988). Desde entonces, una serie de nuevas arquitecturas de chatbot. Han sido desarrollados, tales como: MegaHAL (Hutchens, 1996), CONVERSE (Batacharia et al., 1999), ELIZABETH (Abu Shawar y Atwell, 2002), HEXBOT (2004) y ALICE (2007). Con la mejora de las técnicas de minería de datos y aprendizaje automático, mejores capacidades de toma de decisiones, disponibilidad de corpus, anotaciones lingüísticas robustas/estándares de herramientas de procesamiento como XML y sus aplicaciones.
Por otro lado, un chatbot podría ser una herramienta útil en dicho campo, por ejemplo, para practicar el lenguaje o hacer una explicación de algún libro, se encontró que usar un chatbot para responder preguntas ayudará al maestro a ver dónde tienen problemas los estudiantes, qué preguntas hacen los estudiantes, y se puede acceder al archivo de registros generado para evaluar el aprendizaje de los estudiantes, y los estudiantes debilidades, un ejemplo de esto es el desarrollo del chatbot de Sofía para ayudar en la enseñanza de Matemáticas.
El chatbot de Sofía tiene la capacidad de chatear con usuarios y al mismo tiempo chatear con otros agentes matemáticos, como Pari y Mathmatica, para ayudar a resolver el álgebra y problemas. El "cerebro" del bot contiene archivos de texto que se centran principalmente en matemáticas y otro conocimiento común para hacer que Sophia sea amigable de usar. Sophia fue entrenada con algunos chistes, y está familiarizado con las películas en las que las matemáticas juegan un papel. Sofía fue utilizada en el departamento de Matemáticas de Harvard.  Los resultados mostraron que los maestros pueden usar un chatbot para buscar problemas a medida que los estudiantes lo utilizan para resolver problemas. Los investigadores de recuperación de información reconocen esa técnica.
Como se ha mostrado anteriormente, esta tecnología, si tiene éxito, podría tener una aplicación generalizada en escuelas, universidades y otros escenarios de capacitación. Y concluya que una fusión de los dos campos puede llevar al desarrollo de técnicas de negociación para los chatbots y la mejora del Modelo de Aprendizaje Abierto.
Por ello, los chatbot proporcionan resultados conversacionales en respuesta, y si son ordenados, a veces también pueden ejecutar tareas. Por esta razón, en la actualidad es más fácil entrenar e implementar los chatbots. Esto se debe al abundante código fuente abierto, a las plataformas de desarrollo ampliamente disponibles y a las opciones de implementación a través del Software como Servicio (SaaS). Además de mejorar las experiencias de los clientes y apoyar el aprendizaje, los chatbots también pueden usarse para diseñar daños sociales, es decir, para difundir rumores y desinformación, o atacar a personas por publicar sus pensamientos y opiniones en línea. 

PROCEDIMIENTO EXPERIMENTAL


Durante la lectura de la revista se puede observar las diferentes procedimientos utilizados en la ejecución de un sistema de chatbot, el cual tiene como fin el aprendizaje o entrenamiento que puede tener por parte de una persona humana, conllevando a la ampliación de la base de datos del mismo.

Figura 1.Cuando se establece una conversación fluida.
Figura 2.Cuando queremos corregir al bot, digitamos la frase “Bot esa no es la respuesta” (Al momento de digitar la frase, debe ser exactamente la expuesta, sino el bot no entenderá que lo queremos corregir)
Figura 3.Cuando el bot no entiende una sentencia o frase en una conversación, nos pregunta cómo debería responder, y de esta manera aprende.
Figura 4.El bot respondiendo a la conversación que le enseñamos.
Figura 5.Estando en el caso de la Figura 4.Aprendizaje, si le decimos que no sabemos contestar a tal conversación, entonces esa conversación que el bot no pudo aprender a responder la guarda en su BD de conversaciones sin responder, así luego de un tiempo le preguntará al usuario si ya sabe cómo responder a tal conversación.
Figura 6.La BD luego de guardar la conversación que no pudo aprender.
Figura 7.Si se da el caso en el que le decimos al bot que no sabemos contestar a tal conversación, y además ha transcurrido cierto tiempo de conversación entre el bot y el usuario, entonces el bot nos recuerda si ya sabemos responder a una conversación de las que tiene en la BD de conversaciones sin responder, tal conversación es escogida aleatoriamente de la BD de preguntas sin responder. Y así aprende a responder una de las conversaciones que anteriormente no pudo responder.
Figura 8.Acá apreciamos que una vez respondemos a la conversación que estaba en la BD de preguntas sin responder, es eliminada de la BD de preguntas sin responder, pues el bot ha aprendido a contestarla.
Figura 9.Y aquí vemos que el bot ha aprendido a responder a tal conversación.


Figura 10.Cuando ya sabemos qué respuesta dar a una conversación de las que tiene el bot almacenada en su BD de preguntas sin responder, simplemente debemos digitar la frase "Bot ya sé la respuesta" (Debemos digitar la frase tal cual está expresada, incluso con el acento), con esto el bot nos presentará las preguntas almacenadas en su BD de preguntas sin responder, para que seleccionemos qué pregunta le enseñaremos a responder, además de la función mencionada también podemos digitar la letra B para sí olvidamos la respuesta, o simplemente queremos volver al flujo de la conversación. Una vez que le enseñamos al bot, la conversación es borrada de la BD de preguntas sin responder.

Figura 11.El bot respondiendo a la conversación que le enseñamos.
Figura 12.Para terminar la conversación, le decimos Adios al bot, así este no responderá con una frase de despedida y la ejecución del programa concluirá

Código


VÍDEO TUTORIAL






0 comentarios: