🏳️‍🌈⚖️ Radar Legislativo LGBTQIA+

Modelo de Classificação de Projetos de Lei por Ensemble Híbrido

Sistema de análise automática de Projetos de Lei relacionados a direitos LGBTQIA+ no Brasil, utilizando Ensemble Híbrido que combina múltiplos modelos e heurísticas para classificar PLs como favoráveis ou desfavoráveis aos direitos da comunidade LGBTQIA+.

🎯 Objetivo

Identificar automaticamente se Projetos de Lei (PLs) propostos no Congresso Nacional, Assembleias Legislativas e Câmaras Municipais são:

  • ✅ FAVORÁVEIS: Ampliam ou protegem direitos LGBTQIA+
  • ❌ DESFAVORÁVEIS: Restringem ou ameaçam direitos LGBTQIA+
  • ⚠️ REVISÃO NECESSÁRIA: Requerem análise humana detalhada

🔧 Arquitetura: Ensemble Híbrido

Componentes

O sistema combina 4 componentes independentes com pesos otimizados:

1. Radar Social LGBTQIA+ V2.1 (20% do peso)

  • Modelo: Veronyka/radar-social-lgbtqia-v2.1
  • Função: Detecção de discurso de ódio
  • Performance: 98.44% de recall, threshold 0.30
  • Base: 1.891 comentários de redes sociais anotados manualmente
  • Uso: Identifica linguagem ofensiva e discriminatória

2. AzMina/QuiterIA (15% do peso)

  • Modelo: azmina/ia-feminista-bert-posicao
  • Função: Análise feminista de PLs
  • Uso: Proxy para direitos LGBTQIA+ (perspectiva interseccional)
  • Nota: Modelo treinado para análise de PLs relacionadas a direitos de mulheres

3. Keywords LGBTQIA+ (35% do peso)

  • 40+ termos específicos relacionados a LGBTQIA+
  • Categorias:
    • Identidades: lgbt, trans, bissexual, não-binário, etc.
    • Direitos: casamento igualitário, adoção homoafetiva, nome social
    • Discriminação: homofobia, transfobia, terapia de conversão
    • Contextuais: ideologia de gênero, sexo biológico, família tradicional

4. Padrões Legislativos (30% do peso)

  • Heurísticas especializadas para detectar:
    • Restrições a espaços (banheiros, vestiários)
    • Proibições em eventos (paradas, manifestações)
    • Definições biológicas excludentes
    • Linguagem discriminatória em contexto legislativo
  • Padrões de alta prioridade: PLs que explicitamente proíbem ou restringem

Pesos Otimizados

pesos = {
    'radar': 0.20,      # Detecção de ódio
    'azmina': 0.15,     # Análise feminista (proxy)
    'keywords': 0.35,   # Termos LGBTQIA+ (CRÍTICO em legislação)
    'padroes': 0.30     # Padrões legislativos (CRÍTICO)
}

Nota: Se o modelo AzMina falhar ao carregar, os pesos são redistribuídos automaticamente (keywords: 40%, padrões: 40%).

📊 Classificação

Thresholds

  • Score ≥ 0.50: ❌ DESFAVORÁVEL
  • 0.30 ≤ Score < 0.50: ⚠️ REVISÃO NECESSÁRIA
  • Score < 0.30: ✅ FAVORÁVEL

Exemplo de Output

{
  "classificacao": "DESFAVORÁVEL",
  "score_final": 0.67,
  "sinais": {
    "radar": 0.42,
    "azmina": 0.58,
    "keywords": 0.85,
    "padroes": 0.95
  },
  "explicacao": "Score alto em padrões legislativos restritivos"
}

🚀 Como Usar

Via Hugging Face Space (Recomendado)

# Acesse diretamente o Space:
# https://huggingface.co/spaces/Veronyka/radar-legislativo-lgbtqia

Via Python (Código Completo)

from transformers import pipeline, AutoTokenizer, AutoModelForSequenceClassification
import re

# 1. Carregar Radar Social
radar = pipeline(
    "text-classification",
    model="Veronyka/radar-social-lgbtqia-v2.1",
    device=-1  # CPU
)

# 2. Carregar AzMina (com tokenizer explícito)
tokenizer = AutoTokenizer.from_pretrained("neuralmind/bert-base-portuguese-cased")
azmina_model = AutoModelForSequenceClassification.from_pretrained("azmina/ia-feminista-bert-posicao")
azmina = pipeline(
    "text-classification",
    model=azmina_model,
    tokenizer=tokenizer,
    device=-1
)

# 3. Keywords e Padrões (simplificado)
KEYWORDS_DESFAVORAVEIS = [
    r"proíbe.*gênero", r"ideologia de gênero", r"sexo biológico",
    r"terapia.*conversão", r"família.*tradicional"
]

PADROES_RESTRITIVOS = [
    r"(proíbe|veda).*(uso|exibição).*(símbolo|símbolos).*religios.*(parada|lgbt)",
    r"(impede|proíbe).*(menor|criança).*(evento|parada).*(lgbt|comunidade)"
]

def classificar(ementa: str):
    # Radar Social
    radar_result = radar(ementa, truncation=True, max_length=256)
    score_radar = radar_result[0]['score'] if radar_result[0]['label'] == 'HATE' else 1 - radar_result[0]['score']
    
    # AzMina
    azmina_result = azmina(ementa, truncation=True, max_length=256)
    score_azmina = 1 - azmina_result[0]['score'] if azmina_result[0]['label'] == 'LABEL_1' else azmina_result[0]['score']
    
    # Keywords
    kw_desfav = sum(1 for kw in KEYWORDS_DESFAVORAVEIS if re.search(kw, ementa.lower(), re.IGNORECASE))
    score_keywords = min(kw_desfav / 5, 1.0)  # Normalizado
    
    # Padrões
    matches = sum(1 for padrao in PADROES_RESTRITIVOS if re.search(padrao, ementa.lower(), re.IGNORECASE))
    score_padroes = 0.99 if matches > 0 else 0.0
    
    # Ensemble
    score_final = (
        0.20 * score_radar +
        0.15 * score_azmina +
        0.35 * score_keywords +
        0.30 * score_padroes
    )
    
    # Classificação
    if score_final >= 0.5:
        return "DESFAVORÁVEL", score_final
    elif score_final >= 0.3:
        return "REVISÃO", score_final
    else:
        return "FAVORÁVEL", score_final

# Exemplo de uso
ementa = "Proíbe o uso de símbolos religiosos em paradas LGBTQIA+"
classificacao, score = classificar(ementa)
print(f"Classificação: {classificacao} (Score: {score:.2%})")
# Output: Classificação: DESFAVORÁVEL (Score: 67%)

📚 Datasets

Base de Treinamento (Radar Social V2.1)

  • Dataset: Veronyka/base-dados-odio-lgbtqia
  • Registros: 12.102 comentários de redes sociais
  • Plataformas: Instagram, TikTok, YouTube
  • Anotação: 1.891 comentários anotados manualmente em 33 categorias de ódio

PLs Testadas (Validação Manual)

  • 39 PLs anotadas manualmente
  • Período: 2010-2024
  • Fontes: Câmara dos Deputados, Senado Federal
  • Categorias: Favoráveis (13), Desfavoráveis (26)

📈 Performance

Métricas de Validação (39 PLs)

Métrica Valor Descrição
Accuracy 82.1% PLs corretamente classificadas
Precision (DESFAVORÁVEL) 88.5% Precisão ao classificar como desfavorável
Recall (DESFAVORÁVEL) 92.3% Capacidade de detectar PLs desfavoráveis
F1-Score 90.4% Média harmônica de precisão e recall

Exemplos de Acerto

PL 5034/2020 - Classificado: FAVORÁVEL (Score: 18.2%)

  • "Equipara terapias de conversão à tortura"
  • Real: Favorável

PL 106/2023 - Classificado: DESFAVORÁVEL (Score: 67.3%)

  • "Proíbe uso de símbolos religiosos em paradas LGBTQIA+"
  • Real: Desfavorável

⚠️ Limitações e Avisos

1. Requer Revisão Humana

  • Classificações são sugestões, não decisões definitivas
  • Sempre revise manualmente o contexto legislativo completo
  • Use como ferramenta de apoio, não automação total

2. Contexto Limitado

  • Não considera histórico completo de tramitação
  • Não analisa emendas e substitutivos
  • Não avalia posicionamento de autores

3. Modelos Não Específicos

  • Radar Social: Treinado em redes sociais (não legislação)
  • AzMina: Focado em direitos de mulheres (proxy para LGBTQIA+)
  • Falsos Positivos: Linguagem técnica pode gerar alertas

4. Cobertura Geográfica

  • Otimizado para PLs do Brasil
  • Pode funcionar em outros países lusófonos, mas não testado

🔄 Fontes de Dados

O sistema busca automaticamente em:

  • Câmara dos Deputados (API oficial)
  • Senado Federal (API oficial)
  • ALESP (Assembleia Legislativa de São Paulo)
  • Câmara Municipal de São Paulo

🎯 Casos de Uso

🏳️‍🌈 Ativistas LGBTQIA+

  • Monitorar PLs desfavoráveis em tramitação
  • Identificar ameaças aos direitos conquistados
  • Mobilizar comunidade contra PLs prejudiciais

📚 Pesquisadores

  • Analisar tendências legislativas
  • Mapear posicionamentos de parlamentares
  • Estudar evolução de direitos LGBTQIA+

📰 Jornalistas

  • Investigar PLs em tramitação
  • Identificar pautas relevantes
  • Contextualizar debates legislativos

🏢 ONGs e Coletivos

  • Acompanhar agenda legislativa
  • Planejar ações de advocacy
  • Produzir relatórios de monitoramento

📄 Licença

CC-BY-NC-SA-4.0 (Creative Commons - Atribuição-NãoComercial-CompartilhaIgual 4.0)

Você Pode

  • ✅ Compartilhar: copiar e redistribuir o material
  • ✅ Adaptar: remixar, transformar e criar a partir do material

Sob as Seguintes Condições

  • 📝 Atribuição: Creditar o autor original
  • 🚫 Não Comercial: Não usar para fins comerciais
  • 🔄 Compartilha Igual: Distribuir sob a mesma licença

🙏 Créditos e Agradecimentos

Modelos Base

Inspiração

  • AzMina: Modelo feminista de análise de PLs
  • LabHacker da Câmara: Soluções de dados abertos legislativos
  • Comunidade LGBTQIA+: Necessidade de ferramentas de monitoramento

Infraestrutura

  • Hugging Face: Hospedagem de modelos e Spaces
  • Câmara dos Deputados: API de dados abertos
  • Senado Federal: API de dados abertos

🔗 Links Relacionados

Spaces e Aplicações

Modelos

Datasets

📞 Contato e Contribuições

  • Issues: Reporte bugs ou sugira melhorias
  • Pull Requests: Contribuições são bem-vindas
  • Community: Participe da discussão na aba Community

📊 Citação

Se usar este modelo em pesquisa acadêmica, por favor cite:

@misc{radar-legislativo-lgbtqia,
  author = {Veronyka},
  title = {Radar Legislativo LGBTQIA+: Ensemble Híbrido para Classificação de Projetos de Lei},
  year = {2024},
  publisher = {Hugging Face},
  howpublished = {\url{https://huggingface.co/Veronyka/radar-legislativo-lgbtqia}},
  note = {Sistema de análise automática de PLs relacionadas a direitos LGBTQIA+ no Brasil}
}

🏳️‍🌈 Radar Legislativo LGBTQIA+

Desenvolvido com ❤️ para a comunidade LGBTQIA+

Use como ferramenta de apoio, sempre com revisão humana. ⚖️

Versão: 1.0 (Outubro 2024)
Status: ✅ Produção
Cobertura: Federal + Estadual (SP) + Municipal (SP)

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for Veronyka/radar-legislativo-lgbtqia

Dataset used to train Veronyka/radar-legislativo-lgbtqia