Proyecto para extraer nombres desde PDFs (primera página) utilizando TrOCR y subir los resultados a PostgreSQL.
Resumen
- Extrae texto de la primera página de PDF, aplica limpieza (eliminación de líneas) y correcciones con regex, e inserta/actualiza la indización en la base de datos.
- Modelo OCR:
microsoft/trocr-large-printed.
Requisitos
- Python 3.8 o superior
- Poppler (requerido por
pdf2image). En Windows puede instalarse desde: http://blog.alivate.com.au/poppler-windows/
Instalación rápida
- Crear y activar un entorno virtual:
python -m venv .venv
.venv\Scripts\activate # Windows- Instalar dependencias:
pip install -r requirements.txt
# Instale torch adecuado para su entorno (CPU/GPU) según https://pytorch.org
pip install torch- Copiar y editar variables de entorno:
copy .env.example .env
# editar .env con credenciales DBVariables de entorno (ejemplo en .env.example)
DB_HOST- Host de la base de datosDB_NAME- Nombre de la base de datosDB_USER- UsuarioDB_PASSWORD- ContraseñaDB_PORT- Puerto (por defecto 5432)
Esquema de base de datos
Se incluyen instrucciones en schema.sql para crear las tablas mínimas documento e indizacion.
Uso
- Editar
ocr.pysi desea cambiarprefijoso la carpeta por procesar. - Ejecutar el script:
python ocr.pyNotas
- Por defecto el script procesa sólo la primera página de cada PDF.
- La indización usa
metadataid=3. Cambia si tus metadatos difieren. - Ajusta
recorte_nombredentro deOCRProcessorpara cambiar la zona recortada.
Mejoras sugeridas
- Añadir soporte para procesar todas las páginas.
- Añadir CLI para especificar carpeta/prefijos por argumento.
- Registrar métricas y manejar fallos/reintentos.
Soporte Si necesitas ayuda adicional para adaptar, integrar en pipelines o pruebas, puedo ayudarte.