[PT-BR] Criando um dataset categorizado a partir de um conjunto de dados de Leis


Criando um dataset categorizado a partir de um conjunto de dados de Leis

Cada vez mais os órgãos públicos brasileiros estão disponibilizando informações (atividade regulada pela Lei 12.527, em novembro de 2011). Porém apenas a publicação dos dados não é suficiente para atender às demandas da população. Ter uma lista com mais de 800 Leis torna bastante difícil a tarefa de entender que tipos de Leis uma Câmara Municipal está produzindo e aprovando, por exemplo. Este é justamente o problema que vamos abordar aqui: como visualizar o acervo de Leis a partir de um conjunto de dados com as ementas.

O mais comum seria utilizar as ferramentas do NLTK para tratar stop words, transformar as ementas em tokens, fazer o stemming das palavras, etc. Como o objetivo aqui é explorar o dataset e ter o total controle sobre ele, vamos usar apenas o Pandas como dependência.

Snippet do conjunto de dados com a Leis

Temos como desafio separar as Leis em categorias, e inicialmente nem sabemos que categorias são essas (em Aprendizagem de Máquina esta tarefa é denominada aprendizagem não supervisionada). Para conseguir classificar as Leis nós analisamos a frequência de palavras e descobrimos que a primeira palavra de cada ementa servia bem para uma categorização inicial.

Categorias gerais das Leis

A partir daí fomos exploramos mais os dados e conseguindo criar sub-categorias que ajudam a entender sobre o que se trata cada Lei.

Sub-categorias para a categoria 'cria'

Os resultados foram satisfatórios para uma classificação simples, agora com este dataset com labels já é possível inclusive treinar um modelo para classificar as Leis de 2017.

O próximo passo é trabalhar aprofundando-se mais nos conceitos de Processamento de Linguagem Natural para classificar melhor as Leis, principalmente as da categoria 'outras'. O notebook com o processamento dos dados e os datasets podem ser encontrados aqui.