Instituto Politécnico Nacional
Escuela Superior de Ingeniería Mecánica
y Eléctrica Unidad Zacatenco
PRÁCTICA
IMPLEMENTACION DE UN
CHATBOT
Tarea correspondiente a la asignatura de Agentes
Inteligentes Expertos
3 de febrero de 2023
Descripción breve
Revisar link relacionado al lenguaje AIML.
Resumir: ¿Qué es AIML?, ¿Para qué sirven las etiquetas <aiml>, <category>, <pattern>,
<template>, <star>, <srai>, <random>, <set>, <that>, <topic>, <think>, <condition>?
Ejemplificar el uso de las etiquetas para un chatbot que de información sobre COVID-19,
considerando la resolución de preguntas como: ¿Qué es el coronavirus?, ¿Cómo se cura el
coronavirus?, ¿Cómo se transmite el coronavirus?, etc.
Desarrollar base de conocimiento sobre el coronavirus.
Revisar información sobre instalación de un parser para archivo AIML y aplicación de
chatbot.
¿Qué es un chatbot?
Los chatbots son asistentes digitales inteligentes los cuales pueden resolver
peticiones básicas y predecibles de un usuario. Ofrecen numerosos servicios via
chat y realizan operaciones básicas de servicio al cliente. Los chatbots traban las
24 horas del día, por lo tanto, proveen asistencia cuando las oficinas están cerradas
en días festivos.
Chatbots basados en reglas
Los chatbots basados en reglas trabajan en base a palabras clave pre escritas que
entienden. Usan expresiones regulares o otros tipos de análisis de cadenas de
texto. Si el usuario consultara alguna información sin usar palabras clave, el chatbot
podría no saberlo.
Chatbots basados en inteligencia artificial
Los chatbots basados en inteligencia artificial dependen de las ciencias de la
computación después de comunicarse con los usuarios, esto en vez de respuestas
pre definidas, el chatbot responde con sugerencias adecuadas en el tema.
Adicionalmente, el chatbot puede encontrar nuevas formas de responder mediante
el aprendizaje de conversaciones previas.
¿Qué es AIML?
Las siglas AIML significan Lenguaje de Marcado para la Inteligencia Artificial. AIML
fue desarrollado por la comunidad de software libre Alicebot y el Dr. Richard S.
Wallace en los años 1995-2000. AIML es usado para la creación y personalización
del Alicebot el cual es una aplicación de chatbot basada en el software libre
A.L.I.C.E. (Artificial Linguistic Internet Computer Entity o Entidad de Computadora
en Internet con Lingüística Artificial).
Es un dialecto de XML para crear agentes de software conversacionales. Contiene
una colección de reglas que definen las capacidades conversacionales del chatbot.
Es usado con un procesador con entendimiento de comunicación lingüística (NLU)
el cual usa las reglas de AIML para investigar y responder a las peticiones de texto
realizas vía chat. Mientras más reglas agregamos, más inteligente es el chatbot.
• Los chatbots basados en AIML entran en la categoría de chatbots basados
en reglas, sin embargo, algún nivel de característica de autoaprendizaje es
factible.
• Una aplicación de chatbot pueden tener múltiples configuraciones de AIML y
puede comportarse de distinta manera.
El siguiente diagrama de flujo muestra como un chatbot basado en AIML puede
funcionar con un cierto rango de entradas, que esencialmente representan los textos
con significado similar.
También, como una limitación de AIML, si no hay algún patrón de entrada que se
encuentre en la base de conocimiento, el chatbot simplemente responderá con una
oración por default como: “no pude entender lo que dijiste”.
Sin embargo, asignando reglas bien pensadas, es posible crear un chatbot que
podrá manejar un amplio rango de peticiones. Lo que lo hace efectivo para negocios
de dominio específico, como aplicaciones bancarias o sitios web.
Uso de las etiquetas
<aiml>: Define el comienzo y el fin de un documento tipo AIML.
<category>: Define la unidad de conocimiento en la base de conocimiento de
Alicebot.
<pattern>: Define el patrón que iguala lo que el usuario puede que ingrese en el
Alicebot.
<template>: Define la respuesta que dará el Alicebot a la entrada del usuario.
<star>: Es usada para igualar caracteres comodines en la etiqueta <pattern>.
<srai>: Etiqueta multipropósito, usada para invocar/igualar otras categorías.
<random>: Se usa para obtener respuestas aleatorias.
<set>: Se usa para definir el valor de una variable tipo AIML.
<that>: Es usada en AIML dar una respuesta basada en el contexto.
<topic>: Es usada en AIML para almacenar un contexto para posteriormente
realizar una conversación basada en ese contexto.
<think>: Se usa en AIML para almacenar una variable sin notificar al usuario.
<condition>: Es similar a las sentencias “switch” en un lenguaje de programación.
Ayuda a ALICE a responder de acuerdo a la entrada del usuario.
Puesta en práctica
Es momento de ejemplificar el uso de las etiquetas, considerando que se desea
realizar un chatbot que dé información sobre el coronavirus a la población,
agregando un código en el lenguaje AIML que ejemplifique su uso en el escenario
mencionado. Se creará una base de conocimiento alrededor del tema del
coronavirus, respondiendo preguntas como: ¿Qué es el coronavirus?, ¿Cómo se
cura el coronavirus?, ¿Cómo se transmite el coronavirus?, etc. Se consultará el
portal oficial para extraer información y generar una base de conocimiento fiable.
A continuación, se muestran capturas del código, y la puesta en práctica del
programa en Python.
Código fuente
Captura de prueba
Bibliografía:
• https://www.tutorialspoint.com/aiml/aiml_introduction.htm
• https://www.analyticsvidhya.com/blog/2021/05/aiml-a-language-for-chatbots/
• https://www.youtube.com/watch?v=QbY0M18kXMg&ab_channel=MisbahMo
hammed
• https://coronavirus.gob.mx/