O problema das piadas de piada curta e engraçada
A maioria das pessoas acha que piada curta e engraçada é só jogar um Setup + punchline e torcer. Em 2018 eu estava moderando um grupo de humor no Facebook e vi um post que levou 3 minutos para ser removido por spam e mais 4 horas para ser deletado manualmente porque o algoritmo não distinguia entre conteúdo gerado por IA e piada original. O dono do grupo, um cara chamado Carlos que trabalhava em TI, resolveu o problema rodando um script Python bem simples que checa a similaridade textual antes de publicar. Eu comecei a fazer o mesmo depois que percebi que meu site de piadas curtas estava caindo nas mãos de bots que massacravam o conteúdo com geradores aleatórios. Hoje eu uso uma combinação de duas camadas: primeiro um filtro de duplicata com sim-hash, depois uma análise básica de perplexidade com um modelo leve local.
Onde baixar piadas curtas e engraçadas de forma segura
Existem três fontes que eu recomendo. A primeira é o repositório short-jokes-pt no GitHub, criado pelo Rafael Mendes em 2022. São cerca de 8 mil piadas curtas anotadas manualmente, formato JSON, licença MIT. O download é direto no raw do repositório. A segunda opção é o projeto br-jokes-dataset, mantido pela universidade Federal de Minas Gerais. O arquivo CSV tem 12 mil entradas, mas vem sujo — precisa de limpeza antes de usar. A terceira fonte, menos conhecida, é o banco de dados do canal Piada ou Rouba no YouTube, onde um desenvolvedor decidiu fazer scraping ético e disponibilizou os arquivos num Google Drive público. Eu uso esse último para treinar meus filtros de qualidade. O problema real com esses datasets é que a maioria das piadas curtas engraçadas não passa em testes de originalidade. Quando você cruza os três bancos, aparece sobreposição de 40 por cento entre eles. O que significa que se você simplesmente rodar um scraper, vai publicar o mesmo conteúdo que todo mundo já publicou. A solução que encontrei foi criar uma camada de variação controlada: escolher piadas com score de similaridade abaixo de 0.3 e aplicar um transformer de rewrite local.
Como montar o pipeline na prática
Você vai precisar de quatro coisas. Um interpretador Python 3.9 ou superior. A biblioteca SimHash para detecção de duplicatas aproximadas. O modelo tinybert-portuguese para análise de perplexidade. E um arquivo de stopwords em português que você encontra no NLTK ou num repositório like porter-portuguese-stopwords. O fluxo funciona assim. Primeiro você baixa as piadas brutass de uma das fontes citadas acima. Depois executa a normalização — lowercase, remoção de pontuação desnecessária, collapse de múltiplos espaços. Em seguida passa pelo SimHash e descarta tudo que tiver hamming distance menor que 3 do seu banco já indexado. Finalmente roda pelo tinybert e guarda apenas amostras com perplexidade inferior a 85. Isso elimina piadas genéricas e mantém o que tem estrutura real de humor.
👉 Clique no botão abaixo para saber mais sobre o assunto!
Na minha experiência, esse pipeline leva cerca de 12 minutos para processar 5 mil piadas num hardware médio. Sem o filtro de perplexidade, o tempo cai para 4 minutos, mas a qualidade do conteúdo publicado despenca. Com os dois filtros ativos, a taxa de aprovação manual sobe de 30 para 78 por cento.
Edge case que quase me custou tudo
Em março de 2023, publiquei cerca de 2 mil piadas sem a camada de perplexidade. No dia seguinte, recebi uma notificação do Google Search Console dizendo que 67 por cento das páginas haviam sido marcadas como thin content. O problema era que as piadas curtas do dataset da UFMG vinham com variações de spacing que quebravam o SimHash. Piadas idênticas porém com tabs e espaços diferentes passavam pelos dois filtros e eu publicava versões duplicadas do mesmo conteúdo. A correção foi adicionar um step de canonicalização de whitespace usando regex antes do SimHash. O comando em Python é basicamente re.sub(r'\s+', ' ', texto).strip(). Depois disso, a taxa de duplicação caiu para menos de 2 por cento e as páginas recuperaram indexação em cerca de 18 dias.
O que ninguém conta sobre piadas curtas e engraçadas
A Armadilha mais comum é achar que quantidade resolve. Eu vi gente publicando 50 piadas por dia durante três meses e o site nunca sair do nada. O que funciona é consistência com qualidade mínima. Eu mantenho uma cadência de 12 a 15 piadas bem filtradas por semana. O resultado é outro comparado aos 50 spam. Outro ponto cego é a variação regional. O dataset da UFMG tem muita piada do Sul e Sudeste. Se você não incluir variações do Nordeste e do Norte, seu conteúdo fica desbalanceado e seu público sente isso na leitura. Uma solução simples é complementar com dados do projeto palavras-do-brasil, que tem piadas registradas por estado.
Se você quer apenas consumir piadas curtas e engraçadas sem montar pipeline nenhum, o caminho mais rápido é o repositório do Rafael Mendes. Baixe, abra o JSON e pronto. Se quiser ir além, o filtro de perplexidade é o que faz diferença real. Teste com threshold 85 primeiro. Se achar muito restritivo, ajuste para 95.