📊 Cómo Analicé 10 Años de Divorcios en México con Python ¡Y cómo puedes hacerlo tú!

Imagen
 ¿Alguna vez te has preguntado qué estados de México tienen las tasas de divorcio más altas? Como analista de datos, decidí sumergirme en los microdatos del INEGI y los resultados son fascinantes. En este post, te muestro cómo logré consolidar más de 9 datasets complejos, normalizar la información por cada 1,000 habitantes y crear un Mapa Interactivo Profesional que permite explorar los datos con un solo clic. ¿Qué aprenderás con este proyecto? Consolidación Masiva: Cómo leer múltiples archivos CSV de una carpeta automáticamente. Limpieza de Datos Reales: Solución definitiva a errores de codificación (UTF-8 vs Latin1) y cruce de catálogos del INEGI. Visualización Geoespacial: Uso de Folium para crear mapas de calor (Choropleth) con popups interactivos. ¿Quieres ahorrarte horas de depuración y código? He preparado este Jupyter Notebook profesional , totalmente documentado y listo para ejecutar. Es ideal para estudiantes de ciencia de datos, periodistas o curiosos de la estadíst...

Python como utilizarlo para hacer análisis OCR

En este post les quiero platicar acerca de un concepto conocido como OCR sus siglas son Optical Character Recognition o al español Reconocimiento óptico de caracteres. La primera vez que vi este termino fue hace unos 23 años cuando tuvimos en casa un scanner, él cual tenía la opción para tratar de obtener el texto de las imágenes escaneadas el resultado obtenido al utilizar esta función era un 50% de lectura de datos a un archivo de texto, la verdad no recuerdo que marca era, pero era como la siguiente imagen  

Bueno la ventaja de tener esto es que no es necesario realizar la digitación del texto, y no solo la edición o en la actualidad trabajar con los datos en formato XML o almacenar datos en una base de datos. Es decir reconocimiento de caracteres.

Existen empresas enfocadas a recopilar información de documentos en papel, obtener los datos y almacenarlos 
  • Por ejemplo SAFEDATA











Este tipo de software que utiliza se llaman EDM que quiere decir Electronic Document Management o en Español Sistema de Gestión Documental pueden leer un poco más de estos sistemas en https://es.wikipedia.org/wiki/Software_de_gesti%C3%B3n_documental. 

Programa en Python para utilizar OCR

Como tratamos en este blog  quiero que veamos un ejemplo de como poder hacer algún programa que nos permita utilizar el tema del post y en esta ocasión vamos hacer un programa con Python y la librería tesseract https://github.com/tesseract-ocr.

Instalar Librería  tesseract en Windows

Lo primero que tenemos que hacer es instalar la librería en Python para mi caso en Windows 

Agregar leyenda
Solo como comentario esta librería normalmente se utiliza en Linux o Mac, por lo que en esta ocasión no utilizaremos el comando PIP si no un instalador que hay que descargar de https://github.com/UB-Mannheim/tesseract/wiki

Empezando con la instalación es un instalador donde nos pregunta que componentes


Después de instalarlo lo que vamos hacer es probarlo

Tengo una imagen para probar de la liga de Tesseract

Luego desde un CMD vamos a probar el comando que lea la imagen y envie la información a un archivo tesseract example_03.png out


Hice una prueba con un archivo más complejo en cuanto a tamaño de letra, cantidad de texto, la calidad de la imagen borrosa

Aun así la librería obtiene la información bastante bien. Como pueden ver en la imagen de arriba.


Una ventaja de esta librería es que también hace la traducción a otro idioma.

Instalar paquete pytesseract en python

Ahora vamos instalar la librería pytesseract en Python



Desde una consola de Windows ponemos el comando  python -m pip install pytesseract


El programa en Python 3.7


try:
    from PIL import Image
except ImportError:
    import Image
import pytesseract

# If you don't have tesseract executable in your PATH, include the following: esta linea es para poder el path donde esta instalado Tesseract y deben poner el comando
pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract'
print(pytesseract.image_to_string(Image.open('example_03.png')))


La ejecución del programa


De la imagen con los números

De la imagen con el texto


Alternativas de uso de OCR

La verdad es que con esta librería pueden hacer muchos proyectos interesantes a mi se me ocurre:

  • Leer los datos de una factura y poder crear un XML o CSV para integrar a un ERP, por ejemplo tome una factura en imagen png y me llevo los datos.
  • Probar como funciona el programa para leer datos por ejemplo de tarjetas de crédito o de acceso, yo intente con una tarjeta de circulación y no me regreso texto, pero con la función image_to_boxes si me indico que encontró texto.
  • Si una persona con problemas visuales, creo que con esta herramienta se puede desarrollar un buen proyecto, quizá utilizando Arduino, una cámara de celular.
  • En caso de ser estudiantes y quieren realizar notas o apuntes más rápido de algún texto.
  • En mi caso por ejemplo utilizo esta librería para apoyarme en escribir en otro blog https://www.lecturasbibliacatolica.com/
A ustedes ¿que ideas se les ocurre? intenten hacerlo cualquier proyecto primero empieza con una idea o un objetivo.

No olvides compartirnos y seguirnos en este blog o en Facebook.

Comentarios

🚀 Mantener este blog funcionando requiere tiempo y café. ¡Puedes contribuir con uno aquí!

Entradas más populares de este blog

Guía Práctica: Ejemplo Completo de ASPX para Desarrolladores Web

📊 Automatiza tu trabajo: Convierte tablas de Word a Excel con una macro

Ejemplo de Macro en Word para Automatizar Documentos