-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathREADME.Rmd
516 lines (305 loc) · 31 KB
/
README.Rmd
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
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
---
output: github_document
---
<!-- README.md is generated from README.Rmd. Please edit that file -->
```{r, include = FALSE}
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>"
)
```
# Introdução
No presente projeto vou apresentar o trabalho final do curso de "Web scraping" da [Curso-R](www.curso-r.com). A ideia foi desenvolver ferramentas para raspar dados do Supremo Tribunal Federal (STF) e fazer algumas análises exploratórias preliminares e incipientes em cima destes dados. Espera-se, num futuro, desenvolver pacotes para análises mais profundas, inclusive em outros Tribunais.
Os feedbacks são **muito** bem vindos!
### Delimitação do tema
Vou aqui me ater ao [**Supremo Tribunal Federal**](www.stf.jus.br), a Corte cuja atuação (e omissão...) causa o maior impacto social, político e econômico em nossa sociedade.
Mais especificamente, analisar as causas que envolvem diretamente o **controle concentrado de constitucionalidade**. Isso é, examinaremos as classes processuais relativas a:
- [Ação Direta de Inconstitucionalidade (ADI)](https://pt.wikipedia.org/wiki/A%C3%A7%C3%A3o_direta_de_inconstitucionalidade),
- [Ação Declaratória de Constitucionalidade (ADC)](https://pt.wikipedia.org/wiki/A%C3%A7%C3%A3o_declarat%C3%B3ria_de_constitucionalidade),
- [Ação Declaratória de Inconstitucionalidade por Omissão (ADO)](https://pt.wikipedia.org/wiki/A%C3%A7%C3%A3o_direta_de_inconstitucionalidade_por_omiss%C3%A3o) e
- [Arguição de Descumprimento de Preceito Fundamental (ADPF)](https://pt.wikipedia.org/wiki/Argui%C3%A7%C3%A3o_de_descumprimento_de_preceito_fundamental).
Essas classes processuais representam a atividade mais tradicional e típica de um Tribunal Constitucional em sua concepção clássica. Faz sentido, então, prestigiar e analisar a atuação do STF sob esse aspecto. (Não se ignore que o Supremo Tribunal Federal brasileiro tem competências que vão muito além disso, mas isso é papo para outro projeto...).
Ainda, é possível verificar nessas ações como se dão **conflitos relevantes** não apenas entre sociedade civil e poder público mas também entre os Poderes Legislativo e Executivo bem como evidencia a atuação da Procuradoria-Geral da República.
Durante a **pandemia**, também, essas ações têm sido especialmente importantes para definição de esferas de responsabilidade (vide ADPF 722), a discussão sobre o plano de vacinação, etc, etc.
A ideia é mapear aspectos como quantidade de ações por tipo/ano, quais os principais litigantes dessas ações (considerando-se os poucos legitimados para tanto), quais os principais temas dessas ações, as palavras-chave mais utilizadas nas petições iniciais, etc.
Com os dados ora obtidos espera-se poder realizar todas essas análises (e várias outras), ainda que a limitação de tempo até a entrega final provavelmente não permita esgotá-las.
### Utilidade e pertinência de *web scraping*
Justifica-se a utilidade tendo-se em vista a importância (*crescente?*) do STF no cotidiano, não só das pessoas em carreiras jurídicas mas também da academia e das cidadãs e cidadãos comuns.
Trata-se de serviço público (cujo acesso à justiça é, inclusive, previsto na Constituição Federal) que, a despeito de sua importância, ainda é um *ilustre desconhecido*...
(E, sabemos, o juridiquês em nada ajuda: torço para que por meio da ciência de dados seja possível melhor compreender e melhor explicar o que faz o STF.)
De outro lado, não existe ainda disponibilizados dados abertos desse Tribunal e tampouco existe API pública e documentada que viabilize extração ordenada de dados. Portanto, até o momento, raspar os dados utilizando as técnicas aprendidas no curso é uma opção necessária e viável no presente caso.
Por fim, reitere-se que os processos judiciais são públicos por força do [artigo 93, IX da Constituição Federal](http://www.planalto.gov.br/ccivil_03/constituicao/constituicao.htm#art93ix.), que determina que "*todos os julgamentos do Poder Judiciário serão públicos*". Também, tomei o cuidado de fazer as requisições mais volumosas durante a madrugada a fim de não onerar o servidor: seria uma triste ironia ser processado por sobrecarregar o Tribunal...
## Descrição da Página
O portal do STF pode ser acessado pelo seguinte endereço: <http://portal.stf.jus.br/> que dá acesso direto à home. Lá, no topo da página, é possível realizar a consulta por processos:
![](img/home-stf.png)
A ferramenta de consulta é um formulário que permite que se preencha a **classe processual** escolhida e o **número**. Na sequência, *de forma invisível*, o site irá identificar o número de "incidente" e nos redirecionar para a ferramente de busca interna (uma espécie de "API escondida") que nos dará dados como os andamentos e as partes:
![](img/andamentos.png)
![](img/partes.png)
Outra das abas possiveis de ser analisada é a de "Peças processuais" que dá efetivo acesso a uma espécie de "pasta virtual" dos procesos, permitindo visualizar documentos, petições e decisões judiciais.
(*Quem teve o desprazer de manusear os autos de processos físicos ao ver hoje o processo virtual ser uma realidade chega a dar um suspiro de alívio*)
![](img/pagina_peças.png)
É através dessas páginas, portanto, que poderemos navegar e extrair dados para as análises futuras.
## Passos do fluxo do web scraping
Vou explicar brevemente os passos que adotei para poder realizar a raspagem das ações de controle concentrado. Basicamente, foram:
1. Lista de ações existentes
2. Obtenção do número localizador de cada ação (número de incidente)
3. Raspagem dos dados de parte
4. Raspagem dos andamentos
5. Acessar "pasta virtual" do caso
6. Localizar a petição inicial
7. Baixar o arquivo .pdf
a seguir mais detalhadamente cada uma delas.
### *1. Identificar a lista de ações atualmente existentes*
O primeiro passo foi localizar uma **lista de processos das classes escolhidas** (ADPF, ADC, ADO e ADI) que sejam efetivamente existentes. Uma informação importante é que os números das ações no STF são sequenciais, por força de seu regimento.
Isso quer dizer que as ações propostas receberão um número *de acordo com a ordem de sua propositura*: a primeira ação de uma classe (uma ADI, por exemplo) será número 1, a segunda número 2 e assim sucessivamente.
Seria possível, então, iniciar a busca pela primeira ação de cada uma das classes e iterar indefinidamente até localizar as mais recentes.
Contudo, aproveitou-se o fato de que o Tribunal possui um painel de estatística que contem um link para uma tabela em formado `.xlsx` contendo todos os casos distribuídos ou autuados desde 2000.
Optou-se por utilizar a tabela de casos *autuados* pois a distribuição é uma fase posterior, que pode levar alguns dias para ocorrer ou, mesmo, sequer acontecer.
![](img/relatorio_controle_concentrado.png)
Verificou-se que esse [link era estático](http://www.stf.jus.br/arquivo/cms/publicacaoBOInternet/anexo/estatistica/ControleConcentradoGeral/Lista_Autuados.xlsx) e, portanto, não seria necessário atualizá-lo com frequência. Assim, foi criada uma função que baixa diretamente esse arquivo.
### *2. Localizar o "incidente"*
A tabela de casos disponibilizada pelo Tribunal, embora útil, não contém todas as informações que são desejáveis para uma análise mais aprofundada.
Por isso, não basta saber "quais" são os números das ações: é preciso também localizar o **código de incidente**, que nos leva até a página que efetivamente contém os dados.
![](img/inspecionar-incidente.png)
Como esse é um número interno do sistema e, portanto, absolutamente arbitrário, é preciso descobri-lo caso a caso.
A melhor forma de fazer isso foi simular uma requisição da seguinte forma, criando uma função que recebe como parâmetros a classe e o número do processo:
``` R
# url da página
u_stf_listar <- "http://portal.stf.jus.br/processos/listarProcessos.asp"
# query que busca classe e numero
q_stf_listar <- list("classe" = classe,
"numeroProcesso" = numero)
# requisição
r_stf_listar <- httr::GET(u_stf_listar,
query = q_stf_listar)
```
Realizando essa requisição, sou redirecionado para a página com os dados do processo, cujo url conterá o número de incidente. Assim, extraio esse número da resposta:
```{r exemplo-regex-incidente, eval = FALSE, message = FALSE, warning = FALSE, include = FALSE}
r_stf_listar$url %>%
stringr::str_extract("(?<=\\?incidente\\=)[0-9]+$")
```
Iterando isso para cada um dos processos que desejo, salvo o resultado numa tabela auxiliar, salva em .rds para uso futuro:
```{r exemplo-tbl-incidente, echo=FALSE, message=FALSE, warning=FALSE, paged.print=FALSE}
head(readr::read_rds("data/incidentes.rds"))
```
### *3. Obtenção dos dados do processo*
Obtido o número de incidente, posso simular uma requisição para obter informações.
Observando mais atentamente as requisições, porém, observo que o site abre uma série de páginas menores que fazem também referência ao número do incidente.
![](img/abas-processo.png)
Essas páginas, do tipo XHR, se mostraram muito mais simples de serem salvas localmente e raspadas. Por isso, foram elas as utilizadas para criar uma função denominada `baixar_dados_processo` que recebe o incidente, busca as abas de meu interesse (nesse caso, as relativas a partes e andamentos) e as salva em disco caso já não existam.
### *4. Raspagem dos dados de parte*
Após salvar em disco o resultado da requisição para a aba relativa às partes, foi criada a função `ler_aba_partes` que, recebendo o número do incidente, localiza o arquivo adequado e realiza a leitura.
Como os dados são bem estruturados no arquivo `html`, conseguimos montar uma tabela contendo a natureza de cada uma das partes (requerente, requerida/o, interessada/o, *amicus curiae*) e seus respectivos representantes.
```{r exemplo-ler-partes, echo=FALSE, paged.print=FALSE}
source("R/3-pegar_dados.R")
ler_aba_partes(incidente = "5833114")
```
### *5. Raspagem dos dados de parte*
Procedimento semelhante é feito para os andamentos. Foi criada a função `ler_aba_andamento` que, recebendo o número do incidente, irá buscar o arquivo já salvo em disco.
Será lida a data e o nome de cada andamento e montada uma tabela estruturada com essas informações, sempre indexidadas com o número do incidente:
```{r exemplo-ler-andamentos, echo=FALSE, paged.print=TRUE}
ler_aba_andamento(incidente = "5833114")
```
### *6. Localizar a "pasta virtual" do caso*
Há uma aba específica com as peças processuais disponíveis ao público. Ela leva a uma outra página, como vimos, acima, onde os documentos listados se encontram.
O formato dessa página é bem mais complexo que as demais, porém felizmente ela também é acessível por meio do incidente.
Ela possui um painel de navegação contendo links para todos os documentos que, ao clicar, fazem com que seja aberto na página ao lado.
### *7. Identificar a petição inicial*
Uma vez aberta a pasta virtual podemos extrair todos os documentos disponíveis por lá. Contudo, para esse projeto *vamos extrair somente a petição inicial* que é a peça processual que define o objeto da causa.
Como o nome já diz, ela que inicia o processo e, portanto, é esperado que seja um dos primeiros documentos linkados. Verificamos no código fonte que todos os links de documentos continham texto explicativo do que se tratava e todos fazem referência a uma função `javascript`(que deve ter relação com a visualização do documento).
Assim, foi necessário localizar os *hyperlinks* e, dentre esses, os que fazem menção expressa a "petição inicial". Por segurança, caso nenhum documento seja localizado, iremos buscar o primeiro documento listado (afinal, é razoável supor que a inicial é a primeira das peças).
Localizado o link, capturamos a que página ele se redireciona e, assim, obtemos o link para a petição em si.
### *8. Dowload e leitura da petição inicial*
Foi criada a função `baixar_pet_inicial` que, recebendo o número do incidente, faz as etapas descritas acima e salva em disco o arquivo .pdf.
![](img/pdfs-baixados.png)
Da mesma maneira, a função `ler_pdf_inicial`busca a petição já baixada relativa ao incidente indicado e faz a leitura da mesma, retornando uma string com seu conteúdo.
```{r exemplo-ler-pdf, echo=FALSE}
source("R/5-ler_pdf.R", echo = FALSE, verbose = FALSE)
ler_pdf_inicial("5833114")
```
## Produtos da raspagem
Para os fins desse traballho, foram selecionadas todas as ações autuadas a partir de 2000 (primeiro ano disponibilizado na listagem do STF) até 04/12/2020. Foram salvos dados sobre as ações em si (direto do STF), os respectivos números de incidente, as partes, os andamentos, e a petição inicial.
Na pasta `/data` foram salvos arquivos .rds contendo esses dados. São os seguintes:
### *a) Base de incidentes*
É a tabela que salva a correspondência entre classe e número (informações conhecidas) com a do incidente (informação desconhecida).
```{r descreve-incidentes, echo=FALSE}
head(readr::read_rds("data/incidentes.rds"))
```
| Coluna | Descrição |
|-------------|------------------------------------------------------------|
| *classe* | Classe processual (ADI, ADC, ADO ou ADPF) |
| *numero* | Número sequencial daquele processo |
| *incidente* | Localizador numérico do processo no sistema interno do STF |
### *b) Base de partes*
Relaciona as partes para todos os processos da base.
Ela está em um formato em que o número do incidente é repetido para cada linha. A ideia é que seja possível filtrar, agrupar, pivotar e realizar join de acordo com a necessidade de cada análise.
```{r descreve-partes, echo=FALSE}
head(readr::read_rds("data/partes.rds"))
```
| Coluna | Descrição |
|-------------|---------------------------------------------------------------------------------------------------|
| *incidente* | Localizador numérico do processo no sistema interno do STF |
| *tipo* | Que qualidade a parte ocupa no processo (ex. requerente, requerida, advogada, amicus curiar, etc) |
| *nome* | Nome da parte |
### *c) Base de andamentos*
Relaciona os andamentos para todos os processos da base.
Assim como a anterior, está em um formato em que o número do incidente é repetido para cada linha. A ideia é que seja possível filtrar, agrupar, pivotar e realizar join de acordo com a necessidade de cada análise.
```{r descreve-andamentos, echo=FALSE}
head(readr::read_rds("data/andamentos.rds"))
```
| Coluna | Descrição |
|-------------|------------------------------------------------------------|
| *incidente* | Localizador numérico do processo no sistema interno do STF |
| *data* | Data em que ocorreu o andamento |
| *nome* | Andamento em si |
### *d) Base de inteiro teor de petições*
Relaciona o inteiro teor das petições para todos os processos da base de acordo com a leitura que foi possível realizar.
Assim como a anterior, está em um formato em que o número do incidente é repetido para cada linha. A ideia é qie seja possível filtrar, agrupar, pivotar e realizar join de acordo com a necessidade de cada análise.
Por ser um texto extenso, é a única que está compactada. Ela também foi pré-processada com o pacote `{pdftools}` para que fosse colapsada em apenas uma única grande string. Caso a petição seja uma imagem (mais comum com os processos mais antigos) a leitura não será feita.
```{r descreve-peticoes, echo=FALSE}
# garantir que não seja linhas em branco
readr::read_rds("data/peticoes.rds") %>%
dplyr::filter(texto_inicial != "") %>%
tail()
```
| Coluna | Descrição |
|------------------|------------------------------------------------------------|
| *incidente* | Localizador numérico do processo no sistema interno do STF |
| *texto\_inicial* | String colapsada contendo todo o teor da petição inicial |
### *e) Base de palavras-chave*
Não extraída diretamente do STF, mas decorrente de um pré-processamento do texto da petição inicial, ela relaciona as palavras mais frequentes em cada petição inicial.
É uma primeira experiência para futura aplicação de técnicas de modelagem de texto. Ainda está sujeita a *muitas* melhorias e serve, por enquanto, apenas enquanto protótipo.
Pode ajudar a identificar o assunto levado à Corte.
```{r descreve-palavras-chave, echo=FALSE}
readr::read_rds("data/palavras-chave.rds") %>%
dplyr::filter(palavra != "") %>%
tail()
```
| Coluna | Descrição |
|-------------|------------------------------------------------------------|
| *incidente* | Localizador numérico do processo no sistema interno do STF |
| *palavra* | Lista das 10 palavras mais frequentes no documento |
### *f) Base de palavras-chave-nest*
Semelhante à anterior, porém em formato de list column. Ou seja, está aninhado à cada incidente um `data frame` com a lista das palavras mais frequentes e sua respectiva quantidade.
```{r descreve-palavras-chave-nest, echo=FALSE}
readr::read_rds("data/palavra-chave-nest.rds") %>%
dplyr::filter(palavra != "") %>%
tail()
```
| Coluna | Descrição |
|-------------|------------------------------------------------------------------------------------|
| *incidente* | Localizador numérico do processo no sistema interno do STF |
| *palavra* | Data frame contendo duas colunas: `token`(com a palavra) e `n`(com sua quantidade) |
# Algumas Análises
```{r chama-analises, message=FALSE, warning=FALSE, include=FALSE, paged.print=FALSE}
# chamar arquivo com as análises
source("R/8-analises.R", encoding = "UTF-8")
```
Sem qualquer pretensão de esgotar o tema, faremos aqui algumas poucas análises exploratórias apenas para ilustrar o potencial do tema e mostrar a beleza que é o mundo jurídico (especialmente quando a ele se olha pela lente dos dados).
## Distribuição das ações ao longo dos últimos anos
O primeiro aspecto que podemos observar é a **quantidade** de ações de controle concentrado de constitucionalidade ao longo dos anos. Abaixo, sem fazer distinção de qual categoria, vamos ver como se deu essa distribuição:
```{r grafico_distribuicao_acoes, echo=FALSE, message=FALSE, warning=FALSE}
grafico_distribuicao_acoes
```
Aqui não estamos preocupados com o "saldo" de ações, ou seja, o gráfico acima *não é afetado pela produtividade do Tribunal* mas indica **como variou** a "procura" pela sua tutela constitucional ao longo do período.
E chama muito a atenção a **tendência acentuada no aumento ao longo dos últimos anos**, em especial a partir de 2019. Uma hipótese para esse aumento é o cenário de *crise institucional* presente no país desde a eleição do atual Presidente da República.
Como já noticiado, é uma característica de seu governo o excesso de Decretos editados, muitas vezes indo além dos limites legais. [Já noticiou o UOL](https://noticias.uol.com.br/ultimas-noticias/agencia-estado/2019/05/18/30-medidas-do-governo-ja-sao-alvo-de-acoes-no-stf.htm) que, antes de terminado o primeiro semestre de 2019, já havia mais de 30 medidas questionadas no STF. Alguns veículos, [como o Estadão](https://politica.estadao.com.br/noticias/geral,sem-articulacao-oposicao-investe-em-acoes-no-stf-contra-bolsonaro,70003019596), apontam uma espécie de estratégia da oposição de ir mais frequentemente ao Supremo contra atos da Presidência, sobretudo face um estado de tensão entre os Poderes.
Outra explicação, agravada pelo contexto acima descrito, é a **pandemia de COVID-19** que enfrentamos nesse momento. Veja-se que, mesmo antes de encerrado o ano de 2020, esse ano já é recordista em ações constitucionais propostas,
## Evolução nas classes processuais
Um outro aspecto interessante é observar *quais* os instrumentos vêm sendo mais utilizados dentre os 4 normalmente disponíveis no âmbito do controle de constitucionalidade.
Veremos abaixo a evolução de cada uma das classes ao longo dos últimos anos:
```{r grafico_acoes_classe, echo=FALSE, message=FALSE, warning=FALSE}
grafico_acoes_classe
```
Percebe-se, naturalmente, uma prevalência da ADI, que se mantem constante, bem como uma baixa utilização da ADC e da ADO, que foram melhor regulamentadas ao longo do início dos anos 2000. Chama a atenção, contudo, como evoluiu - sobretudo nos últimos anos - a utilização da ADPF.
Isso é curioso justamente por ser uma característica dessa ação a subsidiariedade. Ou seja, ela deveria ser residual em seu cabimento. Algumas hipóteses que podem explicar esse crescimento são uma maior criatividade dos proponentes, que vêm se ancorando em teses como a do "*estado de coisas inconstitucional*" a exemplo do utilizado nas ADPFs [347](http://portal.stf.jus.br/processos/detalhe.asp?incidente=4783560), [635](http://portal.stf.jus.br/processos/detalhe.asp?incidente=5816502), [709](http://portal.stf.jus.br/processos/detalhe.asp?incidente=5952986) e [760](http://portal.stf.jus.br/processos/detalhe.asp?incidente=6049993).
## Atividade dos proponentes
Sabemos que as ações de controle concentrado possuem um rol estreito de legitimados à sua propositura e que é previsto no [artigo 103 da Constituição Federal](http://www.planalto.gov.br/ccivil_03/constituicao/constituicao.htm#art103). Basicamente, são esses:
- Presidente da República e Governadores,
- Poder Legislativo (Câmara dos Deputados, Senado, Assembléias Legislativas e Distrital),
- Procuradoria-Geral da República,
- Conselho Federal da OAB,
- Partidos políticos com representantes no Congresso Nacional,
- Confederações sindicais ou entidades de classe de âmbito nacional.
Como se vê, basicamente são membros do **Executivo** (Presidente/Governadores), do **Legislativo** e o chefe do **Ministério Público**. Ao lado deles, os **partidos políticos**, a representação da **Advocacia** e alguns **poucos representantes da sociedade civil organizada** (como os sindicatos e as entidades de classe *nacionais*). Há, portanto, uma grande primazia de órgãos/autoridades públicas e grandes "conglomerados" da sociedade civil que detém essa legitimidade.
Podemos observar, então, como ao longo dos últimos 5 anos tem sido o comportamento desses proponentes:
```{r grafico_partes_categorizadas, echo=FALSE, message=FALSE, warning=FALSE}
grafico_partes_categorizadas
```
#### *Em 2020: Atuação dos proponentes ao longo do ano*
Pensando no momento peculiar em que vivemos, uma aspecto interessante a observar é como se deu a atuação dos proponentes ao longo desse ano. Vejamos:
```{r grafico_distribuicao_2020_categoria, echo=FALSE, message=FALSE, warning=FALSE}
grafico_distribuicao_2020_categoria
```
Podemos ver que a atuação dos Estados e DF (via **Governadores**) se deu de forma mais intensa no início do ano, enquanto a **OAB** atuou de forma mais contundente nos primeiros meses da pandemia.
As organizações da **sociedade civil** e os **partidos** tiveram atuação intensa durante todo o ano, com picos nas fases iniciais da pandemia.
A **Presidência** da República, quando agiu, foi apenas no meio do ano. A **PGR**, por sua vez, teve atuação mais destacada no inicio da pandemia e mais recentemente, em novembro.
#### Atuação da OSC e Partidos
Embora quase residual em termos de competência para atuação, as organizações da sociedade civil (OSC), compreendendo sindicatos, confederações, etc têm tido **atuação expressiva** e de grande importância nos últimos anos. Da mesma forma, os partidos políticos têm se mostrado bastante combativos no âmbito do STF.
Uma nota importante é que, ao contrário dessas associações, os Partidos políticos possuem a chamada "*legitimidade universal*" e, por isso, em tese podem apresentar ações em qualquer tema enquanto as OSCs apenas nos temas que dizem respeito direto aos seus associados.
Veremos algumas dessas entidades que têm litigado pertante o Supremo Tribunal Federal.
##### *Quais partidos políticos*
Abaixo lista de quais partidos mais apresentaram ações. Um grande destaque para os Partidos tradicionalmente tidos como de esquerda.
```{r tabela_quais_partidos, echo=FALSE, message=FALSE, warning=FALSE, paged.print=TRUE}
tabela_quais_partidos
```
##### *Quais associações, sindicatos, etc*
Aqui as associações que mais apresentaram ações de controle concentrado no STF. Destaque para associações ligadas à carreiras jurídicas.
```{r tabela_quais_osc, echo=FALSE, message=FALSE, warning=FALSE, paged.print=TRUE}
tabela_quais_osc
```
## O Supremo e a Pandemia
Sabemos que uma das razões que mostram um pico de casos em 2020 são as implicações em todos os níveis que a pandemia de COVID-19 nos trouxe.
Dúvidas sobre os limites federativos, questionamento de atos legislatios ou executivos, omissão do Governo Federal, etc foram algumas das muitas questões levadas à Corte.
Veremos a seguir a proporção de ações relativas à pandemia em relação aos demais temas ao longo dos meses de janeiro até o fim de novembro de 2020:
```{r grafico_evolucao_acoes_covid, echo=FALSE, message=FALSE, warning=FALSE}
grafico_evolucao_acoes_covid
```
Vemos que, efetivamente, a partir de março esse foi um dos grandes temas que chegaram até a Corte, evidenciando sua importância inclusive no âmbito jurídico e político.
Nos meses de maio e julho, inclusive, essas ações relacionadas à pandemia foram mais frequentes do que os otros temas reunidos.
### Os legitimados e a COVID
Vamos observar, brevemente, quais foram os legitimados que mais trouxeram o tema para a Corte:
```{r grafico_quem_covid, echo=FALSE, message=FALSE, warning=FALSE}
grafico_quem_covid
```
Se relacionando de alguma maneira com a tendência de serem os protagonistas em número de ações, também quanto à COVID os partidos e as OSC foram recordistas de ações.
### Vocabulário das ações
Por fim, encerrando o projeto, foi feita uma incipiente e exploratória análise das palavras mais comuns nas ações relacionadas a COVID e as que se dão em outros temas.
Trata-se, muito mais, de um mínimo produto viável para verificar os termos mais frequentes com cada tema e, naturalmente, não é possível concluir quase nada. Divide-se esse intento com a comunidade na esperança de feedbacks e sugestões de como aprimorar essa análise no futuro.
```{r tabela_minimo_covid, echo=FALSE, message=FALSE, warning=FALSE}
source("R/8-B-wordcloud.R", encoding = "UTF-8")
library(patchwork)
nuvem_peticoes_corona + nuvem_peticoes_nao + plot_annotation(
title = "Nuvem de palavras - Petições iniciais")
```
Vemos que nas ações relativas ao COVID-19 aparce, - além de "saúde" - termos como **indígenas**, **quilombolas**, **povos**, **dados**, **proteçao**, **efeitos**, etc, que podem sugerir que a tutela requerida ao Supremo é no sentido de buscar proteção para as consequências do contexto, tendo em mente também grupos vulnerabilizados.
De outro lado, nos casos relativos a outros temas, vemos expressões como **trabalho**, **Amazônia**, **decreto**, **ambiente**, e **recursos**. Provavelmente temas da agenda ambiental, sobre aspectos trabalhistas e financeiros foram levados ao Tribunal ao longo desse ano.
É também possível observar como variam as palavras mais usadas conforme a categoria do proponente. Foram separadas as palavras mais usadas por cada uma delas e plotadas as nuvens abaixo.
Podemos formular algumas hipóteses sobre a atuação de cada um desses grupos?
```{r nuvem-por-requerente, echo=FALSE, message=FALSE, warning=FALSE}
nuvem_partido + plot_annotation(
title = "Nuvem de palavras - Conforme o proponente")
nuvem_osc
nuvem_oab
nuvem_pgr
nuvem_presidente
nuvem_gov
```
Provavelmente nada muito contundente por enquanto, mas pode ser interessante aplicar a esses dados técnicas mais aguçadas de mineração de texto.
A título especulativo, destacaria que parece interessante o fato de **partidos políticos** terem destacados termos como *saúde*, *segurança*, *infraestrutura* e *eleitoral*. Lembrando do falado acima, a legitimidade universal sugere que esse grupo leva à Corte temas diversos.
De outro lado, as **organizações da sociedade civil** - nas quais, como vimos, se destacam as entidades de classe de servidores públicos - têm entre os destaques os termos *competência*, *servidores*, *regime*, *cargo*, *concessão*, e outros sugestivos de matéria precipuamente de direito administrativo. Estariam essas entidades levando ao STF primordialmente temas relativos a direitos e deveres de suas categorias?
A **Ordem dos Advogados do Brasil** em destaque para termos como *advogados*, *princípio*, *pagamento*, *recursos*, *custas*, *valores* e *competênci*a, possivelmente relacionados a questões tributárias, de processo e exercício da atividade da advocacia.
A **PGR** traz com frequência termos como *código, normas*, *competência, administração*, *cargos* e outras expressões também bastante relacionadas ao direito público (embora o termo *civil* também seja bastante destacado).
As palavras referentes à **Presidência da República** são bem pouco conclusivas, pois traz expressões como *ADPF, princípio*, *relator*, *preceitos*, *expressão* que são muito inerentes à retórica jurídica: ou seja, são expressões esperadas em qualquer tipo de ação constitucional, sendo difícil dizer a que argumentos de mérito podem estar relacionados. Contudo, há destaque grande para as expressões *exercício* e *liberdade*. O que poderá significar?
Por fim, as expressões destacadas para **Governadores** indicam grande vínculo a matérias administrativas: *assembleia* e *legislativa* pode sugerir que a maior parte das ações digam respeito a normas Estaduais (aprovadas pela "Assembleia Legislativa"). Curiosamente, se nota dois nomes próprios: Jose e Silva, que provavelmente dizem respeito ao jurista [José Afonso da Silva](https://pt.wikipedia.org/wiki/Jos%C3%A9_Afonso_da_Silva) - uma referência no âmbito do direito constitucional brasileiro.
## Próximos passos
O presente projeto, mais do que concluir e aplicar as ótimas lições recebidas, pretende ser o pontapé de mais análises no campo da jurimetria e no web scrap.
Espera-se os feedbacks para ajudar na evolução do projeto, que serão incorporados nas medidas da possibilidade do aprendiz-autor.
### Idéias a serem implementadas
- Correção de bugs e incorporação dos feedbacks
- Transformar em pacote
- Construir painéis de monitoramento das ações mais recentes
- Automatizar análises com GitHub Actions
- Aplicar modelos de tópicos e outras técnicas de mineração de texto
- Explorar e validar algumas das hipóteses sugeridas aqui
- etc, etc, etc....