Spaces:
Running
on
Zero
Running
on
Zero
File size: 4,366 Bytes
3c919fd |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 |
# 🔍 Radar Automático de PLs LGBTQIA+
Sistema de busca automática de Projetos de Lei relacionados a direitos LGBTQIA+ nas casas legislativas do Brasil.
## 📋 Funcionalidades
### ✅ Implementado
- **Câmara dos Deputados**: Busca automática via API de Dados Abertos
- Filtra PLs do ano atual e anterior
- Busca termos específicos LGBTQIA+ na ementa
- Análise automática com Ensemble Híbrido
### 🚧 Em Desenvolvimento
- **Senado Federal**: API disponível, implementação em andamento
- **Câmara Municipal de São Paulo**: Verificando disponibilidade de API
- **ALESP (Assembleia Legislativa de SP)**: Verificando disponibilidade de API
## 🎯 Como Usar
### Via Interface Gradio
1. Inicie o app:
```bash
python app.py
```
2. Acesse: http://127.0.0.1:7860
3. Vá para a aba **"🔍 Radar Automático"**
4. Configure:
- **Últimos N dias**: Quantos dias atrás buscar (padrão: 90)
- **Limite por fonte**: Máximo de PLs por fonte (padrão: 20)
5. Clique em **"🔍 Buscar PLs nas APIs"**
6. O sistema vai:
- Buscar PLs recentes na Câmara dos Deputados
- Filtrar por termos LGBTQIA+
- Analisar cada PL encontrado
- Mostrar resultados com classificação
### Via Python Direto
```python
from api_radar import buscar_todas_fontes, filtrar_pls_relevantes
# Buscar PLs dos últimos 90 dias
pls = buscar_todas_fontes(dias_atras=90, limite_por_fonte=20)
# Filtrar por relevância
pls_relevantes = filtrar_pls_relevantes(pls, termos_minimos=1)
print(f"Encontradas {len(pls_relevantes)} PLs relevantes")
```
## 🔍 Termos de Busca
### Termos Específicos (Alta Relevância)
- `lgbt`, `lgbtqia`, `trans`, `transgênero`, `transexual`, `travesti`
- `homofobia`, `transfobia`, `homossexual`
- `identidade de gênero`, `orientação sexual`, `diversidade sexual`
- `nome social`, `terapia de conversão`, `cura gay`
### Termos Contextuais (Relevância Média)
- `ideologia de gênero`, `banheiro`, `vestiário`
- `atleta trans`, `esporte feminino`, `competição feminina`
- `linguagem neutra`, `símbolos religiosos.*parada`
**Nota:** Termos contextuais só são aceitos quando combinados com palavras legislativas como "proíbe", "veda", "garante", "reconhece", etc.
## 📊 API da Câmara dos Deputados
**URL Base:** `https://dadosabertos.camara.leg.br/api/v2`
**Endpoint:** `/proposicoes`
**Parâmetros:**
- `siglaTipo`: Tipo de proposição (PL, PLS, PEC, etc)
- `ano`: Ano da proposição
- `itens`: Número de itens por página (máximo recomendado: 100)
**Limitações:**
- Não suporta busca textual direta na API
- Estratégia: buscar PLs recentes e filtrar localmente por termos
- Pode retornar muitos resultados sem filtro
## 🧪 Testando
```bash
# Teste básico de busca
python -c "from api_radar import buscar_camara_deputados; pls = buscar_camara_deputados(limite=5); print(f'Encontradas: {len(pls)} PLs')"
# Teste completo
python -c "from api_radar import buscar_todas_fontes; pls = buscar_todas_fontes(limite_por_fonte=10); print(f'Total: {len(pls)} PLs')"
```
## ⚠️ Limitações Atuais
1. **API da Câmara**: Funciona, mas requer filtragem manual (API não faz busca textual)
2. **Senado**: API disponível, mas estrutura diferente - precisa implementar parser
3. **Câmara SP / ALESP**: Pode não ter API pública - pode precisar de scraping web
4. **Rate Limiting**: Evitar muitas requisições simultâneas (código já tem delay)
5. **Falsos Positivos**: Filtro evita termos ambíguos (ex: "transporte" não é capturado)
## 🚀 Próximos Passos
1. **Implementar Senado Federal**
- Pesquisar estrutura da API
- Adaptar parser para formato XML/JSON do Senado
2. **Câmara Municipal de SP**
- Verificar se há API pública
- Se não houver, implementar scraping (respeitando ToS)
3. **ALESP**
- Verificar se há API pública
- Se não houver, implementar scraping
4. **Melhorias no Filtro**
- Adicionar mais termos específicos
- Melhorar detecção de contexto LGBTQIA+
- Reduzir falsos positivos
5. **Cache de Resultados**
- Salvar resultados para não buscar repetidamente
- Atualizar apenas PLs novas
## 📚 Referências
- [API Dados Abertos Câmara](https://dadosabertos.camara.leg.br/swagger/api.html)
- [Dados Abertos Senado](https://www12.senado.leg.br/dados-abertos/conjuntos)
- [Portal LexML](https://www.lexml.gov.br/)
|