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 = 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


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.2.7.tar.gz (4.5 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.2.7-py3-none-any.whl (5.6 kB view details)

Uploaded Python 3

File details

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

File metadata

File hashes

Hashes for nbviz_scientometric_tools-0.2.7.tar.gz
Algorithm Hash digest
SHA256 ccdd4de75b8503075ea7b4144322613c68c0b5fe48eb21eab1cde51637e26bbd
MD5 b545c6bfb0b82dd0b8ee8c98a526a805
BLAKE2b-256 084db1253646ca567ff943f287ffff33f859e95a6c213f564a37a4180ba2177e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nbviz_scientometric_tools-0.2.7-py3-none-any.whl
Algorithm Hash digest
SHA256 5861177da46309caa71b93ed4cccd178ae451b1f7446841cde00516c83dc5cef
MD5 531f1200fac1ad22a793c7c51caafb47
BLAKE2b-256 9e8b8a3d92ecb243ee3a5ca53bfafc8f61415b2003242110207c60e4a3c2e740

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