Geração Automática de Regras de Identificação de Produtos em

Propaganda
XIII Encontro Nacional de Inteligência Artificial e Computacional
Geração Automática de Regras de Identificação de
Produtos em Descrições Textuais de Compras
Governamentais
Eduardo de Paiva1, Kate Revoredo1
1
Departamento de Informática Aplicada – Universidade Federal do Estado do Rio de
Janeiro (UNIRIO)
Av. Pasteur 458, Urca, 22290-240, Rio de Janeiro –RJ - Brasil
{eduardo.paiva,katerevoredo}@uniriotec.br
Abstract. The public transparency portals are becoming important
communication channels between government and population. However, not
always the portals present the information in the most appropriate format. For
example, the description of purchases in text format hinders comparison of
similar purchases. The goal of this article is to propose a methodology capable
to generate product identification rules in textual descriptions of purchases
through the use of a mining technique of frequent phrases. The proposed
solution has been validated in a case study with data from Federal
Government's Transparency Portal.
Resumo. Os portais de transparência pública vêm se constituindo em
importantes canais de comunicação entre o governo e a população. No entanto,
nem sempre o formato das informações apresentadas nesses portais é o mais
apropriado. Por exemplo, a descrição de compras em formato de texto dificulta
a comparação de compras similares, já que o produto sendo adquirido não
encontra-se explícito. O objetivo desse trabalho é propor uma metodologia
capaz de gerar regras de identificação de produtos em descrições textuais de
compras, através da utilização de uma técnica de mineração de frases
frequentes. A solução proposta foi validada em um estudo de caso com os dados
do Portal da Transparência do Governo Federal.
1. Introdução
Os portais de transparência pública vêm se constituindo em importantes canais de
comunicação entre o governo e a população. Através desses portais, o cidadão tem acesso
a uma série de informações do governo que facilitam o acompanhamento e o controle das
atividades governamentais.
Atualmente, a lei complementar 131 ["Disponibilização em tempo real de
informações" 2009] determina a disponibilização, em tempo real, de informações
pormenorizadas sobre a execução orçamentária e financeira da União, dos Estados, e dos
Municípios. No entanto, a simples disponibilização de informações governamentais não
assegura o entendimento, por parte do cidadão, do real significado de tais informações.
Isso acontece por uma série de fatores, dentre os quais, pode-se destacar: o grande
volume de dados disponibilizados diariamente, e o formato não adequado dessas
informações. Um exemplo disso são os dados referentes à descrição das compras
governamentais, que são apresentadas em formato texto. Isso acontece para permitir
SBC ENIAC-2016
Recife - PE
229
XIII Encontro Nacional de Inteligência Artificial e Computacional
maior flexibilidade na descrição do que está sendo adquirido, porém, dificulta a
comparação entre compras similares.
A solução para esse tipo de problema se dá pela aplicação de técnicas de
mineração de texto que sejam capazes de a partir da descrição textual de uma determinada
compra, identificar a que produto aquela descrição se refere.
Alguns trabalhos como [Rommel, Carvalho et al. 2013], [Rommel Carvalho et al.
2014] e [Paiva e Revoredo 2016] tentam endereçar esse tipo de problema, porém, todos
eles apresentam escopos muito específicos, sendo aplicáveis a um conjunto reduzido de
produtos. Isso acontece porque a grande quantidade de diferentes tipos de produtos que a
Administração Pública pode comprar dificulta a aplicação de técnicas generalizáveis, que
sejam capazes de identificar uma variedade de produtos distintos a partir das
especificações textuais de compras.
Em contrapartida, algumas abordagens [Shin et al. 2016], [Ren et al. 2015], [Liu
et al. 2015] e [El-Kishky et al. 2014] têm empregado técnicas de mineração de frases para
determinar os tópicos mais relevantes em corpus de textos. Essas abordagens, ao invés de
tratar as palavras de forma individualizada, priorizam as frases formadas pela sequência
de palavras.
O objetivo desse trabalho é propor uma metodologia capaz gerar regras de
identificação de produtos de forma automatizada, em descrições de compras em portais
de transparência, através da utilização de uma técnica de mineração de frases, visto que,
as frases possuem mais expressividade do que os termos isolados. Dessa forma, a solução
proposta cria as regras de identificação dos produtos, minimizando assim a interação
humana. Nessa abordagem, a única atividade desempenhada por humanos será a
verificação das regras geradas e a criação de rótulos para elas, ou seja, dizer a que produto
cada uma das regras geradas se referem. Isso possibilita um grande ganho de escala na
quantidade de diferentes produtos identificáveis.
A proposta foi validada por um método qualitativo, cuja amostra a ser avaliada
foi composta pelos produtos identificados que apresentavam outliers1 de preços.
O restante deste trabalho está organizado da seguinte forma: a Seção 2 apresenta
alguns trabalhos relacionados; a Seção 3 define o problema a ser tratado, enquanto que as
seções 4 e 5 descrevem a proposta de solução e o estudo de caso desenvolvido. Finalmente
a seção 6 faz a conclusão do trabalho.
2. Trabalhos Relacionados
Atualmente, já existem uma série de trabalhos que se propõem a extrair informações
relevantes de dados textuais gerados pela Administração Pública.
Nesse sentido, Maia et al. [2015] propõem um classificador automático das
denúncias que compõem o banco de denúncias recebidas pela Controladoria Geral da
União. Esse trabalho utiliza classificação por ranking baseada em Árvore de Huffman
para fazer a categorização das diversas denúncias dentro das 91 classificações de
denúncias existentes.
1
As observações que apresentam um grande afastamento das demais observações da mesma espécie ou que
são inconsistentes com elas são chamadas de outliers.
SBC ENIAC-2016
Recife - PE
230
XIII Encontro Nacional de Inteligência Artificial e Computacional
Rommel, Carvalho et al. [2013] e Rommel Carvalho et al. [2014] sugerem uma
metodologia para a formulação de um banco de preço da Administração Pública Federal
a partir dos dados de compras que são apresentados no Portal da Transparência do
Governo Federal. Nessa proposta, os produtos, apresentados em descrições textuais, são
identificados a partir da combinação de palavras chave, e posteriormente técnicas de
clusterização são utilizadas para se identificar as unidades de medidas utilizadas para
quantificá-los. Após essa identificação, torna-se possível a formulação de um preço de
referência para cada um dos produtos identificados a partir dos preços pagos em cada uma
das compras. Já, Carvalho et al. [2014] endereçam o problema de identificação e
prevenção de fracionamento de compras governamentais utilizando redes bayesianas.
Marzagão [2015] apresenta uma outra abordagem para o problema de
identificação de produtos e serviços que são adquiridos pela Administração Pública. Esse
trabalho utiliza um cadastro de materiais e serviços como dados de treinamento, e a partir
deste, tenta classificar as compras utilizando o algoritmo de máquina de suporte vetorial.
Visando atender a necessidade de processamento requerida pelo grande volume
de informações que compõe as bases de dados de compras governamentais, Paiva e
Revoredo [2016] apresentaram uma solução escalável para o problema de identificação
de produtos em compras textuais. O foco principal desse trabalho foi a proposta de uma
arquitetura de processamento baseado no paradigma de programação MapReduce [Dean
and Ghemawat 2008] e no framework hadoop [White 2012], que roda em clusters de
Computadores.
Saindo do contexto da Administração Pública, mas ainda dentro do desafio de se
extrair informações de dados textuais. Algumas iniciativas têm se destacado no sentido
de se utilizar a modelo de Bag of Phrases2, em um contraponto ao tradicional Bag of
Words3. Dentre essas iniciativas estão [Ren et al. 2015], [Liu et al. 2015] e [El-Kishky et
al. 2014]. Essas abordagens, ao invés de trabalharem com os tokens de forma
individualizada, consideram sequências de tokens, que formam frases, a fim de agregar
mais expressividade as variáveis tratadas.
3. Definição do Problema
Diariamente, os diversos Portais de Transparência pública disponibilizam centenas de
milhares de registros. Só o Portal da Transparência do Governo Federal [CGU, 2004]
apresenta cerca de 46 mil novos registros a cada dia.
No entanto, essas informações não são todas estruturadas e fáceis de serem
tratadas. Algumas das informações mais relevantes na identificação de uma determinada
compra vêm descritas em formato de texto, o que dificulta análises sistematizadas.
A Figura 1 apresenta uma descrição de compra presente em um portal de
transparência, sendo que, para se identificar o que realmente está sendo especificado
nessa descrição, é necessária a leitura e interpretação do texto descritivo. No entanto, o
2
Bag of Phrase: modelo de representação utilizado no tratamento de dados textuais. Nesse modelo o texto
é representado pela contagem das frases que o compõem, ignorando-se a gramática e a ordem das frases
3
Bag of words: modelo de representação utilizado no tratamento de dados textuais. Nesse modelo o texto
é representado pela contagem das palavras que o compõem, ignorando-se a gramática, a ordem das palavras
e a pontuação.
SBC ENIAC-2016
Recife - PE
231
XIII Encontro Nacional de Inteligência Artificial e Computacional
grande volume de dados dos portais de transparência torna esse tipo de análise impeditiva,
inviabilizando qualquer tipo de comparação entre compras similares.
Figura 1. Descrição textual de compras
Logo, o problema a ser tratado pode ser considerado como uma questão de
classificação textual e é definido da seguinte forma:
Dada uma coleção de descrição de compras 𝒟 = {𝑑1 , 𝑑2 , 𝑑3 , … , 𝑑𝑘 } e um conjunto
𝒫 de produtos 𝒫 = {𝑝1 , 𝑝2 , 𝑝3 , … , 𝑝𝑛 }. Deseja-se definir uma função ℱ: 𝒟𝑋𝒫 → {0, 1}.
Ou seja, a função ℱ atribui um valor 0 ou 1 para cada par(𝑑𝑖 , 𝑝𝑗 ), tal que 𝑑𝑖 ∈ 𝒟 𝑒 𝑝𝑗 ∈
𝒫. Se o valor atribuído for 1, diz se que a descrição de compra 𝑑𝑖 se refere ao produto
𝑝𝑗 . Caso contrário, diz-se que a descrição de compra 𝑑𝑖 não se refere ao produto 𝑝𝑗 . Cabe
ressaltar que: se ℱ (𝑑𝑖 , 𝑝𝑗 ) = 1 → ℱ (𝑑𝑖 , 𝑝𝑘 ) = 0, para qualquer 𝑗 ≠ 𝑘.
No entanto, conforme a limitação apresentada em [Paiva e Revoredo 2016], o
grande dificultador dessa abordagem é que o conjunto 𝒫 (de todos os produtos que podem
ser comprados pela Administração Pública) é muito grande, com cerca de 250 mil
elementos, e que a cada dia novos tipos de produto podem ser adquiridos e
consequentemente incorporados a esse conjunto.
Sendo assim, dada a inviabilidade de se rotular um conjunto de treinamento para
um número tão grande de classes, esse trabalho pretende criar regras de identificação para
os produtos mais relevantes e otimizar o esforço de rotulagem de tais produtos. Sendo
que, nesse contexto, a relevância de um produto é medida pelo número de compras desse
produto, ou seja, quanto mais compras um determinado produto tiver, mais relevante ele
será. Apesar do conjunto de produtos mais relevantes poder ser variável, de acordo com
os critérios estipulados, o fato desse grau de relevância ser ranqueável permite que o
esforço de rotulação seja otimizado, possibilitando que apenas os produtos com maiores
números de compras sejam rotulados, de acordo com a disponibilidade de pessoal para
exercer essa atividade.
Dessa forma, considerando-se uma frase como sendo uma sequência de tokens
contínuos e partindo-se da premissa de que descrições de produtos similares apresentam
alguma sequência de tokens iguais, considerou-se a seguinte hipótese: se forem
identificadas as sequências de tokens que mais se repetem em um determinado conjunto
de descrição de compras, então, essas sequências de tokens caracterizarão os produtos
mais relevantes desse conjunto de descrições.
4. Proposta
A Proposta de identificação dos produtos está dividida em 2 partes: a primeira consiste
em um processo de mineração de frases, que irá caracterizar os produtos mais relevantes,
bem como as regras que devem ser aplicadas para identificá-los. Essas regras serão o
produto do processo de mineração de frases. Já a segunda consiste da aplicação das regras
definidas no passo anterior. Entre essas duas fases há uma interação humana a fim de
selecionar as regras geradas, bem como rotulá-las, ou seja, definir nomes inteligíveis para
SBC ENIAC-2016
Recife - PE
232
XIII Encontro Nacional de Inteligência Artificial e Computacional
os produtos que serão identificados pelas regras geradas. A Figura 2 ilustra esse processo,
e é explicada no decorrer dessa seção.
Devido as características dos dados de portais de transparência, grandes volumes
de informações com cargas diárias e incrementais. A solução proposta deve ser capaz de
processar quantidades massivas de dados e ser escalável.
Figura 2. Processo de identificação dos produtos
Para atender a esses requisitos, todo o processo foi concebido para rodar utilizando
o Apache Spark [Zaharia et al. 2010], um framework para processamento de big data que
roda de forma paralela em cluster de computadores. Dessa forma, aumentos expressivos
no volume de dados a ser processado podem ser compensados com a inclusão de novas
máquinas ao cluster, sem o comprometimento da performance.
4.1. Mineração de Frases
No contexto desse trabalho, uma frase é definida como uma sequência contigua de tokens.
Sendo assim, nesse artigo, a tarefa de mineração de frases frequentes pode ser
caracterizada pela agregação e contagem de todas as sequências de tokens contíguos que
satisfaçam a um suporte mínimo. Ou seja, a mineração de frases se propõe a identificar
os padrões sequenciais de palavras que mais se repetem em um determinado conjunto de
dados textuais.
Dessa forma, as seguintes propriedades, definidas em [El-Kishky et al. 2014] e
[Liu et al. 2015], deverão ser atendidas no processo de mineração de frases:


Frequência: A qualidade mais importante quando se julga se uma frase retransmite
informações relevantes sobre um tópico é a sua frequência de utilização dentro do
tópico. Uma frase que não é frequente dentro de um tópico, provavelmente não é
importante para esse tópico.
Completude: Se uma frase longa satisfaz ao critério da frequência, então, as sub
frases dessa frase longa também irão satisfazem a este critério, porém, serão
menos informativas do que a frase mais longa, e dessa forma não precisam ser
consideradas na mineração das frases, pois a frase mais longa é mais completa.
SBC ENIAC-2016
Recife - PE
233
XIII Encontro Nacional de Inteligência Artificial e Computacional
4.1.1 Pré-processamento
O pré-processamento é a primeira fase do processo, e tem o objetivo de preparar o
conjunto de dados para as atividades subsequentes.
A etapa de pré-processamento retira informações que estão presentes no campo
de descrição da compra, mas que não fazem parte da especificação textual do produto. O
principal objetivo desse procedimento é a eliminação de informações desnecessárias que
possam prejudicar a análise das sequências de palavras geradas.
Figura 3. Resultado do pré-processamento
A Figura 3 ilustra o resultado do pré-processamento de uma descrição de compra.
Nesse procedimento, algumas informações são identificadas e extraídas, através das
técnicas enunciadas em [Etzioni et al. 2005]. Dessa forma, apenas o texto que realmente
especifica o produto será utilizado nas fases seguintes do processamento.
Adicionalmente, essas informações retiradas das descrições das compras são
armazenadas para que, ao final de todo o processo, elas possam ser incorporadas ao
produto identificado, enriquecendo assim a qualidade da informação apresentada.
4.1.2 Geração de Frases Candidatas
Apesar do método proposto apresentar um enfoque estatístico, com o intuito de se
diminuir o conjunto de possíveis combinações de palavras, assim como para manter a
expressividade das frases geradas, algumas considerações semânticas foram feitas:


Uma frase só pode ser formada se ela estiver contida dentro de uma determinada
sentença. Sendo que, uma sentença é uma sequência de palavras delimitada por
sinais de pontuação que determinam o final de um período.
Se uma determinada palavra P está localizada na posição n de uma sequência de
palavras de uma sentença, para que ela faça parte de uma frase, é necessário que
todas as demais palavras localizadas nas (n-1) posições anteriores da sequência,
também façam parte dessa frase. Essa restrição se dá para garantir maior grau de
expressividade para as frases formadas, visto que, na língua portuguesa o sentido
vai se completando da esquerda para a direita.
A Figura 4.a ilustra o algoritmo de geração das frases candidatas. Esse algoritmo
recebe como entrada um conjunto de especificação textuais de produtos e um tamanho
mínimo e outro máximo para as frases a serem geradas, sendo que, o tamanho de uma
frase é medido pelo número de palavras que compõem essa frase. A saída do algoritmo
proposto será um vetor com todas as frases geradas.
SBC ENIAC-2016
Recife - PE
234
XIII Encontro Nacional de Inteligência Artificial e Computacional
Figura 4. Algoritmos de mineração de frases
4.1.3 Mineração de frases frequentes
Após a geração das frases candidatas, o passo seguinte é a agregação de frases iguais, a
fim de se contar o número de ocorrências de cada uma das frases geradas. As frases cujo
número de ocorrência for maior que o valor de suporte, passado como parâmetro, são
selecionadas e prosseguem no processo de mineração.
4.1.4 Remoção de sub frases
El-Kishky et al. [2014] definem duas propriedades na mineração de frases:

Lema do fechamento para baixo: Se uma frase P não é frequente, então as super
frases de P (frases que contêm P) também não serão.

Antimonotonicidade dos dados: Se um documento não contém frases frequentes
de comprimento n, o documento não contém frases frequentes de comprimento
maior que n.
A aplicação dessas propriedades ao conjunto de frases resultante do passo anterior
serve para reduzir a quantidade das frases a serem rotuladas por humanos, minimizando
assim o esforço necessário para a seleção e rotulação das frases geradas, uma vez que,
essas frases geradas e rotuladas se constituirão nas regras de identificação dos produtos.
Sendo assim, se uma frase 𝐹, formada pelos palavras 𝑝1 , 𝑝2 , … , 𝑝𝑛 atende ao
requisito do suporte mínimo, então, todas as suas sub frases 𝐹 ′ = 𝑝1 , 𝑝2 , … , 𝑝𝑘 , com 𝑘 <
𝑛, também atenderão essa suporte, porém, elas não precisarão ser analisadas, uma vez que
as frases maiores (em que elas estão contidas) já contemplam aos requisitos necessários.
Logo, é executado uma filtragem aplicando essa propriedade de forma a reduzir o número
de frases mineradas.
O algoritmo apresentado na Figura 4.b demonstra o processo de poda das sub
frases. Esse algoritmo recebe como entrada todas as frases geradas que atenderam ao
critério do suporte mínimo, e oferece como saída apenas as super frases. (ou seja, frases
contidas em outras frases maiores que também atendam ao requisito do suporte mínimo
são desconsideradas).
SBC ENIAC-2016
Recife - PE
235
XIII Encontro Nacional de Inteligência Artificial e Computacional
4.2. Rotulagem das Regras Geradas
Ao final da primeira fase do processamento é gerado um arquivo com as frases que
atenderem aos requisitos da mineração de frases (super frases que atenderam a um suporte
mínimo). Essas frases representam o conjunto de palavras sequenciais que caracterizam
os produtos mais relevantes da base de dados em questão, e constituem as regras de
identificação desse produto.
No entanto, é necessária uma interação humana para se fazer a seleção e validação,
bem como a rotulação dessas regras, ou seja, especificar que produto cada regra
representa. Logo, o esforço dos especialistas nessa fase se resume em fazer a seleção e
rotulação dessas regras.


Seleção: Esse procedimento faz-se necessário por duas razões principais, a
primeira se dá porque, apesar das frases tenderem a ter um alto grau de
expressividade, pois, elas atingiram uma frequência alta de ocorrência, em
algumas situações elas não transmitem informações capazes de discriminar um
determinado produto. Outra razão que justifica a necessidade de interação humana
é a definição do grau de especificidade que se deseja dar a um determinado
produto, por exemplo, um produto pode ser identificado como suco de laranja ou
simplesmente como suco, dependendo da análise que se deseje fazer, e a seleção
das regras de identificação tem importante papel nesse processo.
Rotulação: Outro papel relevante que é executado por especialistas é a
interpretação e rotulagem do que cada uma das regras identificadas representam,
pois, muitas vezes, pode-se ter duas frases distintas identificando um mesmo
produto, e que por essa razão devem receber um mesmo rótulo, como por
exemplo, “dipirona, solução oral 500 mg/ml” e “novalgina gotas 500 mg/ml”.
Ao final do processo, os especialistas adaptam o arquivo gerado pela mineração
de frases, de forma que, cada linha desse arquivo seja composta por uma combinação
frase-produto. Sendo que, a frase que funciona como regra de identificação fica do lado
esquerdo, e o produto a que ela se refere fica do lado direito, sendo separados pelo sinal
de pipe (|). Esse arquivo gerado serve como entrada para a segunda fase do
processamento.
4.3. Classificação das compras
Definidas as regras de classificação, o passo seguinte é a aplicação dessas regras. O
arquivo gerado pelos especialistas serve como parâmetro para o processo de classificação
das compras.
O processo de classificação recebe como entrada um conjunto de descrições de
compras (conjunto de itens de empenho). Esse conjunto de dados passa por um préprocessamento, idêntico ao ocorrido na fase de mineração de frases, e depois passa pela
a aplicação das regras propriamente ditas.
5. Estudo de Caso
Para validar a metodologia proposta foi aplicado um estudo de caso nos dados do Portal
da Transparência do Governo Federal [CGU 204].
SBC ENIAC-2016
Recife - PE
236
XIII Encontro Nacional de Inteligência Artificial e Computacional
5.1. Infraestrutura
O estudo de caso foi desenvolvido no ambiente de computação nas nuvens
disponibilizado pela empresa Amazon Web Services [Cloud 2011]. O processamento dos
dados foi executado em um cluster utilizando o sistema Apache Spark [Zaharia et al.
2010]. O cluster era composto por 2 máquinas Linux com processador de 64 bits e 7,5
GiB de memória
5.2. Base de Dados
Para o estudo de caso, foram utilizados dados de item de empenho do Portal da
Transparência do Governo Federal referentes ao ano de 2015, sendo que, utilizou-se os
dados do mês de janeiro para se fazer a mineração de frases e geração de regras de
identificação, e os dados de todo o ano fechado para se fazer a classificação.
A base era composta por 5.710.039 registros, dos quais 2.465.610 se referiam a
compra de materiais. Os demais itens de empenho se referiam a outros tipos de despesas,
como por exemplo, pagamento de pessoal e contratação de serviço. No entanto, apesar de
não estarem no escopo do trabalho, todos os empenhos precisam ser processados, pois
não se sabe previamente a que se refere um determinado item (pré-processamento).
Os registros de janeiro totalizavam 212.726 registros, sendo 34.628 referentes a
compra de materiais.
5.3. Resultados
Utilizou-se os seguintes parâmetros de entrada: suporte de 30, tamanho mínimo de frase
igual a 4 e tamanho máximo de frase igual a 9. Essa configuração foi utilizada pelo fato
de ter sido a que apresentou melhores resultados para o conjunto de dados utilizado, sendo
que, para se chegar a essa conclusão, avaliou-se a qualidade das regras geradas. Porém,
para outros conjuntos de dados é importante que sejam testados os valores que melhor se
adaptem ao caso em questão. No entanto, é importante que se tenha a noção de que, o
suporte está diretamente ligado ao tamanho do conjunto de dados, quanto maior o número
de registros maior deve ser o suporte utilizado, e o tamanho da frase está relacionado com
o grau de detalhamento que se deseja dar aos produtos identificados, tamanhos de frase
maiores propiciam maior detalhamento nas regras de identificação geradas, enquanto que
frases menores geram regras mais genéricas de identificação.
O processo de mineração de frases (que utilizou os dados referentes ao mês de
janeiro) levou 1 minuto e 35 segundos para executar e gerou 123 frases, sendo que dessas
frases, 84 foram transformadas em regras de identificação.
A razão de 39 frases não serem utilizadas como regras de identificação se dá pelo
fato dessas frases, apesar de populares, não serem discriminativas, como por exemplo:
"alimento industrializado consumo humano” e "produto de fabricação nacional, sem
registro de irregularidades".
Outro ponto importante de se observar, é que, apesar de terem sido geradas 84
regras de identificação diferentes, apenas 66 produtos distintos foram rotulados. Isso
ocorre pelo fato de em algumas situações um mesmo produto receber mais de uma regra
de identificação distinta, como por exemplo o produto “Álcool Combustível”, que pode
ser identificado por uma das seguintes regras: "álcool anidro combustível" ou "álcool
etílico hidratado combustível".
SBC ENIAC-2016
Recife - PE
237
XIII Encontro Nacional de Inteligência Artificial e Computacional
O Arquivo de regras gerado foi utilizado como parâmetro de entrada para a
segunda parte do processamento, que foi responsável pela classificação de todos os itens
de empenho do ano de 2015.
O processamento da classificação levou 8 minutos e 34 segundos e classificou
238.264 descrições de compras. As compras não classificadas se justificam pelo fato delas
não se enquadrarem nas regras de identificação definidas. No entanto, caso se deseje
aumentar o número de regras de identificação, basta se diminuir o suporte utilizado.
5.4. Validação
Dado o grande número de registros gerados e a inexistência de um conjunto de dados
previamente classificados para servir de parâmetro de comparação, optou-se por fazer-se
uma validação qualitativa.
Considerando-se que, para o caso em questão, mais importante do que garantir a
cobertura (garantir que todos os produtos de uma determinada classe tenham sido
devidamente classificados) é assegurar a precisão (se todos os produtos classificados em
uma determinada classe realmente fazem parte dessa classe), a estratégia de validação se
deu pela comparação dos preços praticados em cada uma das classes de produtos
identificados.
Dessa forma, verificou-se os preços mínimo e máximo para cada uma das classes
de produtos (de acordo com a unidade de medida), visto que, esses valores extremos
teriam maior potencial de terem sido classificados de forma errônea.
A tabela 2 apresenta um resumo dos valores para as 4 combinações de produtos e
unidades de medida com maior número de ocorrências.
Tabela 1. Amostra das métricas dos produtos identificados
Produto
Unidade de
Mediada
Qtd de
Compras
Valor
Mínimo
Valor
Médio
Valor Máximo
toner p/ impressora
UNIDADE
10783
0,00
51,266
2543,83
carne bovina
QUILOGRAMA
6503
0,00
17,9754
9783,93
fruta mamão
QUILOGRAMA
3713
0,00
3,1647
1536,68
fruta laranja
QUILOGRAMA
3620
0,00
2,903
2730,57
Através da análise desses valores extremos, constatou-se que, apesar da
discrepância apresentadas por esses valores extremos, os produtos realmente se
enquadravam nas classes de produtos que foram classificados, como pode ser observado
na Figura 5, que apresenta um recorte da tela do Portal da transparência para os itens de
valores extremos do produto “Toner para Impressora”.
Figura 5. Fragmento de Telas do Portal da Transparência
SBC ENIAC-2016
Recife - PE
238
XIII Encontro Nacional de Inteligência Artificial e Computacional
O fato de muitos produtos apresentarem valores mínimos igual a zero, e da
existência de outros valores extremamente altos, provavelmente se dá devido a erros de
preenchimento por parte das pessoas responsáveis por inserir esses dados no SIAFI4.
Porém, independente das discrepâncias encontradas, que podem ser oriundas de fraudes
ou de erros de preenchimento, o importante é que a técnica se demonstrou eficaz para a
identificação de produtos em grandes volumes de dados textuais, possibilitando-se extrair
informações que seriam impossíveis de serem obtidas pelo formato original em que os
dados são apresentados.
6. Conclusão
Estre trabalho apresentou uma metodologia para geração de regras de identificação dos
produtos comprados pela Administração Pública, que são apresentados nos diversos sites
de transparência pública em formato textual. Para isso, utilizou-se um processo de
mineração de frases frequentes.
A hipótese de que se forem identificadas as sequencias de tokens que mais se
repetem em um determinado conjunto de descrição de compras, então, essas sequências
de tokens caracterizarão os produtos mais relevantes desse conjunto de descrições foi
confirmada em parte, pois, apesar da grande maioria das sequencias de palavras
frequentes caracterizarem um determinado tipo de produto, algumas frases frequentes,
apesar de transmitirem conteúdos inteligíveis, esses não eram suficientes para discriminar
uma categoria específica de produto.
A metodologia sugerida faz uso de programação paralela, e roda em clusters de
computadores, através da utilização do paradigma de programação mapreduce [Dean and
Ghemawat 2008] e da infraestrutura do sistema de processamento Apache Spark [Zaharia
et al. 2010], o que a torna escalável e permite que aumentos expressivos no volume de
dados a ser analisado possam ser compensados pela inclusão de novas máquinas no
cluster, sem o comprometimento da performance.
A proposta apresentada foi testada em um conjunto de dados formado por todos
os itens de empenho do ano de 2015 do Portal da transparência e gerou regras de
identificação para 66 produtos, sendo que, esse número de regras geradas pode diminuir
ou aumentar de acordo com a elevação ou diminuição do suporte utilizado no processo
de mineração de frases frequentes.
Como trabalhos futuros, pretende-se utilizar os produtos identificados pela
aplicação da metodologia desenvolvida, e integrá-los com outras informações oriundas
dos processos de compras, a fim de utilizar-se técnicas de mineração de dados para a
identificação de possíveis casos de mau uso do dinheiro público.
Referências
BRASIL. Lei Complementar nº 131 de 27 de maio de 2009. Disponibilização em tempo
real de Informações. Diário Oficial [da] República Federativa do Brasil, Brasília, DF,
28 mai. 2009.
4
Sistema Integrado de Administração Financeira (SIAFI): Sistema Informatizado que processa e controla
a execução orçamentária, financeira, patrimonial e contábil da União [Feijó 2006]. Esse sistema é utilizado
como fonte de informação para essa parte do portal da Transparência do Governo Federal.
SBC ENIAC-2016
Recife - PE
239
XIII Encontro Nacional de Inteligência Artificial e Computacional
Carvalho, R. N., Sales, L., Da Rocha, H. A. and Mendes, G. L. (2014). Using Bayesian
Networks to Identify and Prevent Split Purchases in Brazil. In BMA@ UAI.
Cloud, A. E. C. (2011). Amazon web services. Retrieved November, v. 9, p. 2011.
Controladoria Geral da União - CGU (2004). Portal da Transparência dos Recursos
Públicos Federais. Disponível em: http://transparencia.gov.br. Acesso em 30 jun 2016.
Dean, J. and Ghemawat, S. (2008). MapReduce: simplified data processing on large
clusters. Communications of the ACM, v. 51, n. 1, p. 107–113.
El-Kishky, A., Song, Y., Wang, C., Voss, C. R. and Han, J. (2014). Scalable topical
phrase mining from text corpora. Proceedings of the VLDB Endowment, v. 8, n. 3, p.
305–316.
Etzioni, O., Cafarella, M., Downey, D., et al. (2005). Unsupervised named-entity
extraction from the web: An experimental study. Artificial intelligence, v. 165, n. 1, p.
91–134.
Feijó (2006). Curso de SIAFI: uma abordagem prática da execução orçamentária e
financeira, Editora Gestão Pública.
Liu, J., Shang, J., Wang, C., Ren, X. and Han, J. (2015). Mining Quality Phrases from
Massive Text Corpora. In Proceedings of the 2015 ACM SIGMOD International
Conference on Management of Data. ACM.
Maia, P., Ladeira, M. and Carvalho, R. N. (2015). Aplicação de Técnicas de Mineração
de Textos para Classificação de Documentos: Um Estudo da Automatização da
Triagem de Denúncias na CGU. Brasília: UNB, 2015. Dissertação (Mestrado em
Ciência da Computação) - Programa de Pós-graduação Aplicada em Computação,
Universidade de Brasília.
Marzagão, T. (2015). Using SVM to pre-classify government purchases. arXiv preprint
arXiv:1601.02680,
Paiva, E. e Revoredo, K. (2016). Big Data e Transparência: Utilizando Funções de
Mapreduce para incrementar a transparência dos Gastos Públicos. XII Simpósio
Brasileiro de Sistemas de Informação, 2016, Florianopolis.
Ren, X., El-Kishky, A., Wang, C., et al. (2015). Clustype: Effective entity recognition
and typing by relation phrase-based clustering. In Proceedings of the 21th ACM
SIGKDD International Conference on Knowledge Discovery and Data Mining.. ACM.
Rommel, Carvalho, De Paiva, E., Da Rocha, H. and Mendes, G. (2013). Methodology for
Creating the Brazilian Government Reference Price Database. X Encontro Nacional
de Inteligência Artificial e Computacional.
Rommel Carvalho, Eduardo de Paiva, Henrique da Rocha and Gilson Mendes (2014).
Using Clustering and Text Mining to Create a Reference Price Database. Learning and
NonLinear Models, v. 12, p. 38–52.
Shin, H., Ryu, B.-G., Ryu, W.-J., Lee, G. and Lee, S. (2016). Bringing bag-of-phrases to
ODP-based text classification. In 2016 International Conference on Big Data and
Smart Computing (BigComp). IEEE.
Zaharia, M., Chowdhury, M., Franklin, M. J., Shenker, S. and Stoica, I. (2010). Spark:
cluster computing with working sets. HotCloud, v. 10, p. 10–10.
SBC ENIAC-2016
Recife - PE
240
Download