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