# MONTAJE 13 Reconocimiento de texto

<p class="callout info">Vamos a encender y apagar un objeto de luz usando texto predictivo con IA</p>

Al arrancar EchidnaScratch nos vamos a LEARNING ML, nos vamos a entrenar y que entrene con la clase **APAGA** las palabras que se nos ocurra:

[![2024-12-08 00_02_05-EchidnaML.png](https://libros.catedu.es/uploads/images/gallery/2024-12/scaled-1680-/2024-12-08-00-02-05-echidnaml.png)](https://libros.catedu.es/uploads/images/gallery/2024-12/2024-12-08-00-02-05-echidnaml.png)

Y con la clase **ENCIENDE** otras tantas palabras

[![2024-12-08 00_04_31-EchidnaML.png](https://libros.catedu.es/uploads/images/gallery/2024-12/scaled-1680-/2024-12-08-00-04-31-echidnaml.png)](https://libros.catedu.es/uploads/images/gallery/2024-12/2024-12-08-00-04-31-echidnaml.png)

Pulsamos que entrene (tarda un poco) y cuando nos diga que esta listo para usar el modelo, vamos a comprobarlo, como vemos, la palabra **MUCHA LUZ no aparece en las entrenadas**, pero detecta que tiene más posibilidades que lo que queremos es apagar la luz

[![2024-12-08 00_06_34-EchidnaML.png](https://libros.catedu.es/uploads/images/gallery/2024-12/scaled-1680-/2024-12-08-00-06-34-echidnaml.png)](https://libros.catedu.es/uploads/images/gallery/2024-12/2024-12-08-00-06-34-echidnaml.png)

<p class="callout warning">**Acuerdate de** grabarlo lo voy a grabar como enciende-apaga.json, se graba LOS DATOS DE ENTRENAMIENTO luego al volverlo a abrir, tienes que volver a crear el modelo</p>

[![2024-12-08 10_19_53-EchidnaML.png](https://libros.catedu.es/uploads/images/gallery/2024-12/scaled-1680-/2024-12-08-10-19-53-echidnaml.png)](https://libros.catedu.es/uploads/images/gallery/2024-12/2024-12-08-10-19-53-echidnaml.png)

**Ahora si** !! vamos a EchidnaScratch y creamos este programa usando las instrucciones de Learning ML que se basan en el modelo aprendido anteriormente

[![2024-12-08 00_30_31-EchidnaML.png](https://libros.catedu.es/uploads/images/gallery/2024-12/scaled-1680-/2024-12-08-00-30-31-echidnaml.png)](https://libros.catedu.es/uploads/images/gallery/2024-12/2024-12-08-00-30-31-echidnaml.png)

Aquí lo tienes todos los procesos en vídeo :

<iframe allowfullscreen="allowfullscreen" height="314" src="https://www.youtube.com/embed/do0mDcAuE2w?t=134s" width="560"></iframe>

CC-BY SA Fuente [https://echidna.es/a-programar/echidnaml/como-empezar-con-machine-learning-y-echidna/](https://echidna.es/a-programar/echidnaml/como-empezar-con-machine-learning-y-echidna/)

El programa en este repositorio: [https://github.com/JavierQuintana/Echidna](https://github.com/JavierQuintana/Echidna)

El sprite lámpara lo he obtenido de [https://scratch.mit.edu/projects/198689957/editor/](https://scratch.mit.edu/projects/198689957/editor/)

<iframe allowfullscreen="allowfullscreen" height="314" src="https://www.youtube.com/embed/XDMYKfE46b8" width="560"></iframe>

##### <span style="color: rgb(22, 145, 121);">**Mejoramos nuestro modelo pero con ayuda de ChatGPT**</span>

*Agradecimientos a Fran Perez CP Ana Abarca de Bolea*

Hacemos los mismos pasos, pero con pocos sinónimos, solo dos en cada clase, y lo guardamos. Si nos fijamos en el fichero .json (lo abres con un editor de texto, el bloc de notas por ejemplo) el fichero .json no es más que un fichero que almacena los datos de forma clasificada :

```json
{"type":"text","data":{"Enciende":["Poca luz","On"],"Apaga":["Mucha luz","On"]}}
```

Le decimos a [chatgpt ](https://chatgpt.com/)que nos lo enriquezca con este prompt *(u otro similar)* con 20 sinónimos *(y si quieres más, pues más):*

> quiero que insertes dentro del corchete \[ \] de Enciende 20 sinónimos de órdenes para encender la luz y dentro del corchete de Apaga \[ \] quiero que pongas 20 sinónimos de órdenes para apagar la luz no pongas saltos de línea, mantén el formato {"type":"text","data":{"Enciende":\["Poca luz","On"\],"Apaga":\["Mucha luz","On"\]}}

El chatgpt responde con este código:

```
{"type":"text","data":{"Enciende":["Enciende la luz","Prende la luz","Activa la luz","Ilumina","Dale luz","Pon la luz","Conecta la luz","Inicia la luz","Enciende iluminación","Prende iluminación","Activa iluminación","Enciende lámpara","Prende lámpara","Enciende bombilla","Prende bombilla","Dale corriente a la luz","Sube la luz","Ilumina la habitación","Activa el foco","Pon luz"],"Apaga":["Apaga la luz","Apaga todo","Desconecta la luz","Quita la luz","Apaga lámpara","Apaga bombilla","Corta la luz","Desactiva la luz","Oscurece","Quita iluminación","Apaga iluminación","Cierra la luz","Desconecta iluminación","Apaga el foco","Apaga la lámpara","Corta iluminación","Desactiva iluminación","Quita corriente a la luz","Apaga por completo","Baja la luz"]}}

```

lo metes en el bloc de notas y lo guardamos como *loquequieras.json* y lo importamos en LearningML ¡¡ tenemos ahora 20 textos en cada clase !!! nuestra máquina de IA ha mejorado !!!

[![2025-12-05 14_29_02-EchidnaML.png](https://libros.catedu.es/uploads/images/gallery/2025-12/scaled-1680-/2025-12-05-14-29-02-echidnaml.png)](https://libros.catedu.es/uploads/images/gallery/2025-12/2025-12-05-14-29-02-echidnaml.png)

##### <span style="color: rgb(22, 145, 121);">**Otro ejemplo pero con una cerveza ;)**</span>

 [https://libros.catedu.es/books/robotica-educativa-con-mbot/page/maquina-educable-con-machine-learning-for-kids-y-scratch](https://libros.catedu.es/books/robotica-educativa-con-mbot/page/maquina-educable-con-machine-learning-for-kids-y-scratch)