lucylattes
lucylattes copied to clipboard
lucyLattes script para a extração e compilação de dados do currículo Lattes
lucyLattes
Ã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:
Além das figuras, algumas tabelas são geradas:
Petter Pan
- http://lattes.cnpq.br/000000 (atualizado em: 13-12-2018)
iniciacao_cientifica = 27
trabalho_de_conclusao_de_curso_graduacao = 23
| 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 | |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | Celite | 0 | 2 | 19 | 0 | 2 | 3 | 4 | 0 | 1 | 31 |
| 1 | Dijon | 0 | 2 | 8 | 4 | 3 | 2 | 22 | 1 | 1 | 43 |
| 2 | Cido | 0 | 8 | 15 | 3 | 9 | 1 | 10 | 3 | 1 | 50 |
| 3 | Petter Pan | 0 | 1 | 20 | 2 | 18 | 3 | 6 | 1 | 9 | 60 |
INDICADORES CAPES
Ãndice de orientação do grupo
| QUADRIENIO_INI | QUADRIENIO_FIM | INDORI | INDORI_CLASSIFICACAO | |
|---|---|---|---|---|
| 0 | 2013 | 2016 | 1.4 | MUITO_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 | |
|---|---|---|---|
| 0 | 2013-2016 | 0.848485 | 3.12121 |
| 1 | 2017-2020 | 0.789474 | 2.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 | INDPRODART | CLASSIF | |
|---|---|---|---|---|
| 0 | 2013-2016 | Jose | 0.53 | REGULAR |
| 1 | 2013-2016 | Maria | 0.21 | FRACO |
| 2 | 2013-2016 | Peter | 0.386667 | REGULAR |
| 3 | 2013-2016 | Rafae | 0.21 | FRACO |
| 4 | 2013-2016 | Thiago | 0.553333 | REGULAR |
| 5 | 2017-2020 | Jose | 0.773333 | REGULAR |
| 6 | 2017-2020 | Maria | 0.295 | REGULAR |
| 7 | 2017-2020 | Peter | 0.24 | FRACO |
| 8 | 2017-2020 | Rafael | 0.17 | FRACO |
| 9 | 2017-2020 | Thiago | 0.346667 | REGULAR |
Indicador DistIndProdDP
| QUADRIENIO | DISTINDPRODDP | |
|---|---|---|
| 0 | 2013-2016 | 50 |
| 1 | 2017-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
- Faça o Download do arquivo
.zipque contém olucyLattes. 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.
-
Descompacte o arquivo
.zipque pode em um diretório de sua preferência. -
Na pasta descompactada, abra o arquivo
list_id_name.txtcom um editor de texto, leias as instruções no arquivo e faça as alterações necessárias. Salve e feche o arquivo. -
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ãoXML, 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. -
Abra o arquivo
config.txtcom um editor de texto e altere o que for necessário. Somente edite à direita do sÃmbolo ":" Salve e feche o arquivo. -
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
- Se tudo ocorreu corretamente, um relatório foi gerado no diretório
relatório, basta acessar com um navegador (Chrome ou Firefox).
Observações
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
.xmldireto 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
.csvcom o extrato de produção na pasta relatório; -
DONE Remover arquivos
csvda pastacsv_producao; -
TODO Gerar Ãndices utilizados pela CAPES para avaliação de PPG [100%]
- [X] Ãndice de Orientação (IndOri)
- [X] Ãndice de discentes autores (IndAut)
- [X] Ãndice de produtos com autoria discente (IndDis)
- [X] Ãndice de Produtividade referente a artigos cientÃficos do Programa (IndProdArt)
- [X] Validação
-
DONE Salva em pasta especÃfica arquivos
.csvindividuais para cada pesquisador[100%]- [X] os projetos de pesquisa e extensão;
- [X] cursos de curta duração;
- [X] publicações em periódico com qualis, revista;
- [X] publicações de livros e capÃtulos;
- [X] orientações (tcc, ic, mestrado, doutorado);
-
TODO Grafo de interação entre pesquisadores [40%]
- [X] realiza interações somente entre artigos
- [X] 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%]- [X] relação de pesquisadores, cidade, estado, link lattes, lattes atualização;
- [X] lista de projetos de pesquisa e extensão;
- [X] sÃntese de artigos publicados em periódicos;
- [X] gráficos dos periódicos por perÃodo e por qualis;
- [X] extrato de produção por pesquisador;
- [X] relação de livros
- [X] relação de orientações
- [X] indicadores CAPES
- [X] indicadores JCR
Logs
Thu 2021-06-03 14:39:22 -04
- Criada função para remover os arquivos
.csvgerados na pastacsv_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.txtadicionou-se a opçãoencoding='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.pyfoi 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 -04a 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 olucyLattesrodar em sistema operacionalWindows. Salienta-se a necessidade de mais testes, acredito que faverá problemas com unicode no arquivoconfig.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.pyfoi inserido uma condição para verficar o sistema operacional. Se for Windows orelatorio_producao.htmlterácharset=ISO-8859-1, se for Linuxcharset=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
strparaintem 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étodoIOErrorfoi substituÃdo porOSError, 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.csvde 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.pypara 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
.htmlfoi 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
.csvcom 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.txtcom objetivos de:- especificar o arquivo
.csvque será utilizado no qualis.
- especificar o arquivo
Wed 2019-02-13 21:16:25 -04
- função para capturar os periódicos com qualis foi concluÃda, os
arquivos
.xmlforam movidos para a pastaxml_zip.
Tue 2019-02-12 21:16:25 -04
- os arquivos
.xmlsã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
.xmldo 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 osDataFrame;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ódigoindex_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
- Rafael Tieppo
- [email protected]
- https://rafatieppo.github.io/