Skip to main content

Ferramentas para análise bibliométrica e cienciométrica das bases de dados Web of Science e Scopus

Project description

scientometric_tools

Biblioteca Python para processamento de dados bibliométricos exportados do Scopus e Web of Science (WoS). Desenvolvida para o projeto NBVIZ, mas projetada para uso independente em qualquer pipeline de análise cienciométrica.

pip install scientometric_tools

Funcionalidades

  • Padronização e limpeza de dados do Scopus (.csv) e WoS (.txt)
  • Normalização de nomes de autores
  • Formatação de referências citadas
  • Remoção de duplicatas por DOI com preservação de registros sem DOI
  • Geração de contagens para visualizações (autores, keywords, fontes, anos)
  • Formatação de grafos de co-ocorrência (nós e arestas ponderadas)

Uso

Leitura e padronização

import polars as pl
import scientometric_tools as st

# WoS (.txt)
wos = st.read_wos_file("savedrecs.txt")

# Scopus (.csv)
scopus = st.read_scopus_file("scopus.csv")

header_txt = [("AU",0),("TI",1),("PY",2),("SO",3),("DI",4),("AB",5),("DE",6),("CR",7)]
header_csv = [("Authors",0),("Title",1),("Year",2),("Source title",3),
              ("DOI",4),("Abstract",5),("Author Keywords",6),("References",7)]

wos    = st.keep_columns(wos, header_txt)
scopus = st.keep_columns(scopus, header_csv)

Processamento

# Processa WoS — normaliza autores, remove aspas de keywords e referências
wos_processed = st.process_wos_data(wos, header_txt)

# Processa Scopus — trata abstracts e formata referências citadas
scopus_processed = st.process_scopus_data(scopus, header_csv)

Merge entre bases

wos_to_scopus = {
    "AU": "Authors", "TI": "Title", "PY": "Year",
    "SO": "Source title", "DI": "DOI", "AB": "Abstract",
    "DE": "Author Keywords", "CR": "References"
}

# Remove duplicatas por DOI, preserva registros sem DOI
# e aplica deduplicação final por título + ano
merged = st.merge_and_process(
    scopus_processed,
    wos_processed,
    mapping=wos_to_scopus,
    subset_cols=["Title", "Year"]
)

Contagens para gráficos

# Autores mais produtivos
authors = st.get_counts(merged, "Authors", "author")
# [{"author": "Silva J.", "count": 12}, ...]

# Keywords com múltiplos separadores
keywords = st.get_counts(merged, "Author Keywords", "keyword",
                         separators=[";", ",", " and "])
# [{"keyword": "bibliometrics", "count": 8}, ...]

# Fontes / periódicos
sources = st.get_counts(merged, "Source title", "source")

# Produção por ano
years = st.get_counts(merged, "Year", "year")

Grafo de co-ocorrência

# Gera nós e arestas ponderadas para visualização em rede
graph = st.graph_formatter(merged, "Authors")

# Estrutura retornada:
# {
#   "nodes": [{"data": {"id": "Silva J.", "label": "Silva J."}}, ...],
#   "edges": [{"data": {"source": "Silva J.", "target": "Costa M.", "weight": 5}}, ...]
# }

Referência da API

Função Descrição
read_wos_file(file) Lê o arquivo extraído da base de dados Web of Science
read_scopus_file(file) Lê o arquivo extraído da base de dados Scopus
keep_columns(df, columns) Seleciona colunas, normaliza strings e trata nulos
process_wos_data(df, header) Processa e padroniza dados do Web of Science
process_scopus_data(df, header) Processa e padroniza dados do Scopus
merge_and_process(target, visitor, mapping, subset_cols) Merge entre bases com deduplicação por DOI
get_counts(df, column, output_key, separators) Contagem de termos para gráficos
graph_formatter(df, column, separators) Gera estrutura de grafo de coautoria ou co-ocorrência

Requisitos

  • Python 3.10+
  • polars
  • unidecode

Projeto

Desenvolvido por Leonardo Neves Bolfarini sob orientação do prof. Rafael Gutierres Castanha na Universidade de Marília (UNIMAR).

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nbviz_scientometric_tools-0.3.0.tar.gz (4.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

nbviz_scientometric_tools-0.3.0-py3-none-any.whl (5.7 kB view details)

Uploaded Python 3

File details

Details for the file nbviz_scientometric_tools-0.3.0.tar.gz.

File metadata

File hashes

Hashes for nbviz_scientometric_tools-0.3.0.tar.gz
Algorithm Hash digest
SHA256 748a7dd44e5ae5824473554b86803eadfdf296d1055601bfe4898c0e99d7f370
MD5 2623e266c10c4172e273cd87aa674081
BLAKE2b-256 dd8724c16272f8a98bc233f546dc753981466946126d9ec08882ba0e03f2c271

See more details on using hashes here.

File details

Details for the file nbviz_scientometric_tools-0.3.0-py3-none-any.whl.

File metadata

File hashes

Hashes for nbviz_scientometric_tools-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f309df08890599e1f6d6f423c6e29c151ad7db5d07c16f84e987b3ef021423ee
MD5 214776b77a92a6fc00cdc985fd91b331
BLAKE2b-256 d4aa9684335ecb30a336232d5970e5c071ab0f7436948163875a8d9b63ea1240

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page