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: