Um implementação em GUI para auxiliar na transcrição de tabelas antigas
Esse programa é uma simples implementação em GUI de um workflow que desenvolvi para transcrever tabelas de censos antigos brasileiros. Do ponto de vista computacional, a GUI não faz mais do que usar a tecnologia do módulo tabular do python. Dessa forma, a facilidade oferecida pela GUI representa um avanço modesto se você já programa em python.
De todo modo, a aplicação irá interessar aqueles que i) não programam em python (ou em outra linguagem com aplicação do tabular) e/ou ii) procuram por uma ferramenta para realizar as transcrições de forma semi-automática sem ter que lidar com código fonte.
Para entender o funcionamento do transk table é útil entender antes o workflow em que se baseia o programa. O workflow de transcrição é definido pelos seguintes passos:
- Ler a tabela usando tabular: o output desse primeiro passo é a tabela "bruta". É uma leitura que, normalmente, acerta o valor da maioria das células, mas têm duas falhas. Em primeiro lugar, o tabula erra sistematicamente o número de linhas e colunas da tabela em questão. Além disso, muitas células são preenchidas de forma errada, com trocas de 1 por ! ou mesmo sem nenhum preenchimento onde havia informação.
- Arrumar número de linhas e colunas: o segundo passo corrige a primeira limitação da leitura do tabula relatada acima. Assim, esse passo consiste em arrumar manualmente o número de linhas e colunas usando um programa simples de planilhas como excel ou o calc (libreoffice).
- Checar valores: o terceiro passo consiste em checar célula por célula se os valores na tabela estão corretos e preencher/substituir quando não tiverem
Para usar a GUI, o usuário deve ter no seu computador um documento em pdf onde estão as tabelas que ele pretende transcrever.
Na atual versão, o transk table tem apenas uma janela dividida em dois frames, como pode ser visto na figura abaixo:
O transk table transcreve uma tabela por vez. Para iniciar a transcrição o usuário deve definir o número da página do documento onde está a tabela de interesse, definir o nome da pasta onde serão salvos os arquivos da transcrição e, por fim, clicar em um dos botões de método para abrir o documento. Todos os botões têm a mesma finalidade, mas usam procedimentos diferentes. Idealmente, o usuário deve tentar o método 1, se falhar, tenta-se o método 2. Diante de nova falha, tenta-se o método 3.
Após a seleção do método, o transk table vai criar uma pasta no seu home directory cujo nome será dado pela string inserida no campo working directory. Dentro dessa pasta será criada uma subpasta e salvo um arquivo dentro da subpasta cujo nome é o número da página. O arquivo em csv é chamado "DDD_page.csv", onde DDD é o número da página. O arquivo "DDD_page.csv" é a transcrição bruta feita pelo tabular. Dessa forma, a simples definição da página e abertura documento encerra o passo 1.
Para a consecução do passo 2 o usuário precisa clicar em Open Excel Sheet (usuários de Windows) ou Open Calc sheet (usuários de Linux). O transk table abrirá então o "DDD_page.csv". Aberto esse arquivo, o usuário deve corrigir o número de linhas e colunas, salvar o arquivo e fechar. Após fechar o arquivo, o usuário deve clicar em Clean. Esse botão elimina todas as entradas diferentes de números, desconsiderando as informações da primeira coluna e do header.
Por fim, a última etapa (i.e., conferência) consiste em digitar no terminal dentro da GUI o seguinte comando:
python corrections.py DDD working directory
Em que DDD é o número da página para a qual você quer fazer a conferência e working directory o nome da pasta que o usuário definiu no início
Será então iniciado um "jogo" em que o computador irá lhe apresentar os valores de cada célula e você terá que responder se aquele valor é válido ou não. Se for válido apenas clique enter. Se precisar substituir responda de acordo. O jogo é auto-explicativo e irá salvar automaticamente todas as alterações que você implementar durante as respostas em um arquivo chamado "DDD_page_final.csv" na respectiva pasta. A correção é feita por coluna. Quando terminar todas as colunas, simplesmente clique em Quit. A transcrição da tabela estará pronta.
Para instalar e rodar o transk table no seu computador você irá precisar ter instalado o python 3, alguns pacotes dessa linguagem que serão detalhados mais adiante, além de acesso ao terminal. A forma mais conveniente de se instalar o python com os pacotes necessários para rodar o transk table é instalar o Anaconda. A instalação é simples e pode ser feita após o download do instalador no site do software .Para os usuários de Windows recomendo baixar alguma das versões anteriores do Anaconda (digamos, 3.5). Versões mais recentes do Anaconda têm apresentado incompatibilidades com o Windows.
Depois de instalado o Anaconda, será preciso instalar mais alguns módulos extras. Veja o arquivo REQUIREMENTS.md para checar quais módulos são necessários e instale cada um deles.
Com a instalação completa, você poderá iniciar o transk table seguindo apenas dois passos:
- Faça o download desse repositório, extraia a pasta para um local de preferência em seu computador
- Entre na pasta pelo terminal (por exemplo, se a pasta do programa foi extraída na sua pasta de Downloads, digite no terminal
cd Downloads/transk_table
e tecle Enter) e rode:
python app.py
A versão atual do transk table é completamente funcional e você poderá fazer transcrições de tabelas em imagens de baixa resolução de forma organizada e semi-automática. No entanto, essa versão têm o imenso inconveniente de não ter a imagem da tabela que está sendo transcrita dentro de GUI. Essas e outras limitações serão corrigidas na segunda versão. Se você tem interesse em contribuir veja a pasta second_version. Esta pasta contém o código atual da segunda versão que está sendo desenvolvida, bem como um documento que lista possíveis melhorias a serem incorporadas.