Git Product home page Git Product logo

transk_table's Introduction

transk table

Um implementação em GUI para auxiliar na transcrição de tabelas antigas

alt text

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.

Como o transk table funciona:

Workflow

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:

  1. 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.
  2. 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).
  3. 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

GUI

ATENÇÃO: O pdf deve estar com OCR para funcionar

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:

alt text

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.

Como instalar e rodar o transk table no seu computador:

Requisitos

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.

Iniciando o transk table

Com a instalação completa, você poderá iniciar o transk table seguindo apenas dois passos:

  1. Faça o download desse repositório, extraia a pasta para um local de preferência em seu computador
  2. 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

Melhorias futuras

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.

transk_table's People

Contributors

lucascr91 avatar

Stargazers

Vilton Bonifácio avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.