Saltar la navegación

4.2. Reconocimiento de texto

Retor dicePara poder practicar con inteligencia artificial y el aprendizaje automático vamos a utilizar una plataforma especialmente pensada para trabajar con aprendizaje automático supervisado.

LearningML es una plataforma educativa para el aprendizaje de contenidos sobre Inteligencia Artificial y el fomento del Pensamiento Computacional. Ha sido desarrollada por Juan David Rodríguez.

Trabajaremos en algunas de las aplicaciones más utilizadas del ML como son el reconocimiento de textos, de imágenes y reconocimiento de números.

1. Juego de preguntas y respuesta

Vas a crear un IA capaz de clasificar y reconocer un texto en alguna de estas tres categorías:

  • Narrativo: novela, cuento , microrrelato...
  • Expositivo: científicos, ensayos...
  • Periodístico: informativos, de opinión, entrevista..  

Después construiremos un juego de preguntas y respuestas.

En la página del  LearningML hay una descripción detallada de su funcionamiento y un Manual para el uso de LearningML que te recomiendo que descargues para facilitarte su utilización.

Recordemos que para trabajar con LearningML debemos pasar por los tres pasos secuencialmente:

Imagen donde aparecen los tres pasos de LearningML: 1 entrenar 2 aprender y 3 probar

Vamos a realizar un proyecto de reconocimiento de texto con las siguientes características:

1. Entrenar

Nuestro modelo de IA va a ser capaz de clasificar cualquier párrafo de texto en tres categorías:

  • Narrativo
  • Expositivo
  • Periodístico

Hay que crear pues estas tres categorías e introducir en ellas unos cuantos (8 ó 10 al menos) párrafos de 2 ó 3 líneas que pertenezcan  a cada uno de ellos.

Cuantos más claramente sean identificables mejor.

2. Aprender

Tras introducir todos los textos llegó el momento de construir el modelo  utilizando una red neuronal. Si activamos el modo avanzado tenemos:

Elementos de control de la red neuronal donde se incluyen los datos de las épocas, tamaño del lote, ritmo de aprendizaje y porcentaje de ejemplos para la validación Elementos de control del aprendizaje:

Algoritmo de la red:

  • Red neuronal (la que usaremos casi siempre)  
  • KNN (vecinos más próximos)

Épocas: cada ciclo de entrenamiento, es decir, cada vez que se introducen de nuevo los datos de entrenamiento es una época (epoch en inglés). El algoritmo compara el resultado de la salida con la salida correcta y obtiene el error, pérdida o coste del proceso. Mediante una función de costes o de pérdida (loss) corrige el modelo y pasa a la siguiente época repitiendo el ajuste.

Tamaño del lote: es la cantidad de datos que se introducen a la vez. Si son 8 datos no es recomendables que el tamaño del lote sea superior pero puede ser inferior, es cuestión de probar hasta obtener los mejores resultados.

Ritmo de aprendizaje (Learning rate):  determina el tamaño del paso en cada iteración mientras se mueve hacia un mínimo de una función de costes (mínimo error). Es un valor que podemos ajustar entre 0,001 y 1. Intuitivamente es algo así como cuánto giramos cada potenciómetro en cada iteración 0,01º muy lentamente con lo que necesitaremos o 15º rápidamente pero nos podemos pasar 

Porcentaje de ejemplos para validación: es el porcentaje de datos de entrada que no se utiliza para entrenar el modelo sino para comprobar si sus predicciones coinciden con las reales. Siempre es adecuado dejar un número de datos para su validación y obtener la mátrix de confusión que explicaremos más adelante.

Descenso del gradiente

Cuando ajustamos una red neuronal  se crea una función de coste que mide la diferencia entre las salidas originales y las salidas producidas por el modelo. 

 El descenso del gradiente es un cálculo complejo que nos permite saber cómo ajustar los parámetros de la red de tal forma que se minimice su desviación o error a la salida, es decir el paso adecuado que se aproxime al mínimo de la función de coste en cada iteración. En nuestra máquina es equivalente a encontrar el ángulo de variación más adecuado para los potenciómetros de ajuste. 

Descenso del gradiente
Clic para aumentar


Un paso pequeño puede hacer una aproximación lenta al mínimo. El ritmo de aprendizaje es muy pequeño, lo que repercute en que el aprendizaje sea demasiado lento, ya que se necesitan más iteraciones o épocas.

Un paso demasiado grande, intentando un ritmo de aprendizaje más rápido,  hace que la aproximación sea inestable, incluso que se aleje del mínimo.

El descenso del gradiente es un método matemático (mediante derivadas parciales) que intenta obtener el valor óptimo de los pasos para acercarse al mínimo de la función de coste y que el ritmo de aprendizaje sea el más adecuado.

Matrix de confusión

Cuando entrenamos un modelo, sería muy útil saber cómo de bueno es ese modelo, para ello hay una herramienta llamada matrix de confusión.

 Tiene etiquetadas sus filas con las clases reales, y sus columnas, con las predichas por el modelo. La diagonal principal representa los aciertos y los valores fuera de esta diagonal son los errores o confusiones del modelo. Lo ideal por tanto, es que la mayoría o todos los valores estén dentro de esta diagonal y más próximos a cero los que no pertenecen a la diagonal.

Matrix de confusión

3. Comprobar

Una vez ajustado el modelo es el momento de comprobarlo. En este caso debes introducir algunos párrafos distintos de los empleados en el entrenamiento para ver si el modelo los clasifica correctamente.

Prueba del modelo

A veces la diferencia no es muy grande, pero si has introducido un número suficiente de datos,  cuidadosamente seleccionados y con los parámetros adecuados, acertará en la mayoría de las ocasiones aunque sea por poco.

Crea una aplicación con Scratch

Finalmente, podemos crear una aplicación con Scratch que nos identifique cada tipo de texto al introducir un párrafo determinado.

Debe quedar algo parecido a esto:

Aplicación con Scratch



Lumen dice Si no recuerdas cómo utilizar LearningML

En el siguiente vídeo puedes ver cómo realizar el modelo para reconocimiento de texto:


Recuerda que puedes activar los subtítulos si lo necesitas.

Clavis dice Un truco

Cuando tienes que hacer una tarea en la que te piden que elabores algo es muy importante la regulación metacognitiva. ¿En qué consiste esta regulación? La regulación consiste en mantener la atención en cada paso e ir comprobando que lo vas haciendo bien. 
La estrategia de supervisar cada paso ayuda a controlar los posibles errores que pueda haber y resolver las dificultades. Esta estrategia se puede usar en cualquier tarea en la que tengamos que hacer varios pasos (cualquier ejercicio de programación, un problema matemático, un análisis de oraciones y muchas más).

2. Test de Turing

Imagen en la que se realiza el Test de Turing. Aparecen dos personas y un robot. Alan Turing fue un matemático inglés que en 1950, desarrolló el test de TuringEl objetivo de este experimento es determinar si una inteligencia artificial puede ser tan perfecta que pueda imitar las respuestas humanas sin que un ser humano se percate de que habla con una máquina.

Por ello, el humano hace preguntas tanto a otro ser humano como a una computadora (chatbot) y si no puede identificar si alguno de los dos sujetos es o no una máquina, la computadora pasa con éxito la prueba de Turing. 

Al principio identificar a la máquina era muy fácil, incluso se dijo que una máquina nunca podría engañar a una persona en este test.

Cada año se lleva a cabo la competición del Premio Loebner, donde los jueces declaran ganador al chatbot de IA que cuente con las características más parecidas a las humanas, es decir, con capacidad de comunicarse con los jueces de forma interactiva e intuitiva y puedan hacerse pasar por humanos. Por tanto, que sean capaces de superar el test de Turing.

Realiza una investigación intentando contestar a las siguientes preguntas:

  • ¿Cuántos chatbot han superado el test de Turing?
  • ¿Cuál fue el primero y en qué año?
  • ¿Qué porcentaje participantes en las redes sociales crees que son chatbots?
  • ¿Para qué se utilizan chatbots en las redes sociales?
  • Piensa en algunos usos positivos de los chatbots.
  • Piensa también en algunos usos negativos que puedan tener los chatbots.

3. Conversores de texto a audio

Otra forma de utilizar la inteligencia artificial con texto es convertir texto a audio o texto a texto en otro idioma como las herramientas de traducción automática. Un conversor de texto a audio con inteligencia artificial es una herramienta muy útil para los estudiantes, ya que les permite convertir textos en archivos de audio para poder escucharlos. La inteligencia artificial lee el texto y lo convierte en un archivo de audio de alta calidad.

En la parte inferior tienes algunos enlaces a algunas herramientas online. Con ellas puedes explorar esta forma de utilizar la inteligencia artificial.

Tarea: Selecciona un texto o créalo tú mismo y pruébalo en las distintas páginas que tienes a continuación, todas son gratuitas y te permiten pasar de texto a voz y de voz a texto.

Kardia dice Whisper, el oído más potente de una IA hasta la fecha (diciembre de 2022)

Whisper es una inteligencia artificial de OpenAI que en 2022 ha revolucionado los clásicos traductores y tecnologías conocidas hasta la fecha para traducir de voz a texto. Esta IA es capaz de transcribir y traducir entrevistas, podcasts, conversaciones, y hacerlo indicando todos los signos de puntuación, al igual que haría un ser humano en el clásico ejercicio de dictados. Un humano, medianamente alfabetizado, se entiende

Por cierto, ha sido usada para subtitular algunos videos del equipo de Pensamiento Computacional del proyecto REA/DUA de la Consejería de Educación de Andalucía.

Si quieres conocer porqué es tan rompedora en este campo, sería interesante que vieras el siguiente video:


Recuerda que puede activar los subtítulos si lo necesitas.