En busca de un pequeño consejo de aprendizaje de la máquina de python

Estoy interesado en tener un dabble con Python y aprendizaje automático / entrada de datos. Sin embargo, a medida que mi investigación ha progresado, me doy cuenta de que hay tantas técnicas diferentes, cada una con sus propias fortalezas.

Decidí que podría ir más lejos si aprendo en la dirección opuesta. Es decir, elegir un problema / tarea y aprender resolviéndolo / completándolo.

De vez en cuando tengo que procesar las facturas que se envían por fax, espero poder crear un progtwig que pueda ingresarlas una vez que las haya escaneado.

Los faxes consisten básicamente en 2 tablas idénticas. Cada fila denota un trabajador separado. La primera columna es para un nombre de los trabajadores (una opción de 6) la segunda es una dirección, luego el rest de las columnas son casillas de verificación que indican diferentes trabajos. También hay un ID de factura en un recuadro en la parte superior de la página.

Espero que alguien explique brevemente cómo harían esto. ¿Usarían SVM para reconocimiento de texto u otra técnica? y cómo podría hacer que un progtwig comprenda una marca de verificación en la quinta casilla significa “limpiado = sí” y que el número en la casilla superior izquierda es la ID. He investigado un poco, pero no puedo entender cómo empezar. ¿Cómo es posible aislar partes de un fax, por ejemplo, la tabla superior y sus celdas del rest de la página cuando no puede garantizar la ubicación / tamaño absolutos debido al fax / escaneado? ¿O tengo que obtener cientos de faxes + los datos escritos de estos faxes, luego compararlos y luego aprender a reconocer que la diferencia entre el fax a y b es una marca aquí, y el número de identificación generalmente está aquí …

Cualquier consejo bienvenido!

A grandes rasgos, puedes dividir este proceso en 2 fases:

  1. Determinación de la ubicación del texto. Está en la intersección de ml y Computer Vision, porque antes de la parte de reconocimiento de texto debe encontrar dónde se encuentra este texto. No es una tarea fácil, puede encontrar líneas, cuadros, etc., mirar en opencv lib, por ejemplo, puede ser útil para tareas relacionadas con CV. Si todos sus documentos tienen la misma forma precisa (ubicación de los campos en relación con la propia lista escaneada) y puede escanearlos perfectamente, sin distorsiones (rotaciones, desplazamientos) puede intentar buscar texto en áreas estáticas, donde están los campos.

  2. Cuando haya encontrado el texto, debe dividir el contenido de cada campo en palabras, luego las palabras en caracteres, y luego puede alimentar a su reconocedor (parte ML) con estos caracteres y obtener tags de cada uno de ellos. Y es casi imposible (hoy en día) para el texto escrito a mano, por lo que es difícil reconocer el texto escrito a mano en el caso general. Incluso si los campos contienen solo texto impreso, le recomiendo que evite este paso y use lib especial para OCR, como tesseract