Skip to main content

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.

Metadata

Release files for texto2area 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for texto2area 0.1.1
File Size Uploaded
texto2area-0.1.1.tar.gz 29.9 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for texto2area 0.1.1
File Interpreter ABI Platform
texto2area-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 59.7 MB

Release files / texto2area-0.1.1.tar.gz

Download URL texto2area-0.1.1.tar.gz
Size 29.9 MB
Tags Source
SHA-256 checksum
How to use checksums
f63d871f7026c2d858d6e1f88a9056e128d9c20ece09a3c4b421a82a536ba0a7
BLAKE2b-256 checksum
How to use checksums
b08446510c2a9320e5fc90c3ab769089ee40004c712d5d199fdf09d024ae436b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 30, 2026.

Transparency log

Release files / texto2area-0.1.1-py3-none-any.whl

Download URL texto2area-0.1.1-py3-none-any.whl
Size 29.9 MB
Tags Python 3
SHA-256 checksum
How to use checksums
6d2367d4ff3227e9bde786ee0dbc5b0ac3c640442471e1b9b3e4a96db67d4fb7
BLAKE2b-256 checksum
How to use checksums
ac322a1f37868d78f7f37fc407586b676880c75359af7fb9bc608e2fe4664759
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 30, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page