Giter VIP home page Giter VIP logo

lucylattes's Introduction

<script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script>

lucyLattes

DOI

Última atualização

  • Versão 1.1
  • Thu 2021-06-03 14:39:22 -04, verifique os logs aqui.

Motivação

O CNPq por meio do currículo Lattes agrega dados do registro da vida profissional de estudantes, professores, e pesquisadores do país, e tornando-se padrão nacional no meio científico para consulta sobre a produção científica dos referidos profissionais.

Contudo, após a criação do captcha para o acesso aos currículos Lattes, extrair dados dos currículos se tornou uma tarefa árdua, pois todas vez que pretende-se acessar um currículo, torna-se necessário passar pelo captcha. Com o intuito de auxiliar na obtenção destes dados, o lucyLattes foi desenvolvido.

O que faz

Extração, compilação, e organização dos dados dos currículos da plataforma Lattes em arquivos de texto, e geração de um relátório simplificado, que proporcionam agilidade para a geração de informação.

Veja algumas informações geradas:

Publicações de periódicos por ano

Publicações de periódicos por qualis

Interações entre pesquisadores na publicação de periódicos

Além das figuras, algumas tabelas são geradas:

Petter Pan
- http://lattes.cnpq.br/000000 (atualizado em: 13-12-2018)

  • total de projetos de pesquisa como coordenador = 5
  • total de projetos de pesquisa como integrante = 8
  • Orientações:
  • dissertação de mestrado = 8
    iniciacao_cientifica = 27
    trabalho_de_conclusao_de_curso_graduacao = 23
  • produção total de livros = 0
  • produção total de capítulos = 1
  • produção total de artigos = 60

  • YEAR A2 B1 B2 B3 B4 B5 C XX
    2015 0 4 0 4 0 0 0 0
    2016 0 3 0 0 0 0 1 2
    2017 0 2 1 3 0 2 0 1
    2018 0 0 0 4 0 0 0 0

    Resumo da produção de artigos em periódicos do grupo 2010-2019


    FULL_NAME A1 A2 B1 B2 B3 B4 B5 C XX TOTAL
    0Celite 0 2 19 0 2 3 4 0 131
    1Dijon 0 2 8 4 3 2 22 1 143
    2Cido 0 8 15 3 9 1 10 3 150
    3Petter Pan 0 1 20 2 18 3 6 1 960

    INDICADORES CAPES

    Índice de orientação do grupo


    QUADRIENIO_INI QUADRIENIO_FIM INDORIINDORI_CLASSIFICACAO
    0 2013 2016 1.4MUITO_BOM
    1 2017 2020 1 BOM

    Índice de produção de artigo


    QUADRIENIO_INI QUADRIENIO_FIM INDPRODART
    0 2013 2016 1.4975
    1 2017 2020 1.64667

    Índice de autoria discente


    Considera apenas produção em periódicos
    QUADRIENIO INDOUT INDIS
    02013-2016 0.8484853.12121
    12017-2020 0.7894742.47368

    INDAUT: Índice de discentes autores, INDDIS: Índice de produtos com autoria discente

    Indicador de distribuição dos docentes permanentes por faixa de IndProd


    Classificação dos pesquisadores por quadriênio


    QUADRIENIO FULL_NAME INDPRODARTCLASSIF
    02013-2016 Jose 0.53 REGULAR
    12013-2016 Maria 0.21 FRACO
    22013-2016 Peter 0.386667REGULAR
    32013-2016 Rafae 0.21 FRACO
    42013-2016 Thiago 0.553333REGULAR
    52017-2020 Jose 0.773333REGULAR
    62017-2020 Maria 0.295 REGULAR
    72017-2020 Peter 0.24 FRACO
    82017-2020 Rafael 0.17 FRACO
    92017-2020 Thiago 0.346667REGULAR

    Indicador DistIndProdDP


    QUADRIENIO DISTINDPRODDP
    02013-2016 50
    12017-2020 60

    Notas

    O lucyLattes não tem vínculo com o CNPq. Este programa computacional é fruto de um esforço (independente) realizado com o objetivo de dar suporte às rotinas de análise de dados cadastradas nos Currículos Lattes (publicamente disponíveis).

    Este programa é um software livre; você pode redistribui-lo e/ou modificá-lo dentro dos termos da Licença Pública Geral GNU. Verifique o arquivo LICENSE.txt .

    Este programa é distribuído na esperança que possa ser útil, mas SEM NENHUMA GARANTIA; sem uma garantia implicita de ADEQUAÇÂO a qualquer MERCADO ou APLICAÇÃO EM PARTICULAR. Verifique o arquivo LICENSE.txt .

    Como usar

    Inicialmente recomenda-se a leitura dos próximos tópicos (Instalação e Como executar o programa).

    Posteriormente, se achar necessário, há uma explicação mais detalhada no blog: Blog - post LucyLattes

    Instalação

    • Requerimentos:

      • Sistema operacional Linux ou com base Unix (preferencialmente), ou ainda Windows;
      • Python 3 ou superior;
      • Navegador (Firefox ou Chorme) para visualizar relatório.
    • Se não possuir Python3 ou superior instalado executar no terminal:

    Se vc usar DEBIAN, UBUNTU ou derivados

    sudo apt-get install python3
    sudo apt-get install python3-pip
    sudo apt-get install python3-tk
    

    Se vc usar Windows

    Acesse https://python.org.br/instalacao-windows/ e instale a versão do Python 3, basta seguir as instruções. Não esqueça de instalar o PIP.

    Para todos os sistemas operacionais (Linux, MacOS, Windows, Solaris, etc) são necesssários as mesmas bibliotecas. Para instalar as bibliotecas em ambientes Linux acesse o Terminal. Caso seja usuário Windows, acess o prompt do DOS ou o PowerShell. Posteriormente basta digitar:

    pip3 install pandas
    pip3 install numpy
    pip3 install requests
    pip3 install beautifulsoup4
    pip3 install matplotlib
    pip3 install networkx
    pip3 install lxml
    pip3 install tabulate
    

    Como executar o programa

    1. Faça o Download do arquivo .zip que contém o lucyLattes. Antes do dowload, caso queira, vc pode pode ajudar com quanto quiser para manter o projeto:
    • via Paypal

    Download aqui: https://rafatieppo.github.io/lucylattes/. Escolha a opção .zip ou .tar para fazer o download dos aquivos.

    1. Descompacte o arquivo .zip que pode em um diretório de sua preferência.

    2. Na pasta descompactada, abra o arquivo list_id_name.txt com um editor de texto, leias as instruções no arquivo e faça as alterações necessárias. Salve e feche o arquivo.

    3. Faça o dowload dos curriculos Lattes desejados e copie todos no diretório xml_zip. Para realizar o download, acesso o currículo Lattes do pesquisador, e no canto superior direito clique sobre um botão XML, salve o arquivo e NÃO altere o nome e nem o formato, NÃO DESCOMPACTE OS ARQUIVOS. O nome do arquivo é composto por 16 caracteres e a extensão .zip, e.g. 3275865819287843.zip.

    4. Abra o arquivo config.txt com um editor de texto e altere o que for necessário. Somente edite à direita do símbolo ":" Salve e feche o arquivo.

    5. Acesse o diretório descompactado pelo terminal e digite:

    • Se for em ambiente Linux:

    python3 lucyLattes.py

    • Se for em ambiente Windows

    py lucyLattes.py

    ou

    py -3 lucyLattes.py

    1. Se tudo ocorreu corretamente, um relatório foi gerado no diretório relatório, basta acessar com um navegador (Chrome ou Firefox).

    Observações

    **Atenção**, **Atenção**, **Atenção**. Sempre que editar o arquivo `list_id_name.txt` **APAGUE** todos os arquivos do diretório `csv_producao`. Não é mais necessário. Uma função foi adicionada para remover os aquivos.

    Gostou?

    • Nos de uma estrela clicando na estrela no topo da página (lado direito)
    • Deixe um comentário no Blog - post LucyLattes

    Desenvolvimento

    • DONE Capturar os projetos de pesquisa, e extensão, com seus respectivos participantes, classificação do tipo de projeto (pesquisa ou extensão) organizando os dados em um DataFrame;

    • DONE Capturar produção técnica de cada pesquisador

    • DONE Capturar as atividades de orientação;

    • DONE Ler o .xml direto do .zip;

    • DONE Realizar um looping para caturar uma série de currículos.

    • DONE Capturar produção em periódicos;

    • DONE Associar produção em periódico com capes qualis;

    • DONE Gerar um arquivo .csv com o extrato de produção na pasta relatório;

    • DONE Remover arquivos csv da pasta csv_producao;

    • TODO Gerar índices utilizados pela CAPES para avaliação de PPG [100%]

      • Índice de Orientação (IndOri)
      • Índice de discentes autores (IndAut)
      • Índice de produtos com autoria discente (IndDis)
      • Índice de Produtividade referente a artigos científicos do Programa (IndProdArt)
      • Validação
    • DONE Salva em pasta específica arquivos .csv individuais para cada pesquisador[100%]

      • os projetos de pesquisa e extensão;
      • cursos de curta duração;
      • publicações em periódico com qualis, revista;
      • publicações de livros e capítulos;
      • orientações (tcc, ic, mestrado, doutorado);
    • TODO Grafo de interação entre pesquisadores [40%]

      • realiza interações somente entre artigos
      • como observação, deve-se atentar que os integrantes que não possuem interação(s) não aparecem no grafo.
      • Verificar as interações nos projetos de pesquisa e extensão;
      • Calcular o peso das interações dos membros no grafo;
      • Capturar as atividades dos projetos de extensão;
    • DONE Relatório em .html [100%]

      • relação de pesquisadores, cidade, estado, link lattes, lattes atualização;
      • lista de projetos de pesquisa e extensão;
      • síntese de artigos publicados em periódicos;
      • gráficos dos periódicos por período e por qualis;
      • extrato de produção por pesquisador;
      • relação de livros
      • relação de orientações
      • indicadores CAPES
      • indicadores JCR

    Logs

    Thu 2021-06-03 14:39:22 -04

    • Criada função para remover os arquivos .csv gerados na pasta csv_producao

    Thu 2021-06-03 11:18:11 -04

    • Correção no gráfico de interação. Ao inserir o JCR uma coluna foi deslocada, e por consequência a interação entre os autores não estava sendo realziada corretamente.
    • Conforme sugestão do https://github.com/rickkk856 ao ler o arquivo config.txt adicionou-se a opção encoding='utf-8'.

    Wed 2020-11-18 23:13:05 -04

    • Fator JCR dos artigos foi inserido no relatório Relação de artigos em periódicos. Os dados são oriundos de uma lista compilada a partir do scimago e do site JCR.

    Wed 2020-11-18 20:18:21 -04

    • Extração das disciplinas em atividades de ensino. Disciplinas listadas por pesquisador no relatório.

    Wed 2020-10-14 15:20:22 -04

    • Disponibilização do arquivo qualis geral 2019 para avaliação dos artigos.

    Mon 2020-04-27 19:48:37 -04

    • No arquivo verify.py foi adicionada a verificacao para as orientações (nome do curso) seguindo a mesma lógica dos periódicos (YEAR).

    Sun 2020-04-26 10:46:26 -04

    • Inserido no relatório o local de trabalho do pesquisador (conforme informado no Lattes). Foi adicionada na correcao de Tue 2019-07-23 07:38:14 -04 a condicao de VAZIO para o ano inicial dos projetos se não constar o ano inicial do projeto o mesmo é excluído (uma msg é impressa na tela).

    Mon 2020-04-06 04:36:45 -04

    • Devido à solicitações de usuários Windows, foi implementado funções para possibilitar o lucyLattes rodar em sistema operacional Windows. Salienta-se a necessidade de mais testes, acredito que faverá problemas com unicode no arquivo config.txt.

    Thu 2020-03-26 07:17:31 -04

    • Duas melhorias siginificativas foram realizadas. Uma é a melhoria do relatório. A outra a implementação do indicadores CAPES. Segue método de cálculo:

    Por padrão os indicadores CAPES estão habilitados, caso queira desabilitar deve-se editar o arquivo config.txt.

    1 Índice de Orientação (IndOri)

    $$IndOri = \frac{(A + 2B)}{DP}$$

    Avalia as defesas com orientação de docentes permanentes (DP) do programa. A análise leva em consideração o tempo recomendado de titulação, sendo 24 meses para mestrados (A) e 48 meses para doutorado (B). O indicador é calculado para cada ano e depois calculada a média para o quadriênio.

    3 Índice de discentes autores (IndAut)

    $$IndAut = \frac{E}{F}$$

    Avalia a proporção de discentes autores (E) em relação ao total de discentes do programa. Foram considerados para o cálculo de E, os discentes e egressos até cinco anos quando autores de artigos, livros, capítulos, trabalho completo em anais e produção técnica (sem apresentação de trabalho). Cabe destacar que a prática de geração de produtos intelectuais após a conclusão do curso é comum; portanto, este indicador tem, como denominador (F), todo o corpo discente do ano em avaliação mais os egressos dos últimos 5 anos que publicaram no referido ano.

    4 Índice de produtos com autoria discente (IndDis)

    $$IndDis = \frac{G}{F}$$

    Avalia a quantidade de produtos intelectuais (artigos, livros, capítulos, trabalhos completos em anais e produção técnica - excluindo apresentação de trabalho) de autoria discente ou de egressos até 5 anos, em relação ao total de discentes do programa (G). O denominador leva em consideração todo o corpo discente do ano em avaliação mais egressos dos últimos 5 anos que publicaram no referido ano (F).

    5 Índice de Produtividade referente a artigos científicos do Programa (IndProdArt)

    $$IndProdArt = \frac{(1 \times A1 + 0,85 \times A2 + 0,7 \times B1 + 0,55 \times B2 + 0,4 \times B3 + 0,25 \times B4 + 0,1 \times B5)}{DP}$$

    Avalia toda a produção intelectual do programa no formato de artigo científico, sendo que a participação de um docente permanente como autor é condição obrigatória para validar a produção. Os pesos de cada produto foram atribuídos previamente por meio da avaliação dos periódicos científicos - Sistema Qualis Periódicos. De acordo com os estratos atribuídos, os pontos são contabilizados e divididos pelo total de docentes permanentes do programa. O cálculo é anual, sendo realizada a média para o quadriênio posteriormente. Cabe destacar que a pontuação obtida por um programa é o somatório dos pontos obtidos em todos os estratos (A1 até B5). Porém, os pontos obtidos pelo somatório dos estratos B4 e B5, não podem ultrapassar 20% do total de pontos do ano. Assim, valores percentuais superiores a 20% são glosados.

    14 Indicador de distribuição dos docentes permanentes por faixa de IndProd (%DistIndProdDP)

    $$DistIndProdDP = DPMB + DPB + DPR$$

    Nesse caso, calcula-se o IndProd para cada docente permanente e posteriormente os docentes são distribuídos conforme as faixas apresentadas para o IndProd. Feito isso, calculou-se o percentual de docentes permanentes (DP) classificados em cada faixa (MB = muito bom, B = bom, R = regular e F/D = fraco / deficiente) em relação ao corpo docente permanente total. O somatório dos percentuais das faixas MB, B e R permite avaliar o equilíbrio na distribuição da produção docente.

    Referências: Ministério da Educação Coordenação de Aperfeiçoamento de Pessoal de Nível Superior Diretoria de Avaliação.

    if IndProd < 0.15:
        classif = 'DEFICIENTE'
    elif IndProd >= 0.15 and IndProd <= 0.29:
        classif = 'FRACO'
    elif IndProd > 0.29 and IndProd <= 0.79:
        classif = 'REGULAR'
    elif IndProd > 0.79 and IndProd <= 1.19:
        classif = 'BOM'
    else:
        classif = 'MUITO_BOM'

    Fri 2021-10-15 15:22:54 -04

    • Geracao de um novo arquivo com dados de todos os pesquisadores e extracao do ORCID

    Thu 2021-06-03 09:38:11 -04

    • No arquivo report.py foi inserido uma condição para verficar o sistema operacional. Se for Windows o relatorio_producao.html terá charset=ISO-8859-1, se for Linux charset=utf-8.

    Thu 2021-01-14 17:18:11 -04

    • Foi implementado o cálculo de indicadores para os quadriênios (a partir de 2013). Os indicadores inseridos foram Índice de discentes autores e Índice de produtos com autoria discente. Ambos são disponibilizados no relatório. Caso não seja desejado a geração dos indicadores, no arquivo config.txt é possível desabilitar esta função.

    Thu 2020-03-12 05:01:05 -04

    • Foi implementado o cálculo de indicadores para os quadriênios (a partir de 2013). Os indicadores inseridos foram Índice de orientação do grupo e Índice de produção de artigo. Ambos são disponibilizados no relatório. Caso não seja desejado a geração dos indicadores, no arquivo config.txt é possível desabilitar esta função.

    Sun 2020-02-16 10:20:46 -04

    • No resumo do pesquisador, para alguns casos, ocorria falha na captura do texto. Possivelmente em função de "/n" no decorrer do texto. Este problema foi resolvido com melhoria na regex.

    Sat 2019-11-23 06:12:56 -04

    • Havia um erro na leitura dos anos de início dos projetos, qdo a passava-se a variável (ANO) de str para int em alguns casos a variável continha uma casa decimal (e.g. 2010.0), impossibilitando deixar o número inteiro em um único passo.

    Mon 2019-11-11 19:14:11 -04

    • Melhoria no código de verify (verify.py). Método IOError foi substituído por OSError, IOError. In 3.3, IOError became an alias for OSError, and FileNotFoundError is a subclass of OSError. PEP 3151.

    Sun 2019-10-27 10:40:52 -04

    • Melhoria no código de verificação (verify.py). Quando um arquivo .csv de produção é solicitado e o mesmo não foi gerado por falta de produção nos currículos, um aviso é emitido na tela e uma observação é impressa no relatório (report.py).

    Tue 2019-07-23 07:38:14 -04

    • Um código para verificação dos anos em todos os arquivos de produção foi desenvolvido (verify.py). Se o ano da produção não foi extraído, a produção é excluída do arquivo .csv. Quando há falha na extração do ano, os arquivos são atualizados e salvos.

    Mon 2019-06-17 23:09:13 -04

    • Organização do arquivo para relação de orientações de cada pesquisador. As orientações estão divididas de acordo com a classificação do CNPq. No relatório para cada pesquisador há uma síntese das orientações, e no final do relatório há uma tabulação com o tipo de orientação e quantidade de orientações por pesquisador.

    Thu 2019-06-13 21:23:26 -04

    • Extração da orientação de doutorado concluída ok. Falta realizar o relatório de todas as orientações.

    Sat 2019-05-04 09:25:13 -04

    • Houve tentantiva de melhorar a extracao do resumo (scrapper.py), mas sem sucesso. A mensagem para os resumos nao capturados foi alterada para: Nao foi possivel extrair o resumo.

    Tue 2019-04-02 10:34:17 -04

    • No scrapper.py para ppe os limites de seleção foram melhorados.

    Tue 2019-04-02 10:34:17 -04

    • Insirido no relatório publicação de livros e capítulos (gráficos e listas). Na produção individual também insirido o número de livros e capítulos. No resumo da produção foi inserido o número de profissionais que formam a equipe.

    Sat 2019-03-23 18:24:31 -04

    • No relatório, caso tenha ocorrência de pesquisadores que não possuam interação em periódicos, uma lista com o nome dos mesmos é adicionada. Melhoria na disposição do grafo, relatório aprimorado.

    Mon 2019-03-18 23:49:11 -04

    • Melhorias no relatório com indicação do número total de projetos como coordenador e integrante.

    Fri 2019-03-15 16:45:33 -04

    • Problema no ids que inciavam com o zero foram corrigidos. O relatório foi melhorado com adicao de link lattes na producao individual, um extrato do grupo foi adicionado no final. Avisos para PPE e PAPERS sem ano foram adicionados. Corrigido para resumo gerado automaticamente pelo Lattes.

    Mon 2019-03-11 21:30:46 -04

    • No relatório as produções foram enumeradas. Avisos foram inseridos após a finalização dos processos.

    Thu 2019-03-07 21:16:25 -04

    • o método de verificação da ordem de autoria do paper foi melhorado, a ordem é obtida direto do lattes.

    Thu 2019-02-28 21:16:25 -04

    • relatório está implementado, como produto um arquivo .html é gerado. Para verificar a interação entre os integrantes um Grafo é gerado, assumindo somente as interações entre publicações em periódicos.

    Tue 2019-02-19 21:16:25 -04

    • relatório .html foi iniciado, mas não foi implementado na função ainda.

    Sat 2019-02-16 21:16:25 -04

    • foi inserido uma verificação no scraperlattes, caso o comprimento da lista seja zero é informado. Há um arquivo .csv com o nome completo, sobrenome, e id do pesquisador. Foi iniciado a análise de dados para o reatório.

    Thu 2019-02-14 21:16:25 -04

    • foi criado um arquivo config.txt com objetivos de:
      • especificar o arquivo .csv que será utilizado no qualis.

    Wed 2019-02-13 21:16:25 -04

    • função para capturar os periódicos com qualis foi concluída, os arquivos .xml foram movidos para a pasta xml_zip.

    Tue 2019-02-12 21:16:25 -04

    • os arquivos .xml são lidos diretamente do arquivo .zip. Foi criado um arquivo lista no formato .csv, neste arquivo deve conter o id Lattes de cada pesquisador e seus respectivo nome.

    Sat 2019-01-26 21:16:25 -03

    • do arquivo .xml do lattes é possível extrair o nome do projeto, tipo do projeto, ano de início, e integrantes, etc

    Arquivos

    • scraperlattes.py: contém as funções que extraem as informações necessárias e geram os .csv;
    • readidlist.py: faz a leitura da lista que contém o id dos pesquisadores ;
    • lucyLattes.py: funciona como o executável;
    • config.txt: configurações para funcionamento do script;
    • tidydf.py: organiza os DataFrame;
    • report.py: gerador do relatório;
    • grapho.py: gerador do gráfico com as interações entre os membros.
    • verify.py: verifica e corrige extração do anos para as produções.
    • extrafuns.py: funções de apoio para minimizar a poluição do código
    • index_capes.py: calcula os indicadores CAPES

    Referências

    J. P. Mena-Chalco e R. M. Cesar-Jr. scriptLattes: An open-source knowledge extraction system from the Lattes platform. Journal of the Brazilian Computer Society, vol. 15, n. 4, páginas 31--39, 2009.

    Rossum, G. van ( C. voor W. en I. (CWI)). (1995). Python tutorial. Python (Vol. 206). Amsterdam.

    Autor

    lucylattes's People

    Contributors

    rafatieppo 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.