Objetivo
En esta actividad vas a construir un programa capaz de analizar si expresiones escritas por el usuario son de buen rollo o malo, y según como sean mostrará un personaje con aspecto contento o triste.
Creación del modelo para clasificar textos positivos o negativos
El primer paso es crear un modelo que sea capaz de clasificar las expresiones que escribimos como positivas o negativas. Puedes imaginarte al modelo como una máquina. Por un lado le metemos un texto y entonces la máquina lo analiza sacando por otro lado el tipo de sentimiento al que pertenece ese texto. El editor de LearningML es la herramienta que usarás para construir este modelo.
- Abre el editor de LearningML. Para ello, dirige tu navegador (Chrome o Firefox) a la dirección https://learningml.org/editor.
- Como queremos reconocer textos, pincha en el botón Reconocer Textos, y se abrirá la herramienta con las opciones necesarias para construir un modelo de reconocimiento de texto.
- En la sección “1. Entrenar”, vas a añadir 2 clases (o etiquetas, que también se llaman así), una para cada tipo de conducta. El nombre de estas clases (o etiquetas) serán: positivo y negativo. Para crear una nueva clase pincha en el botón Añadir nueva clase de texto.
- Añade a cada clase varios textos que tengan que ver con lo que la clase representa. Te damos algunos ejemplos.
positivo
- Si necesita ayuda, dímelo
- Puedes contar conmigo
- Si no te importa
- Si te parece bien
negativo
- Vete ya hombre
- No sirves para nada
- No puedo ni verte
Para añadir nuevos textos a una clase, pincha en el botón + de esa clase. Fíjate que cada clase tiene su propio botón + para añadir sus textos.
- Muy bien, ya tienes el conjunto de datos de ejemplo! Cuanto más datos añadas, mejor será el resultado. Ahora pincha en el botón Aprender a reconocer textos de la sección “2. Aprender”. Asegúrate de que el desplegable Lenguaje de los textos esté en Español, o escoge el idioma que hayas usado para escribir los textos.
- IMPORTANTE: Una vez que pinches en este botón, tu ordenador estará “aprendiendo” a partir de los textos que has escrito. Este aprendizaje se hace gracias a un algoritmo que denominamos Algoritmo de Machine Learning. Esto puede tardar un ratito. Sé paciente. Al final de este paso, el algoritmo de Machine Learning ha creado lo que llamamos un modelo. Ese modelo es algo que tú puedes utilizar para que el ordenador reconozca nuevas órdenes parecidas aunque diferentes a las del conjunto de datos de entrenamiento.
- Ahora, hay que ver si el modelo que ha construido el algoritmo de Machine Learning funciona bien. Utiliza la caja de texto de la sección “3. Probar” para escribir textos que tengan que ver sentimientos positivos o negativos. Pincha entonces en el botón Comprobar y observa si lo que dice LearningML coincide con la respuesta correcta.
- Enhorabuena! Ya tienes un modelo de inteligencia artificial que reconoce conductas positivas y negativas.
Puede ocurrir que en el paso 6, lo que dice LearningML no coincide con el tipo de conducta correcta. En ese caso, puedes añadir esa frase a la clase que realmente le corresponda y volver a ejecutar el algoritmo de machine learning, es decir, volver a pinchar en el botón Aprender a reconocer textos. Así crearás un nuevo modelo que habrá aprendido esa nueva frase y será más “potente”, pues es capaz de reconocer correctamente más textos.
También puedes mejorar el análisis de conductas añadiendo una nueva clase para las expresiones que no sean ni de buen rollo ni de malo, es decir, que sean neutras.
Y ahora a programar
Ya tienes la pieza fundamental del asistente virtual, la que es capaz de reconocer a qué tipo de conducta a la que pertenece un texto. A esta pieza la hemos llamado modelo. Ahora usaremos esta pieza inteligente, es decir el modelo, para hacer un programa que reaccione a las expresiones del usuario.
- En la sección “3. Probar” del editor de LearningML, pincha en el botón que tiene el gato de Scratch… y se abre Scratch!
- Fíjate que en la primera columna, donde aparecen los tipos de bloques, hay unos que se llaman “learningml-texts” y “learningml-images”. Pincha sobre ellos y verás que contienen varios bloques nuevos. Estos bloques sirven para usar el modelo que acabas de construir hace un momento. Como has hecho un modelo de reconocimiento de textos, debes usar los bloques de la sección “learningml-texts”.
- Coloca un bloque “classify text <texto>” en la zona de programación de Scratch y escribe en su entrada algún texto que este escrito de buen rollo o del mal rollo. Entonces pincha encima del bloque y observa lo que ocurre. Al lado del bloque aparece el tipo de conducta a la que pertenece el texto. Este hecho nos da la clave para construir nuestro programa.
- Y ahora es el momento de programar el juego. Puedes utilizar los siguientes bloques para ello:
Ten en cuenta que el bloque “classify <texto>” devuelve la clase a la que pertenece el texto, es decir: positivo o negativo.
Si no consigues hacer el programa puedes bajarte esta solución y examinarla.