Skip to content
Módulo para análise dos dados do Salic por meio de algoritmos de aprendizagem de máquina
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github/ISSUE_TEMPLATE
data
docker Add postgres volume Apr 9, 2019
docs
etc/scripts
notebooks/doing Implement metric by receipts in salic ml and filter notebook informat… Apr 9, 2019
research
src Merge pull request #343 from lappis-unb/i262_receipts_operation_metric Apr 24, 2019
.gitignore Add auto migrations to gitignore Apr 15, 2019
LICENSE
README.md
setup.py
tasks.py

README.md

Salic - Machine Learning

O salic-ml é um projeto aberto que utiliza inteligência artificial para otimizar e automatizar o ciclo de vida de projetos culturais viabilizados pela Lei Rouanet e acompanhados pelo sistema Salic.

O projeto se iniciou em março de 2018, em uma parceria entre o LAPPIS e o Ministério da Cultura (MinC). A primeira fase do projeto teve foco no levantamento do ciclo de vida de projetos culturais e em seus principais pontos de melhoria. Em julho de 2018 foi iniciada a Fase 2 do projeto e foram definidas as primeiras metas e entregas de curto e médio prazo. Detalhes de pesquisa e planejamento estão disponíveis da seção Wiki e discussões e principais ideias podem ser encontradas na seção Issues.

A parceria contou com a contribuição de diversos funcionários do MinC e do LAPPIS e entre os idealizadores e principais contribuidores, é possível citar: Carla Rocha e Fábio Mendes (coordenadores do LAPPIS) e Joênio Costa, Luciano Prestes, Victor Moura, Daniel Guerreiro, Felipe Duerno, Alexandre Torres, Marlon Mendes, Ricardo Poppi e Rodrigo Maia.

O salic-ml desenvolve uma API para fornecer dados relevantes a respeito de projetos culturais a partir de seus dados abertos. O projeto conta com dois repositórios disponíveis na plataforma GitHub e um servidor FTP. Este é o repositório principal, onde são mantidas as pesquisas, tarefas e planejamento do time. O repositório salic-ml-web é o repositório utilizado para desenvolver a API para a disponibilização dos dados encontrados através das pesquisas. Por fim, o servidor FTP fornece os dados brutos do Salic, utilizados para realizar todas as pesquisas do grupo.

Contribuição

Antes de mais nada, sinta-se à vontade para nos contactar sempre que precisar. Nosso grupo de comunicação no RocketChat está sempre aberto para discussões. Para acompanhar nosso roadmap, instale o plugin ZenHub para o GitHub.

Requisitos

  • Python 3.6
  • Virtualenv ou virtualenvwrapper

Instalação

As pesquisas deste repositório são realizadas em notebooks do Jupyter Notebook. Para reproduzir nossas pesquisas e estudos, é preciso baixar os dados do servidor FTP e instalar o Jupyter Notebook.

Para baixar os dados do servidor FTP, basta acessar o seu endpoint: ftp://138.68.73.247/. Lembrando que a estrutura de arquivos do servidor FTP é a mesma da pasta data deste repositório, então tenha cuidado para não armazenar os dados baixados em pastas erradas. Uma forma de baixar os dados é com o comando wget, por um terminal de comandos, entre na pasta raiz deste repositório e execute o seguinte comando:

$ wget -r -nH -nc -P data ftp://138.68.73.247

Este comando baixará todos os arquivos de dados do servidor e pode demorar alguns minutos ou mesmo horas. Cada notebook precisa de um conjunto específico de arquivos de dados e raramente ou único notebook utilizará todos os arquivos do servidor e para baixar arquivos específicos do servidor, execute o comando:

$ wget -nc -P data/FILE ftp://138.68.73.247/FILE

Onde FILE deve ser substituído pelo caminho e nome do arquivo desejado.

Para instalar o Jupyter Notebook, é possível utilizar a plataforma Anaconda ou o pip. Para instalar todas as dependências deste projeto, esteja em um ambiente virtual do python e rode o seguinte comando:

$ pip install -r requirements.txt

Reprodução de pesquisas

Após a instalação, execute o seguinte comando a partir da raiz do diretório:

$ jupyter-notebook

Este comando abrirá uma página o navegador. A partir deste navegador, entre no diretório notebooks e abra o notebook desejado. Estrutura de pastas para armazenar os notebooks de estudo e pesquisa:

  • Doing: notebooks que estão sendo desenvolvidos.

  • Exploratory: notebooks usados para exploração. Pode conter "rascunhos", notebooks não finalizados ou finalizados mas com pouca relevância. Seguem o formato <Descrição do Notebook>-<Versão>.

  • Report: Notebooks com os resultados das pesquisas. Esta pasta contém as versões de notebooks estáveis e atualizados das pesquisas realizadas.

API

Para rodar a api, execute o comando a partir da raiz do diretório:

$ inv run

Passo a passo de contribuições

  1. Crie um Fork deste repositório: na página do repositório salic-ml no GitHub tem um botão para realizar o fork;

  2. Clone o seu fork do repositório:

$ git clone http://github.com/<USERNAME>/salic-ml.git
  1. Crie uma branch de pesquisa:
$ git checkout -b <USERNAME>-new-research
  1. Faça suas mudanças e realize os seus commits:
$ git commit -am 'My contribution'
  1. Atualize suas modificações no seu fork remoto:
$ git push origin <USERNAME>-new-research
  1. Crie o seu pull request: na plataforma GitHub, a partir do seu fork, terá um botão para abrir um pull request.

Outros comandos

Alguns comandos foram criados para facilitar o desenvolvimento, para rodar a API, popular dados entre outros.

  • Para que tenha acesso a lista de comandos digite em seu terminal:

    $ invoke --list

  • Para ler a descrição de um comando específico (exemplo comando run):

    $ invoke --help run

  • Para executá-lo (exemplo comando run):

    $ inv run

Licença

O salic-ml é desenvolvido sob a Licença GPLv3.

You can’t perform that action at this time.