/hackaton-judicial-acij

Herramientas de extracción de datos de PDFs aplicadas a documentos judiciales argentinos

Primary LanguagePython

Hackatón Judicial

Participé en la Hackatón Judicial organizada por ACIJ (Asociación Civil por la Igualdad y la Justicia). Durante el encuentro charlamos algunos retos y problematicas relacionadas a lo trabajoso de extraer manualmente datos de PDFs y las dificultades para automatizar estas tareas. En este repositorio dejo algunas pruebas que hicimos intentando usar herramientas novedosas como chatGPT y textract para encarar estos inconvenientes.

Herramientas

Resumen de herramientas

Pruebas hechas

Estan adjuntas en las carpetas correspondientes a cada caso los archivos usados para permitir replicabilidad.

Caso 1

Objetivo

Extraer la tabla encontrada en las últimas 2 páginas de original.pdf

Procedimiendo

Se sacó un screenshot del PDF en la región de la tabla y se utilizó textract para extraer la tabla, dando como resultado tabla-textract.csv.

Resultados y conclusiones

Dió muy buenos resultados aunque por alguna razón no exporto la parte de la tabla de la segunda página (las últimas tres filas de la tabla), mandando cada página por separado dió mejores resultados, como se puede ver en textract-segundapagina.csv que fue el resultado de procesar tabla-segundapagina.jpg.

Caso 2

Objetivo

Convertir el pdf original.pdf en un excel

Procedimiento

Se convirtieron las páginas del PDF en varias imagenes (una por cada página) y luego como test se intentó digitalizar la primera página usando textract.

Resultados y conclusiones

Esto dió buenos resultados, se tendría que repetir este proceso para cada página (o automatizarlo haciendo un pequeño script que realice estos pasos automaticamente).

Caso 3

Objetivo

Averiguar el total de ingresos de causas mencionado en el PDF "Informe_Estadistico-DGDI-julio_diciembre_ok.pdf"

Procedimiento

Se usó openAI assistant con los siguientes parámetros.

Config
    Name 
        PDF judicial extractor

    Instructions
        "Check the attached PDF and answer questions based on the info you get from it. Always specify the page/s you used to answer."

    Model
        gpt-4-turbo-preview

    tools
        Code interpreter OFF
        Retrieval ON

    Files attached
        Informe_Estadistico-DGDI-julio_diciembre_ok.pdf

Conversación

  • User: ¿Cual es el total de ingresos de causas?

  • Bot: El total de ingresos de causas es de 141,845.

  • User: de donde sacaste ese dato?

  • Bot: El dato sobre el total de ingresos de causas, 141,845, fue obtenido de la página 27 del documento .

Resultados y conclusiones

Se logró que conteste el dato correcto sin mayores complicaciones.

Caso 4

Objetivo

De una lista de varios PDFs se quiere calcular la cantidad total de juicios y el promedio de duración de los mismos.

Procedimiento

No registre las respuestas pero hice basicamente lo mismo que en el caso 3, use el openAI Assistant y le consulté por los juicios totales y el promedio de duración de los mismos.

Resultados y conclusiones

No anduvo bien con openai playground pidiendole que calcule cosas que requieran consultar en varios pdfs y hacer calculos. Charlamos que en esos casos es mejor migrar las tablas a excel, usando por ejemplo textract y despues hacer los calculos en excel. Y en todo caso ahi se le puede pedir ayuda a chatgpt para armar las formulas de excel. Al igual que en el ejemplo 2 se podria automatizar la consulta a chatGPT para poder rapidamente armar una tabla a partir de los PDFs de un año dado.

Caso 5

Objetivo

Extraer los siguientes valores de los PDFs del 2023 para "Goce de haberes" de esta pagina de licencias: https://www.csjn.gov.ar/transparencia/personal-judicial/licencias

Resolucion:	Número de la resolución
Fecha_res:	Fecha de pedido de la resolución
Nombre:	Nombre de la persona solicitante de la licencia con goce de haberes
Cargo:	Cargo de la persona solicitante de la licencia con goce de haberes
Tribunal:	Nombre del Tribunal, Juzgado o Cámara donde trabaja la persona solicitante
Fecha_inicio:	Fecha de inicio de la licencia
Fecha_fin:	Fecha de fin de la licencia
Motivo:	Razón por la que solicita la licencia
Comentarios:	Comentarios relevantes sobre el pedido de licencia
Efecto:	Si queda sin efecto por otra resolución
Link:	Link a la resolución

Método

Esto se arrancó a hacer manualmente, y los resultados estan acá. Después en la solapa "chatGPT ejemplo" de ese mismo documento dejé los resultados obtenidos con chatGPT Pro (la versión paga de chatGPT) al pedirle que analice los PDFs, acá está el detalle de la conversación. Fui consultando uno por uno los PDFs, parecido a lo que se mencionó en el caso 2, se podría automatizar facilmente haciendo un pequeño programa que ejecute esos pasos.

Resultados y conclusiones

Me pareció que anduvo bastante bien aunque me aclararon que, por ejemplo, el documento 852 debería decir "Sin efecto" en la columna "Efecto", hablamos que se podría intentar solucionar ese problema si se le aclara al chat las reglas para decidir si algo tiene o no efecto.

Conclusión General

Mi conclusión es que con un presupuesto de 50 dolares mensuales o menos dedicado a herramientas como textract, chatGPT pro o openAI playground y algo de asistencia tecnica varias tareas de trabajo manual pesado deberían poder automatizarse o reducirse en gran parte.

Páginas con detalles de precios de los servicios

Apéndice

Links de la hackaton

Comandos útiles

Ignorar esto si no tenes linux

Convertir PDF a imagenes (una por página) pdftoppm -jpeg 364.pdf output

Convetir Imagenes a PDF (una por página) img2pdf output*.jpg -o mydoc.pdf

Para instalarlo: `sudo apt install img2pdf`