Otra de las poderosas aplicaciones que podemos explotar una vez contamos con el texto de una imagen, es la de corregir automáticamente los errores ortográficos presentes en él.
Este es un paso muy importante, ya que, afrontémoslo, las posibilidades de escanear a la perfección un pedazo de texto son, en el mejor de los casos, remotas.
Es a través de múltiples etapas e iteraciones de pre y pos procesamiento que podemos, eventualmente, arribar a un resultado de alta calidad.
Así, pues, en este post nos centraremos en combinar los poderes de Tesseract y TextBlob una vez más para crear un “spellchecker” o autocorrector de texto.
Al final de este artículo sabrás:
¡Empecemos!
Creación del Entorno de Desarrollo con Anaconda
Esta es la estructura del proyecto:
Acorde a la imagen anterior, el único archivo ejecutable es spellcheck.py , ubicado en el directorio datasmarts. Es allí donde vivirá nuestra implementación.
Si deseas descargar el proyecto, puedes hacerlo en el formulario de abajo:
El siguiente paso es configurar el ambiente de Anaconda mediante este comando:
conda env create -f pytesseract-spellchecking
El ambiente que acabas de crear responde a esta configuración ( pytesseract-spellchecking ):
Puedes activar el ambiente recién creado como sigue:
conda activate pytesseract-spellchecking
Prosigamos.
Corrección de Texto con Tesseract y TextBlob
Abre el archivo
datasmarts/spellcheck.py
, e inserta estas líneas para importar las dependencias del programa:
Para que TextBlob funcione adecuadamente, tenemos que descargar los modelos y demás datos suplementarios de los que depende:
Si estás trabajando en Windows, es posible que tengas que añadir esta línea para que el script funcione:
Evidentemente, cambia la ruta para que apunte a la ubicación del ejecutable tesseract.exe en tu máquina.
Si usas
Ubuntu/Debian
o
macOS
, puedes ignorar este paso.
Definimos el menú del programa, compuesto solamente por el parámetro
-i/--image
, la ruta a la imagen de entrada:
Cargamos la imagen y la desplegamos en pantalla:
A continuación, transformamos la imagen de
BGR
a
RGB
, puesto que Tesseract espera este último formato:
Usamos la función
pytesseract.image_to_string()
para extraer el texto de la imagen:
Imprimimos el texto en la consola antes de pasarlo por el corrector:
Ahora sí, para corregir el texto, primero debemos instanciar un objeto de tipo
TextBlob()
, pasándole dicho texto al constructor. Luego, llamamos el método
correct()
:
Mostramos el texto corregido:
Cerramos las ventanas creadas durante la ejecución del script:
¡ATENTO!
Antes de ejecutar el código,
asegúrate de hallarte en la raíz del proyecto
para que los comandos funcionen correctamente.
Para correr el código, introduce este comando en tu consola:
python datasmarts/spellcheck.py -i image.png
En principio, veremos esta imagen en pantalla:
En ella nos percatamos de que las palabras
clerly
,
misspelld
y
yu
están mal escritas.
En la consola veremos el texto escaneado por Tesseract:
Texto ANTES del autocorrector
this ts clerly
misspelld
are yu ok
En líneas generales, lo hizo bien, aunque confundió la palabra is con ts, que, de hecho, no es una palabra válida.
Ahora, veremos el texto corregido por TextBlob:
CORREGIDO
this to clearly
misspelled
are you ok
Un resultado grandioso:
clerly
fue reemplazado por
clearly
,
misspelld
por
misspelled
, y
yu
por
you
.
Curiosamente,
TextBlob
también reemplazó
ts
por to, lo cual tiene sentido, puesto que sería la palabra válida más cercana, aunque como sabemos, el error inicial lo cometió Tesseract OCR.
Resumen
Hoy hemos aprendido a combinar, una vez más, el poder de computer vision con el de NLP, particularmente en lo tocante al procesamiento de texto.
De forma más específica, empezamos utilizando OCR para, como viene siendo la norma en los últimos artículo, extraer el texto presente en una imagen digital.
No obstante, convertir píxeles a texto es un proceso propenso a errores, por lo que el siguiente paso lógico sería corregir los prácticamente inevitables errores gramaticales y ortográficos derivados del escaneado.
Pero OCR no tiene manera de corregir texto, ¿a qué herramienta acudimos?
TextBlob, la cual incluye algoritmos, heurísticas y el conocimiento necesario para lidiar con un amplio abanico de errores ortográficos comunes.
En este punto es necesario mencionar que, siendo OCR el primer eslabón en la cadena, tenemos que hacer todo lo posible para que el texto escaneado por Tesseract sea de la mayor calidad possible, ya que la efectividad y utilidad de los procesos subsiguientes (traducción, corrección, análisis, etc) depende 100% de ello.
No olvides descargar el proyecto asociado a este artículo en el formulario siguiente:
ACELERA
TU PRÓXIMO PROYECTO DE COMPUTER VISION
¡¡GRATIS!!
Te
REGALO
mi checklist personal para que NO cometas los mismos ERRORES una y OTRA vez...
¿ESTÁS LISTO?
Ingresa tu nombre y correo y obtén
GRATIS
mi
CHECKLIST DE COMPUTER VISION
OBTÉN ese empleo que tanto quieres
con mi curso
GRATUITO
sobre las 30 Preguntas
Esenciales
en Entrevistas de
Machine Learning.
En este curso de cuatro parte aprenderás:
-
-
-
Tu email
Tu nombre
Contraseña