Tesseract reentrenado lee texto mansi: los errores de caracteres bajan del 18,5 % al 0,85 %
El Instituto de Investigación de Tecnologías de la Información de Ugra reentrenó Tesseract 5 con el idioma mansi. El modelo ruso base confundía las letras con macrón y fallaba en el 18,5 % de los caracteres. En lugar de etiquetar escaneos a mano, el equipo generó 1,3 millones de líneas sintéticas y los errores bajaron al 0,85 %. El modelo está abierto en Hugging Face.
Procesado por IA desde Habr AI; editado por Hamidun News
Imagine que necesita digitalizar miles de páginas en un idioma sin OCR listo para usar ni escaneos etiquetados. Eso es justo lo que enfrentaron los investigadores del Instituto de Investigación de Tecnologías de la Información de Ugra al reunir un corpus del idioma mansi. Su solución resultó sorprendentemente sencilla y, a la vez, muy eficaz: la proporción de caracteres erróneos cayó del 18,5 % al 0,85 %, es decir, unas 20 veces.
Cuál era el problema
La escritura mansi se basa en el cirílico, pero incluye vocales largas con macrón (а̄, о̄, ӯ, э̄, ы̄) y la letra ӈ. El modelo ruso estándar de Tesseract no conoce estos símbolos. Pierde la raya sobre la letra o la convierte en basura. Y la duración de la vocal en mansi cambia el significado de la palabra, así que perder el macrón es perder información.
En la línea «Хӯл тэ̄нутыг ва̄рнэ ма̄гыс», el modelo ruso produjo «Хул тэнутыг варнэ магьгсь»: los macrones desaparecieron y la «ы» se convirtió en «ьг». El modelo reentrenado leyó toda la línea sin un solo error.
Hay además un segundo problema, menos visible. Una misma letra en Unicode puede escribirse de distintas maneras: como un único carácter precompuesto o como «у» más un macrón combinable. Para una persona son idénticas; para el modelo y para la comparación de cadenas son secuencias distintas. Basta abrir la consola de Python: la longitud de dos «ӯ» visualmente iguales será 1 y 2, y la comparación devolverá False.
Cómo se reunieron los datos sin escaneos
No existen escaneos mansi listos del volumen necesario, y etiquetarlos a mano llevaría años. Por eso el equipo generó los datos por sí mismo: toma texto mansi real, lo dibuja en una imagen con distintas fuentes, y la respuesta correcta se conoce de antemano.
El pipeline consta de cuatro pasos:
- Todos los textos se normalizan a la forma Unicode NFC para que cada letra tenga exactamente una representación.
- Las líneas se renderizan con varias decenas de tipografías, entre ellas FreeSerif, DejaVu Sans, Arial y Times New Roman, en tamaños de 12, 14, 24 y 26 pt y en tres estilos.
- Cada carácter se marca con un recuadro. El cálculo automático a partir de las métricas de la fuente falla con los diacríticos, así que los autores introdujeron tres diccionarios de correcciones: para caracteres individuales, para el tamaño de la fuente y para una tipografía concreta. Los valores se ajustaron experimentalmente.
- El texto largo se corta con la función split_by_width para que ningún carácter sobresalga del borde de la imagen.
Como resultado se obtuvieron 1,3 millones de pares «imagen .tif + archivo .gt.txt con la respuesta correcta».
Cómo se reentrenó Tesseract
La tercera parte de la receta es el aprendizaje por transferencia. Dentro de Tesseract 5 funciona una CRNN: la parte convolucional encuentra trazos y rasgos, la LSTM lee las características de izquierda a derecha, y la función de pérdida CTC evita el etiquetado manual de los límites de las letras. Como punto de partida se tomó rus.traineddata de tessdata_best. El alfabeto mansi casi coincide con el ruso, por lo que el modelo debe aprender sobre todo las letras nuevas.
La herramienta tesstrain extrae por sí sola la parte LSTM con sus pesos, reúne la lista completa de caracteres de los datos de entrenamiento y amplía la capa de salida al alfabeto combinado. El parámetro clave resultó ser el número de iteraciones: si son pocas, las letras nuevas no se asimilan; si son muchas, el modelo se sobreajusta a los datos sintéticos. Ayudó la parada temprana según el conjunto de validación.
Resultado en métricas: el CER bajó del 18,5 % al 0,85 % y el WER del 42,1 % al 1 %. A la persona le queda revisar el resultado, no volver a teclear el texto.
Limitaciones y conclusión práctica
El modelo lee con seguridad texto tipográfico limpio en cuerpos de 12–26 pt. Rinde peor con letra muy pequeña o muy grande, con alfabeto latino y con ediciones antiguas de impresión desgastada. Los autores planean incorporar escaneos de archivo reales al entrenamiento. Cabe señalar también que la evaluación se hizo en las mismas condiciones sintéticas, por lo que en libros reales las cifras probablemente serán peores.
Para el profesional, lo útil es la propia receta. Si trabaja con un idioma o dominio con pocos datos etiquetados:
- Primero normalice Unicode; es una medida barata y a menudo subestimada.
- Genere datos sintéticos a partir de textos reales con variedad de fuentes.
- Reentrene un modelo existente en lugar de entrenar desde cero.
Los autores creen que el mismo enfoque servirá para el jantí, el nenets y otros idiomas cirílicos con diacríticos. El modelo mns.traineddata está en Hugging Face (URIIT/mns-tesseract): basta colocar el archivo en la carpeta tessdata e indicar el idioma mns. También se puede probar en el navegador en Etnoportal.
- 2 may 2026IA para gestionar reclamaciones: el caso de Epotos
- 9 nov 2026Tesseract permite a los agentes de IA editar escenas 3D conservando objetos y capas
- 23 jul 2026Google Quantum AI: el aprendizaje por refuerzo triplica la estabilidad del chip cuántico Willow
- 9 nov 2026Mirage da a Claude herramientas para crear y editar escenas 3D en un mismo proyecto
Preguntas frecuentes sobre la noticia
¿Qué se sabe sobre Cuál era el problema?
La escritura mansi se basa en el cirílico, pero incluye vocales largas con macrón (а̄, о̄, ӯ, э̄, ы̄) y la letra ӈ. El modelo ruso estándar de Tesseract no conoce estos símbolos. Pierde la raya sobre la letra o la convierte en basura. Y la duración de la vocal en mansi cambia el significado de la palabra, así que perder el macrón es perder información. En la línea «Хӯл тэ̄нутыг ва̄рнэ ма̄гыс», el modelo ruso produjo «Хул тэнутыг варнэ магьгсь»: los macrones desaparecieron y la «ы» se convirtió en «ьг».
Cómo se reunieron los datos sin escaneos?
No existen escaneos mansi listos del volumen necesario, y etiquetarlos a mano llevaría años. Por eso el equipo generó los datos por sí mismo: toma texto mansi real, lo dibuja en una imagen con distintas fuentes, y la respuesta correcta se conoce de antemano. El pipeline consta de cuatro pasos: Todos los textos se normalizan a la forma Unicode NFC para que cada letra tenga exactamente una representación.
Cómo se reentrenó Tesseract?
La tercera parte de la receta es el aprendizaje por transferencia. Dentro de Tesseract 5 funciona una CRNN: la parte convolucional encuentra trazos y rasgos, la LSTM lee las características de izquierda a derecha, y la función de pérdida CTC evita el etiquetado manual de los límites de las letras. Como punto de partida se tomó rus.traineddata de tessdata_best. El alfabeto mansi casi coincide con el ruso, por lo que el modelo debe aprender sobre todo las letras nuevas.
Test Frontier LLMs & Autonomous Agents in One Workspace
Run Claude Opus 5.5, GPT-6, Gemini 3.1, and DeepSeek side-by-side in Nomad AI (nomadnet.ai) — unified model routing, deep research, and multimodal workflows under one subscription.
Lo esencial de la IA — una vez por semana
Siete historias que de verdad importaron, elegidas a mano. Sin ruido ni notas de prensa.
¡Listo! Revisa tu correo para la confirmación.