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 = pl.read_csv("savedrecs.txt", separator="\t", quote_char=None,
ignore_errors=True, infer_schema=False, encoding="latin1")
# Scopus (.csv)
scopus = pl.read_csv("scopus.csv", separator=",",
ignore_errors=True, infer_schema=False, encoding="latin1")
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 |
|---|---|
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) |
Gera estrutura de grafo de 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file nbviz_scientometric_tools-0.2.7.tar.gz.
File metadata
- Download URL: nbviz_scientometric_tools-0.2.7.tar.gz
- Upload date:
- Size: 4.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ccdd4de75b8503075ea7b4144322613c68c0b5fe48eb21eab1cde51637e26bbd
|
|
| MD5 |
b545c6bfb0b82dd0b8ee8c98a526a805
|
|
| BLAKE2b-256 |
084db1253646ca567ff943f287ffff33f859e95a6c213f564a37a4180ba2177e
|
File details
Details for the file nbviz_scientometric_tools-0.2.7-py3-none-any.whl.
File metadata
- Download URL: nbviz_scientometric_tools-0.2.7-py3-none-any.whl
- Upload date:
- Size: 5.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5861177da46309caa71b93ed4cccd178ae451b1f7446841cde00516c83dc5cef
|
|
| MD5 |
531f1200fac1ad22a793c7c51caafb47
|
|
| BLAKE2b-256 |
9e8b8a3d92ecb243ee3a5ca53bfafc8f61415b2003242110207c60e4a3c2e740
|