IA documental
Clasificar el alcance geográfico de papers con salidas estructuradas
Problema
Tenía una carpeta de papers académicos y una pregunta aparentemente simple: ¿qué países estudia cada paper? La parte difícil no era llamar a un modelo, sino evitar inferencias falsas. Un país no debía salir por afiliación del autor, revista o institución; solo si aparecía explícitamente como setting, población, fuente de datos, política o foco de análisis.
Decisión
Lo resolví como pipeline de dos pasos: primero PDF a texto con logs, luego texto a JSONL usando salidas
estructuradas contra un schema Pydantic. El schema obliga a elegir entre dos estados:
specific_countries con lista de países, o region_or_global con un scope geográfico.
Esa restricción es más importante que el prompt: si el modelo devuelve países junto con un scope regional, o declara países específicos sin lista, la validación falla.
Tradeoffs
- Sin OCR: los PDFs escaneados se marcan con warning por baja extracción, pero no se fuerzan resultados dudosos.
- Textos largos: si exceden el límite configurado, se manda inicio y final del documento en vez de todo el PDF.
- Resume simple:
results.jsonles append-only y el script salta IDs ya procesados. - Normalización best-effort: alias y
pycountrylimpian variantes como US/USA/United States.
Validación
Además de países y conclusión principal, el extractor puede devolver un hallazgo explícito sobre Latinoamérica con una cita literal. Luego el pipeline intenta verificar que la cita sea substring del texto extraído.
En la corrida local de 70 papers, el sistema generó 70 filas JSONL: 55 con países específicos y 15 con scope regional o global. También detectó 12 filas con países LATAM y 17 con un bloque de Latinoamérica. La verificación literal de citas quedó en cero, lo que revela una mejora concreta: comparar con texto normalizado o ventanas fuzzy, porque la extracción PDF altera espacios, saltos y guiones.
Resultado
- Pipeline reproducible:
pdf/→out/text/→out/jsonl/results.jsonl. - Schema con validadores para no mezclar países explícitos con scopes regionales/globales.
- Visualizador Streamlit para explorar resultados, errores y PDFs locales.
- Una lista clara de mejoras: OCR opcional, verificación de citas normalizada y revisión manual de casos ambiguos.
Siguiente
El siguiente paso no es añadir más campos, sino endurecer evaluación: fixtures con ejemplos difíciles, normalización de citas y una muestra revisada manualmente para medir precisión antes de procesar corpus mayores.