Uso de Clusterização em Dados Espaciais para Extração de Conhecimentos Clustering of Spatial Data for Knowledge Extraction Eduardo S. Martins, Marcos Ribeiro, Jugurta Lisboa-Filho Depto. de Informática Univ.Federal de Viçosa Viçosa, MG, Brasil {eduardo.martins, marcosh.ribeiro,jugurta}@ufv.br Francisco Reinaldo, Ademir Freddo Luís Paulo Reis Depto Acadêmico de Informática Univ. Tec. Federal do Paraná Fco. Beltrão, PR, Brasil {reinaldo,freddo}@utfpr.edu.br Depto de Sistemas de Informação Univ.do Minho Minho, Portugal [email protected] Resumo — Infraestruturas de Dados Espaciais (IDE) são repositórios de grandes volumes de dados, documentados por meio de metadados padronizados. A Mineração de Dados (“data mining”) está entre as principais técnicas utilizadas para se extrair conhecimento de grandes quantidades de dados, devido à sua versatilidade e capacidade para lidar com conjuntos de dados de elevada dimensão. O objetivo deste artigo consiste em utilizar técnicas de agrupamento e mineração de dados para extrair relacionamentos e conhecimento a partir de metadados em IDEs. Com este objetivo, técnicas de descoberta de conhecimento, agrupamento, mineração em texto e algoritmos de mineração de dados foram utilizados. A fim de demonstrar a eficácia do método proposto, um estudo de caso foi implementado para avaliar o comportamento de técnicas de mineração de dados neste tipo de base de dados. Os resultados apresentaram que o processo de mineração de dados e as técnicas de agrupamento nortearam o método da classificação proposto para extrair relacionamentos e conhecimento a partir de um grupo de metadados extraído de dentro da base de dados. Palavras Chave - Infraestrutura de Dados Espaciais; formatação; Mineração de Dados; Clusterização. Abstract — Spatial Data Infrastructures (SDI) are repositories of large volumes of data, documented through standardized metadata. Data mining is one of the main techniques used to extract knowledge from large amounts of data, because of its versatility. The purpose of this article is to use clustering techniques and data mining to extract relationships and knowledge from metadata in SDI. For this reason, knowledge discovery techniques, clustering, text mining and data mining algorithms were used. In order to demonstrate the effectiveness of the proposed method, a case study was implemented to evaluate the performance of data mining techniques in this type of database. The results showed that the data mining process and clustering techniques guided to the classification proposed method for extracting relations and knowledge from a group of metadata extracted from within the database. Keywords - Spatial Data Infrastructure; Data Mining; Technique of Clustering. I. INTRODUÇÃO O conhecimento, como estrutura de condição em regras de produção, utiliza-se da análise de dados que não podem ser descobertos ou identificados por sistemas convencionais [1]. De acordo com Ravikumar e Gnanabaskaran [2] e Hamed et al. [3] o desafio consiste em extrair conhecimento válido a partir desta massa de dados e evitar falhas em uma possível tomada de decisão. O crescente volume de dados espaciais, em consonância com a utilização de Infraestrutura de Dados Espaciais (IDE), aliado à necessidade de transformá-los em conhecimento, têm demandado investimentos em pesquisas da comunidade científica e da indústria de software [4]. Pesquisas demonstram que os metadados por IDE realizam a descoberta, avaliação, acesso e uso de funções, suportam a interoperabilidade dos dados e geram conhecimento [5]. Aditya e Kraak [6] propuseram o desenvolvimento evolutivo de interfaces de pesquisa das IDEs e mecanismos de mineração de dados em catálogos de metadados a utilizar mapas e gráficos que apoiem a descoberta de recursos geoespaciais. Neste mesmo contexto, Silva [7] apresentou um mecanismo de busca semântica através do entendimento do contexto. Também Azevedo [8] definiu um modelo capaz de explorar as características espaciais do padrão XML (eXtensible Markup Language) e avaliar o impacto em sistemas de recuperação de dados e sua capacidade de tratar diferentes tipos de documentos XML. Entretanto, todas estas pesquisas não utilizam o processo de mineração de dados para extrair conhecimento a partir de uma coleção de metadados em uma IDE a utilizar agrupamento de dados. Este artigo utiliza as técnicas de mineração de dados [17] e o e uso da abordagem de Han e Kamber [14] com método de agrupamento por k-means para extrair relacionamentos de dados e conhecimento informacional de um estudo de caso que envolve um grupo de metadados em IDE. II. ESTUDO DE CASO: MINERAÇÃO DA BASE DE DADOS DO IBGE Esta seção apresenta o experimento realizado em quatro etapas: (a) criação da base de metadados; (b) preparação dos dados, (c) transformação dos dados e (d) mineração de dados. A base de dados do Instituto Brasileiro de Geografia e Estatística (IBGE) foi escolhida pelo volume dos dados, integridade e por ser livre para consulta. A. Criação da Base de Metadados A base de metadados foi construída pelos passos a seguir: a) As variáveis “título”, “resumo” e “palavra_chave” pertencentes ao conjunto de dados inicial foram identificadas e selecionadas devido as características semânticas. Isto permitiu direcionar a caracterização do metadados. Na sequência, os formatos foram escolhidos e normalizados, e os metadados foram transferidos para uma base de dados local; b) A medida de similaridade ou distinções em padrões e estrutura XML dos metadados foi definida; c) Os metadados foram classificados em uma estrutura XML uniforme, contendo campos (colunas de tabela) de características semânticas, tais como resumo e palavra; d) Um arquivo XML unificou e armazenou os metadados. A Fig. 1 traz uma amostra de dados extraídos da base obtida. Figura 1. Exemplo de metadados gerados a partir do XML Com os metadados armazenados em uma base de dados, a próxima etapa iniciou com a fase de preparação dos dados para aplicar o processo de stemming. B. Preparação dos Dados A partir da base de dados criada na etapa anterior e com o objetivo de padronizar e reduzir as palavras a um radical, foram utilizadas as técnicas: remoção de stopwords, identificação do radical (processo de stemming) e removedor de sufixos pela aplicação do algoritmo RSLP(Removedor de Sufixos da Língua Portuguesa) [18]. Este algoritmo aplica regras e exceções para realizar na palavra as seguintes reduções: plural, adverbial, feminino, aumentativo, nominal e verbal, além de fazer a remoção de vogais temáticas e acentuação. Portanto, nesta preparação de dados foram realizadas as seguintes subtarefas: a) carregar os metadados da base; b) pré-processar os campos “resumo” e “palavra_chave”; c) capturar os radicais resultantes do pré-processamento e gerar dois arquivos de entrada para o algoritmo RSLP; d) executar o algoritmo RSLP e iniciar o processo de stemming a fim de gerar dois arquivos de saída que irão conter os radicais no campo “resumo” e “palavra chave”; e) copiar seus conteúdos para uma nova tabela a ser composta por id_base, resumo e palavra-chave. A Fig.2 ilustra uma parte dos dados depois do processo de stemming concluído. Figura 2. Exemplo dos metadados após o processo stemming. A radicalização das palavras (radicais) no banco de dados permitiu detectar e remover inconsistências, entre elas pronomes e artigos. Assim, a preparação dos metadados ficou apta para a etapa de transformação dos dados. C. Transformação dos Dados Para agrupar os dados, uma frequência mínima, selecionouse 25% dos radicais mais relevantes dentro dos 4296 registros de metadados. Esta seleção foi motivada pela constatação de que os radicais ocorriam de forma bastante ocasional na base e boa parte destes radicais não contribuiriam ou até mesmo não atrapalhariam a obtenção de resultados interessantes após a aplicação da mineração de dados. Os radicais selecionados foram: “cart”, “cartograf”, “abrang”, “folh”, “geograf”, “integr”, “latitude”, “longitude”, “matric”, “mg, “quadrilater”, “rj”, “topograf” e “vetor”. Em seguida, uma matriz de dados foi preenchida com o status 1 (existência) ou o status 0 (ausência) dos radicais em cada instância de metadados. Um excerto da tabela contendo dados e radicais preenchidos é apresentado na Fig. 3. Figura 3. Exemplo da transformação dos dados para matriz binária Com a fase de transformação dos dados concluída, passou-se para a etapa de mineração dos dados. D. Mineração dos Dados Esta fase utilizou Weka [19] versão 3.6.4 para minerar e agrupar os dados da matriz da etapa anterior. Os parâmetros foram ajustados para executar k-means, em: a) número de clusters configurados para 2, 4, 6, 8 e 20, uma vez que não se prevê o número de clusters em resultados satisfatórios; b) números aleatórios gerados para escolha dos centroides iniciais foi ajustada com diferentes valores para 10, 25, 50 e 100, pois o algoritmo é sensível à escolha inicial dos centroides; c) distância euclidiana é o parâmetro disponível na Weka para o cálculo de proximidade entre os radicais da Matriz Binária, conforme Fig. 3, uma vez que a matriz possui informações numéricas, i.e., a palavra existe (status 1) na tupla ou não (status 0). Também, o intervalo de 0 para 1 foi medido como se lê em similaridade = 1 se X = Y (onde X, Y são dois objetos) e similaridade = 0 se X ≠ Y. Isto permitiu (i) encontrar grupos de objetos no formato esférico ou de árvore [4], (ii) localizar e contabilizar uma determinada palavra, (iii) mensurar a similaridade entre registros e (iv) agrupá-las no cluster; em cada cluster conforme palavra selecionada são identificados na imagem por presença (1) ou ausência (0). Nesta vertente, um potencial classificador para o conjunto de metadados seria a palavra que, após a análise das características dos resultados, ocorresse em um dos agrupamentos. Esta semelhança com a maioria dos registros seria utilizada como referência em um método que identifica e categoriza que aquela instância pertencente. Dentre os radicais observados, o resultado "cart" e "cartograf" destacaram-se por possuírem as mesmas características, como se apresenta nas Fig. 4 e 5. Pode-se observar que se o radical "cart" ou "cartograf" está ausente (status 0) em uma instância, então está no agrupamento do canto inferior direito, enquanto na maioria das vezes que o radical está presente (status 1) o registro está no agrupamento no canto superior esquerdo. Deste comportamento, infere-se que os radicais como potenciais bons classificadores desse conjunto de metadados são também referências para os organizar. d) modo de treinamento escolhido foi “use training set” pois trabalha com todo o conjunto de dados e obtém clusters sem utilizar a técnica de validação cruzada. Os ajustes dos parâmetros configurados basearam-se na experimentação empírica do pesquisador, a fim de identificar o melhor resultado para realização da análise e interpretação dos resultados que poderiam ser obtidos. Com os resultados obtidos na fase de mineração, passou-se para a fase de visualização, análise e discussão destes resultados. III. ANÁLISE E DISCUSSÃO DOS RESULTADOS Esta seção divide-se em três fases. A primeira fase identifica radicais dentro das instâncias de metadados que possuem potencial para serem correlacionadas com uma classe (categoria) para o conjunto de metadados. A segunda fase analisa os comportamentos dos radicais e suas relações dentro dos clusters. A terceira fase avalia e classifica (categorizar) inicialmente os agrupamentos das instâncias de metadados em cada agrupamento. Figura 4. Características dos resultados: a palavra “cart”. A. Identificar Potenciais Radicais Classificadores (Fase I) Nesta fase, o algoritmo k-means foi parametrizado em: 2 clusters, 500 iterações, semente aleatória como 10, 25, 50 e 100 e medida de distância euclidiana. A escolha do número de clusters representa o mínimo de agrupamentos a compreender e visualizar os resultados. A parametrização da semente para gerar os números aleatórios foi inspirada em [1]. O número de iterações foi definido para o algoritmo não convergir ou convergir muito lentamente para uma pseudossolução satisfatória na distribuição das instâncias (registros da base) em clusters. Weka apresentou os resultados em clusters para visualizar a ocorrência de cada palavra em um dado agrupamento. Os clusters nas cores azul (canto superior esquerdo) e vermelho (canto inferior direito), foram definidos por cluster 0 e cluster 1. Os parâmetros do eixo X são as informações de cluster e do eixo Y são as informações dos radicais. As instâncias de metadados Figura 5. Características dos resultados: a palavra “cartograf”. A Fig. 6 ilustra a dificuldade em identificar distribuições “bem-comportadas” de instâncias nos agrupamentos com a palavra “matric”. Fig. 6. Características dos resultados: a palavra “matric”. A partir destes resultados e para investigar se os radicais “cart” e “cartograf” eram realmente bons classificadores, utilizou-se novamente o algoritmo k-means, porém com uma ligeira modificação nos valores dos parâmetros, onde apenas a opção “modo de treinamento” foi alterada de “use training set” para “class to clusters evalution”. Este modo permite que se arbitre um atributo classe para as instâncias, que será ignorado pelo algoritmo de agrupamento e, após a obtenção dos agrupamentos, estes são checados com o atributo classe. Do resultado obtido dessa nova parametrização, observou-se o percentual de erros para os radicais “cart” e “cartograf”, identificado pela informação “incorrectly clustered instances”. O índice de erros para os dois radicais foi menor que 1%, respectivamente 0.93% e 0.97%, demonstrando um percentual aceitável para se considerar estes radicais como possíveis classes dos metadados. Para exemplificar o resultado de um mau classificador, a palavra “matric” obteve 44.78%. B. Analisar Comportamentos e Relações dos Radicais dentro dos Clusters (Fase II) Os radicais “cart” e “cartograf” foram identificadas dentro do conjunto de radicais como potenciais bons classificadores. De posse desta informação, os resultados foram analisados em duas etapas: Etapa 1) Identificar o mais promissor valor de k: uma possível faixa de valores de k clusters, sendo 2, 4, 8, 10 e 20, foi empiricamente proposta para se obter clusters dos metadados mais adequados. A taxa de erro quadrático com o menor resultado de cada cluster foi utilizada como critério de seleção para escolha do melhor número de clusters dos metadados dentro dos centroides. Dentre os resultados, o valor de k = 8 clusters apresentou o resultado mais promissor do algoritmo k-means com a menor taxa de erro quadrático e representou o melhor número de cluster para análise. Observou-se que o erro quadrático começou alto com k = 2 (7149.0), diminui com k = 4 (5724.0), alcançou o resultado promissor com k = 8 (699.0) com uma queda brusca, subiu com k = 10 (2538.0), e com k = 20 (1551.0) teve-se uma queda. A Fig. 7 apresenta o resultado com a palavra “cart” e seu melhor número de clusters encontrado. Figura 7. O melhor número de clusters encontrado. Etapa 2) Tabular o comportamento dos radicais em cada cluster para análise: o comportamento e a relações de cada palavra dentro dos clusters foi obtida com outros radicais ou conjunto de radicais. A Tabela I mostra a tabulação dos comportamentos dos radicais. Tabela I. Resultado tabulado do comportamento dos radicais em cada cluster. Cada palavra foi analisada com clusters para detectar se está presente ou ausente. Assim, o status 0 nas células da Tabela I indica que o radical está predominantemente ausente nos registros que compõem aquele cluster, enquanto o status 1 indica que o radical está predominantemente presente nas instâncias que compõem tal agrupamento. C. Categorizar os Agrupamentos (Fase III) Esta etapa teve como objetivo avaliar e classificar os agrupamentos das instâncias de metadados gerados em Weka. Inicialmente, a palavra classificadora “cart” foi escolhida para visualizar os agrupamentos feitos em instâncias de metadados que estão relacionadas a ele. Em seguida, as instâncias foram utilizadas como referência para visualizar o conteúdo de outros campos dos metadados, como título, “resumo” e “palavra_chave”. Estes campos foram consultados na base de dados e serviram de apoio para análise, avaliação e classificação dos metadados em cada cluster. Para exemplificar, a captura de tela da Fig. 8, lista o conteúdo de algumas instâncias que compõem o cluster 0. Pode-se notar a semelhança de natureza em seus conteúdos. Figura 8. Parte do conteúdo dos metadados no cluster 0. Embora a coluna “título” não tenha considerado o processo de mineração para a classificação dos metadados, houveram analogias e relacionamentos com os conteúdos apresentados nas colunas “resumo” e “palavra-chave” em cada cluster na classificação. Após análise e avaliação dos conteúdos dos metadados feitos para cada cluster, foi possível classificar metadados neles representados. O resultado da classificação é demonstrado na Tabela II. TABELA II. CLASSIFICAÇÃO DO CONJUNTO DE METADADOS POR CLUSTER pode ser visto com os radicais “cart”, “cartograf”, “abrang”, “folh”, “geograf”, “integr”, “latitude”, “longitude”, “quadrilater” e “topograf”. Quando estão de maneira conjunta no cluster, ajudam a caracterizar “carta topográfica” conforme demonstrado na tabela acima na coluna clusters em 0, 2, 3 e 7. Outro exemplo está nos radicais “abrang”, “folh”, “geograf”, “integr”, “latitude”, “longitude” e “quadrilater”. Se presentes, de maneira conjunta e os radicais “cart” e “cartograf” estão ausentes no cluster, pode-se afirmar que ajudam a caracterizar “mapas de vegetação”, “cartograma digital”, “cartas aeronáutica de pilotagem”, “cartas aeronáutica mundial”, “folha”, “modelo digital de elevação”, exceto, “carta topográfica” conforme demonstrado nos clusters 1 e 4. Já a ausência em conjunto de todas os radicais no cluster, caracteriza a classificação de um “Ortofoto” conforme apresentado no cluster 5, não existe relação destes radicais com as que a caracterizam. Ao analisar o comportamento dos radicais “vetor” e “matric” de forma isolada nos clusters 6 e 7, percebe-se que as classificações feitas não seriam corretas devido ausência da palavra no cluster, mas ao avaliar o conteúdo e o conjunto de comportamentos de forma conjunta com radicais, classificou-se como “carta topográfica vetorial” e “carta topográfica matricial”. A observação feita na palavra “mg” no cluster 7 está ajustada para indefinido (I) na Tabela I. Durante o processo de classificação percebeu-se que a presença “mg” dentro do cluster 7 foi baixa, mas não inexistente e por isso atribuiu-se o status I na coluna “observação”. Estes foram os principais fatores que se destacaram ao analisar as instâncias de metadados dentro de cada cluster e ajudaram na definição da classificação. IV. CONCLUSÕES O artigo aplicou a mineração de dados utilizando a técnica de agrupamento em uma base de metadados de uma IDE. A base de metadados foi gerada e evoluída por etapas que possibilitaram demonstrar na prática os passos para a mineração de dados e a extração do conhecimento. Apesar da base possuir metadados de natureza parecida, e isto dificulta a descoberta de conhecimento útil, foi possível extrair relações e conhecimento, por exemplo, descobrir os radicais classificadores dos metadados, as relações do conjunto de outros radicais associados a estas e as categorias (classes) dos conjuntos de metadados. Também os radicais “cart” e “cartograf” foram identificadas como potenciais classes relevantes, de fácil identificação com baixa expectativa de erro nas características de seus clusters dentro da base de metadados, a identificar os conjuntos de metadados pertencem a eles. Após análise de comportamento conjunto dos resultados da Tabela II, percebeu-se que os radicais descobertos pela classificação dos metadados oferecem relação forte e contribuição para extração de conhecimentos, mas se analisadas de maneira isolada não oferecem contribuição. Um exemplo O emprego de stopwords e stemming facilitou a manipulação dos metadados. O algoritmo k-means mostrou-se eficaz no agrupamento dos metadados e com baixo índice de erros. Trabalhos futuros podem testar a eficácia de algoritmos alternativos de agrupamento para o mesmo tipo de tarefa, como Expectation-Maximization bem como as adequações sobre as bases de dados e os parâmetros destes algoritmos, a fim de se comparar os resultados. Existe um grande número de opções de algoritmos de agrupamento disponíveis na literatura e a maior parte deles pode ser testado para o problema, desde que os dados de entrada estejam formatados de maneira adequada para suprir cada algoritmo. Conforme já mencionado, este estudo de caso adotou o kmeans por ser o algoritmo clássico de agrupamento e ainda por ser o mais estudado. Portanto, não se desejava dispender muito tempo sobre o estudo e os ajustes de parâmetros sobre o algoritmo em si, o que aconteceria se fosse adotada uma alternativa metodológica comparativa. O uso da ferramenta Weka na mineração de dados permitiu a descoberta de conhecimentos, pois auxiliou no processo de exploração dos dados contidos na base, na seleção e geração de informações importantes para as tomadas de decisões, na análise e interpretação dos resultados durante o processo dos testes e contribuiu significativamente com a possibilidade de realizar vários testes em um tempo diminuto por computadores de baixo poder de processamento. Trabalhos futuros podem explorar, ainda, a automatização também da classificação dos resultados organizados previamente pela etapa de agrupamento, utilizando radicais potencialmente úteis para classificação para compor algoritmos de classificação automática de metadados, permitindo, assim, tomadas de decisão semiestruturadas e ágeis. As principais contribuições deste artigo são: Considerações a respeito dos desafios inerentes às etapas do processo de KDD com a tarefa de agrupamento quando aplicada a mineração de dados sobre bases de dados de metadados de IDE, especialmente quando se tratando de conteúdo textual; Oferece uma metodologia para mineração semântica de metadados em uma IDE e para representação do conhecimento e suas dificuldades, partindo de algoritmos de agrupamento a organizar dados e posterior classificação; Estudo inicial para prover apoio para categorizar base de metadados e documentos textuais, destacando pontos que merecerão atenção de pesquisadores futuros. AGRADECIMENTOS Projeto parcialmente financiado com recursos do Conselho Nacional de Desenvolvimento Científico e Tecnológico (CNPq), da Fundação de Amparo à Pesquisa do Estado de Minas Gerais (FAPEMIG). Também a Fundação Araucária, Secretaria de Estado da Ciência, Tecnologia e Ensino Superior (SETI-PR) e ao Governo do Estado do Paraná, pelo apoio financeiro recebido para viabilizar esta participação. REFERÊNCIAS BIBLIOGRÁFICA [1] F. Reinaldo, “Afranci: A multi-layer architecture for cognitive agents,” Ph.D. dissertation, Faculdade de Engenharia da Universidade do Porto (FEUP), 2010. [2] K. Ravikumar and A. Gnanabaskaran, “Aco based spatial data mining for traffic risk analysis,” International Journal of Computational Intelligence Techniques, vol. 1, no. 1, pp. 6–13, 2010. [3] O. Hamed, A. Rajabifard, and M. Kalantari, “Automatic spatial metadata update: a new approach,” in FIG Work Week, 2010. [4] J. Han and M. Kamber, Data Mining: Concepts and Techniques, M. Kaufmann, Ed. San Francisco, CA., 2001. [5] M. Manso-Callejo, M. Wachowicz, and M. Bernabé-Poveda, “Automatic metadata creation for supporting interoperability levels of spatial data infrastructures,” in Spatial Data Infrastructure Convergence: Building SDI Bridges to Address Global Challenges, no. 11, 2011. [6] T. Aditya and M. J. Kraak, “A Search Interface for an SDI: Implementation and Evaluation of Metadata Visualization Strategies,” Transactions in GIS, vol. 11, no. 3, pp. 413–435, 2007. [7] O. C. da Silva, J. Lisboa-Filho, J. L. Braga, and K. A. V. Borges, “Searching for metadata using knowledge bases and topic maps in spatial data infrastructures,” Earth Science Informatics, vol. 2, no. 4, pp. 235– 247, 2009. [8] M. I. M. Azevedo, “Recuperac¸a˜o de informac¸a˜o em documentos xml,” Master’s thesis, Universidade Federal de Minas Gerais, Belo Horizonte, 2005. [9] D. D. Nebert, Developing Spatial Data Infrastructures: The SDI Cookbook. GSDI, 2004. [10] M. Ueberall and O. Drobnik, “Desenvolvimento colaborativo de software e mapas de tópico,” in Proceedings, da primeira conferência internacio- nal sobre Traçando o tema de pesquisa Mapas e Paisagem Applications. Berlim, Heidelberg: Springer-Verla, 2006, pp. 169–176. [11] B. R. do Prado, E. H. Hayakawa, T. de Castilho Bertani, G. B. S. da Silva, G. Pereira, and Y. E. Shimabukuro, “Padrões para metadados geográficos digitais: modelo iso 19115:2003 e modelo fgdc,” Revista Brasileira de Cartografia, vol. 62, no. 1, pp. 33–41, 2010. [12] A. K. Jain, M. N. Murty, and P. J. Flynn, “Data clustering: a review,” ACM Comput. Surv., vol. 31, no. 3, pp. 264–323, Sep. 1999. [Online]. Available: http://dx.doi.org/10.1145/331499.331504 [13] R. Xu and D. Wunsch, “Survey of clustering algorithms,” IEEE Transactions on neural networks, vol. 16, no. 3, pp. 645–678, 2005. [14] L. C. Figueiredo, G. Ávila, F. Reinaldo, R. Camacho, D. R. Magalhães, and L. P. Reis, “A tool for the development of robot control strategies,” EJIS, Electronic Journal of Information Systems, vol. 11, no. 2, September 2007. [15] T. B. S. de Oliveira, L. Zhao, K. Faceli, and A. C. P. L. F. de Carvalho, “Data clustering based on complex network community detection,” in IEEE Congress on Evolutionary Computation’08, 2008, pp. 2121–2126. [16] A. Fontana and M. C. Naldi, “Estudo de comparação de métodos para estimação de números de grupos em problemas de agrupamento de dados,” Instituto de Ciências Matemáticas e de Computação São Carlos, Tech. Rep. 340, 2009. [17] E. C. N. Barion and D. Lago, “Mineração de textos,” Revista de Ciências Exatas e Tecnologia, vol. 3, no. 3, pp. 123–140, 2008. [18] A. R. Coelho, “Stemming para a lı́ngua portuguesa: estudo, análise e melhoria do algoritmo rslp,” Master’s thesis, Universidade Federal do Rio Grande do Sul, Porto Alegre, 2007. [19] I. H. Witten and E. Frank, Data Mining: Practical machine learning tools and techniques, 2nd ed. Morgan Kaufmann, 2005.