Executando verificação de segurança...
4

📦 Crom Tabnews DB — 20.857 Posts do TabNews em um Dataset Aberto no Hugging Face

Olá, pessoal do TabNews!

Há pouco mais de um mês, publicamos o Aviso de Coleta explicando a intenção de construir um dataset aberto com os posts do TabNews. Gerou debate, gerou críticas, gerou reflexão — e tudo isso foi bom.

Depois o @pedrodev2026 publicou o crom-tabnews-db: O Retorno confirmando que o dataset estava sendo finalizado.

Hoje o post é mais direto: o dataset está publicado, aberto e funcional.

🔗 Link: CromIA/crom-tabnews-db no Hugging Face


📊 Números da v1.0

MétricaValor
Total de posts20.857
Tamanho total35.6 MB
FormatoParquet (209 chunks)
Downloads1.225+
IdiomaPortuguês (PT-BR)
LicençaODC-By
Compatível com🤗 Datasets, Dask, Polars

🗂️ Estrutura do Dataset

Cada registro representa um post do TabNews e contém 17 colunas:

ColunaTipoDescrição
idstringUUID do post
owner_idstringUUID do autor
parent_idnullSempre null (são posts raiz, não comentários)
slugstringSlug da URL (2–160 chars)
titlestringTítulo do post (2–252 chars)
bodystringConteúdo completo em Markdown (1–20k chars)
statusstringStatus de publicação (published)
typestringTipo do conteúdo (content)
source_urlstring/nullURL de fonte externa, quando houver
created_atstringData de criação (ISO 8601)
updated_atstringData de última atualização
published_atstringData de publicação
deleted_atnullSempre null (apenas posts ativos)
owner_usernamestringUsername do autor (3–29 chars)
tabcoinsintTabcoins totais (-38 a 284)
tabcoins_creditintTabcoins positivos (0 a 292)
tabcoins_debitintTabcoins negativos (-500 a 0)
children_deep_countintTotal de comentários no post (0 a 778)

O dataset contém apenas posts raiz (sem comentários), com conteúdo completo em Markdown. Isso significa que você tem acesso ao texto integral de cada publicação, não apenas ao resumo.


🛠️ Como Usar

Duas linhas de Python:

from datasets import load_dataset

ds = load_dataset("CromIA/crom-tabnews-db")

A partir daí, você tem acesso a todos os 20.857 posts. Alguns exemplos práticos:

Analisar os posts mais comentados

df = ds["train"].to_pandas()

top_posts = df.nlargest(10, "children_deep_count")[["title", "owner_username", "children_deep_count", "tabcoins"]]
print(top_posts)

Filtrar posts com mais engajamento positivo

engajados = df[df["tabcoins_credit"] > 10].sort_values("tabcoins_credit", ascending=False)
print(f"{len(engajados)} posts com mais de 10 tabcoins positivos")

Conteúdo técnico para fine-tuning

# Posts com mais de 500 caracteres e engajamento positivo
corpus = df[(df["body"].str.len() > 500) & (df["tabcoins"] > 0)]
print(f"{len(corpus)} posts de qualidade para treinamento")

🏗️ Como Foi Construído

O pipeline é direto e reproduzível:

Tabnews API (listagem) → Pandas DataFrame → Tabnews API (conteúdo completo) → Pandas DataFrame → HuggingFace Dataset (Parquet)

Stack: Python, Pandas, HuggingFace Datasets, Tabnews API.

Nada de mágica. Nada de scraping obscuro. API pública, processamento limpo, resultado aberto.


🛡️ Sobre Ética e Opt-Out

No primeiro post, a comunidade levantou pontos importantes. Ouvimos. Vou ser direto sobre o que fizemos:

O que mantivemos desde o início:

  • ✅ Licença ODC-By — quem usar o dataset, credita a fonte original
  • Opt-out permanente — quem pediu remoção, foi removido e entra na blacklist
  • Formulário sempre aberto — não tem prazo final

O que mudamos após o feedback:

  • ✅ Estendemos o prazo de 72h para 120h (5 dias) antes da v1.0
  • ✅ Deixamos claro que o formulário nunca fecha
  • ✅ Quem solicitar remoção após a v1.0 será removido na v1.1 e incluído permanentemente na blacklist

O formulário de opt-out continua ativo:
🔗 Formulário de Remoção

Se você é autor no TabNews e não quer seus posts no dataset, preenche o formulário. Sem burocracia, sem prazo, sem julgamento.


🎯 Para Que Serve?

O dataset por si só já é útil para várias coisas:

  1. Treinamento de modelos de linguagem — fine-tuning de LLMs pequenas com dialeto técnico brasileiro
  2. Análise de dados — tendências, tópicos populares, evolução da comunidade
  3. Busca semântica — motores de busca especializados em conteúdo técnico PT-BR
  4. Pesquisa acadêmica — estudos sobre comunidades de tecnologia brasileiras
  5. Projetos pessoais — qualquer dev pode baixar e experimentar

O projeto maior continua sendo o TabLM — um modelo Instruct/Chat com menos de 100M de parâmetros, proficiente em PT-BR técnico. O crom-tabnews-db é o primeiro tijolo desse muro.


📈 O Que Vem Depois?

  • v1.1 — Remoção dos opt-outs que chegarem após a v1.0 + limpeza adicional
  • Saneamento avançado — Remoção de tokens, chaves e dados sensíveis que possam ter sido postados por acidente
  • Metadados enriquecidos — Tags, categorias e métricas adicionais
  • TabLM — Início dos experimentos de treinamento

💡 Consideração Final

No primeiro post, a pergunta era: "É possível criar um Chat-PTBR com menos de 100M de parâmetros?"

A resposta honesta continua sendo: não sabemos. Mas agora pelo menos temos os dados para tentar.

20.857 posts de conteúdo técnico brasileiro, curado e aberto. Isso já é mais do que a maioria dos datasets em PT-BR disponíveis para pesquisa. E só foi possível porque o TabNews existe e porque essa comunidade produz conteúdo de qualidade.

🔗 Dataset: huggingface.co/datasets/CromIA/crom-tabnews-db
🔗 Opt-Out: Formulário de Remoção
🔗 Crom AI Research: crom.run


Pesquisa conduzida por @pedrodev2026 e MrJCrom AI Research.

💬 Discord para falar de Tecnologia e Filosofia

Carregando publicação patrocinada...
6