Coletando os dados da CPI - Parte I

Aquelas anotações de aprendizado que se a ferramenta criada não ajudar a colocar fogo no país, pelo menos espero te ajudar a aprender algo ou q eu aprenda algo.

Basicamente a CPI da Covid, tem uma porrada de documentos para serem analisados, os dados não são estruturados e muitas são aquelas imagens scanneadas em PDFs. Por ser uma barreira, veio a ideia de colocar um script para rodar um OCR em cima desses PDFs.

Eu vou focar no que tenho mais experiencia, para quem quiser ver os documentos, só seguir o link. https://legis.senado.leg.br/comissoes/docsRecCPI?codcol=2441

Pesquisando e trabalhando com um OCR

Como um OCR não é algo que trabalho no dia a dia, resolvi fazer a pesquisa por CLI e OCRs, com isso caí no Tesseract, que já tinha ouvido falar antes por algum colega de análise de dados e também cai nesse pacote que encapsula a ferramenta mantida pelo Google.

Primeira coisa a se fazer é garantir que o tenha o pacote tesseract-ocr. Como estou usando MacOS, precisei do Brew para a instalar. Para linux, basta usar o apt-get e não sei como vc vai fazer usando windows, tenta algo com o chocolatey.

Após essa instalação vamos ao npm install padrão e o projeto em si.

Antes de fazer a conversão em si, notei que vou precisar converter os pdfs para pngs, para isso vou usar o imagemagick.

Outro detalhe é que nem todo os dados, precisam passar por um OCR, para poderem ser buscados. Algo para ler PDFs, de forma simples será o caminho.

Como o primeiro arquivo da lista é um PDF que contem imagem, precisei criar um script  para converter ele para um png, para isso precisei instalar o imagemagick e criar um script para usar o convert. Você pode conferir no link abaixo:

flpms/ocr-cpi-covid19
Contribute to flpms/ocr-cpi-covid19 development by creating an account on GitHub.

Esse arquivo gera as imagens necessárias, agora podemos seguir para OCR de fato.

E isso basta usar o arquivo OCR.js com as instruções basicas para extrair os textos das imagens geradas.

Agora, deixo aqui os próximos passos, que serão a parte 2:

  • Ler os dados de PDFs com texto, para isso criar um script usando o pacote pdfreader
  • Criar uma forma de api rest ou graphql para pesquisar por todos esses dados e deixar eles estruturados para pesquisa de dados, o problema será onde hospedar tudo isso.
  • Criar uma forma de coletar os dados direto do site do governo