Saltar la navegación

5. ¿Y si hacemos que aprenda?

¿Cómo puede aprender una máquina?

RetoComo habrás visto, el asistente turístico con listas es mucho más eficiente que el básico que hicimos inicialmente.

Aún se podría mejorar si el propio asistente fuese capaz de aprender de la información que proporciona el usuario. Esto ya entra en el campo de la Inteligencia Artificial.

¿Cómo podemos conseguir que aprenda? ¡Seguro que te resulta interesante!

Hasta ahora hemos trabajado en grupo y hemos comprobado que todo resulta más fácil cuando pedimos ayuda.

A partir de ahora deberás presentar las actividades de forma individual, no te preocupes si no te sale bien a la primera, seguro que aprenderás a resolverlo. Y siempre puedes comentar las tareas con tus compañeros para obtener ideas.

¡Te invito a que siempre lo intentes!

1. La lista abierta

Una lista abierta es aquélla en la que se van añadiendo elementos que no se eliminan.

Vamos a recordar el trabajo con listas para entender el concepto de listas abiertas

Crear una lista

Para comenzar a trabajar con listas, lo primero que tenemos que hacer es crear una. Esto se hace desde el menú de Scratch (o mBlock) en el apartado de "Datos" (o "Datos y Bloques")

Crear una lista

A continuación podemos añadir elementos a la lista, escribiéndolos directamente en la tabla que se muestra.

Completar elementos de la LISTA

Añadir elementos a la lista mediante un programa

Cualquier programa de Scratch o mBlock que utilice listas permite añadir elementos continuamente usando la instrucción

"añade ... a la lista..." por ejemplo:

añadir elemento a la lista

Los elementos que se añaden permanecen en la lista mientras no se eliminen. Por este motivo se dice que las listas en Scratch (y mBlock) son abiertas.

Aprendizaje con listas

 Si usamos la orden de "preguntar" y añadimos la consiguiente "respuesta" a una lista podemos hacer que el programa vaya "aprendiendo" nuevas palabras.

preguntar y respuesta

Compruébalo con el programa siguiente:

Aprendizaje con lista

icono Scratch2Si usas Scratch2 o mBlock3 puedes descargar el programa aquí: Aprendizaje con LISTA (sb2 - 314,07 KB).icono mBlock3

[Pincha con el botón derecho del ratón y escoge "Guardar enlace como"]

Experimenta con el programa:

  • Deja la lista visible y observa cómo se añaden los nuevos elementos.
  • Cuando termines para el programa y vuelve a pulsar la bandera verde ¿Qué ocurre con la lista?

El programa en la web de Scratch

Puedes visualizar el funcionamiento del programa también en la ventana siguiente, tomada de la web de Scratch:

Comprueba el funcionamiento del programa:

  • Pulsa la bandera verde para iniciar.
  • Contesta varias veces a las preguntas ¿Se añaden las respuestas a la lista?
  • Interrumpe el programa pulsando Stop y vuelve a iniciarlo pulsando la bandera verde ¿Desaparecen los nuevos elementos introducidos en la lista?

icono Scratch2Si usas Scratch2 o mBlock3 puedes descargar el programa aquí: Aprendizaje con LISTA (sb2 - 314,07 KB).icono mBlock3

[Pincha con el botón derecho del ratón y escoge "Guardar enlace como"]

2. El asistente turístico aprende del usuario

Vamos a retomar nuestro asistente turístico, incluyendo lo que hemos aprendido de las listas abiertas para que aprenda conforme interacciona con el usuario.

Lista inicial

El programa que vamos a usar para crear la lista inicial de la categoría "alojamiento" es el siguiente:

Asistente turístico virtual: lista de Aprendizaje

Tú deberás completar esta parte del programa con las listas correspondientes a las demás necesidades.

Aprendizaje a partir de la conversación

La imagen presenta el programa que se asigna al "personaje", que es el que conversa con el usuario.

(Pincha en la imagen para verla más grande)

Asistente turístico virtual con Lista de aprendizaje

Analízalo y trata de entender su funcionamiento.

Explicación del programa 1. Se encuentra la "necesidad"

Vamos a dividir el programa en dos partes para entenderlo mejor:

Asistente turístico virtual - charla con mensajes

En esta parte, el programa actúa inicialmente como lo conocíamos hasta ahora:

  • Comprueba si la necesidad del usuario está en la lista correspondiente
    • Si está, hace una sugerencia.
    • Si no está, debería pasar a otra necesidad: esto debes completarlo tú, pues en el ejemplo sólo se contempla el "alojamiento"

Explicación del programa 2: No se encuentra la "necesidad": Aprender

Una vez acabadas todas las necesidades, si no ha encontrado la necesidad en ninguna de las listas, el asistente trata de aprender, iniciándose un nuevo código mediante el mensaje "aprender":

Asistente turístico virtual - Aprendizaje

  • En la modalidad de "aprender", el asistente pregunta si la necesidad tiene que ver con alguna de las categorías ya conocidas, empezando por el "alojamiento". Cuando encuentra alguna que corresponda, añade la palabra a la lista para que se quede registrada y además ofrece el consejo correspondiente.
  • Si el usuario no encuadra la necesidad en ninguna de las categorías conocidas, el asistente reconoce su limitación y termina.

Para mayor claridad y evitar repeticiones, se ha separado el código en distintas acciones a las que se accede usando "mensajes".

Tú deberías completar esta parte del programa preguntando al usuario si la respuesta pertenece a alguna de las otras necesidades y haciendo que aprenda en caso afirmativo.

Programa de ejemplo

En la ventana siguiente puedes ver el funcionamiento del programa explicado.

Observa que no se borra la lista nunca, salvo que detengas el programa y borres elementos manualmente.

El programador tendrá que revisar la lista a menudo para comprobar que son correctos los elementos que el usuario ha ido añadiendo, borrando los que sean incorrectos porque estén mal escritos o no correspondan con la necesidad.

3. ¡Es tu turno!

Ha llegado el momento de que hagas que tu asistente virtual aprenda.

En las ventanas siguientes te voy a recordar lo que tienes que hacer para conseguirlo:

¿Qué tienes que conseguir?

Se trata de completar el programa del asistente turístico virtual para que:

  • Sea capaz de responder al menos a 3 tipos de necesidades y hasta 5 como máximo:
    • alojamiento (obligatoria)
    • comida (obligatoria)
    • ocio (obligatoria)
    • Otras opcionales (hasta 5 como máximo): transporte, compras, comunicaciones, seguridad, salud... 

La lista inicial

Tomando como ejemplo la lista siguiente, crea listas para cada necesidad:

Lista de aprendizaje del asistente turístico virtualDebes escribir al menos 10 palabras por lista. ¡Cuantas más escribas mejor!

Programa básico de charla con el asistente

A continuación debes completar un programa similar al siguiente, completando la charla parar que el asistente haga recomendaciones para las distintas categorías de necesidades.

Asistente turístico virtual CHARLA

Observa que, para mayor claridad y evitar repeticiones, se ha dividido el programa en secciones, a los que se accede mediante "mensajes".

Este programa se lo hemos asignado al "personaje" escogido para interactuar con el usuario.

El asistente aprende

Falta incluir los bloques que permiten el aprendizaje del asistente. Debes realizar un programa como el siguiente, completándolo con preguntas para cada una de las categorías de necesidades.

Asistente turístico virtual APRENDE

En el ejemplo, este programa también se ha asignado al "personaje".

Programa modelo

En este enlace tienes el ejemplo que hemos estado utilizando, en versión de Scratch online.

4. Toca evaluar

Una vez que tienes conocimiento del tema, vas a examinar los programas de cuatro personas de tu clase. ¡Seguro que aprendes cosas nuevas y coges ideas para tus programas!

Vas a hacerlo de la forma siguiente:

  • Revisa el asistente virtual de tus compañeros o compañeras del grupo de tu derecha (2 personas)
  • A continuación harás lo mismo con tus 2 compañeros o compañeras del grupo de tu izquierda (otras 2 personas)
  • Completa para cada persona una rúbrica. Hay varios modelos que puedes usar:

A continuación puedes visualizar el documento en PDF:

Elaboración propia. Rúbrica del Asistente turístico virtual. (CC BY-NC-SA)

Creado con eXeLearning (Ventana nueva)