Este repositorio contiene un pipeline optimizado y de alta tolerancia a fallos para procesar documentos PDF científicos y matemáticos complejos, convirtiéndolos a formatos estructurados: Markdown (.mmd), LaTeX (.tex) y JSON RAG.
El pipeline está diseñado para ejecutarse tanto localmente en Windows como en la nube mediante Google Colab.
- Colab Nativo: Evalúa de forma dinámica si el almacenamiento de Google Drive (
/content/drive) está montado y autorizado. - Respaldo Automático: Si la conexión a Drive falla o se omite, los archivos de entrada/salida se redirigen automáticamente a una estructura de carpetas locales seguras dentro del contenedor de Colab (
/content/NovaLibrary), previniendo caídas del pipeline.
- El Problema: El motor Nougat a veces marca páginas complejas o con mucho texto plano como vacías (
[MISSING_PAGE_EMPTY]), dejándolas en blanco en el resultado final. - Nuestra Solución: Una rutina post-procesadora que escanea el archivo Markdown generado. Si detecta páginas omitidas, renderiza la página original a imagen mediante
pypdfium2y le aplica Tesseract OCR (con soporte multilingüe en español e inglés). El texto recuperado se inyecta directamente de vuelta en el flujo del documento.
- Conversión Principal (Pandoc): Convierte el Markdown enriquecido a un código LaTeX limpio y estructurado de calidad editorial. En Google Colab, se utiliza el paquete
pypandoc-binarypara garantizar que la compilación de Pandoc funcione de forma 100% autónoma y no dependa de instalaciones externas del sistema. - Conversor de Respaldo (Regex Fallback): Si Pandoc no se encuentra disponible en la máquina local o falla, el procesador activa automáticamente un convertidor basado en expresiones regulares.
- Parches de Estructura:
- Títulos correctos: Resuelto el bug de precedencia de reemplazo (
LSUBSUBSvsLSUBS), garantizando subsubsecciones (\subsubsection) limpias y sin texto corrupto. - Cursivas correctas: El procesador traduce las cursivas delimitadas por guiones bajos (
_texto_) nativas de Nougat en bloques LaTeX correctos (\textit{}/\emph{}), evitando guiones bajos escapados (\_) en el texto plano.
- Títulos correctos: Resuelto el bug de precedencia de reemplazo (
- Separa metadatos del documento, una lista limpia de todas las ecuaciones detectadas para búsquedas rápidas, y la jerarquía estructurada de los textos de cada capítulo lista para alimentar bases de datos vectoriales.
El pipeline espera y mantiene la siguiente jerarquía de directorios (tanto local como en Drive/Colab):
/input: Coloca aquí tus PDFs a procesar./output: Carpeta donde se guardan los resultados (.mmd,.json,.tex)./failed: PDFs que arrojaron un error crítico durante el procesamiento./checkpoint: Logs y persistencia del estado de procesamiento.
- Carga el cuaderno nougat_pipeline.ipynb en Google Colab.
- Asegúrate de activar el entorno de ejecución con GPU (T4).
- Ejecuta la celda 1. Instalación de Dependencias (instalará automáticamente Tesseract, Pandoc y los binarios necesarios).
- Configura las rutas (por defecto, buscará la carpeta
NovaLibraryen tu Google Drive) y ejecuta el pipeline.
- Instala las dependencias ejecutando:
local_setup.bat. - Coloca tus archivos PDF en la carpeta
/input. - Ejecuta el procesador:
python nougat_local.py
Este pipeline ha sido optimizado colaborativamente para garantizar código LaTeX limpio listo para compilar directamente en plataformas como Overleaf sin errores de caracteres especiales ni problemas de preámbulo.