Skip to main content

Classifica titulo+resumo de teses/dissertacoes brasileiras na grande area de avaliacao CAPES, a partir do texto (portugues).

Project description

texto2area

PyPI Python License: MIT DOI

Biblioteca Python que classifica o título e/ou resumo de uma tese/dissertação brasileira em uma das 9 grandes áreas de avaliação CAPES, a partir do texto — ponta a ponta: recebe texto cru em português e faz normalização, lematização, n-gramas e classificação.

from texto2area import classificar

area, margens, termos = classificar(
    "A atuação do enfermeiro no cuidado ao paciente idoso em saúde coletiva."
)
# area    -> 'CIÊNCIAS DA SAÚDE'
# margens -> [('CIÊNCIAS DA SAÚDE', 1.28), ('CIÊNCIAS BIOLÓGICAS', -1.0), ...]
# termos  -> ['saúde_coletivo', 'enfermeiro', 'paciente', 'cuidado']

Instalação

pip install texto2area
python -m spacy download pt_core_news_lg     # modelo de lematização (~568 MB), obrigatório

Versão de desenvolvimento (GitHub): pip install git+https://github.com/reneveloso/texto2area Ou, a partir de um clone: pip install .

Uso pretendido e domínio de validade

  • Idioma: português. Para textos em outro idioma, traduza antes (a tradução não é embutida — exigiria um modelo pesado).
  • Domínio: teses e dissertações (título/resumo), 2013–2024 (Catálogo Sucupira). Fora disso (outros gêneros, outras taxonomias) o desempenho não é garantido.
  • Saída: grande área + margens (decision_function) por classe + termos do texto que mais pesaram na decisão (interpretabilidade do modelo linear).

Como funciona (fiel ao pipeline de treino)

  1. Normalização (NFC, limpeza, colapso de espaços).
  2. Lematização com spaCy pt_core_news_lg, mantendo POS de conteúdo (NOUN, PROPN, ADJ, VERB), lema minúsculo, len>=2.
  3. Injeção de n-gramas: bi/trigramas adjacentes unidos por _, mantidos os que existem no vocabulário do modelo (85% das 359.402 features são n-gramas).
  4. TF-IDF (sublinear_tf, min_df=50) + LinearSVC (one-vs-rest, class_weight='balanced').

Desempenho (avaliação em conjuntos retidos)

Protocolo Acurácia F1-macro Baseline (maj.)
In-distribution (split 80/20) 0,792 0,791 0,165
Out-of-time (treino ≤2023, teste 2024) 0,729 0,732 0,170

F1 por área varia de Linguística/Letras/Artes 0,879 e Saúde 0,860 a Multidisciplinar 0,549 (classe difusa, sem vocabulário próprio). O artefato é treinado em 100% dos dados (1.017.727 documentos); as métricas vêm dos protocolos de avaliação.

Limitações

  • Rótulo administrativo como verdade-base (parte dos "erros" é interdisciplinaridade real).
  • Multidisciplinar pouco separável (F1 0,549).
  • Não distingue as ~49 áreas de avaliação finas (apenas as 9 grandes áreas).
  • Português apenas (sem tradução embutida).

Segurança

O modelo é carregado via joblib, que executa código ao desserializar. Use apenas os artefatos versionados neste repositório ou de fonte confiável.

Reprodução

Ver reproduzir/REPRODUCAO.md. O treino é determinístico (SEED=42); o corpus (Sucupira) não é redistribuído.

Como citar

Ver CITATION.cff. DOI do Zenodo a ser adicionado.

Licença

MIT © 2026 Renê R. Veloso.

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

texto2area-0.1.1.tar.gz (29.9 MB view details)

Uploaded Source

Built Distribution

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

texto2area-0.1.1-py3-none-any.whl (29.9 MB view details)

Uploaded Python 3

File details

Details for the file texto2area-0.1.1.tar.gz.

File metadata

  • Download URL: texto2area-0.1.1.tar.gz
  • Upload date:
  • Size: 29.9 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for texto2area-0.1.1.tar.gz
Algorithm Hash digest
SHA256 f63d871f7026c2d858d6e1f88a9056e128d9c20ece09a3c4b421a82a536ba0a7
MD5 0e43b3ab0140b72bb92ac4dcfc84fba5
BLAKE2b-256 b08446510c2a9320e5fc90c3ab769089ee40004c712d5d199fdf09d024ae436b

See more details on using hashes here.

Provenance

The following attestation bundles were made for texto2area-0.1.1.tar.gz:

Publisher: publish.yml on reneveloso/texto2area

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file texto2area-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: texto2area-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 29.9 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for texto2area-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 6d2367d4ff3227e9bde786ee0dbc5b0ac3c640442471e1b9b3e4a96db67d4fb7
MD5 a42b4a800f63c5620fdd2fecd2a6ae3e
BLAKE2b-256 ac322a1f37868d78f7f37fc407586b676880c75359af7fb9bc608e2fe4664759

See more details on using hashes here.

Provenance

The following attestation bundles were made for texto2area-0.1.1-py3-none-any.whl:

Publisher: publish.yml on reneveloso/texto2area

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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