Usando Transkribus con manuscritos medievales (4): entrenando un modelo CITLab HTR+ (parte 1)

Tras tres entradas de presentación sobre el trabajo con Transkribus –que en realidad son los sucesivos párrafos de introducción que me vi forzado a ampliar para darle un poco de sentido al trabajo que viene a continuación–, llego finalmente al punto más importante del trabajo con Transkribus: la creación y entrenamiento de un modelo de transcripción.

¿Qué es un modelo de transcripción de texto manuscrito (HTR model o handwritten text recognition model)? Sorprendentemente, no pude encontrar ninguna definición breve y de fácil comprensión para este concepto central para el mundo de la transcripción automatizada (véase, para los más entendidos, Nockels et al). Así que propongo una definición inicial –y por tanto bastante incompleta y mejorable–: es el resultado de un proceso en el que se relaciona una imagen (en este caso, el manuscrito) y un texto (la transcripción inicial), se las hace coincidir, y luego se realizan segmentaciones menores de los trazos en la línea, junto a cálculos de probabilidad estadística, para establecer qué letras o signos individuales de la transcripción corresponden con cuáles trazos en la imagen. Una vez entrenado, el modelo relaciona un trazo manuscrito no identificado anteriormente con un signo que ha aprendido durante su entrenamiento. Luego, propone al usuario, con un margen de confianza elevado –dependiendo del porcentaje de error del modelo–, qué dice el texto que se ha pedido transcribir en función a las proyecciones estadísticas de palabras que ha aprendido antes. Es el mismo proceso que ocurre en nuestras mentes cada vez que leemos una frase escrita, realizada ahora por un ordenador –por tanto, no importa realmente si la máquina nunca ha sido expuesta a una palabra. Aunque no la conozca, debería ser capaz de extrapolar o adivinarla en función a las reglas generales del idioma que ha aprendido como un conjunto de posibilidades estadísticas–.

Al final de la entrada anterior tenía copiada la transcripción inicial en Transkribus. En el caso de D, una transcripción de 57 páginas. Antes de comenzar el entrenamiento del modelo hay que indicarle a la máquina qué las líneas que ha identificado durante el análisis del entorno –y que el usuario ha copiado o pegado ahí– corresponden con este texto. Para ello, se elige la opción verdad base (ground truth) del menú superior del cliente.

Verdad base en cliente experto de Transkribus, fol. 2r de D

Esta operación puede realizarse en cada página utilizando el menú desplegable, o en bloque desde el Administrador de documentos (Document manager), en la pestaña lateral Vista (Overview).

Verdad base en el Administrador de documentos del cliente experto de Transkribus

¿Qué son las otras etiquetas disponibles? Son fundamentalmente marcadores para el usuario: en progreso (in progress) señala cuando un texto está siendo transcrito por el usuario, listo (done) cuando la transcripción terminó pero necesita una revisión y final cuando la revisión ha sido realizada. La verdad base es un paso adicional que permite identificar el texto que será utilizado para el entrenamiento del modelo (bastante útil cuando se trabaja en equipo con diferentes responsabilidades para la revisión y aprobación del trabajo).

Cuando comenzamos el entrenamiento, la máquina asume que el texto de la verdad base es 100% correcto y que corresponde a la perfección al contenido gráfico de las imágenes. Intentará aprender de ellas para crear un modelo estadístico que haga coincidir los trazos con el texto que se le ha dado. Para iniciar el entrenamiento se selecciona la pestaña Herramientas (Tools) de la barra lateral:

Pestaña Herramientas, barra lateral, cliente experto de Transkribus

Luego se selecciona la opción Entrenar un nuevo modelo (Train a new model), lo que abrirá una nueva pantalla de configuración. Como yo realicé este entrenamiento en una máquina descontinuada en Transkribus, la siguiente pantalla es ahora ligeramente diferente. Sin embargo, el proceso con la máquina restante, de la que hablaré en una futura entrada, es bastante similar.

Ventana de entrenamiento del modelo Lucid D 0.1, cliente experto de Transkribus

En esta ventana hay que rellenar algunos campos, además de seleccionar el comportamiento del entrenamiento. En la parte superior izquierda de la pantalla hay que indicar el campo de título del modelo (model name), eligiendo un nombre que permita identificarlo fácilmente –con miras a versiones posteriores del siguiente modelo–. Como esta era la primera versión del modelo para D, lo llamé Lucid D 0.1. Se puede rellenar optativamente el campo de descripción (description) con información útil para otros usuarios como datos del manuscrito sobre el que se realizó el entrenamiento, el tipo de letra y la fecha de copia, la cantidad de páginas usadas para el entrenamiento, los integrantes del equipo que participaron en el trabajo, etc.

En la parte superior derecha toca seleccionar el idioma (language) del modelo. No lo he dicho todavía, pero un modelo funciona solo para un lenguaje, pues aprende palabras y secuencias de letras que ocurren estadísticamente en cada lengua. En un texto medieval castellano la secuencia de signos caua- es seguida, en un número estadísticamente significativo de casos, de las secuencias -llo, –llero/s, –lleria/s, para formar cauallo, cauallero/s y caualleria/s. En catalán la misma secuencia es habitualmente completada por -yr, yler/s, ylaria/s, formando cauayl, cauayler/s y cauaylaria/s. Si intentamos usar un modelo entrenado sobre un texto castellano en un manuscrito en catalán que contenga estas palabras, encontraremos recurrentes errores de suplantación de fonemas catalanes por castellanos. Quizá no sea un error tan grosero como omitir la y del catalán, pues el modelo conoce el trazo de la y: lo más probable es que el error sea introducir una ll tras esta y, y cambiar la a catalana por la e castellana: cauaylleria, pues estadísticamente en su modelo, todas las palabras que comienzan con caua- tienen una -ll- interpuesta y si son más largas que cauallo, tienen una -e- tras la -ll-. Este tipo de error es bastante habitual en los pasajes en latín del Lucidario, que el modelo es incapaz de transcribir correctamente, pues desconoce tanto las frecuencias estadísticas del latín como los valores de sus grafías (et latina en vez de la e castellana como resolución de la grafía fosilizada) y abreviaturas. Así pasó en C:

Error en la transcripción del fol. 205v de C

El modelo desarrollado transcribió la cita de Mt 12, 40 así:

sint Jonas fuyt traba-
diebus e tribus nos tibusc'e na et filj-
us homjnjs Jn corde terre

En vez de:

sicut jonas fuyt tribus
diebus et tribus noctibus {AD. [^2#jn uentre]} c'eti ita erit filj-
us homjnjs jn corde terre

Volviendo a la etiqueta idioma de la ventana de entrenamiento del modelo, esta también es útil cuando el modelo se hace público, pues los usuarios de Transkribus pueden buscar modelos por idioma para realizar sus propias transcripciones:

Visualización de algunos modelos de transcripción públicos en castellano, cliente experto de Transkribus (menú Herramientas, opción Ver modelos –view models–)

Lo siguiente en la ventana de entrenamiento es seleccionar una máquina para el entrenamiento. Para Lucid D 0.1 se empleó la malograda CITLab HTR+. Cada máquina funciona de manera diferente, así que las opciones que siguen varían. Para CITLab HTR+ hay que indicar un número de épocas (number of epochs), que es el número de ciclos que el entrenamiento se repetirá para depurar errores. Si se tiene un modelo anteriormente entrenado sobre el mismo texto o uno similar, se puede reutilizar este modelo como base (base model) para hacer el entrenamiento más rápido. Sobre las otras opciones, que tienen que ver con etiquetas, no tengo mucha experiencia (quizá José Manuel Fradejas se anime a hacer una entrada como autor invitado explicando su funcionamiento y utilidad).

En la parte inferior izquierda de la ventana aparece una versión simplificada del Administrador de documentos, que permite seleccionar el texto para el entrenamiento del modelo, y dentro de él, las páginas a utilizar. Aquí seleccionaremos las páginas que ya tienen el texto de nuestra transcripción inicial. Luego, tenemos que elegir cuáles sirven para entrenar el modelo y cuáles para validarlo. En la parte media de la parte inferior hay dos botones que permiten añadir las páginas manualmente: Añadir para entrenamiento (add for training) y Añadir para validación (add for validation), y también un botón que permite realizar la selección automática de las páginas para la validación (automatic selection of validation set), que puede ser 2, 5 o 10% de las páginas elegidas para el entrenamiento, que aparecerán identificadas en la parte derecha como set de entrenamiento (training set) y set de validación (validation set).

Estos porcentajes reflejan cuántas páginas serán utilizadas solamente para el entrenamiento y cuántas solamente para la validación. Durante el entrenamiento, la máquina sabe qué dice el texto en una página de entrenamiento e intenta hacerlo coincidir con la imagen. Durante la validación, la máquina ignora el contenido del texto de una página de validación e intenta transcribir ciegamente con lo que ha aprendido de las páginas de entrenamiento. Una vez terminado un ciclo, compara su producto con lo que realmente dice en las páginas de validación (solo en ese momento recurre a la verdad base del set de validación). Las páginas del set de validación, por tanto, no son usadas para el entrenamiento, porque sirven para que la máquina evalúe el margen de error del modelo.

En la próxima entrada continuaré con lo importante: dar clic a Entrenar.


Obras citadas

Nockels, Joe, Paul Gooding, Sarah Ames y Melissa Terras. “Understanding the Application of Handwritten Text Recognition Technology in Heritage Contexts: A Systematic Review of Transkribus in Published Research”. Archival Science, no. 22, 2002, pp. 367–92, https://doi.org/10.1007/s10502-022-09397-0.


Imagen de miniatura: Captura de pantalla de menú lateral
del cliente experto de Transkribus



Citar este post
Cossío Olavide, Mario (2023, 11 enero). Usando Transkribus con manuscritos medievales (4): entrenando un modelo CITLab HTR+ (parte 1). Lucidarios. Recuperado 3 de marzo de 2024, de https://doi.org/10.58079/r3cb

También te podría gustar...

Buscar en OpenEdition Search

Se le redirigirá a OpenEdition Search