AGRUPAMENTO DE TEXTOS POR SIMILARIDADE PARA SISTEMA DE CLIPPING WEB: CLUSTERCLIPPING Gesualdo Crocco <[email protected]> Stanley Loh < [email protected]> – Orientador Universidade Luterana do Brasil (Ulbra) – Curso de Ciência da Computação – Câmpus Canoas Av. Farroupilha, 8.001 – Bairro São José – CEP 92425-900 – Canoas/RS 29 de novembro de 2010 RESUMO Existe hoje na internet, uma quantidade infinita de informações, que crescem de acordo com a maior interação dos usuários, sendo que o acompanhamento e a compreensão dos acontecimentos de uma notícia se tornam uma tarefa mais complicada a cada dia. Tendo esta motivação em vista, neste trabalho realizou-se um estudo e a implementação de um protótipo capaz de buscar notícias sobre tópicos específicos em fontes monitoradas e agrupálas em subtópicos, com a expectativa de facilitar a compreensão do desenvolver dos fatos do tópico em questão. Buscando os principais conceitos de processamento de texto e de mineração de dados na literatura, diversas técnicas e algoritmos foram estudados e analisados, com o intuito de escolher uma técnica e implementá-la num sistema online de fácil utilização capaz de executar para o usuário tal tarefa. Neste documento serão apresentados os estudos envolvidos neste trabalho, bem como a avaliação e os resultados da implementação deste sistema. Palavras-chave: Clipping; Cluster; Clusterização; Agrupamento; Cliques; Star; Similaridade. ABSTRACT Title: “Grouping by similarity of texts for web clipping system: Cluster Clipping” The Internet has an infinite amount of information, which grows according to user interaction, which makes monitoring and understanding the events of a story a task more complicated every day. Having this motivation in mind, this work was carried out the study and implementation of a prototype able to get news about specific topics in monitored sources and group them into subtopics, expecting to facilitate understanding of the fact. Several techniques and algorithms were used, seeking the main concepts of word processing and data mining literature, in order to choose one and implement it in a user-friendly online system, capable of performing this task for the user. This document will present the studies involved in this work, as well as assessment and results of implementing this system. Key-words: Clipping; Cluster; Clustering; Grouping; Clicks; Star; similarity. 1 INTRODUÇÃO A internet é o meio de comunicação que está cada vez mais presente na vida das pessoas, no Brasil, este índice chega a quase quarenta por cento da população. É o que divulga a última pesquisa realizada pela consultoria comScore, mostrando que o número de brasileiros que utilizam a internet chegou à marca de setenta e três milhões, levando em conta o acesso em casa, no trabalho e em locais públicos como LAN houses e universidades. Isso representa trinta e oito por cento da população brasileira estimada pelo IBGE (Instituto Brasileiro de Geografia e Estatística), que é de 193 milhões de habitantes. Os dados se referem ao mês de maio, do ano de 2010, e levam em conta internautas de ao menos seis anos de idade. Através da rede mundial de computadores, o acesso as informações torna-se ilimitado, e crescem de acordo com a interação dos usuários em blogs, wikis (sites de colaboração para criação de conteúdo) e sites de notícias. Há serviços agregadores que coletam e fornecem muita informação, que nem sempre são relacionadas ao assunto relevante, ou são repetidas, pois a mesma notícia pode ter sido publicada em mais de um site. Os buscadores e sistemas de clipping atuais propiciam uma gama de respostas muito ampla a cada busca, sendo que um trabalho de seleção manual ainda tem que ser feito. 1 Porém, este trabalho de seleção e agrupamento de notícias ou informações é muito custoso em termos de tempo para realmente separar a informação relevante, de conteúdo repetido ou mesmo de alguma notícia que fuja ao tema. Hoje se busca economizar ao máximo o tempo nas tarefas diárias, automatizando tudo aquilo que for possível, de acordo com nossos esforços, portanto sistema de clipping torna-se muito útil. Para auxiliar na obtenção das notícias diárias mais focadas nos interesses específicos, que faça isso de forma automatizada e objetiva, fornecendo um conteúdo de notícias mais rápido com menos gasto de tempo por parte do usuário. Clipping nada mais é que uma coleta selecionada de material de mídia, bem como: impressos, material de rádio, reportagens de TV, notícias sobre um assunto, empresa, pessoa ou marca, podendo ser resumos ou até mesmo o material completo. Muitas empresas utilizam esta ferramenta para juntar material, pois auxilia no conhecimento da sua área de atuação, bem como da própria organização, permitindo ter um panorama sobre determinado assunto, até mesmo evitando a necessidade de procurar em diversas fontes, por ter um caráter compilador, prove muitas informações sobre o mesmo assunto, agrupadas no mesmo lugar. As ferramentas de manipulação eletrônica de conteúdo enfrentam um paradigma complexo, que envolve a capacidade de uma máquina de reconhecer a necessidade do usuário e associar com informações contidas na base de dados. Para que seja possível essa funcionalidade em uma máquina há muito se estuda técnicas de recuperação de informação, que segundo SALTON apud (KURAMOTO, 1996), consiste basicamente em um processo dividido em três etapas: representação, armazenamento e acesso as informações, cujo propósito final é encontrar conteúdo relevante ao usuário. 1.1 Motivação Os sistemas de clipping de internet agregam e pesquisam notícias de acordo com os interesses dos clientes. Essa busca é feita geralmente usando palavras-chave que definem o escopo, assunto e objetivo da pesquisa. Mesmo as notícias e informações que passaram por esse processo ainda podem ser revisadas por um profissional qualificado para preparar e processar o material e compor o clipping. Esse processo manual é lento e pode ser automatizado através de processamento de textos. O processamento de textos é uma tarefa que abrange a área computacional de mineração de dados, e possui diversas aplicações em tarefas de recuperação de informação, como agrupamento por tema ou assunto. Os buscadores e sistemas de clipping propiciam uma gama de respostas muito ampla a cada busca, dificultando a aglomeração do conteúdo para o usuário que deseja se interar sobre diversos aspectos de um assunto. 1.2 Objetivos O foco principal desse projeto é a utilização de técnicas de avaliação de similaridade de texto para agrupamento de notícias, utilizando a criação de um sistema de clipping web com condições de armazenar notícias da internet, recebidas através de RSS em uma base de dados. Também um estudo de técnicas relacionadas ao tema de classificação e agrupamento de textos, bem como seus critérios de avaliação; a escolha e adaptação de algumas técnicas de agrupamento para o desenvolvimento de em um ambiente online permitindo a familiarização com área de mineração de dados e processamento de textos. Agrupar as notícias de acordo com a proximidade calculada, através de uma função de similaridade de texto e filtradas de acordo com o perfil do usuário, para a montagem de uma pagina de clipping 1.3 Organização do trabalho No capítulo 2 deste trabalho, será apresentada a revisão bibliográfica feita no início do projeto, com todas as informações relevantes sobre a área de mineração de dados, bem como os sistemas, algoritmos e formatos de dados envolvidos no sistema. 2 No capítulo 3 será apresentado o desenvolvimento do projeto, com as considerações feitas em torno da arquitetura do sistema, a divisão em módulos da arquitetura, as decisões e as particularidades da implementação de cada módulo. No capítulo 4 será apresentada uma análise e a apresentação dos resultados e de exemplos desta análise. (tem que explicar mais) Por fim, no capitulo 5 serão traçadas as conclusões deste trabalho, detalhando os conhecimentos obtidos com a realização do projeto, os objetivos alcançados, as contribuições para a área e as possibilidades de trabalhos futuros baseados no trabalho aqui realizado. 2 FUNDAMENTAÇÃO TEÓRICA Esta seção apresenta uma revisão bibliográfica dos assuntos que estão envolvidos nesse projeto. Primeiramente temos o sistema de clipping por ser uma das funcionalidades propostas. Também apresenta um breve discorrer sobre RSS que servirá de fonte para alimentar a base de dados com notícias que serão selecionadas através de uma técnica de recuperação de informações, associada com um agrupamento por similaridade de texto, assim como as bibliotecas utilizadas e finalizando com clusterização e avaliação da clusterização. 2.1 Clipping Clip se origina do inglês e significa cortar, ou clipping que significa recortar de jornais. Essa ferramenta tem como matéria prima os outros meios de comunicação. Clipping ou Clipagem segundo (CEFETCE, 2009) "é a extração de notícias, notas e informações que são publicadas na mídia, relacionadas à Instituição. A versão de clipping é uma forma rápida e econômica de pesquisa aos sites, jornais, revistas e agências de notícias. O clipping funciona como um instrumento de avaliação gerencial e, ainda, como um vasto material de consulta". O clipping já é amplamente usado por diversas ferramentas na internet, por exemplo: Google Alerts em www.googlealert.com, Clipping UOL em http://clipping.busca.uol.com.br/ e Baguete em http://www.baguete.com.br. 2.2 RSS O RSS (Really Simple Syndication) é um método que usa XML (Extensible Markup Lenguage) para distribuição de conteúdo de um Web Site, para outros Web Sites ou sistemas agregadores. O RSS é um padrão de organização, que facilita a identificação do conteúdo do arquivo por outras máquinas. Foi criado para compartilhar informações como manchetes, links e resumos de textos, daí sua popularidade nos sites de notícias e blogs (SOUZA, 2009). Em 1999, a Netscape desenvolveu o RSS 0.90 esse era um simples XML com cabeçalho RDF (Rich Data Format), em 2000, a empresa UserLand lançou a especificação oficial do RSS 0.91, em 2003, foi lançada a especificação oficial do RSS 2.0. Sendo os dois últimos mais simples e de fácil entendimento (SOUZA, 2009). Os padrões atualmente mais utilizados são o RSS 0.91 e RSS 2.0 pela facilidade de uso, evitando assim o uso da versão de RSS 1.0, por ser um padrão muito complicado, que requer conexões mais largas e não é compatível com as versões mais populares. 2.3 XML Devido ao grande crescimento da web, a linguagem HTML (Hyper Text Markup Language) passou a não suprir as necessidades da mesma, então foram criadas extensões para ela, tais como, CSS (Cascading Style Sheet), folhas de estilo em cascata e a XML (Extensible Markup Lenguage). A linguagem XML foi criada em 1996, pelo organismo que define os padrões para a World Wide Web, o W3C (World Wide Web Consortium), com o intuito de suprir algumas limitações encontradas no HTML. 3 2.4 Sistemas de Recuperação de Informação Nesta seção serão apresentados alguns conceitos básicos de recuperação e filtragem de informação. 2.4.1 Recuperação de informação Foi conceituado em 1951 por Calvin Mooers que: “A Recuperação de Informações trata dos aspectos intelectuais de descrição da informação e sua especificação para busca, e também de qualquer sistema, técnicas ou máquinas que são empregadas para realizar esta operação” (FERNEDA, 2003) Um sistema de recuperação de informação (SRI) consiste num programa que tem por finalidade a busca das informações e apresentação das mesmas, conforme lhe foi especificado com o uso de palavras chaves ou perfis pré-definidos. Essa busca pode ser feita tanto em dados estruturados (sistemas de arquivos e bancos de dados) como em dados textuais e arquivos multimídia. Os processos principais realizados por um SRI são dois basicamente: consulta, e a indexação. Esses processos podem mudar de acordo com os modelos adotados. A consulta é a parte responsável por fazer a conexão entre a necessidade do usuário e a sua forma de se expressar ao realizar esse processo, para tornar possível uma conexão com os índices criados. A indexação é a forma pela qual ocorre a organização dos dados no sistema para que seja possível representar o conteúdo encontrado em uma futura recuperação de conteúdo. 2.4.2 Recuperação por filtragem Através de um método de filtragem, um texto pode ou não ser bloqueado, e neste processo é retirada a informação de interesse e descartando todo o resto. Por esta lógica, o processo de filtragem de informação retira de um todo o que lhe for mais pertinente. Tipicamente esse processo determina a relevância comparando as informações com o perfil do usuário. Em (BALASSIN, 2002) o modelo de filtragem de informação ou filtragem baseada em conteúdo, utiliza filtros que são os perfis de usuários, montados a partir das necessidades dos mesmos, estes são de suma importância, pois servem de base para definição da relevância da informação e também devem representar um interesse de longo prazo. A criação dos perfis, com seus atributos, devem ser concluídos antes da aplicação do filtro, senão inviabiliza o processo. LEWIS Apud (LOH, 1999) afirma que independente de ser nos campos de texto, no banco de dados ou em sistemas de arquivos a recuperação da informação pode ser utilizada com as mesmas técnicas de filtragem. Segundo KORFHAGE apud (LOH, 1999): "filtragem reduz a coleção de documentos para um subconjunto com grande proporção de documentos relevantes. Depois outras técnicas mais precisas podem ser usadas para encontrar os documentos relevantes ou então o usuário mesmo investiga todos os documentos para encontrar a informação de que precisa". Esse modelo apresenta uma facilidade para o usuário, pois reduz a necessidade de ter que apresentar seu interesse no formato de expressões, usando uma busca pré-definida pelo perfil de acordo com seus atributos e permitindo que o sistema execute a consulta automaticamente. A sequência de filtros aplicados proporciona uma redução progressiva da coleção com que se trabalha, permitindo selecionar a parte mais relevante. Os filtros podem aplicar técnicas diferentes para obter o resultado, respeitando um limite definido para cada filtro aplicado (KORFHAGE apud LOH, 1999). 2.5 Medidas de Similaridade São métricas que permitem avaliar quantitativamente a semelhança entre dois objetos. Nesta seção serão apresentadas algumas das medidas de similaridade cujos algoritmos são implementados na biblioteca SimMetrics utilizada para o desenvolvimento deste projeto. 2.5.1 Distância Levenshtein A Distância Levenshtein apresenta bom desempenho ao estabelecer um grau de similaridade entre textos. 4 Em (MANNING et. AL, 2008) é dito que o algoritmo mede a distância de edição entre dois strings, calculando quantas operações são necessárias para transformar uma string em outra não importando o tamanho. As operações podem ser entendidas como sendo: substituição, deleção e inserção, cada uma com custo 1. O processo se dá transformando os dois strings em vetores de uma matriz, logo após ele começa a verificar cada posição da primeira com todas as outras da segunda string, para preencher os relacionamentos com valores acrescidos do custo de cada operação, gerando no final o resultado da distância. Esta similaridade pode variar de [0 a ∞] onde 0 um grau de similaridade que exprime igualdade ou caso o resultado seja normalizado, uma variação ente 0 e 1. 2.5.2 Coeficiente de Jaccard (CHAPMAN, 2009) afirma que este algoritmo é baseado em similaridade de vetores, a cada ocorrência coincidente nos dois vetores V1 e V2, é incrementado o contador que irá gerar o grau de similaridade. O conteúdo dos vetores é separado em três conjuntos diferentes: • A- que contém somente os valores coincidentes entre V1 e V2; • B- que contém somente os valores não coincidentes de V1; • C- que contém somente os valores não coincidentes de V2; Então o coeficiente é calculado pela seguinte fórmula: Jaccard = A / (A+B+C) 2.5.3 Biblioteca Simmetrics A SimMetrics, é uma biblioteca de licença livre GPL (General Public License) que implementa algoritmos de similaridades entre strings. Utiliza métricas e resultados normalizados, que podem ser em ponto flutuante entre 0 e 1, onde 0 é a desigualdade e 1 a igualdade, para facilitar comparações entre os algoritmos. Possui suporte para extensão de funcionalidades, dentre elas podemos destacar que possibilita trabalhar com StopWords, que são palavras da língua que não apresentam importante significado semântico nos textos e consequentemente prejudicam a análise. Exemplos de palavras presentes na lista de StopWords utilizada são “a”, “cerca”, “com”, “de” “do”, “este”, “que”, “o”, “para”, “pelo”, “sem”, etc. A lista atual utilizada compreende 256 palavras do português brasileiro, adquirida no site: “http://miningtext.blogspot.com/2008/11/listas-de-stopwords-stoplistportugues.html”. 2.6 Algoritmos de clusterização Segundo (WITTEN e FRANK, 2005), a clusterização, ou agrupamento de dados, consiste em aplicar técnicas de aprendizado num conjunto de dados em que não se conhece previamente as suas possíveis classes. Dentre os algoritmos de clusterização podemos destacar o Cliques e o Star, que serão detalhados nas subseções a seguir. 2.6.1 Star Segundo (KOWALSKI, 2007),este algoritmo é baseado em grafos e recebe este nome porque ao realizar o agrupamento lembra a formato de uma estrela, onde possui um elemento central, e os demais ligados a ele, como mostra a Figura 1. Portanto basta o elemento dianteiro ser similar apenas ao central para ser adicionado ao grupo. O comportamento do algoritmo descrito em breves passos: 1. Seleciona 1º elemento e coloca em um novo cluster. 2. Procura todos os outros elementos e adiciona os similares a ele no cluster; 3. Para os elementos não alocados (semente de cluster), repetir o passo 1 5 Star Figura 1 – Grafo do Algoritmo Star 2.6.2 Cliques Segundo (KOWALSKI, 2007),o algoritmo Cliques, como ilustrado na Figura 2, também baseado em grafo é parecido com o Star. Porém um elemento só será adicionado a um determinado grupo, se este for similar a todos os demais. Pois com a utilização deste algoritmo torna-se evidente a busca por uma coesão ao invés do uso de um elemento central. Este algoritmo pode ter o seu comportamento descrito brevemente nos seguintes passos: 1. Seleciona 1º elemento e coloca em um novo cluster. 2. Procura próximo objeto similar 3. Se objeto é similar a todos os outros elementos do cluster, este objeto é agrupado 4. Enquanto houver objetos, retornar ao passo 2. 5. Para os elementos não alocados (semente de cluster), repetir o passo 1 Figura 2 – Grafo do Algoritmo Cliques 2.7 Avaliação de clusterização As técnicas de avaliação consistem em aplicar o algoritmo de agrupamento num conjunto de dados, para assim analisar os acertos e os erros. As métricas para avaliar a qualidade de um algoritmo são muitas, com algumas descritas em (MANNING et. AL, 2008) sobe avaliação de recuperação não ranqueada. 6 Nesses casos, como num agrupamento não se conhece inicialmente os clusters corretos, as técnicas de avaliação consistem em aplicar o algoritmo de agrupamento num conjunto de dados de teste em que se conhece previamente as classes, e analisar os acertos e erros do algoritmo. Para tanto, é utilizado um conjunto de dados especificado. Então os dados resultantes são fornecidos ao algoritmo de agrupamento. Ao término do algoritmo, os resultados do agrupamento são comparados aos valores originais segundo diferentes possibilidades de métricas que dão pesos e considerações diferentes para a quantidade de erros e acertos. 2.7.1 Precisão A precisão e a fração de documentos recuperados que são relevantes, conforme (MANNING et. AL, 2008) que explica também como é calculada: Precisão (P) é o resultado dos acertos ou itens relevantes (A) dividido pela soma total de itens recuperados (R). Precisão (P) = ∑ (A) / ∑ R 3 APRESENTAÇÃO DA SOLUÇÃO Este projeto tem por objetivo testar técnicas de recuperação de informação e agrupamentos baseados em grafos com critérios de similaridade. Para tanto foi construído um protótipo para testar essas técnicas localmente. Na a avaliação foram gerados agrupamentos utilizando alguns limiares para verificar a calibragem da sensibilidade do sistema pela qualidade desses agrupamentos. A atividade de clipping desperta interesse por sua característica objetiva de oferecer diversas fontes segmentadas de informação. Portanto está sendo usada para apresentar os resultados do processamento do sistema. Para gerar resultados o sistema necessita da interação com o usuário. Figura 3: Casos de Uso A Figura 3 apresenta um diagrama de caso de uso geral do sistema, onde se pode ver o papel do usuário no processo e as funcionalidades básicas do sistema. 7 O usuário cadastrado alimenta a base de dados com endereços das fontes de que deseja manter-se em contato para receber informação. Na construção do perfil o usuário informa uma palavra sobre a qual tem interesse em monitorar. O sistema é responsável pela busca de atualizações acrescentando quando necessário as novas notícias á base de dados, também pela montagem do clipping com os resultados agrupados e do envio de email para o endereço cadastrado pelo usuário. 3.1 IMPLEMENTAÇÃO Para o desenvolvimento do Sistema Cluster Clipping, foi utilizado o Visual Studio 2008 com linguagem C# e .Net Framework 3.5 com .Net Hibernate e SQL Server para o acesso a dados. Na interface foi utilizado ASP.NET A Figura 4, apresenta a arquitetura do sistema com seus componentes principais e a correlação entre eles no contexto geral da aplicação da ferramenta com o ambiente. Alimentação de do Sistema Busca de Notícias RSS XML Internet Fontes RSS Base de Dados Notícias RSS Aquisição de Noticias Recuperação da informação Filtro de Notícias Clusterização Algoritmo + Similaridade Avaliação Figura 4: Arquitetura do sistema. Como já apresentamos os componentes segue uma explicação sobre cada um deles. 3.1.1 Alimentação do Sistema Este componente através da interface com o usuário é responsável pelo cadastro, dando suporte a manutenção das informações do usuário. O usuário para utilizar o sistema além de ter um login dado pelo administrador tem que efetuar os cadastros: 8 • Usuário: Login e Senha provisória já cadastrada pelo administrador, faltando cadastrar o email, o nome e a atualizar da senha • Perfil: usuário informa o algoritmo, a palavra chave que esta buscando e o limiar em ponto flutuante. Exemplo: Usuário Administrador, Algoritmo Star, Limiar 0,0200 (2%) • Fontes: são todos os endereços de RSS os quais o usuário deseja buscar notícias, essas fontes devem ser associadas a um perfil, para possibilitar a recuperação pelo módulo de busca de notícias 3.1.2 Base de dados Este componente dá suporte a todos os outros por ser responsável por armazenar as informações necessárias ao funcionamento do sistema. Através da Figura 5 compreende-se melhor a modelagem da base de dados e da forma em que os dados são armazenados. Figura 5 - Modelo Entidade-Relacionamento (ER) 3.1.3 Busca de notícias Este componente é responsável por alimentar a base de dados recuperando as fontes de RSS cadastradas pelos usuários do sistema e encaminhando para a aquisição de notícias. Ele recupera os endereços das fontes cadastrados para o usuário no banco de dados do sistema e cada um deles é enviado á aquisição de notícias. Por exemplo, um endereço que fornece notícias de cinema: “http://rss.terra.com.br/0,,EI1176,00.xml”. 3.1.4 Aquisição de notícias O componente obtém de cada fonte um arquivo XML organizado no formato de RSS, o decompõe para extrair as notícias com seus atributos e inclui na base as inexistentes. A decomposição do arquivo XML acontece pela necessidade de adequar o sistema a diversas versões de RSS, para que fosse dinâmica a obtenção de notícias e até mesmo para trabalhar com arquivos 9 que não estejam estruturados adequadamente com os padrões de RSS. Essa decisão tomada possibilitou que fossem absorvidos, sem gerar erro ao sistema, os diversos formatos de distribuição de conteúdo sempre obtendo os atributos relevantes ao formato de armazenamento adotado pela modelagem. O Quadro. 1, apresenta os campos e a descrição do formato de notícia básico adotado neste projeto,com esses valores o sistema pode salvar o registro na base de dados. Quadro1: Campos Básicos a serem absorvidos 3.1.5 Campo Descrição Id Identificação gerada pelo sistema, controle interno Title Titulo da Notícia Description Descrição ou Resumo da Notícia Link Endereço da internet onde foi publicada a notícia Recuperação da informação Ocorre uma consulta na base de dados buscando as notícias que possuem a palavra do perfil tanto no título quanto no resumo da mesma. O sistema forma uma grande coleção contendo todas as notícias recuperadas da base de dados. Essa coleção é enviada para a Clusterização. 3.1.6 Clusterização Subdivide a coleção de notícias em grupos menores ou clusters, de acordo com um o algoritmo e o limiar da similaridade informado no perfil, estes algoritmos podem ser, Star ou Cliques. De acordo com o perfil cadastrado, é selecionado um dos algoritmos já descritos, conforme explicação breve. Para uma maior compreensão do comportamento desta etapa, segue funcionamento dos algoritmos. Star: • Cria um cluster e adiciona a primeira notícia da coleção • Para adicionar mais notícias a esse cluster ele obtém o índice de similaridade entre a próxima notícia e o primeiro registro armazenado no cluster. • Se o índice gerado for maior ou igual ao limiar, então essa notícia é armazenada no cluster e assim sucessivamente com todas as outras notícias. • Para as notícias que não foram clusterizadas, processo de criação dos clusters é reiniciado. Cliques (que possui funcionamento semelhante ao Star, porém com uma diferença básica): • No processo de seleção para a adição ao cluster criado, ao invés de comparar uma notícia somente com o primeiro registro, é feita a comparação com todos os registros do cluster, e a adição da notícia depende do alcance do índice de similaridade em todas as comparações. Na etapa do cálculo de similaridade são retiradas as StopWords e logo após é calculado o coeficiente de Jaccard sobre os textos. O resultado da clusterização é enviado para avaliação. 3.1.7 Avaliação Esta etapa recebe o conjunto de clusters com as notícias agrupadas e monta uma página web com o resultado dos agrupamentos para mostrar ao usuário ou enviá-la por e-mail 4 EXPERIMENTOS Para que fosse possível medir e comparar os testes optou-se por criar uma base dados com 36 10 notícias extraídas de fontes de RSS da internet. Estas notícias são divididas em quatro temas Cinema, Receitas, Vôlei e Futebol, cada tema contendo 9 notícias que são textos em português retirados de sites brasileiros, como segue visualização dos Quadro 2 e Quadro 3, com os grupos e os títulos das notícias. Quadro 2 – Grupos de Notícias dos Temas: Cinema, Receitas Cinema Id Titulo 0 Exclusivo: Saiba quem é Gem, a Sirens de 'Tron: O Legado' 1 Exclusivo: Conheça Castor, personagem de 'Tron: O Legado' 2 Exclusivo: Saiba quem é Clu, o software do mal em 'Tron' 3 Vem aí Atividade Paranormal 3, confira! 4 Atividade Paranormal 2 estreia batendo recordes 5 A nova aventura de Rapunzel, Enrolados, ganha novos pôster’s 6 'Atividade Paranormal 2' lidera bilheterias nos Estados Unidos 7 Mostra exibe o clássico 'Metrópolis' de graça no Ibirapuera 8 'Atividade Paranormal 2' bate recorde na noite de estreia Receitas Id Titulo 9 Surpresa de biscoitos 10 Drinque Tropical 11 Sobremesa Delícia de Morango 12 Chocolate para modelagem/efeite 13 Chantilly com creme de leite em lata 14 Flan de Uva 15 Torta Gelada de Gala 16 Filé em camadas 17 Peixe delícia à moda Cearense 11 Quadro 3 – Grupos de Notícias dos Temas: Vôlei e Futebol Vôlei Id Titulo 18 Recuperado, líbero Alan inicia "nova carreira" em Londrina 19 Zé Roberto aponta Itália e Holanda como principais rivais na 1ª fase 20 Serginho cita "novas peças" e cogita aposentadoria da Seleção 21 Após "vacilo" em 2006, Jaqueline diz que só pensa no título mundial 22 Brasil vence Japão em último amistoso antes de Mundial 23 Osasco leva susto, mas supera São Caetano de virada 24 Após 25h de viagem, Seleção chega ao Japão e faz 1º treino 25 Seleção feminina embarca com pressão por título inédito 26 Adriana Behar e Shelda entram para o Hall da Fama do vôlei Futebol Id Titulo 27 Torcida grita o nome de Jardel 28 Tricolor vence o Ypiranga em amistoso 29 Torcida faz carreata na chegada a Erechim 30 Emocionado, Júnior dá adeus ao Olímpico 31 Inter terá quatro desfalques para enfrentar o Atlético GO 32 Roth se preocupa: "está faltando competência na frente" 33 Goleiro evita derrota contra o Inter e Flu mantém liderança 34 Roth reforça foco do Internacional no Mundial de Clubes 35 Roth defende Alecsandro de protestos da torcida do Inter Tendo por base essa organização torna possível avaliar os clusters formados, se estão de acordo com os grupos de temas propostos, admitindo a subdivisão em assuntos específicos. Para analise do comportamento dos agrupamentos, nos experimentos dos limiares com os algoritmos Star e Cliques cada algoritmo, foram testados os limiares 2%, 3%, 4%, 5% e 6%, levando em conta a presença ou não de StopWords (palavras muito comuns do vocabulário) no texto. Para os resultados obtidos e tabulados foi aplicada a validação de precisão, descrita na seção 2.Para os valores agrupados fora do tema não são considerados acertos, assim como as subdivisões de um assunto em mais de um grupo. Nos testes buscou-se espaço em branco “ ”, por existir em todas as notícias, forçando o sistema a lidar com todas as notícias não importando o tema ou palavra específica. 12 4.1 Resultados Nessa seção serão demonstrados os resultados obtidos com os testes mais significativos realizados através do protótipo desenvolvido, comparando a execução e comentando o comportamento dos algoritmos Cliques e Star.através dos limiares testados, bem como a relação com a adição da técnica de retirada de StopWords para refino dos resultados com redução de ruído. Primeiramente serão mostrados os resultados gerados com o algoritmo Star tendo as StopWords. Quadro 4 – Algoritmo Star com limiar a 2% Algoritmo Limiar Agrupamentos Notícias Gabarito/Tema acertos Star 2% Grupo 0 0, 1, 2, 5, 7, 13 0, 1, 2, 3, 4, 5, 6, 7, 8/Cinema 5 Star 2% Grupo 1 3, 4, 6, 8, 10 4 Star 2% Grupo 2 0, 1, 2, 3, 4, 5, 6, 7, 8/Cinema 9, 10, 11, 12, 13, 14, 15, 16, 17/Receitas Star 2% Grupo 3 Star 2% Grupo 4 9, 11, 12, 14, 15, 16, 17 18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 34, 35 27, 29, 30, 31, 32, 33 18, 19, 20, 21, 22, 23, 24, 25, 26/Vôlei 27, 28, 29, 30, 31, 32, 33, 34, 35/Futebol 7 9 6 total: 31 Precisão % 86,111 Como mostra o Quadro 4, o limiar de 2% é baixo e o comportamento do algoritmo permite agrupar uma notícia sem ter coesão com o grupo como ocorre nos grupos 0 e 1 de agrupar notícias por palavras em comum, porém sem significado semântico dentro do tema. Essa falta de coesão é provocada por palavras como: “ser”, “mais”, “aqui”.não foram retiradas dos textos geraram similaridade suficiente entre os textos para que fossem agrupados. Essas palavras podem ser cogitadas para a adição na lista de StopWords. Podemos perceber que houve um agrupamento de notícias, correspondentes a temas diferentes, devido à proximidade dos termos usados nos temas Vôlei e futebol, como “técnico” e “Seleção”. Quadro 5 – Algoritmo Star com limiar a 4% Algoritmo Limiar Agrupamentos Notícias Gabarito/Tema acertos Star 4% Grupo 0 0, 1, 2 0, 1, 2, 3, 4, 5, 6, 7, 8/Cinema Star 4% Grupo 1 3, 4, 6, 8 0, 1, 2, 3, 4, 5, 6, 7, 8/Cinema 3 4 Star 4% Grupo 2 5 0, 1, 2, 3, 4, 5, 6, 7, 8/Cinema Star 4% Grupo 3 Star 4% Grupo 4 7, 33 9, 10, 11, 12, 13, 14, 15, 16 Star 4% Grupo 5 Star 4% Star 0 0 17 9, 10, 11, 12, 13, 14, 15, 16, 17/Receitas 9, 10, 11, 12, 13, 14, 15, 16, 17/Receitas Grupo 6 18, 19, 20, 21, 22, 24, 25 18, 19, 20, 21, 22, 23, 24, 25, 26/Vôlei 4% Grupo 7 23 18, 19, 20, 21, 22, 23, 24, 25, 26/Vôlei Star 4% Grupo 8 4% Grupo 9 18, 19, 20, 21, 22, 23, 24, 25, 26/Vôlei 27, 28, 29, 30, 31, 32, 33, 34, 35/Futebol 0 Star 26 27, 28, 29, 30, 31, 32, 34, 35 total: Precisão % 16 13 8 0 7 0 9 44,444 O quadro 5 permite observar que ao executarmos o programa usando o agrupamento Star com um limiar de 4% aparentemente subdividiu o tema cinema , porém cada grupo criado é muito coeso quando ao assunto por exemplo: Grupo 0 estão concentradas as notícias do filme “Tron”, já no Grupo1 ficaram todas as notícias referentes ao filme, “Atividade paranormal”. Quanto aos de mais grupos houve a concentração de um tema por grupo, exceto por notícias bastante desconexas que acabaram se isolando. Quadro 6 – Algoritmo Star com limiar a 6% Algoritmo Limiar Agrupamentos Notícias Gabarito/Tema acertos Star 6% Grupo 0 0, 1, 2 0, 1, 2, 3, 4, 5, 6, 7, 8/Cinema 3 Star 6% Grupo 1 3, 4 0, 1, 2, 3, 4, 5, 6, 7, 8/Cinema 0 Star 6% Grupo 2 5 0, 1, 2, 3, 4, 5, 6, 7, 8/Cinema 0 Star 6% Grupo 3 6, 8 0, 1, 2, 3, 4, 5, 6, 7, 8/Cinema 0 Star 6% Grupo 4 6% Grupo 5 Star 6% Grupo 6 17 0, 1, 2, 3, 4, 5, 6, 7, 8/Cinema 9, 10, 11, 12, 13, 14, 15, 16, 17/Receitas 9, 10, 11, 12, 13, 14, 15, 16, 17/Receitas 0 Star 7 9, 10, 11, 12, 13, 14, 15, 16 Star 6% Grupo 7 18, 19, 20, 21 18, 19, 20, 21, 22, 23, 24, 25, 26/Vôlei 4 Star 6% Grupo 8 22, 23, 24, 25 18, 19, 20, 21, 22, 23, 24, 25, 26/Vôlei 4 Star 6% Grupo 9 26 0 Star 6% Grupo 10 Star 6% Grupo 11 Star 6% Grupo 12 18, 19, 20, 21, 22, 23, 24, 25, 26/Vôlei 27, 28, 29, 30, 31, 32, 33, 34, 35/Futebol 27, 28, 29, 30, 31, 32, 33, 34, 35/Futebol 27, 28, 29, 30, 31, 32, 33, 34, 35/Futebol total: 12 Precisão % 33,333 27, 29, 30, 31, 32, 35 28 33, 34 8 0 6 2 O resultado do agrupamento a 6 % apresentado pelo quadro 6 é a dispersão das notícias. A subdivisão em grupos menores sem significado dentro do tema, isso não gera resultado satisfatório por que separa notícias que deveriam estar juntas em um mesmo grupo. Este teste mostra que ao elevar o limiar de agrupamento ocorre a formação de grupos cada vez mais distintos no sentido de geração de grupos que contém poucas notícias ou ate mesmo grupos unitários. Quando comparados esses resultados com os resultados gerados sem retirarmos as StopWods o algoritmo Star na Tabela1 apresenta uma diferença brusca na qualidade dos agrupamentos, o que mostra que esse algoritmo é mais sensível a interferências na qualidade dos textos. Tabela 1 – Agrupamento Star Algoritmo Star Limiar Com StopWords Sem StopWords 2% 0 86,11 3% 0 66,66 4% 0 44,44 5% 13,88 50 6% 8,33 33,33 14 Quadro 7 – Algoritmo Cliques com Limiar a 2% Algoritmo Limiar Agrupamentos Notícias Gabarito/Tema Acertos Cliques 2% Grupo 0 0, 1, 2, 7 0, 1, 2, 3, 4, 5, 6, 7, 8/Cinema 4 Cliques 2% Grupo 1 3, 4, 6, 8 0, 1, 2, 3, 4, 5, 6, 7, 8/Cinema 4 Cliques 2% Grupo 2 5 0, 1, 2, 3, 4, 5, 6, 7, 8/Cinema Cliques 2% Grupo 3 9, 10, 11, 12, 13, 14, 15, 16 9, 10, 11, 12, 13, 14, 15, 16, 17/Receitas Cliques 2% Grupo 4 9, 10, 11, 12, 13, 14, 15, 16, 17/Receitas Cliques 2% Grupo 5 17 18, 19, 20, 21, 22, 23, 24, 25, 26 Cliques 2% Grupo 7 27, 28, 32, 33 27, 28, 29, 30, 31, 32, 33, 34, 35/Futebol 4 Cliques 2% Grupo 8 29, 30, 31, 34, 35 27, 28, 29, 30, 31, 32, 33, 34, 35/Futebol 5 total: 34 Precisão % 94,444 8 9 18, 19, 20, 21, 22, 23, 24, 25, 26/Vôlei O teste apresentado no Quadro7 que mostra o limiar de 2% permite ver que os agrupamentos foram alem do esperado especializando o tema cinema em dois grupos coesos de assunto distinto dentro do mesmo tema, comportamento esse bastante parecido com o algoritmo Star com o limiar de 4% como mostra o quadro 5. Obteve-se sob este limiar quase a excelência ao identificar o tema Receitas e um resultado excelente no tema vôlei, isso auxiliou a elevar a precisão ao valor mais auto dos testes realizados. Quadro 8 – Algoritmo Cliques com Limiar a 4% Algoritmo Limiar Agrupamentos Notícias Cliques 4% Grupo 0 0, 1, 2 Gabarito/Tema 0, 1, 2, 3, 4, 5, 6, 7, 8/Cinema Acertos 3 Cliques 4% Grupo 1 3, 4, 6, 8 0, 1, 2, 3, 4, 5, 6, 7, 8/Cinema 4 Cliques 4% Grupo 2 5 0, 1, 2, 3, 4, 5, 6, 7, 8/Cinema 0 Cliques 4% Grupo 3 7, 33 Cliques 4% Grupo 4 9, 10, 11, 12, 13,14, 15 9, 10, 11, 12, 13, 14, 15, 16, 17/Receitas 7 Cliques 4% Grupo 5 16, 17 9, 10, 11, 12, 13, 14, 15, 16, 17/Receitas 2 Cliques 4% Grupo 6 18, 19, 20, 21, 22, 24, 25, 26 18, 19, 20, 21, 22, 23, 24, 25, 26/Vôlei 8 Cliques 4% Grupo 7 23 18, 19, 20, 21, 22, 23, 24, 25, 26/Vôlei 0 Cliques 4% Grupo 8 26 18, 19, 20, 21, 22, 23, 24, 25, 26/Vôlei 0 Cliques 4% Grupo 9 27, 28 27, 28, 29, 30, 31, 32, 33, 34, 35/Futebol 0 Cliques 4% Grupo 10 29, 30 27, 28, 29, 30, 31, 32, 33, 34, 35/Futebol 0 Cliques 4% Grupo 11 31, 32, 34, 35 27, 28, 29, 30, 31, 32, 33, 34, 35/Futebol 4 total: Precisão % 28 0 77,778 No Quadro 8 pode se perceber que com o aumento do limiar os grupos que haviam sido formados no limiar mais baixo começam a se dissolver em grupos menores, reduzindo a precisão do resultado obtido pelo limiar. 15 Quadro 9 – Algoritmo Cliques com Limiar a 6% Algoritmo Limiar Agrupamentos Notícias Cliques 6% Grupo 0 0, 1, 2 Gabarito/Tema 0, 1, 2, 3, 4, 5, 6, 7, 8/Cinema Acertos 3 Cliques 6% Grupo 1 3, 4 0, 1, 2, 3, 4, 5, 6, 7, 8/Cinema 0 Cliques 6% Grupo 2 5 0, 1, 2, 3, 4, 5, 6, 7, 8/Cinema 0 Cliques 6% Grupo 3 6, 8 0, 1, 2, 3, 4, 5, 6, 7, 8/Cinema 2 Cliques 6% Grupo 4 7 0, 1, 2, 3, 4, 5, 6, 7, 8/Cinema 0 Cliques 6% Grupo 5 9, 10, 11, 13,14 Cliques 6% Grupo 6 12 9, 10, 11, 12, 13, 14, 15, 16, 17/Receitas 5 9, 10, 11, 12, 13, 14, 15, 16, 17/Receitas 0 Cliques 6% Grupo 7 15 Cliques 6% Grupo 8 16, 17 9, 10, 11, 12, 13, 14, 15, 16, 17/Receitas 0 9, 10, 11, 12, 13, 14, 15, 16, 17/Receitas 2 Cliques 6% Grupo 9 18, 19, 20 18, 19, 20, 21, 22, 23, 24, 25, 26/Vôlei 3 Cliques 6% Grupo 10 21, 22, 23, 25 18, 19, 20, 21, 22, 23, 24, 25, 26/Vôlei 4 Cliques 6% Grupo 11 24, 26 18, 19, 20, 21, 22, 23, 24, 25, 26/Vôlei 2 Cliques 6% Grupo 13 27, 29, 30 Cliques 6% Grupo 14 28 27, 28, 29, 30, 31, 32, 33, 34, 35/Futebol 3 27, 28, 29, 30, 31, 32, 33, 34, 35/Futebol 0 Cliques 6% Grupo 15 31, 33, 34, 35 Cliques 6% Grupo 16 32 27, 28, 29, 30, 31, 32, 33, 34, 35/Futebol 4 27, 28, 29, 30, 31, 32, 33, 34, 35/Futebol 0 total: Precisão % 28 77,778 O quadro 9, que mostra o teste do algoritmo com o limiar de 6%,permite perceber mais claramente que ao elevar o limiar de agrupamento ocorre a formação de grupos cada vez mais distintos no sentido de geração de grupos que contém poucas notícias ou ate mesmo grupos unitários. Agora comparamos os resultados obtidos, fazendo um comparativo entre a retirada ou não de StopWords,côo mostra a tabela 2 abaixo, podemos medir uma interferência menos no comportamento do algoritmo Cliques em relação ao algoritmo Star. Tabela 2 - Agrupamentos Cliques Algoritmo Cliques Limiar Com StopWords Sem StopWords 2% 0 94,44 3% 27,77 83,33 4% 8,33 77,77 5% 33,33 69,44 6% 38,88 77,77 Concluindo a explanação dos resultados com a Figura 6, que mostra um comparativo geral das precisões obtidas com os resultados de todos os testes realizados e salienta ainda mais o comportamento comum que se apresentam nos dois algoritmos aqui comparados, que é a queda na qualidade das clusterizações com o crescente aumento dos limiares Porém demonstra também que no caso dos testes feitos com as StopWords o comportamento dentro dos limiares testados é inverso, isso se dá por que com o aumento do limiar, ou seja, a falta de sensibilidade do limiar a interferência gerada pelas palavras muito comuns faz com que as palavras de maior significado semântico junto ao tema sejam valorizadas e tomadas com diferencial, sobressaindo o valor do limiar entre os textos comparados 16 Figura 6 – Resumo dos Resultados 5 CONSIDERAÇÕES FINAIS Esse trabalho objetivou aplicar as técnicas de avaliação de similaridade de texto para o agrupamento de notícias utilizando um protótipo que permitisse armazenar em uma base de dados as notícias recebidas através da internet. Teve por objetivo também estudar técnicas de classificação e agrupamento de textos além de seus critérios de avaliação, para permitir uma seleção de informação em torno de um interesse específico. Conclui-se com os experimentos realizados localmente sob uma base de dados de teste que o uso da técnica de agrupamento de texto Star, pode-se agrupar conteúdo textual, com uma boa coesão entre os assuntos dos temas, mas que esse algoritmo e bastante sensível ao conteúdo podendo apresentar resultados bastante diferentes de acordo com a qualidade das notícias recuperadas pelo filtro. A partir dos resultados obtidos com os testes sobre o algoritmo cliques, conclui-se que ele provê uma coesão maior nos resultados, não sendo tão suscetível a ordenação do grupo de notícias o qual se deseja agrupar. Sobre os agrupamentos gerados com os limiares associados aos algoritmos que foram testados contra a base de dados de teste pode-se concluir que quanto maiores forem os limiares, maior será a dispersão da informação tendendo a gerar grupos com cada vez menos elementos até que os grupos contenham apenas uma notícia. O desenvolvimento desse trabalho foi importante para se perceber a melhor associação de um dos algoritmos de classificação e agrupamento textual conforme a base de dados de teste, que foi com o algoritmo Cliques fazendo a retirada das StopWords e usando a similaridade de Jaccard com o limiar de 2%. Foi observado na analise das notícias, que podem existir blocos de texto que não fazem parte da notícia como, por exemplo, “saiba mais...” ou a assinatura da fonte do RSS, esses blocos de texto poderiam ser retirados para melhorar a precisão do texto e assim o funcionamento dos algoritmos de similaridade levaria em conta somente as palavras mais representativas contidas nos textos, a aplicação dessa técnica poderia ser aplicado num trabalho futuro. 17 AGRADECIMENTOS Muitas vezes acreditamos estar sozinhos na caminhada de uma vida, mas isso não passa de uma impressão, pois aqueles que têm fé nunca estão sozinhos. Gostaria de começar agradecendo a Deus por permitir que eu tivesse a quem agradecer. Não poderia deixar de começar agradecendo a minha mãe que é uma fiel depositaria de confiança na minha pessoa e que tem passado por poucas e boas ao meu lado e meu pai ter me ensinado a ver o melhor nas pessoas. Agradeço aos meus pais pelos irmãos que me deram pois sei que tenho dois grandes companheiros de jornada E indispensável agradecer a vida, pelos amigos irmãos que venho colecionando pelo meu caminho dos quais, sem a presença esse trabalho não teria sido possível. Finalizo agradecendo a meu orientador pela coragem, paciência e ensinamentos. 18 REFERÊNCIAS BALASSIN, A. J. Uma Abordagem Baseada Em Agentes Para Filtragem De Correspondências Eletrônicas. Revista Eletrônica de Iniciação Cientifica (REIC), v.II, n IV, Dezembro 2002. CEFETCE, Centro Federal de Educação Tecnológica do Ceará.Clipagem Virtual. Disponível em <http://www.etfce.br/Admin/Comunicacao/clipagem.php>. Acessado em Março de 2009. COMSCORE, ComScore.Inc. Usuários da Internet com Idade entre 6 e 14 anos no Brasil Passam 60% de seu Tempo Online em Sites de Comunicação e Entretenimento.Disponível em <http://www.comscore.com/por/Press_Events/Press_Releases/2010/6/comScore_Expands_Capabilities_in_ Brazil/%28language%29/por-BR>. Acessado em Novembro de 2010. CHAPMAN, Sam. SimMetrics. Disponível em:< http://www.dcs.shef.ac.uk/~sam/stringmetrics.html>, 04/2009. FERNEDA, E. Recuperação de Informação: Análise sobre a contribuição da Ciência da Computação para a Ciência da Informação. Universidade de São Paulo, Ciências da Comunicação, São Paulo 2003 (Tese de Doutorado). GONÇALVES, Rodrigo. Similaridade entre documentos semi-estruturados. In: II ERBD (Escola Regional de Banco de Dados), Passo Fundo – RS 2006. IBGE, INSTITUTO BRASILEIRO DE GEOGRAFIA E ESTATISTICA. Censo 2010.Porto Alegre [s.n], 29 de novembro de 2010. Disponível em < http://www.ibge.gov.br/home/ > KOWALSKI, G.Information Retrieval Systems: Theory and Implementation Boston: Kluwer Academic, 1997. KURAMOTO, H. Uma abordagem alternativa para o tratamento e a recuperação de informação textual: os sintagmas nominais. Ciência da Informação, v 25, n2, Abril, 1995 LOH, Stanley. Descoberta de Conhecimento em Textos. UFRGS, Pós-Graduação, Porto Alegre – RS 1999. LOH, Stanley. Text Mining – Lista de StopWords –Stoplists, Blog de Text Mining. Porto Alegre [s.n], 26 de Novembro de 2008. Disponivel em: <http://miningtext.blogspot.com/2008/11/listas-de-stopwordsstoplist-portugues.html> MANNING, C. D., RAGHVAN, P., SCHÜTZE, H.: Introduction to Information Retrieval. Cambridge University Press, 2008 SOUZA, S. J. S, Iniciando no RSS: Feed mania. Porto Alegre [s.n], 18 de março de 2009. Disponível em: <http://www.htmlstaff.org/ver.php?id=1392> WITTEN, I.H, FRANK, E. Data Mining: Practical Machine Learning Tools and Techniques.Morgan Kaufmann, 2nd ED. 2005 19