TF-IDF + LinearSVC — Classificador de Macrocategorias de Notícias (PT-BR)

Pipeline scikit-learn (TF-IDF + LinearSVC) que classifica notícias brasileiras em 12 macrocategorias temáticas.

É o modelo padrão da API do projeto: ~0,7 ms por requisição em CPU e 127 MB — contra ~300 ms e ~440 MB (+ torch) do BERTimbau. A escolha priorizou o custo de produção, não só a métrica.

Dados

News of the Site Folha de São Paulo — ~167 mil notícias (2015–2017).

As 48 categorias originais foram consolidadas em 12 macrocategorias temáticas (o desbalanceamento era extremo — 22.022 vs. 1 exemplo — e várias "categorias" eram editorias, não temas).

Entrada: título + texto (o texto é opcional; sem ele a qualidade cai).

Classes

Carreira · Ciência e Tecnologia · Cultura e Entretenimento · Economia · Educação · Esporte · Internacional · Opinião · Outros · Política · Saúde · Sociedade

Resultados

Holdout de 32.824 notícias (split estratificado, seed 42):

Métrica Valor
F1-macro 0,800
Accuracy 0,888

O BERTimbau fine-tunado no mesmo split atinge F1-macro 0,858 — porém é ~300× mais lento e ~20× mais pesado em dependências.

Uso

import joblib
from huggingface_hub import hf_hub_download

caminho = hf_hub_download("wesleybritowx/svc-folha-categorias", "model.joblib")
modelo = joblib.load(caminho)

print(modelo.predict(["Banco Central mantém a taxa Selic e o mercado reage"]))
# -> ['Economia']

⚠️ Requer scikit-learn 1.7.1 — o pickle é sensível à versão.

Pipeline

  • TfidfVectorizer(ngram_range=(1, 2), min_df=5, stop_words=<PT + domínio>)
  • LinearSVC(class_weight="balanced") — compensa o desbalanceamento
  • Limpeza de boilerplate editorial antes da vetorização: URLs, créditos de tradução e auto-referências da marca do jornal viravam features espúrias de alto peso (atalhos que não generalizam). Removê-las custou apenas −0,007 de F1, mas deixou o modelo honesto.

Por ser linear, o modelo é interpretável: a contribuição de cada termo é exata (tfidf × coeficiente) — a API expõe isso no parâmetro explicar.

Projeto completo

EDA, comparação de modelos e API FastAPI dockerizada: 👉 https://github.com/wesleybritowx/Text-classification

Downloads last month
-
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support