| license | cc-by-nc-sa-4.0 | ||||
|---|---|---|---|---|---|
| language |
|
||||
| tags |
|
||||
| short_description | Dataset para detecção de hate speech LGBTQIA+ em português |
Dataset para detecção de hate speech contra pessoas LGBTQIA+ em português brasileiro, contendo comentários coletados de três redes sociais.
Fornecer bases de dados limpas e organizadas de comentários de ódio contra pessoas LGBTQIA+ em português brasileiro, prontas para uso por pesquisadores e desenvolvedores.
- Total: 12.102 registros
- Plataformas: Instagram, TikTok, YouTube
- Conteúdo: Comentários coletados durante onda de ódio contra o podcast Entre Amigues
- Estrutura: Apenas coluna
text(comentários limpos) - Formato: CSV com delimitador vírgula, encoding UTF-8
- Total: 2.098 registros
- Fonte: Comentários do Instagram coletados durante ataques ao podcast
- Estrutura: Apenas coluna
text - Formato: CSV com delimitador vírgula, encoding UTF-8
- Total: 1.891 registros (962 positivo, 703 ódio, 226 neutro)
- Fonte: Comentários do Instagram com anotações manuais detalhadas
- Formato: CSV com delimitador ponto-e-vírgula (;), encoding UTF-8
- Diferencial: Única base com classificação manual e categorização detalhada
Colunas de Metadados:
id: ID do comentárioComment Text: Texto do comentárioComment Date: Data do comentárioComment Likes: Número de curtidasHas Replies: Possui respostas (Sim/Não)Reply Count: Número de respostasavaliacao: Classificação geral (positivo/neutro/odio)has_emoji: Possui emoji (0/1)
Colunas de Categorização de Ódio (0/1):
assedio_insulto: Assédio e insultoameaca_incitacao: Ameaça e incitaçãopatologizacao_pseudociencia: Patologização e pseudociênciatransfobia: Transfobiahomofobia: Homofobialesbofobia: Lesbofobiabifobia: Bifobiaintersexofobia: Intersexofobialgbtfobia: LGBTfobia geralracismo: Racismogordofobia: Gordofobiaintolerancia_religiosa: Intolerância religiosamisgendering_deadnaming: Misgendering e deadnamingdesumanizacao_animalizacao: Desumanização e animalizaçãosexualizacao_assedio_sexual: Sexualização e assédio sexualpanico_moral_criancas: Pânico moral sobre criançasdesinformacao_genero: Desinformação sobre gênero
Colunas de Análise de Emoji (0/1):
emoji_negacao_identidade: Emoji de negação de identidadeemoji_violencia: Emoji de violênciaemoji_desumanizacao: Emoji de desumanizaçãoemoji_morte: Emoji de morteemoji_zombaria: Emoji de zombariaemoji_positivo: Emoji positivo
Colunas Adicionais:
dm_link: Link para mensagem diretaseveridade_global: Nível de severidade (0-2)
Esta é a única base com categorização detalhada manual, permitindo análise granular dos tipos de discurso de ódio.
- Total: 5.133 registros (variáveis por rastreamento)
- Fonte: Base Instagram expandida via Self-Instruct para treinamento de modelo
- Formato: CSV com delimitador vírgula, encoding UTF-8
- Diferencial: Base expandida usando técnicas de data augmentation
Colunas:
text: Texto do comentáriois_hate: Classificação binária (0=não-hate, 1=hate)source: Origem do registro (original/augmented)
Técnicas de Expansão Aplicadas (Self-Instruct):
- Paráfrases: Variações de pontuação, maiúsculas/minúsculas, espaçamento
- Substituição de emojis: 😂→😆, 🤣→😂, ❤️→💕, etc.
- Variações de termos LGBTQIA+: 'gay'→'homossexual', 'lésbica'→'sapatão', 'trans'→'transgênero'
- Substituição de termos ofensivos: Variações ortográficas (ex: 'viado'→'veado')
- Geração de sinônimos: Sinônimos contextuais para intensificar/atenuar
- Variações de contexto: Adição de intensificadores (hate) ou contexto positivo (não-hate)
Objetivo: Esta base foi criada especificamente para o treinamento do modelo Tupi-BERT-Large (fine-tuning), expandindo a base original de ~2.098 para ~5.133 exemplos para melhor performance em classificação binária (hate/não-hate).
Uso: Ideal para treinamento de modelos de classificação binária de hate speech.
- Total: 6.271 registros
- Fonte: Comentários do TikTok relacionados a conteúdo LGBTQIA+
- Estrutura: Apenas coluna
text - Formato: CSV com delimitador vírgula, encoding UTF-8
- Total: 3.733 registros
- Fonte: Comentários do YouTube em vídeos LGBTQIA+
- Estrutura: Apenas coluna
text - Formato: CSV com delimitador vírgula, encoding UTF-8
Estes dados foram coletados durante uma onda de ódio coordenada contra o podcast Entre Amigues da equipe Código Não Binário. Os comentários representam discurso real de ódio dirigido à comunidade LGBTQIA+.
Podcast: Entre Amigues - https://linktr.ee/entre_amigues
Equipe: Código Não Binário
Período: Coleta realizada durante ataques coordenados
Anotação: Manual por especialistas em direitos LGBTQIA+
Todos os CSVs seguem o formato:
text
"Comentário de ódio exemplo..."
"Outro comentário..."- Delimitador: Vírgula (,)
- Encoding: UTF-8
- Aspas: Textos entre aspas duplas para evitar problemas com vírgulas
- Sem índices: Coluna de ID removida para focar apenas no texto
import pandas as pd
# Carregar base geral
df_geral = pd.read_csv('base-geral-odio-lgbt.csv')
# Carregar base por plataforma
df_instagram = pd.read_csv('base-instagram-separada-odio-lgbt.csv')
df_instagram_anotada = pd.read_csv('base-instagram-separada-odio-lgbt-anotada.csv', sep=';') # ⭐ COMPLETA
df_instagram_aumentada = pd.read_csv('base-instagram-separada-odio-lgbt-aumentada.csv') # 🤖 EXPANDIDA
df_tiktok = pd.read_csv('base-tiktok-separada-odio-lgbt.csv')
df_youtube = pd.read_csv('base-youtube-separada-odio-lgbt.csv')
print(f"Total de comentários gerais: {len(df_geral)}")
print(f"Total Instagram: {len(df_instagram)}")
print(f"Total Instagram ANOTADA: {len(df_instagram_anotada)} (com labels e categorização detalhada)")
print(f"Total Instagram AUMENTADA: {len(df_instagram_aumentada)} (para treinamento)")
print(f"Total TikTok: {len(df_tiktok)}")
print(f"Total YouTube: {len(df_youtube)}")
# Análise da base anotada
print(f"\nDistribuição na base anotada:")
print(df_instagram_anotada['avaliacao'].value_counts())
# Análise detalhada de categorias de ódio
print(f"\nCategorias de ódio mais frequentes:")
categorias = ['transfobia', 'homofobia', 'lesbofobia', 'lgbtfobia', 'assedio_insulto']
for cat in categorias:
if cat in df_instagram_anotada.columns:
count = df_instagram_anotada[cat].sum()
print(f" {cat}: {count} ocorrências")from datasets import load_dataset
# Carregar do Hugging Face
dataset = load_dataset("Veronyka/base-dados-odio-lgbtqia")| Dataset | Total de Registros |
|---|---|
| Geral (3 plataformas) | 12.102 |
| 2.098 | |
| Instagram Anotada ⭐ | 1.891 |
| Instagram Aumentada 🤖 | 5.133 |
| TikTok | 6.271 |
| YouTube | 3.733 |
Total único: 12.102 comentários (consolidados das 3 plataformas)
Base anotada: 1.891 comentários com classificação manual validada
Base aumentada: 5.133 comentários para treinamento (Self-Instruct)
- ✅ Dados pessoais removidos: IDs, nomes de usuários, URLs
- ✅ Anonimização: Identificadores substituídos
- ✅ Conformidade LGPD: Dados processados conforme legislação brasileira
- ✅ Uso responsável: Apenas para pesquisa e combate ao ódio
- URLs →
[URL] - @usuario →
[MENTION] - #hashtag →
[HASHTAG] - Remoção de textos < 3 caracteres
- Normalização de espaços em branco
Para contribuir com novos dados ou melhorias:
- Faça um fork do repositório
- Adicione seus dados seguindo o padrão (apenas coluna
text) - Valide que não contém dados pessoais
- Submeta um pull request
cc-by-nc-sa-4.0 - Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International
- Modelo treinado: tupi-bert-lgbtqia-trained
- Space de análise: radar-social-lgbtqia-v2
Este dataset contém conteúdo sensível relacionado a discurso de ódio contra pessoas LGBTQIA+. Use com responsabilidade e sempre considere o impacto ético de suas aplicações.
Objetivo: Combater ódio, não propagá-lo.
📅 Versão: 2.0 - Processado em 25/10/2025
👤 Autor: Veronyka Gimenes
🏳️🌈 Código Não Binário