Está en la página 1de 11

Práctica 1: Creación de un asistente virtual

Asistente 1: intérprete de comandos (programación clásica)


- Creamos un nuevo proyecto en Scratch 3 y preparamos el escenario (fondo y objetos-
sprites: lámpara, ventilador, Giga)
- Programamos cada uno de los sprites de la siguiente forma:
Limitación de este modelo de asistente: sólo funciona cuando escribimos EXACTAMENTE la
cadena empleada en cada condición. Si nos equivocamos en una letra (ej: Apag la luz) o
decimos una frase sinónima (ej: Apagar la luz), el asistente no entiende.
Asistente 2: mejorando el asistente mediante listas
En este caso, a cada orden le corresponderá una lista y cada lista contendrá cadenas de texto
que signifiquen lo mismo.

Vamos a crear una lista por cada orden que deseamos implementar: Variables- Crear una lista

A continuación, rellenamos cada lista con textos que tengan que ver con la orden en cuestión:
Después, ocultamos las listas de la pantalla desmarcando el tick azul.

A continuación, sustituimos el condicional en el que se compara la respuesta con el texto, por


otro condicional que compruebe si la respuesta está dentro de alguna de las listas:
Este asistente es capaz de interpretar más órdenes que el anterior.

Limitaciones: tampoco es capaz de interpretar si falta una letra o instrucciones más sutiles
“¡como qué calor hace!”

Asistente 3: incluimos machine learning (IA)


Mejoraremos nuestro asistente virtual utilizando algoritmos de aprendizaje automático.

Accede a https://machinelearningforkids.co.uk/ y comienza a implementar inteligencia


artificial en tus proyectos de scratch.

Pulsamos Empezar y me lleva a la siguiente pantalla:


Utilizaremos la tercera opción de prueba sin registrarte, aunque hay que tener en cuenta que
es mejor estar registrado para no perder los datos si se borra el historial y demás. Pero el
registro es un poco enrevesado, aunque en la ayuda de la página se explica detalladamente.

Pruébalo ahora- +Añadir un nuevo proyecto, y rellenamos los datos:

Pulsamos CREAR y pinchamos en el proyecto para entrar:


ENTRENAR: Primero creamos las listas que van a contener los ejemplos que queremos
reconocer (las listas corresponden a cada una de las órdenes que queremos que sean
interpretadas por el asistente)

Es importante que el número de ejemplos en cada lista esté compensado para ayudar a
mejorar el algoritmo de aprendizaje automático.

APRENDER Y PROBAR: La fase de aprendizaje… creando el algoritmo

En esta fase se ejecuta el algoritmo de aprendizaje propiamente dicho.

A partir de los datos, el algoritmo de aprendizaje automático construye el Modelo de


Identificación (éste será capaz de reconocer textos similares y parecidos y clasificarlos en la
lista correspondiente) Para ello pulsamos en el botón: “Train new machine learning model”

A continuación, probamos el modelo:


El parámetro “confianza” nos da una idea del grado de correspondencia con la lista. Nosotros,
como programadores, podemos utilizar el parámetro “confianza” para definir a partir de qué
porcentaje le damos crédito o no. Una cosa interesante de la confianza es que, si introducimos
una frase y el resultado es una confianza baja, podremos añadir esa frase a la lista que le
corresponda y volver a entrenar el modelo. Así obtendremos un modelo más poderoso que el
anterior, que será capaz de clasificar más frases.

CREA: podremos exportar el modelo de aprendizaje automático a un proyecto en Scratch 3,


Python o App inventor. En nuestro caso, será para scratch 3. Pulsamos el botón “Crea”

Así, ya podremos utilizar estos bloques en nuestro proyecto de scratch3.


Ahora, modificaremos nuestro proyecto de scratch integrando los bloques del modelo de
aprendizaje automático:

Asistente 4: mejora teniendo en cuenta el grado de confianza


Hay que añadir un bucle al principio para asegurar que la confianza es >60 y si no es así, no
hace nada solo manda un mensaje como que no ha entendido.

Ahora no sólo se comprueba que el texto está en la lista, sino su grado de aproximación.
Asistente 5: mejora reentrenando la capacidad de clasificación, de
manera que se irá haciendo cada vez más “inteligente”
Este código podría mejorarse si en la parte del bucle “si no”, ponemos un trozo de código en el
que Giga pregunte ¿qué es lo que quiere decir con esa frase: enciende la luz, apague la luz,
enciende el ventilador, apague el ventilador? Y añadirlo al conjunto de entrenamiento usando
el bloque “add training data- text- Encender luz”. Una vez que lo tenemos en el conjunto de
entrenamiento, se entrenaría el modelo con el bloque “train new machine learning model”
(así, el asistente permite reentrenar la capacidad de clasificación, de manera que se irá
haciendo cada vez más “inteligente”)

También podría gustarte