Extrator das nomeações e exonerações de Alagoas e segmentador dos diários e atos do Diário Oficial AMA.
Sobre • Fluxo de Processamento • Como Usar • Testes
O projeto tem como principal objetivo coletar, transformar em texto e separar em municípios os diários oficiais municipais da Associação dos Municípios Alagoanos (AMA). Além da separação do conteúdo por município, o texto do diário de cada ente estadual é separado em atos normativos. Também iremos utilizar algoritmos computacionais para classificar e extrair informações dos atos normativos dos diários de cada município. Mais especificamente, o nosso foco será em nomeações e exonerações.
PDF de Diário -> Apache Tika -> Arquivo Extraído -> extrair_diarios.py -> Arquivo(s) Processados dos Diários -> extrair_atos.py -> Arquivo(s) Processados dos Atos de um Diário.
./coleta_diarios.sh && ./coleta_atos.sh
Note Se você está usando Windows, utilize os arquivos que contenham _windows através de um Git Bash.
Para dar início ao processamento dos dados, foi montado um gabarito para processar o texto dos diários levando em consideração os seguintes pontos:
- Remover linhas em branco até o cabeçalho
- O cabeçalho (que contém a data e o nome da AMA) vir no início de cada extração de município uma vez -- deve ser repetido para cada município
- Vamos deixar www.diariomunicipal.com.br/ama repetir como separador/marcador de página
- Remover tudo depois do último código identificador
Ao coletar algum PDF do diário do site da AMA realize os seguintes passos.
1. Pull da Imagem do Apache Tika
sudo docker pull apache/tika:1.28.4
2. Rodar Imagem do Apache Tika
sudo docker run -d -p 9998:9998 --rm --name tika apache/tika:1.28.4
3. Extrair Texto do PDF Usando Apache Tika
curl -v -H "Accept: text/plain" -H "Content-Type: application/pdf" -T diario-exemplo-entrada.pdf http://localhost:9998/tika -o diario-exemplo-saida-extraido.txt
Após o primeiro -T, colocamos o caminho do pdf que queremos extrair o texto. E depois de -o colocamos o caminho, nome e extensão do arquivo extraido.
Atualmente temos mais de 60 casos de teste, que aferem a corretude dos dados.
Executar os testes
python -m unittest integracao_test.py
Ou
python3 -m unittest integracao_test.py
Exoonero - Website do Projeto onde os dados aqui capturados são exibidos.
Os dados exibidos no site estão na pasta: docs/site/dados
E podem ser gerados executando o código docs/site_home_data.py
Que é responsável por gerar arquivos jsons contabilizando diários, nomeações e exonerações com base nos arquivos gerados com a execução do Fluxo de Processamento Automático, mostrado tópicos acima.