i Darley Passarin Text Mining no Aperfeiçoamento de Consultas e Definição de Contextos de uma Central de Notícias Baseada em RSS Palmas 2005 ii Darley Passarin Text Mining no Aperfeiçoamento de Consultas e Definição de Contextos de uma Central de Notícias Baseada em RSS “Monografia apresentada como requisito parcial das disciplinas de Trabalho de Conclusão de Curso em Sistemas de Informação I (TCC I) e Trabalho de Conclusão de Curso em Sistemas de Informação II (TCC II) do curso de Sistemas de Informação, orientado pela Profª. MSc. Parcilene Fernandes de Brito.” Palmas 2005 iii DARLEY PASSARIN TEXT MINING NO APERFEIÇOAMENTO DE CONSULTAS E DEFINIÇÃO DE CONTEXTOS DE UMA CENTRAL DE NOTÍCIAS BASEADA EM RSS “Monografia apresentada como requisito parcial das disciplinas de Trabalho de Conclusão de Curso em Sistemas de Informação I (TCC I) e Trabalho de Conclusão de Curso em Sistemas de Informação II (TCC II) do curso de Sistemas de Informação, orientado pela Profª. MSc. Parcilene Fernandes de Brito.” Aprovada em ___/___/_______ BANCA EXAMINADORA ______________________________________________________ Profª. MSc. Parcilene Fernandes de Brito - Orientadora Centro Universitário Luterano de Palmas _______________________________________________________ Prof. MSc. Fernando Luiz de Oliveira Centro Universitário Luterano de Palmas _______________________________________________________ Prof.ª Dra Thereza P. P. Padilha Centro Universitário Luterano de Palmas Palmas 2005 iv AGRADECIMENTOS Agradeço aos meus familiares, principalmente aos meus pais que lutaram fortemente para a graduação de seus filhos; à minha namorada que sempre me fortaleceu nas horas boas e ruins; aos meus amigos, por sempre estarem me apoiando na vida acadêmica e pessoal; e a minha professora orientadora que soube contornar as minhas dificuldades com clareza e responsabilidade. v RESUMO Este trabalho tem como foco o aperfeiçoamento de uma Central de Notícias (CN) baseada em informações obtidas de feeds RSS (Really Simple Syndication). Tal central se tornou um complexo repositório de informações, dos mais variados contextos e locais, atualizadas diariamente, o que tornou relevante a construção de mecanismos capazes de melhorar a sistematização do seu conteúdo. Esses mecanismos foram criados neste trabalho através da utilização de técnicas de Inteligência Artificial, visando o aperfeiçoamento das formas de consulta e retorno das informações para o usuário. Esta é a principal idéia do desenvolvimento deste trabalho, em que foi aplicado o processo de Clustering, pertencente à técnica de Mineração de Textos (Text Mining), com o objetivo de se criar clusters (grupos) de notícias que tratam sobre o mesmo assunto, tendo como conseqüência, a melhora na organização e disposição das informações na CN. Portanto, esta é a premissa básica para o desenvolvimento deste trabalho, cujo objetivo é apresentar os estudos acerca da técnica de Mineração de Textos e, assim, aplicá-las na melhoria de uma Central de Notícias. Palavras-chave: RSS, Mineração de Textos, Central de Notícias. vi ABSTRACT This work has as focus the perfectioning of a Center of News (CN) based in information gotten of feeds RSS (Really Simple Syndication). Such center if became a complex repository of information, of the most varied contexts and places, brought up to date daily, what it became excellent the construction of mechanisms capable to improve the systematization of its content. These mechanisms had been created in this work through the use of techniques of Artificial Intelligence, aiming at the perfectioning of the consultation forms and return of the information for the user. This is the main idea of the development of this work, where the process of Clustering was applied, pertaining to the technique of Text Mining, with the objective of if creating clusters (groups) of notice that treat the same on subject, having as consequence, the improvement in the organization and disposal of the information in the CN. Therefore, this is the basic premise for the development of this work, whose objective is to present the studies concerning the technique of Text Mining and, thus, to apply in the improvement of a Center of News. Palavras-chave: RSS, Text Mining, Center of News. vii SUMÁRIO 1 2 3 4 5 6 INTRODUÇÃO...........................................................................................................11 REVISÃO DE LITERATURA ...................................................................................13 2.1 Mineração de Textos (Text Mining)................................................................... 13 2.1.1 Tipos de Abordagens de Dados .................................................................. 15 2.1.1.1 Análise Semântica .................................................................................. 15 2.1.1.2 Análise Estatística .................................................................................. 16 2.1.2 Preparação dos Dados................................................................................. 17 2.1.2.1 Recuperação da Informação ................................................................... 17 2.1.2.1.1 Modelo Booleano ............................................................................. 17 2.1.2.1.2 Modelo de Espaço Vetorial .............................................................. 19 2.1.2.2 Análise dos Dados .................................................................................. 21 2.1.2.2.1 Stopwords ......................................................................................... 21 2.1.2.2.2 Stemming.......................................................................................... 22 2.1.2.2.3 Thesaurus.......................................................................................... 23 2.1.3 Processamento dos Dados .......................................................................... 24 2.1.3.1 Sumarização ........................................................................................... 24 2.1.3.2 Categorização ......................................................................................... 25 2.1.3.3 Clustering ............................................................................................... 26 2.1.3.3.1 Identificação e Seleção de Termos-Índices ...................................... 31 2.1.3.3.2 Identificação de Graus de Similaridade............................................ 32 2.1.3.3.3 Agrupamento .................................................................................... 34 MATERIAIS E MÉTODOS .......................................................................................37 3.1 Local e Período................................................................................................... 37 3.2 Materiais ............................................................................................................. 37 3.2.1 Hardwares................................................................................................... 37 3.2.2 Softwares .................................................................................................... 37 3.2.3 Fontes Bibliográficas.................................................................................. 38 3.3 Metodologia........................................................................................................ 38 3.3.1 RSS ............................................................................................................. 38 3.3.2 PHP............................................................................................................. 39 3.3.3 PostgreSQL................................................................................................. 39 RESULTADOS E DISCUSSÃO ................................................................................40 4.1 Estrutura da Aplicação ....................................................................................... 40 4.2 Análise dos Dados .............................................................................................. 42 4.3 Representação das Informações.......................................................................... 45 4.4 Cálculo de Similaridade ..................................................................................... 46 4.5 Agrupamento ...................................................................................................... 48 4.6 Consultas ............................................................................................................ 50 4.7 Interface de Gerenciamento................................................................................ 54 CONCLUSÕES...........................................................................................................57 REFERÊNCIAS BIBLIOGRÁFICAS ........................................................................59 viii LISTA DE TABELAS Tabela 1 – Matriz de similaridade entre documentos.........................................................33 ix LISTA DE FIGURAS Figura 1 – Etapas de Mineração de Texto [EBECKEN, 2003]..........................................14 Figura 2 – Modelo Espaço Vetorial [WIVES, 2002]. ........................................................20 Figura 3 – Remoção de stopwords. ....................................................................................22 Figura 4 – Técnica stemming. ............................................................................................23 Figura 5 – Processo de Sumarização..................................................................................25 Figura 6 – Processo de Categorização [EBECKEN, 2003]. ..............................................26 Figura 7 – Processo de Clustering [EBECKEN, 2003]. ....................................................28 Figura 8 – Formas de Clustering [WIVES, 1999]. ............................................................29 Figura 9 – Etapas do processo de Clustering. ....................................................................30 Figura 10 – Processo de Agrupamento [WIVES, 1999]. ...................................................34 Figura 11 – Funcionamento Algoritmo Stars.....................................................................36 Figura 12 – Estrutura Aplicação.........................................................................................41 Figura 13 – Exemplificação da Remoção de Stopwords utilizando Exp. Regulares. ........44 Figura 14 – Exemplificação da Representação das Informações.......................................45 Figura 15 – Exemplificação do Cálculo de Similaridade...................................................47 Figura 16 – Exemplificação do Agrupamento (Clustering)...............................................49 Figura 17 – Tela de Principal da CN..................................................................................52 Figura 18 – Tela de Notícias Semelhantes da CN..............................................................54 Figura 19 – Tela de Gerenciamento da CN........................................................................55 Figura 20 – Tela de Leitura de Feeds RSS.........................................................................56 Figura 21 – Tela de Análise dos Dados..............................................................................56 x LISTA DE ABREVIATURAS CN Central de Notícias DOM Document Object Model XML Extensible Markup Language HTML HiperText Markup Language PHP Hypertext Preprocessor RSS Really Simple Syndication RI Recuperação de Informações 11 1 INTRODUÇÃO O RSS (Really Simple Syndication) é um padrão de distribuição de conteúdo, principalmente de notícias, utilizado por vários sites, com intuito de divulgar e disponibilizar suas informações para o usuário, de forma simples. Isso evita que o leitor necessite navegar por vários endereços pela internet em busca de informações sobre um determinado contexto. No trabalho Central de Notícias (CN) [PASSARIN, 2005] viu-se a relevância, a partir destas informações, da construção de uma aplicação capaz de obter notícias disponíveis em várias fontes (sites), armazená-las em um repositório central, organizá-las por contexto e propiciar uma interface com o usuário capaz de executar consultas avançadas e eficientes. Para isso, considerou-se, como parâmetro de ordenação, as interações dos usuários com a CN. A CN se tornou um complexo repositório de informações, dos mais variados contextos e locais. Tais informações são atualizadas diariamente, o que propicia a relevância de construir novos mecanismos capazes de melhorar a sistematização do seu conteúdo. Desta forma, foi escolhida dentro da área de Inteligência Artificial, a técnica de Mineração de Textos (Text Mining), que busca dentro de documentos não estruturados (textos) a extração de novos conhecimentos e de outros padrões [EBECKEN, 2003]. Na técnica de Mineração de Textos a principal visão de extração de conhecimento é concebida como processamento de dados, em que nesta etapa poderão ser executados certos processos a fim de extrair conhecimento de documentos textos, para o uso em situações diversas. Dentre as tarefas existentes, destaca-se a sumarização, categorização e clustering. No qual a tarefa de clustering foi adotado neste trabalho. A partir da aplicação do Clustering em uma coleção de textos (neste caso, notícias) é possível a criação de clusters ou grupos de documentos similares, ou seja, através de uma coleção desorganizada de documentos textos é possível realizar uma sistematização na forma de grupos, agregando os documentos por assunto e, conseqüentemente, por afinidade. Portanto, a idéia principal deste trabalho está no aperfeiçoamento da organização das informações retornadas para o usuário, utilizando, para isso, a aplicação da tarefa de Clustering da técnica de Mineração de Textos. A criação desses clusters de notícias visa possibilitar à CN, a partir da leitura de uma notícia pelo usuário, a capacidade de sugerir novas notícias que tratam do mesmo assunto, de forma automática. Isso propiciará um ambiente conveniente para o usuário, 12 pois através da visualização de notícias similares poderão ser evitadas execuções de consultas nem sempre satisfatórias. Este trabalho está organizado da seguinte forma: no capítulo 1 (um) tem-se a introdução; o capítulo 2 (dois) é reservado para a revisão de literatura, abordando as etapas da técnica de Mineração de Dados, enfatizando o processo de Clustering; o capítulo 3 trata dos materiais utilizados e a metodologia empregada no desenvolvimento do trabalho; o capítulo 4 aborda os resultados obtidos a partir da adoção desta técnica; no capítulo 5 são apresentadas às conclusões deste estudo e o capítulo 6 é destinado às referências bibliográficas. 13 2 REVISÃO DE LITERATURA Neste capítulo serão abordados os conceitos sobre as técnicas adotadas no desenvolvimento do trabalho. A Mineração de Textos (Text Mining) foi a técnica que permitiu a concretização da idéia central do trabalho, que é a aplicação de técnicas e processos a fim de auxiliar a extração de conhecimento inovador a partir de documentos textos. O estudo de suas etapas e processos fez-se necessário, assim como a relevância de se pesquisar na literatura as definições e etapas do processo de Clustering. Tal processo foi adotado para a criação de grupos (clusters) de notícias relacionadas ao mesmo assunto. Portanto, seguem nas seções seguintes as definições sobre a técnica de Mineração de Textos. 2.1 Mineração de Textos (Text Mining) O inevitável crescimento do volume de informações em formato texto, produzidos e armazenados em meios eletrônicos, proporcionou o surgimento do que é denominado de sobrecarga de informações [WIVES, 1997]. Essa sobrecarga originou-se da grande produção diária de informações textuais, de forma desordenada, impulsionada pela internet, que trouxe consigo uma problemática de organização (de informações), devido à dificuldade de assimilação de grandes quantidades de informações pelo ser humano. Dentre essas informações textuais estão documentos como relatórios, atas de reuniões, históricos pessoais, e-mails, planilhas, documentações, artigos, entre outros. Entretanto, até pouco tempo atrás, a organização dessas informações textuais não eram tidas como importantes, até que estudos provaram o contrário, mostrando que estas informações nãoestruturadas, a partir de uma organização eficaz, poderiam ser utilizadas de forma inteligente em vários campos, possibilitando até mesmo, tirar alguma vantagem competitiva ou dar suporte a tomada de decisões [EBECKEN, 2003]. Com esta visão competitiva e organizacional, emergiu a área de pesquisa da Mineração de Textos (Text Mining), que tem como principal finalidade, extrair padrões ou inferir algum tipo de conhecimento de um conjunto de dados [ALMEIDA, 2004]. A Mineração de Textos é definida como um conjunto de técnicas e processos que descobrem conhecimento inovador nos textos [EBECKEN, 2003] e/ou como um processo de extração de conhecimento a partir de documentos textuais não-estruturados [TAN, 1999]. Essa área é motivo de pesquisas e aplicações em vários campos de estudo, que vão 14 desde a Inteligência Artificial, Estatística, Recuperação da Informação, Bancos de Dados até às Áreas Econômicas. Como exemplo, a partir do surgimento da Mineração de Textos, foi possível às empresas e pessoas organizarem de forma eficaz uma grande quantidade de informações de forma automática. Por exemplo, as informações contidas nos e-mails recebidos e enviados por uma empresa, dado o volume extenso, são difíceis de serem organizadas e encaminhadas para um setor responsável. Essa problemática pode ser resolvida através da Mineração de Textos, possibilitando que essas mensagens, de forma automática, sejam encaminhadas imediatamente para o setor competente, ou facilitando a leitura através da criação de resumos das mensagens ou apenas da organização destas mensagens em grupos. A Mineração de Textos, como descrito, trata-se da execução de vários processos em várias etapas, de forma seqüencial e iterativa, que transforma ou organiza uma quantidade de documentos em uma estrutura sistematizada. Isso possibilita, posteriormente, a sua utilização de forma eficiente e inteligente. Essas etapas que compõe a Mineração de Textos podem ser visualizadas através da Figura 1. Figura 1 – Etapas de Mineração de Texto [EBECKEN, 2003]. As etapas de Mineração de Textos vão desde a escolha dos documentos textuais que serão trabalhados, da recuperação e análise das informações coletadas, do 15 processamento sobre estas informações, até o produto final ou estrutura desejada. Dentre essas etapas existe o que é chamado de preparação dos dados textuais, processamento dos textos e pós-processamento da mineração (Figura 1), que descrevem os principais processos executados na tarefa de Mineração de Textos. Estas etapas serão detalhadas nas próximas seções, dando ênfase nas principais partes que serão utilizadas nos resultados deste trabalho. 2.1.1 Tipos de Abordagens de Dados Antes de iniciar as etapas de Mineração de Textos é importante conhecer as formas em que as informações são tratadas em um texto. Existem duas formas de abordagem de informações textuais, que são: a análise semântica que é baseada na funcionalidade dos termos nos textos e a análise estatística que é baseada na freqüência em que os termos aparecem nos textos [EBECKEN, 2003]. O esclarecimento dessas abordagens possui a finalidade de melhorar a qualidade dos resultados no processo de Mineração de Textos, através do entendimento do funcionamento da linguagem natural ou da importância de determinados termos no texto (através da freqüência), permitindo a produção de resultados mais eficazes. Essas abordagens serão descritas nas seções seguintes. 2.1.1.1 Análise Semântica Na Análise Semântica, as informações textuais são trabalhadas conforme a seqüência em que os termos aparecem no contexto da frase, identificando a correta função de cada termo. Com isso torna-se possível identificar a real importância de cada termo em determinados contextos, possibilitando um ganho na qualidade dos resultados na tarefa de Mineração de Textos. Conforme [EBECKEN, 2003], o “emprego desse tipo de análise justifica-se pela melhoria em qualidade da Mineração de Textos quando incrementado de um processamento lingüístico mais complexo”. A Análise Semântica utiliza fundamentos e técnicas baseadas no processamento de linguagem natural. O termo Linguagem Natural nada mais é que o estudo detalhado das linguagens faladas pelos seres humanos a fim de criarem padrões e/ou algoritmos computacionais capazes de simular a capacidade de formulação de textos conforme o ser humano. Para a compreensão da linguagem natural é relevante o entendimento dos 16 principais tipos de conhecimentos existentes, dentre eles estão: o conhecimento morfológico, sintático, semântico e pragmático [CORDEIRO, 2005]. Como dito, a análise semântica dos textos procura identificar a importância das palavras dentro da estrutura da oração. A partir deste conhecimento analítico é possível a criação de modelos baseados em regras (criados manualmente por especialistas), para a aplicação em certos sistemas inteligentes [EBECKEN, 2003]. 2.1.1.2 Análise Estatística Na Análise Estatística a importância dos termos está ligada diretamente a quantidade de vezes que ela aparece nos textos. Este tipo de análise permite (independente do idioma) a criação de modelos, através do aprendizado estatístico, capazes de fornecer soluções computacionalmente viáveis para tarefas nas quais utilizar atividades humanas seriam muito trabalhosas, lentas, ou mesmo impossíveis em razão da grande quantidade de informações dispostas no dia-a-dia [EBECKEN, 2003]. O processo de aprendizado estatístico (ou estimativa de dados) segue os seguintes passos [EBECKEN, 2003]: 1) Codificação dos Dados: neste momento é feita a escolha de um modelo de codificação, indicado ou não por um especialista, capaz de identificar características relevantes dentro de um texto e descartar as irrelevantes, buscando sempre manter as principais (importantes) propriedades dos dados. 2) Estimativa dos Dados: após a escolha do modelo de codificação é definido, neste momento, um algoritmo de aprendizado para ser aplicado, com intuito de se obter um modelo mais adequado de estimativa para os dados. 3) Modelos de Representação de Documentos: um principal modelo de representação de documentos utilizado na tarefa de Mineração de Textos é conhecido por bag of words. Este tipo de codificação considera uma coleção de documentos como se fosse um container de palavras, que ignora a ordem das palavras dentro do texto assim como informações de pontuação ou estrutura, mas mantém o número de vezes que uma palavra aparece. A partir da utilização desta codificação é possível ter uma simplificação (ou resumo) de toda a abundância de informações expressas por um documento texto. 17 Através da Análise Semântica e Estatística são dados os primeiros passos para o início dos processos de Mineração de Textos. A partir dessas análises, é possível determinar metodologias específicas a determinados contextos, em busca de resultados mais satisfatórios oriundos da Mineração de Textos. 2.1.2 Preparação dos Dados Conforme a Figura 1 inicia-se o processo de Mineração de Textos através da preparação dos dados a serem trabalhados, ou seja, nesta etapa é feita a escolha dos documentos disponíveis, é executado o processo de recuperação das informações e posteriormente é feita a análise dos mesmos. Nas seções seguintes serão abordados de forma detalhada estes processos. 2.1.2.1 Recuperação da Informação A Recuperação da Informação (RI) é mais do que um processo de Mineração de Textos, e sim uma área independente que já vem sendo pesquisada há algum tempo (os primeiros estudos nessa área foram realizados em 1950, por Calvin Moores [GUP97 apud WIVES, 1997]). Sua área de pesquisa busca resolver um problema causado pelo grande acumulo de dados, que é a complexidade em se buscar e recuperar informações (que em sua maioria se encontra desorganizada e em grande quantidade) de forma eficiente e rápida. A partir desta problemática, os pesquisadores da área de RI desenvolveram (e desenvolvem) modelos capazes de representar grandes coleções de textos em estruturas organizadas (em tópicos, resumos ou índices), capazes de descrever em poucas palavras uma gama de informações, suficientes para facilitar, posteriormente, a execução de consultas por informações específicas [EBECKEN, 2003]. Dentre os modelos relacionados a RI, existem dois que se destacam [EBECKEN, 2003]: o modelo booleano e o modelo baseado em espaço vetorial. Esses dois modelos podem ser aplicados nesta etapa de Mineração de Textos como forma de organização das informações textuais, para uma posterior recuperação destas, de forma eficiente e que satisfaça as próximas etapas da Mineração de Textos. Nas seções seguintes serão explanados os modelos citados. 2.1.2.1.1 Modelo Booleano O modelo Booleano segue um princípio de organização em que documentos textuais são considerados como conjuntos (coleções) de palavras, ou seja, cada documento textual é 18 representado através de um conjunto de termos relevantes ao seu contexto. Além desta organização, o modelo booleano manipula e descreve esses conjuntos através de conectivos booleanos (and, or e not), tornando possível a recuperação de determinadas informações através de consultas (query) [WIVES, 2002]. Essas consultas são formas de representação das necessidades dos usuários expressas através de conjuntos de termos combinados, a fim de selecionar uma gama de documentos que corresponda às necessidades expostas por eles. Assim, através de uma combinação de termos (ex: venda and informática) que expressem a necessidade (ex: achar produtos de informática à venda) do usuário são criadas consultas capazes de selecionar os documentos que satisfazem as mesmas. Para auxiliar na elaboração de consultas mais eficazes, o modelo booleano trabalha com operadores capazes de especificar consultas mais complexas. Dentre os operadores mais comuns estão: o operador “and”, quando uma sentença o utiliza, diz-se que é verdadeira somente quando as proposições que a compõe (ligadas por tal operador) são todas verdadeiras, isso possibilita a seleção de documentos textuais distintos que possuam todos os termos descritos na consulta; o operador “or”, que retorna um resultado se ao menos uma das proposições que compõe a sentença for verdadeira, possibilitando a seleção de documentos que possuam pelo menos um dos termos descritos; e o operador “not” que representa a exclusão ou negação entre termos, possibilitando a não seleção dos documentos que possuem os termos descritos na consulta. Como exemplo, caso um usuário queira buscar em certos documentos textuais (ou internet), aqueles que possuem informações sobre “venda de produtos com frete grátis, mas que não sejam de informática”, a partir disto, esta consulta poderia ser descrita da seguinte forma “(venda and produto and frete grátis) not informática”. Desta forma, seu resultado seria uma coleção de documentos que apresenta os termos “venda”, “produto” e “frete grátis” em sua estrutura e que não apresenta o termo “informática”. O modelo booleano se destaca em seus resultados, perante outros modelos, por permitir ao usuário a opção de formular consultas complexas, detalhadas e bem definidas. No entanto, essa liberdade de formulação é um tanto complexa para a maioria dos usuários, devido à falta de experiência e conhecimento em formulação de consultas através de operadores lógicos. Contudo, o modelo booleano é tido como vantajoso nesta etapa de recuperação das informações e é um dos mais utilizados por motores de buscas [WIVES, 2002]. 19 2.1.2.1.2 Modelo de Espaço Vetorial No modelo de espaço vetorial, como na maioria dos modelos de recuperação de informação, a expressão de igualdade entre termos é representada através do que é chamado de similaridade. Então, adota-se este termo como forma de representação do número de propriedades (ou características) que determinados objetos (documentos ou termos) possuem em comum, assim como o número de propriedades incomuns entre objetos [WIVES, 1997]. Neste modelo, os documentos são representados por vetores de termos [SALTON, 1993], ou seja, a organização e representação dos documentos textuais neste modelo são feitas através de vetores de termos-índices que descrevem as propriedades de cada documento em particular. Estes vetores são representados pela forma Di = (t1, t2, t3, ..., tn), em que Di é o i-ésimo documento da coleção, e tn o n-ésimo termo do documento [WIVES, 1997], ou seja, para cada documento da coleção existem n termos-índices que os representa. Para cada termo armazenado no vetor existe um valor associado, que informa o grau de importância deste termo no documento (também denominado como peso). Portanto, cada documento textual possui um vetor relacionado que é representado por pares de elementos na forma {(termo1, peso1), (termo2, peso2), ..., (termon, peson)} [WIVES, 2002]. A importância de um termo é normalmente calculada através da freqüência em que o mesmo aparece no documento, ou seja, se o “termo1” aparecer 10 (dez) vezes dentro de um determinado documento, este será o valor da sua importância. É importante ressaltar que neste modelo as consultas feitas pelos usuários também são representadas por vetores de termos-índices, com o formato idêntico ao dos vetores dos documentos [WIVES, 1997]. Portanto, a forma de se calcular a similaridade sempre será a mesma, seja entre documentos ou através de consultas. Como todos os documentos e consultas são representados como vetores, cada elemento do vetor, neste contexto, poderá ser considerado como uma coordenada dimensional. Assim, os documentos podem ser dispostos como um espaço euclidiano de n dimensões (em que n é o número de termos) [WIVES, 2002]. Esta representação dimensional poderá ser visualizada na Figura 2. 20 Figura 2 – Modelo Espaço Vetorial [WIVES, 2002]. Conforme a Figura 2, cada termo (Ex: Termo1) é considerado como uma dimensão. O valor do documento (Ex: Obj1) em cada dimensão variam entre 0 (não similaridade ou irrelevância) e 1 (totalmente relevante ou similar). Uma das formas de se calcular a similaridade entre documentos é testar o ângulo existente entre os mesmos (Ex: o ângulo entre Obj1 e Obj2). Desta forma, quanto menor for este valor, maior será o grau de similaridade. Portanto, Salton [1983] (criador deste modelo) propôs uma função para calcular a similaridade por cosenos [SALTON apud WIVES, 1997]. Esta função pode ser visualizada na Equação (1). n similaridade(Q, D ) = ∑w k =1 n qk .wdk 2 n ∑ (wqk ) .∑ (wdk ) k =1 (1) 2 k =1 No qual: Q é o vetor de termos-índices da consulta • D é o vetor de termos-índices do documento • Wqk são os pesos dos termos-índices da consulta • Wdk são os pesos dos termos-índices do documento A partir da fórmula, proposta por Salton, é possível calcular o grau de similaridade de todos os documentos da coleção. Esta fórmula não é a única forma para se calcular esta similaridade, mas é a mais utilizada e menos complexa [WIVES, 1997]. Após a finalização do processo de cálculo de similaridades, torna-se possível a criação de listas de resultados de todos os documentos e seus respectivos graus de 21 relevância, ordenadas de forma decrescente. Desta forma, o processo de consulta estará finalizado e o resultado será uma lista dos documentos que satisfizeram as necessidades da consulta, conforme a idéia central do processo de recuperação de informações. 2.1.2.2 Análise dos Dados Após a finalização do processo de recuperação das informações dá-se início ao processo de análise dos dados obtidos na fase anterior. Este processo está entre a etapa de recuperação das informações e a etapa de processamento dos dados obtidos e possui a finalidade de reduzir a complexidade computacional [ALMEIDA, 2004] e determinar a real relevância de determinados termos e suas variações, com intuito de melhorar a performance e qualidade do processamento das informações. Neste processo os termos são analisados separadamente, podendo assim, haver a identificação de variações morfológicas (stemming) de cada termo, como também é possível eliminar palavras irrelevantes (stopwords) e identificar semelhanças de significados entre palavras (thesaurus) [EBECKEN, 2003]. Nas seções seguintes serão explanadas essas formas de análises de termos. 2.1.2.2.1 Stopwords No processo de análise é relevante a eliminação de palavras que não possuem importância significativa no texto, no intuito de limitar a quantidade de termos-índices, com a visão de se manter apenas os termos que representam realmente o contexto de cada documento. Dentre as palavras que não possuem certa relevância nos textos estão: pronomes, artigos, preposições e interjeições. Na maioria dos casos estas palavras possuem apenas a finalidade de conectividade entre termos (no auxílio a formulação de frases), não havendo assim a necessidade de adicioná-las na estrutura de índices [EBECKEN, 2003]. Além dessas, outras palavras que são tidas como irrelevantes, são aquelas que aparecem com freqüência na coleção de documentos. Desta forma, são consideradas incapazes de discriminar os mesmos, tornando-se desnecessária a permanência destas na estrutura de índices [WIVES, 2002]. O conjunto destas palavras é denominado de stopwords (ou stoplist), ou seja, é um conjunto ou lista de palavras negativas, também conhecidas como dicionários negativos. No processo de eliminação de stopwords é feito um comparativo entre um documento texto e uma lista de stopwords, em que resultará na eliminação de todas as palavras 22 desnecessárias do texto. Na Figura 3 pode ser visualizado na prática este processo de remoção, através da sua utilização em um documento normal, um outro documento pode ser inferido, e tal documento será mais “enxuto”, com palavras mais relevantes para a determinação de contextos ou para serem analisadas por motores de buscas. 7 Encontro de estudantes de Informática do Tocantins Uma iniciativa pioneira se tornou um dos maiores eventos da área de Computação e Informática das Regiões Norte e Centro-oeste. O Encoinfo se firma, mais uma vez, como um portal de disseminação dos trabalhos científicos realizados pelos nossos alunos pesquisadores. Documento Normal Encontro estudantes Informática Tocantins iniciativa pioneira tornou maiores eventos área Computação Informática Regiões Norte Centro-oeste Encoinfo firma vez portal disseminação trabalhos científicos realizados alunos pesquisadores Documento sem stopwords Figura 3 – Remoção de stopwords. Portanto, stopwords são todas as palavras que influenciam negativamente no processo de análise. Assim,a sua existência nos textos implicaria na perca de desempenho e qualidade nas etapas seguintes da tarefa de Mineração de Textos, por isso é necessária a execução deste processo antes das próximas etapas. 2.1.2.2.2 Stemming Na etapa de análise de dados existe outro processo de tratamento de termos, que ajuda a melhorar a definição de termos-índices. Um desses processos é o stemming (ou lematização), que é tido como uma técnica que busca reduzir a variância morfológica de um termo, ou seja, esta técnica consiste em identificar os radicais das palavras, reduzindo assim a quantidade de termos na estrutura de índices ao adotar apenas o seu radical como termo-índice [WIVES, 1997]. Uma forma de se identificar os radicais das palavras é através da remoção de seus sufixos e prefixos, assim como a eliminação dos plurais das palavras. Além da diminuição da quantidade de termos-índices, esta técnica possibilita ao usuário a não preocupação com a forma ortográfica com a qual uma palavra foi escrita no 23 texto [WIVEZ, 2002]. Como conseqüência, a abrangência da consulta será expandida, assim, ao digitar qualquer variância do termo, será retornado apenas o seu radical. Através da Figura 4 pode ser visualizada a aplicação do processo de stemming. Pode ser observado que o mesmo diminui consideravelmente a quantidade de termos, possibilitando, assim, uma melhora na etapa de criação da estrutura de termos-índices. 1 - CONSIDER 1 - CONSIDERAR 2 - CONSIDERADO 3 - CONSIDERAÇÃO 4 - CONSIDERAÇÕES Quatro Palavras Uma Palavra (seu radical) Figura 4 – Técnica stemming. Contudo, na execução da técnica de stemming existe uma dificuldade em relação às linguagens (idiomas) existentes, ou seja, por se tratar de uma técnica que trabalha com variações morfológicas, as regras de cada língua devem ser consideradas. Porém, existem estudos e projetos que se empenham apenas em determinados idiomas, tornando possível sanar estas dificuldades num dado escopo. 2.1.2.2.3 Thesaurus Um thesaurus pode ser interpretado como sendo um vocabulário que representa sinônimos, hierarquias, abreviações, acrônimos, ortografias alternativas e relacionamentos associativos entre termos que ajuda e/ou facilita aos usuários a encontrar as informações que necessitam [LOPES, 2004]. Desta forma, busca-se através da aplicação do mesmo, utilizando-se de listas pré-compiladas de termos importantes para um determinado contexto, em que cada termo da lista é representado pela ligação (seja por equivalência, hierarquia e/ou associação) com vários outros, diminuir, em primeira instância, a quantidade de termos-índices. É diminuída a quantidade de termos-índices quando o thesaurus é utilizado no processo de normalização, ou seja, como na técnica de stemming, em que várias palavras poderiam ser resumidas em apenas um termo (seu radical), o thesaurus assemelha-se a ele, ao tentar através de vários termos ligados entre si (por exemplo, sinônimos) chegar a um 24 termo representante, tornando-se assim o termo-índice. A ligação entre termos é feita anteriormente, assim o conhecimento sobre o domínio (contexto) do documento é primordial para a criação do mesmo. Logo, nas situações em que não existe o conhecimento do domínio, esta técnica se torna complexa e inviável. O aumento da abrangência das consultas é caracterizado pelo grande leque de termos que o thesaurus proporciona, desta forma, um usuário poderá executar várias consultas, com termos distintos (que estejam ligados), obtendo os mesmos resultados. Portanto, a aplicação do dicionário de thesaurus exige um conhecimento minucioso sobre a área em que será utilizado, tornando-se amplamente aplicável onde são tratadas informações de domínios específicos e amplamente complexo em contextos não definidos. 2.1.3 Processamento dos Dados As etapas anteriores são importantes e necessárias na tarefa de Mineração de Textos, mas a etapa que representa a principal visão de extração de conhecimento é concebida como processamento de dados, ou seja, nesta etapa poderão ser executados certos processos a fim de extrair conhecimento de documentos textos, para o uso em situações diversas. Dentre os processos existentes, destaca-se a sumarização, categorização e clustering. Nas seções seguintes serão detalhados estes processos. 2.1.3.1 Sumarização A sumarização é um processo que visa a redução do tamanho dos textos de um documento, sem a perda dos significados-chave do texto [HABN, 2000], ou seja, trata-se de um processo que busca a diminuição de um documento texto, transformando-o em um resumo (ou tópicos índices), mas mantendo o seu objetivo. O processo de sumarização divide-se basicamente na tarefa de leitura e composição dos textos. A tarefa de leitura é responsável por identificar a importância dos termos dentro do texto (através da freqüência), para que em seguida seja executada a tarefa de composição, que construirá o resumo através da utilização dos termos definidos como importantes, desta forma cria-se um sumário (ou resumo) do texto mantendo as principais características do mesmo [ALMEIDA, 2004]. 25 Notícia retirada do site IDGNow A Ericsson divulgou a assinatura de um contrato de serviços gerenciados com a Claro para integrar, distribuir e hospedar serviços de streaming de vídeo e TV móvel aos assinantes da operadora. Os serviços ficarão hospedados no centro de operação da Ericsson em São Paulo, que serve de suporte para toda a América Latina e, conforme o acordo, a empresa irá agregar, distribuir, gerenciar e liberar conteúdo para todos os serviços móveis de TV e streaming da Claro, além da operação e manutenção 24 horas por dia. O serviço móvel de TV e streaming de vídeo da Claro, com a marca Vídeo Agora, oferecem uma ampla gama de conteúdo de entretenimento, que inclui transmissão ao vivo de TV e rádio AM/FM. Os usuários inicialmente poderão acessar notícias, músicas, esportes, filmes e previsões do tempo. Com a solução da Ericsson, a Claro poderá oferecer serviços de conteúdo em tempo real e sob demanda. Texto Normal A Ericsson divulgou a assinatura de um contrato de serviços gerenciados com a Claro para integrar, distribuir e hospedar serviços de streaming de vídeo e TV móvel aos assinantes da operadora. Texto Resumido em 25% Figura 5 – Processo de Sumarização. A Figura 5, como exemplo, apresenta um processo de sumarização executado através da ferramenta de auto resumo do software Microsoft Office Word 2003, em que é resumido o texto em cerca de 25%, mantendo os principais termos (ou trechos) que representam o texto. 2.1.3.2 Categorização A categorização é um processo que visa a identificação de tópicos principais em um documento e a sua associação a uma ou mais categorias predefinidas [YANG, 1997]. Esse processo tenta identificar a qual domínio ou categoria um determinado documento texto pertence. Na execução do processo de categorização podem-se adotar as seguintes técnicas [ALMEIDA, 2004]: regras de produção – visa a criação de conjuntos de regras ou características, que ao serem encontradas em um documento texto, determina que o mesmo pertence a uma determinada categoria; similaridade de vetores – nesta técnica os termos que representam as categorias e os documentos textos estão representados como vetores, em que através da comparação entre os termos (entre categorias e documentos), determina-se o grau de similaridade entre ambos, que através de uma medida pré-definida de similaridade, é definido se um documento pertence ou não a uma determinada categoria; e o modelo bayesiano – que se baseia na teoria de probabilidade e no teorema 26 de Bayes, a fim de encontrar qual a probabilidade de um determinado documento pertencer a uma determinada categoria. Documentos Categorizador Cat 1 Cat 2 Cat 3 Figura 6 – Processo de Categorização [EBECKEN, 2003]. A Figura 6 ilustra o processo de categorização, em que vários documentos são categorizados após passar por um categorizador. Tal categorizador tem como finalidade executar determinadas técnicas de categorização a fim de definir a qual categoria os documentos textos estariam associados. Este processo tem a finalidade de categorizar uma gama de documentos, como forma de definição de qual contexto os mesmos pertencem. Isso facilita, por exemplo, na execução de uma tarefa em que é necessário definir a qual assunto um determinado e-mail pertence, em relação aos assuntos (categorias) pré-definidos pelo especialista do domínio. 2.1.3.3 Clustering Clustering é uma técnica (ou processo) que visa “organizar uma série desorganizada de objetos em grupos (clusters) de objetos similares” [WIVES, 1999], ou seja, a partir de uma coleção de documentos que se encontra desorganizada (sem nenhuma ligação por contexto), esta técnica possibilita agrupar estes documentos, considerando suas similaridades, em relação ao contexto (ou assunto) dos mesmos. 27 A técnica de clustering pode ser aplicada para agrupar documentos textos ou palavras. Quando aplicada para agrupar palavras (termos), tem-se um resultado semelhante a um thesaurus, em que palavras que possuem ligações (ou similares – como sinônimos e variações morfológicas) entre si são organizadas em clusters. Quando aplicada em coleções de documentos textos, possui a finalidade de reunir o máximo de documentos semelhantes em seções ou grupos, possibilitando (e facilitando) a recuperação de informações pertencentes ao mesmo contexto [EBECKEN, 2003]. Esta técnica é utilizada normalmente em situações em que não há uma discriminação prévia dos contextos dos documentos, desta forma tenta-se reunir dentre os diversos documentos, os que tratam do mesmo assunto, sem que haja a influência de um especialista do domínio. Portanto, esta será a principal técnica a ser utilizada neste trabalho, pois as informações que serão trabalhadas não possuem um assunto pré-definido ou conhecido. Para fortalecer a idéia desta técnica tem-se a chamada Hipótese de Agrupamento, que diz que os documentos textos semelhantes tendem a permanecer em um mesmo grupo, pois possuem termos em comum [RIJSBERGEN apud WIVES, 1999]. Desta forma o processo de clustering baseia-se no estudo dos termos dentro de um texto, em que são aplicadas etapas já explanadas anteriormente, possibilitando a identificação da similaridade entre documentos, para que posteriormente sejam agrupados em clusters. Através da Figura 7 pode ser visualizada a estrutura de funcionamento do clustering, em que a partir de uma coleção de documentos texto (desorganizados) é possível, após a aplicação da técnica de clustering, visualizar os documentos já organizados em clusters ou grupos. 28 Técnica de Clustering Cluster 1 Cluster 2 Cluster 3 Figura 7 – Processo de Clustering [EBECKEN, 2003]. Quanto à forma em que os clusters são constituídos, existem dois tipos de representação de um agrupamento (clustering), que é através do agrupamento por partição total (flat partition) e o agrupamento hierárquico (hierarchic partition). A partir do agrupamento por partição total os documentos são distribuídos em clusters distintos, não havendo interligação direta entre os grupos. Assim, um documento pertencente a um cluster não possui ligação alguma com outro cluster. Já com a partição hierárquica, é possível a interligação entre clusters, assim os grupos são identificados de forma recursiva, possibilitando a criação de hierarquias. Desta forma, tem-se uma representação no estilo de árvores, em que todos os documentos e clusters estão interligados entre si. As duas formas podem ser visualizadas na Figura 8. 29 A A C C A A C B B Clustering por Partição Total 5 3 4 1 A A 2 A A B B C C C Clustering por Partição Hierárquica Figura 8 – Formas de Clustering [WIVES, 1999]. Dentre as diversas técnicas de clustering, as mais utilizadas pertencem à classe graphic-theoretic [WIVES, 1999], que por sua vez enfatiza as seguintes etapas para a execução desta técnica, que são: a etapa de identificação e seleção de termos-índices; a etapa de identificação de graus de similaridade; e a etapa de agrupamento. A etapa de identificação e seleção de termos-índices corresponde à fase de seleção dos termos mais importantes em um documento texto para preencher a estrutura de índice do mesmo. Desta forma, nesta etapa, tem-se uma estrutura (normalmente um vetor) contendo os termos mais relevantes e o seu respectivo valor de importância, para que possa ser utilizada posteriormente na fase de cálculo de similaridade entre documentos. Na etapa de identificação de graus de similaridade é efetuado o processo de comparação entre os documentos da coleção. Neste processo são comparados todos os termos-índices de um documento com os demais documentos, a fim de se calcular o grau 30 de similaridade, no intuito de criar uma matriz contendo estes valores, para que, posteriormente, seja efetuado o processo de agrupamento. Na etapa de agrupamento é feito o processo de clustering propriamente dito, em que através da matriz de similaridade, busca-se através de um valor pré-definido, inferir quais documentos são semelhantes entre si. Coleção de Documentos Textos A B C D E Identificação e Seleção de Termos-Índices Análise dos Dados: 1 Remoção de Stopwords 2 Stemming 3 Thesaurus Representação da Informação: 1 Seleção de Termos-Índices 2 Cálculo de Freqüência 3 Vetor de Termos Identificação de Graus de Similaridade 1 Cálculo de Similaridade entre Documentos 2 Criação da Matriz de Similaridade Agrupamento A B Cluster 1 C Cluster 2 D E Cluster 3 Figura 9 – Etapas do processo de Clustering. 31 Na Figura 9 podem ser visualizadas todas as etapas que compõem a técnica de Clustering, que por sua vez foram adotadas neste trabalho. Mais detalhes sobre estas etapas serão descritos nas seções seguintes. 2.1.3.3.1 Identificação e Seleção de Termos-Índices Esta etapa tem como premissa básica a criação de uma estrutura de termos-índices para os documentos da coleção. Tal estrutura possui a finalidade de representar em poucas palavras um determinado documento texto, possibilitando assim, a comparação de seus termos entre os demais documentos, a fim de se obter o grau de similaridade entre ambos. Nesta etapa são utilizados alguns processos descritos nas seções anteriores, que compõem a tarefa de Mineração de Textos, por isso serão apenas citadas nesta seção. Conforme apresentada na Figura 9, a etapa de identificação e seleção de termos-índices conta com dois processos, que é a Análise dos dados e a Recuperação das Informações. Nesta etapa o processo de Análise dos dados é aplicado, primeiramente, no intuito de refinar as informações textuais, melhorando consideravelmente o desempenho das etapas seguintes. Para que haja esta melhoria é necessária ou recomendada a utilização dos processos de remoção de stopwords, stemming e thesaurus. O processo de remoção de palavras negativas ou stopwords é de extrema importância e necessário, no intuito de diminuir a quantidade de termos-índices, eliminando termos que não possuem importância para a mineração de textos. É importante ressaltar nesta etapa a eliminação de sinais de pontuação (como “,.;!?”) e de caracteres especiais (como “çãàõ”), pois não possuem importância nas etapas seguintes. Já os outros processos citados são recomendados para melhorar este processo de escolha dos termos (mais detalhes nas seções anteriores). Após executado o processo de análise, têm-se apenas os principais termos do documento. Neste momento é feito o processo de recuperação dos dados, em que todos os termos são inseridos em um vetor de dados e sequencialmente é determinado o grau de importância de cada termo. O grau de importância de um termo é calculado através da quantidade em que o mesmo aparece no texto. Esse cálculo também é chamado de freqüência relativa, e possui a finalidade de representar numericamente a freqüência em que um termo aparece no texto, desta forma tem-se o grau de importância do mesmo em relação ao documento. Frel x = Fabs x N (2) 32 A Equação (2) representa a fórmula da freqüência relativa (Frel), em que é calculada a freqüência de um termo x, através da divisão entre a sua freqüência absoluta (Fabs) e o número total (N) de termos contidos no documento [WIVES, 1999]. Considerando a Figura 3 (Documento sem stopwords) como exemplo, ao se calcular a Frel do termo “Informática”, tem-se o seguinte resultado: Fabs = 2; N = 25; então Frel = 2 / 25 = 0,08. Portanto, o grau de importância do termo “Informática” é de 0,08 ou 8 %. Devido a grande quantidade de termos-índices que um determinado documento texto possa ter, isso pode se tornar prejudicial na hora do processamento destas informações, como, por exemplo, no momento de se calcular a similaridade entre documentos. Desta forma, adota-se a técnica de Truncagem (Truncation), que delimita a quantidade n máxima de termos que um documento pode ter (n = 20 palavras, por exemplo). Esta técnica ordena o vetor por ordem decrescente de importância, armazena as n primeiras palavras e as restantes são descartadas da estrutura de índices [WIVES, 1999]. Outro fator importante que deve ser considerado é a localização dos termos dentro do texto, ou seja, termos que se encontra em títulos, subtítulos e outras marcações, tendem a ser mais importantes, por isso são atribuídos valores maiores aos mesmos. Estes valores podem variar entre 0 a 1 conforme a necessidade do especialista [WIVES, 1999]. Portanto, depois de executado o processo de análise dos dados e o processo de recuperação de informações, tem-se um vetor de termos-índices com o seu respectivo valor de importância. Desta forma, dá-se início a fase de identificação dos graus de similaridade entre termos, que será explanada na seção seguinte. 2.1.3.3.2 Identificação de Graus de Similaridade Nesta etapa é desenvolvida uma matriz de similaridade, em que são descriminados os valores de similaridade entre todos os documentos textos da coleção, ou seja, nesta fase são executadas funções de similaridade a fim de descobrir o quanto um documento é semelhante aos demais. Neste trabalho será adotada a fórmula proposta por Salton [1983] chamada de cosine, em que é baseada na distância Euclidiana (descrita na seção Modelo de Espaço Vetorial). Esta fórmula é recomendada [WIVES, 1997] quando, ao se calcular a similaridade entre termos, é necessário levar em conta o grau de importância do mesmo em relação ao documento. 33 Conforme a Equação (1), para se calcular a similaridade entre documentos, é necessário ter dois vetores de termos e seus pesos (grau de importância) respectivos. Portanto, através dos vetores obtidos na seção de identificação de termos-índices e seus respectivos valores, é possível criar uma matriz contendo os valores de similaridade entre documentos. A seguir será apresentado um cálculo de similaridade entre dois documentos, em que será aplicada a fórmula cosine. Considere a seguinte expressão Documento1: {(Termo1, Peso1), (Termo2, Peso2), ..., (TermoN, PesoN)} na declaração dos documentos, termos e pesos. Documentos: A:{(Informação, 5), (Encoinfo, 3), (Tocantins, 2)}; B: {(Informação, 3), (Encoinfo, 1), (Tocantins, 1)}; Cálculo: similaridade( A, B) = {(5 x3) + (3 x1) + (2 x1)} (5 + 3 + 2 ) x(3 + 1 + 1 ) 2 2 2 2 2 2 = 20 38 x11 = 20 = 0,98 20,4 Portanto, o grau de similaridade entre os documentos A e B é de 0,98 ou 98 %. Desta forma, este cálculo deve ser executado entre todos os documentos da coleção, tendo como resultado uma matriz de similaridade da coleção de documentos. Pode ser visualizada na Tabela 1 uma matriz de similaridade entre documentos. Tabela 1 – Matriz de similaridade entre documentos. Doc. A Doc. B Doc. C Doc. D Doc. A 1.0 0.8 0.3 0.6 Doc. B 0.8 1.0 0.7 0.1 Doc. C 0.3 0.7 1.0 0.8 Doc. D 0.6 0.1 0.8 1.0 A partir da criação da matriz de similaridade dá-se início a fase de agrupamento, em que será feito o processo de clustering propriamente dito. Na seção seguinte será detalhado este processo. 34 2.1.3.3.3 Agrupamento Esta etapa possui a finalidade de, a partir da matriz de similaridade, definir clusters ou ligações entre documentos semelhantes, ou seja, após a finalização de todos os processos anteriores, dá-se início a etapa de definição dos clusters através dos graus de similaridade já calculados. A Figura 10 representa a situação em que a coleção de documentos se encontra antes e depois do processo de agrupamento. Portanto, após o processo de agrupamento os elementos que se encontram ligados são definidos como pertencentes ao mesmo cluster. Documentos sem qualquer ligação A C A B A C A B B Documentos Agrupados Figura 10 – Processo de Agrupamento [WIVES, 1999]. A forma em que os documentos são agrupados está ligada diretamente ao algoritmo utilizado nesta fase. Os algoritmos pertencentes à classe graphic-theoretic são: Cliques, Stars, Connected Components e Strings [KOWALSKI apud WIVES, 1999]. Dentre as principais características predominantes nestes algoritmos estão: a escolha de um fator mínimo de aceitação, também chamado de threshold, em que ao comparar este fator ao grau de similaridade contido na matriz, e se este grau for “igual ou maior” que o fator, os documentos comparados são tidos como similares; permite ou não que um documento pertença a mais de um cluster. 35 Portanto, segundo Wives [1999], o melhor algoritmo a ser utilizado, no intuito de obter um tempo de processamento consideravelmente pequeno e com um resultado satisfatório, é o algoritmo Stars. Desta forma, o algoritmo Stars, após o comparativo com os demais algoritmos, considerando principalmente a viabilidade computacional, se destacou entre os outros devido a sua simplicidade, sendo assim o selecionado para este trabalho. O algoritmo Stars ou Estrela consiste em selecionar um documento aleatoriamente (ou definido pelo especialista) e identificar todos os documentos semelhantes a ele, refazendo este processo até que não haja elementos não alocados [WIVES, 1999]. O algoritmo consiste em dois passos: 1 – Selecionar um documento e, a partir dele, selecionar todos os que satisfazem ao threshold pré-definido e adicioná-los ao mesmo cluster; 2 – Buscar um documento ainda não alocado. Se existir, o passo 1 é executado novamente, e se não existir o processo é finalizado. Esses passos podem ser melhor visualizados através da Figura 11, em que é escolhido primeiramente o documento A. Depois disso, é feita a comparação entre todos os documentos restantes, os que são semelhantes são selecionados. No próximo passo é selecionado o documento B, que não foi selecionado na primeira fase, e feita a comparação com os demais documentos (aqueles que ainda não foram selecionados) e selecionado os elementos semelhantes. E, por fim, é selecionado o último elemento e o seu semelhante. 36 A A B C A B A C B B A C B B A A A A B C A B A A B C A C B C Figura 11 – Funcionamento Algoritmo Stars. Na literatura pesquisada, este foi o algoritmo que satisfez as necessidades do trabalho, além de ser considerado o mais eficiente, segundo Wives [1999]. Mesmo considerando que este algoritmo impede a possibilidade de adicionar uma determinada notícia em um cluster que mais se assemelha a mesma, em situações que possam ocorrer devido a ser executado apenas uma verificação de similaridade, existindo assim a possibilidade de que uma notícia seja adicionada em um cluster menos importante para seu contexto e impedindo a possibilidade de ser encontrado o cluster que mais se assemelha com a notícia. Mesmo assim, foi adotado este algoritmo devido à viabilidade computacional, sendo que para se encontrar o melhor cluster para uma notícia seria necessário um processamento maior, tornando-se inviável a ser executado via Web, conforme segue a linha de implementação deste trabalho. Nesta etapa é finalizado o processo de clustering, tendo como resultado uma gama de documentos separados em grupos que tratam dos mesmos assuntos, ou seja, semelhantes entre si. 37 3 MATERIAIS E MÉTODOS Para o desenvolvimento deste trabalho foram utilizados diversos recursos bibliográficos, de hardware e software, que coligados às orientações permitiram a sua finalização. 3.1 Local e Período Este trabalho foi desenvolvido durante o segundo semestre de 2005, como requisito parcial para a avaliação das disciplinas “Trabalho de Conclusão de Curso em Sistemas de Informação I (TCC I) e Trabalho de Conclusão de Curso em Sistemas de Informação II (TCC II)”. Os principais locais utilizados para sua elaboração foram: o setor de desenvolvimento de software da Fundação Universidade do Tocantins (UNITINS) e a própria residência. 3.2 Materiais Os principais recursos utilizados, tais como hardware e softwares licenciados, foram disponibilizados para desenvolvimento pela Fundação Universidade do Tocantins através do setor de desenvolvimento de software e por recursos pessoais. 3.2.1 Hardwares AMD Athlon XP 2400+ e 512 Mb de RAM; Pentium IV, 3.33 Ghz e 512 Mb de RAM; AMD Septron 2600 e 256 Mb de RAM. 3.2.2 Softwares Microsoft Windows 2000/XP Prof. (http://www.microsoft.com/windows); Microsoft Office 2003 Prof. (http://office.microsoft.com/); Internet Explorer v6.0 (http://www.microsoft.com/); Mozilla Firefox v1.0.7 (http://www.mozilla.org/); Adobe Acrobat Reader 7.0 (http://www.brasil.adobe.com/products/acrobatpro/); Adobe Photoshop CS2 (http://www.brasil.adobe.com/products/photoshop/); Corel DRAW 12 (http://www.corel.com.br/); Macromedia Dreamweaver 8 (http://www.macromedia.com/); Zend Studio Enterprise Edition v5.0.0 (http://www.zend.com/); 38 Power Translator Pro v7.0 (http://www.lhsl.com/); Rational Rose 2000 Enterprise Edition (http://www.rational.com); PHP 5.0.5 (http://www.php.net/); PostgreSQL v8.0.2 (http://www.postgresql.org/); EMS PostgreSQL Manager v3 (http://www.sqlmanager.net/). 3.2.3 Fontes Bibliográficas Livros; Trabalhos de Conclusão de Curso; Dissertações de Mestrado e Doutorado; Artigos; Sites diversos. 3.3 Metodologia Para o desenvolvimento deste trabalho foi necessária, inicialmente, a realização de um estudo sobre a técnica de Mineração de Textos (Text Mining). Esse estudo foi concretizado a partir do levantamento teórico sobre os conceitos e as aplicações necessários para a consecução do trabalho, explanados na Revisão de Literatura. Após o levantamento teórico, iniciou-se o processo de implementação do trabalho. Para isso, as tecnologias citadas nas próximas sub-seções foram amplamente estudadas para que fosse possível realizar a sua efetiva aplicação. 3.3.1 RSS O RSS é uma especificação para distribuição de conteúdo através da utilização da linguagem XML [HAMMERSLEY, 2003]. RSS surgiu com o intuito de padronizar a forma de distribuição de conteúdos estruturados existentes nos mais diferentes sites na internet. A distribuição do conteúdo estruturado, neste contexto, é representada através do termo “feed”. Um feed pode ser definido como qualquer informação importante disponível em um site, como, por exemplo, notícias, artigos, histórias, entre outras informações, porém, neste trabalho, foram trabalhadas apenas informações referentes a notícias. A concepção do RSS está ligada à junção das informações contidas em diferentes feeds RSS em uma só base de dados. Assim, foi possível que as informações fossem trabalhadas posteriormente no sistema. Desta forma, o RSS foi utilizado como fonte de 39 obtenção de conteúdo e como forma de disponibilização de informações através do sistema. 3.3.2 PHP A linguagem de programação PHP (Hypertext Preprocessor) foi utilizada para a codificação do sistema. Assim, englobou desde a parte de manipulação de documentos RSS, gerenciamento das informações do banco de dados, até a construção de partes da interface do sistema. Foi utilizada a PHP na versão 5 devido ao seu suporte avançado em Orientação a Objetos, a manipulação e tratamento de erros e a disponibilização de uma interface DOM para manipulação de documentos XML [SOARES, 2004], além de suportar a utilização de Expressões Regulares. Expressões Regulares são expressões ou regras que possibilitam a manipulação e combinação avançada de strings [CASTAGNETTO, 2001]. Desta forma, utilizando-se de funções específicas do PHP para manipulação de expressões regulares (como por exemplo, as funções ereg() e ereg_replace()), possibilitou na etapa de Análise dos Dados a remoção dos termos negativos (como stopwords, pontuação e etc). 3.3.3 PostgreSQL Para o armazenamento das informações obtidas dos feeds RSS foi adotado, nesta fase do trabalho, o Sistema de Gerenciamento de Banco de Dados (SGBD) PostgreSQL. Dentre as características que motivaram o seu uso, as principais foram: suporte a Controle de Concorrência multi-sessão; Integridade Referencial entre tabelas; Funções ou Stored Procedures; Visões ou Views; Gatilhos ou Triggers; Tipos definidos por usuário; Esquemas ou Schemas; conexões SSL; e licença gratuita [BIAZUS, 2003]. Vale ressaltar que essas características, em sua maioria, o banco Mysql (adotado no primeiro trabalho) não dá suporte. Assim, o Mysql foi substituído pelo PostgreSQL nesta fase do trabalho, no intuito de melhorar o desempenho das consultas, ao empregar a utilização de views, stored procedures e entre outras funções citadas. 40 4 RESULTADOS E DISCUSSÃO Neste capítulo serão apresentados os resultados provenientes do desenvolvimento de um mecanismo para o aperfeiçoamento de uma Central de Notícias. Essa CN possui como objetivo a obtenção de conteúdos provenientes de feeds RSS de diferentes fontes (sites) para o armazenamento em uma base de dados central e possibilitar, a partir disso, uma interface de acesso a essas informações, permitindo ao usuário a execução de consultas definidas a partir de determinados contextos. Os mecanismos desenvolvidos possuem a finalidade de melhorar a qualidade das consultas ao disponibilizar, através da técnica de Mineração de Textos, a possibilidade de agrupar notícias que tratam do mesmo assunto. Para que o desenvolvimento desse mecanismo tivesse êxito foi necessário o entendimento das etapas que compõem a técnica de Mineração de Textos, para posteriormente aplicar os conhecimentos obtidos na elaboração deste trabalho. Nas seções seguintes serão explanados os passos utilizados para o desenvolvimento do processo de Clustering aplicado ao agrupamento de notícias da CN. 4.1 Estrutura da Aplicação O mecanismo desenvolvido pode ser compreendido a partir de duas etapas, que são: a leitura das notícias dos feeds RSS e a aplicação do processo de Clustering. A primeira etapa já fazia parte do primeiro trabalho, mas foi readaptada para dar suporte às novas funcionalidades. Assim, as informações são inseridas em uma base de dados temporária, não disponível para o usuário enquanto todos os passos posteriores não tiverem sido executados. A segunda etapa refere-se à técnica de Mineração de Textos e, como tal, tem a finalidade de organizar ou agrupar notícias que tratam do mesmo assunto. Assim, nessa etapa serão executados os processos referentes ao Clustering, que dentre eles estão a Análise dos Dados, Recuperação das Informações, Cálculo de Similaridade e Agrupamento. Através da Figura 12 pode ser visualizada como a estrutura da aplicação é organizada. 41 Feeds RSS pré-definidos Categoria A Feed RSS 01 Categoria B Feed RSS 02 Feed RSS 03 Feed RSS n LEITURA dos Feeds RSS PASSO 01: Leitura dos Feeds para Obtenção de Conteúdo ARMAZENAMENTO DO CONTEÚDO PASSO 02: Armazenamento dos Conteúdos obtidos na Leitura BASE DE DADOS TEMPORÁRIA PASSO 03: PROCESSOS: PROCESSO DE CLUSTERING 1 – Análise dos Dados; 2 – Recuperação Informação; 3 – Cálculo de Similaridade; 4 – Agrupamento. Cluster 1 Cluster 2 Cluster 3 BASE DE DADOS CENTRAL PASSO 04: Liberação dos Clusters para Consulta Figura 12 – Estrutura Aplicação. A estrutura apresentada na Figura 12 é dividida em quatro passos, que descrevem as seguintes funcionalidades: o passo 01 (um) representa o processo de obtenção de 42 conteúdo, também chamada de fase leitura de informações, que é a primeira fase da CN. Nesta fase são lidos todos os feeds RSS pré-cadastrados no banco, dando inicio ao passo 02 (dois), que corresponde ao armazenamento dessas informações em uma base temporária. Nesta fase as informações ainda não estão disponíveis para o usuário, sendo liberadas somente após o processo de Clustering concluído. O passo 03 (três) corresponde à execução dos processos que compõem a etapa de agrupamento (Clustering), que terá como resultado a criação de clusters de notícias, que serão liberados para serem consultados pelo usuário no passo 04 (quatro). As fases que compõem o processo de Clustering, assim como as dificuldades encontradas e as soluções adotadas em cada uma, serão explanadas nas seções seguintes. 4.2 Análise dos Dados O processo de Análise dos Dados, conforme descrito na revisão de literatura deste trabalho, busca melhorar a performance e a qualidade do processamento das informações, ao remover palavras irrelevantes, identificar variações morfológicas de cada termo e identificar semelhanças de significados entre palavras. Neste trabalho foi adotado o processo de remoção de stopwords. O Stemming e o Thesaurus não foram adotados nesta fase do trabalho porque as informações trabalhadas, que neste caso são resumo de notícias, não possuem uma quantidade significativa de termos (muitas das notícias possuem apenas título) ao ponto de justificar a adoção de técnicas complexas, cujo resultado final não teria muito relevância para o contexto. Desta forma, levando em conta a pequena quantidade de termos encontrados em uma notícia e verificando que o stemming em certo momento tende a generalizar determinados termos (ao levar o termo ao seu radical, poderá alterar o sentido do termo) [MARTINS, 2003], chegou-se a conclusão da não utilização desta técnica neste trabalho, deixando para trabalhos futuros, os estudos sobre a viabilidade de se adotar certos algoritmos da técnica de stemming. Outro ponto importante, conforme mencionado na literatura deste trabalho, a utilização da técnica de thesaurus em situações em que não existe o conhecimento do domínio, que neste caso assemelha-se com as informações trabalhadas neste trabalho, a mesma se torna complexa e inviável. Após o processo de leitura e armazenamento das notícias, dá-se inicio ao processo de Clustering, e sua primeira tarefa é a de diminuir a dimensão de termos, mantendo 43 apenas termos que represente uma determinada notícia. Para isso, foram eliminados todos os termos insignificantes de cada notícia. Esse processo seguiu os seguintes passos: a) Organizar String: neste passo foram removidas as quebras de linhas contidas nas notícias, assim como o excesso de espaços ou caracteres nulos, além de converter todos os termos para minúsculo. b) Remover tags HTML: as notícias advindas de feeds RSS podem ou não possuir em sua estrutura tags HTML (Ex: <br />, <p></p> e etc). Neste contexto é desnecessário mantê-las, por isso, foram removidas. c) Remover Pontuação: neste passo foi removida a maioria das pontuações, como, por exemplo, vírgulas, pontos, interrogações, exclamações, entre outras. d) Remover Símbolos: neste passo foram removidos os caracteres especiais ou símbolos (Ex: $*+=\&@#%). e) Remover Acentuação: considerando a existência de erros ortográficos em relação à acentuação, como, por exemplo, a palavra certa “Informações” escrita da forma errada como “Informacoes” sem acentuação, gerou transtornos no momento de se agrupar termos semelhantes, já que havia a necessidade de compará-los e, para isso, a estrutura deveria ser idêntica. Assim, a melhor solução foi substituir todas as acentuações e caracteres especiais por suas letras correspondentes sem acentuação (Ex: “ã” por “a”, “ç” por “c”). f) Remover Números: por se tratar de notícias, muitas das informações continham datas (Ex: 23/11/2005), entre outros valores numéricos, que não representam de forma significativa alguma característica importante dentro do texto para ser considerada como termo-índice. Desta forma, todos os números foram removidos. g) Remover Stopwords: neste passo foram removidos todos os termos negativos dentro de um texto, ou seja, em sua maioria termos como pronomes, artigos, preposições e interjeições (Ex: a, de, seu, lhe, outros e etc). As listas de stopwords ou stoplist utilizadas neste trabalho foram retiradas do “Eurekha”, produzido por Wives [WIVES, 2005]. Para a remoção dos termos negativos foram utilizadas funções do PHP que suportam expressões regulares. Assim, a notícia, ainda no formato de string, foi submetida a algumas expressões que representam os passos descritos anteriormente, no intuito de 44 manter apenas os termos relevantes. Este processo de remoção pode ser melhor visualizado através da Figura 13. $str = “Ronaldinho brilha, e Barça surpreende o Real em Madrid (19/11/05-18h46)”; Título original da notícia 1. $str = strtolower($str); 2. $str = eregi_replace("[\.,;:\?!]", "", $str); 3. $str = eregi_replace("[ç]", "c", $str); 4. $str = eregi_replace('[-()/]', "", $str); 5. $str = eregi_replace("[0-9]", "", $str); 6. $str = eregi_replace($expressao_stoplist, " ", $str); Código de Remoção Utilizando Expressão Regular $str == “ronaldinho brilha barca surpreende real madrid”; Título após remoção de termos negativos Figura 13 – Exemplificação da Remoção de Stopwords utilizando Exp. Regulares. Conforme apresentado na Figura 13, no código de remoção, a linha 1 converte toda a string para minúsculo, em seguida na linha 2 e nas 4 a 6 são removidos todas as pontuações, alguns símbolos e todos os números, respectivamente. Na linha 3 ocorre a substituição de termos, para evitar palavras com cedilhas e acentuação. Na linha 6 são removidas as stopwords. Tal expressão é montada dinamicamente através de uma consulta na base de dados, que retorna todas as stopwords cadastradas e, a partir disso, é executada a expressão e todas as stopwords são removidas. Portanto, nessa etapa do processo de Clustering foram removidos todos os termos indesejados e mantidos apenas aqueles que possam ser utilizados como termos-índices, que posteriormente foram inseridos na base de dados para serem utilizados na próxima etapa, que é a de Recuperação das Informações. 45 4.3 Representação das Informações Após o processo de Análise dos Dados restaram para cada notícia apenas os termos que serão utilizados como termos-índices. Este processo tem a finalidade de selecionar os termos que irão representar cada notícia, juntamente com o seu grau de importância e, posteriormente, utilizá-los para calcular a similaridade entre cada notícia, que será descrita na próxima seção. Notícia após processo de Análise Título: opensolaris sistema arquivos Descrição: sun torna publica versao opensolaris suporte zfs novo sistema arquivos sun pagina opensolaris demonstracao flash capacidades zfs tambem pode ser encontrada apresentacao zfs $v[0] = “opensolaris”; $v[1] = “sistema”; $v[2] = “arquivos”; $v[3] = “sun”; $v[4] = “opensolaris”; $v[5] = “zfs”; $v[6] = “sun”; $v[7] = “opensolaris”; $v[8] = “zfs”; $v[9] = “zfs”; $v[10] = “flash”; ... $v[n] = termoN; Passo 1) - Vetor de Termos-Índices. (Neste caso, são apresentados apenas os termos que serão utilizados para a exemplificação) Passo 2) - Cálculo de Freqüência Absoluta $tindice[0][0] $tindice[0][1] $tindice[1][0] $tindice[1][1] $tindice[2][0] $tindice[2][1] $tindice[3][0] $tindice[3][1] $tindice[4][0] $tindice[4][1] $tindice[5][0] $tindice[5][1] ... $tindice[n][0] $tindice[n][1] = = = = = = = = = = = = “opensolaris”; 0,90; “sistema”; 0,90; “arquivos”; 0,90; “zfs”; 0,11; “sun”; 0,07; “flash”; 0,03; F(zfs) = 3 / 26; F(zfs) = 0,11; ... $tindice[0][0] = “zfs”; $tindice[0][1] = 0,11; ... Passo 3) - Vetor de Termos-Índices e Valor de Importância; - Ordenado por Ordem decrescente de Importância; - “Truncagem” do Vetor; = termoN; = valorN; Passo 4) - Inserir Termos-Índices na Banco BANCO DE DADOS Figura 14 – Exemplificação da Representação das Informações. 46 A Figura 14 ilustra os passos que compõem o processo de Representação das Informações, que podem ser compreendidos da seguinte forma: no passo 1, o título e a descrição das notícias são transformados em vetores de termos; entre os passos 1 e 2 é feita a contagem da freqüência (absoluta), para servir como parâmetro no momento de calcular a freqüência relativa. No passo 2 é calculada a freqüência relativa de cada termo. O valor resultante representa o grau de importância de cada termo dentro da notícia, que afetará significativamente no processo de Cálculo de Similaridade (próxima seção). Após calculada a freqüência relativa é montado um vetor resultante contento os termos e os seus respectivos graus de importância e, no passo 3, este vetor é ordenado de forma decrescente por grau de importância, ou seja, os termos considerados mais importantes estarão nas primeiras posições, desta forma é executado o processo de “truncagem”, em que são mantidos apenas os 20 (este valor pode variar) primeiros termos e o resto é descartado. O passo 4 corresponde ao armazenamento dos termos resultantes dos passos anteriores, desta forma, para cada notícia armazenada no banco de dados central existirão cerca de 20 termos que a represente. Portanto, neste processo são escolhidos e armazenados os termos-índices (juntamente com seu grau de importância), que irão representar ou identificar cada notícia da CN. Após o término desta fase, dá-se início ao processo de cálculo de similaridade, os termos selecionados nesta fase serão a base para tal processo. 4.4 Cálculo de Similaridade Nessa fase é construída a matriz de similaridade, em que é calculado o valor de similaridade entre as notícias. A partir deste valor será possível a criação de aglomerados (clusters) de notícias. A Figura 15 ilustra o processo adotado para a execução do cálculo de similaridade entre as notícias da CN. 47 BANCO DE DADOS Notícia 1 Notícia 2 Termos: [A] [B] [C] [D] [E] Termos: [B] [C] [F] [H] Passo 1) - Escolha de duas notícias para serem comparadas; - É selecionada a notícia de maior quantidade de termos para ser o pivô da comparação; - É realizada a comparação de cada termo da notícia pivô com a outra notícia; - Caso algum termo da notícia pivô não exista na outra notícia, o valor correspondente ao peso da outra notícia receberá zero. Notícia 1 : {(A, 0.40), (B, 0.20), (C, 0.15), (D, 0.08), (E, 0.03)}; Notícia 2 : {(A, 0), (B, 0.50), (C, 0.25), (D, 0), (E, 0)}; Passo 2) - Preparação dos dados para o Cálculo; Passo 3) - É aplicada a fórmula cosine e retornado o valor de similaridade entre as notícias. Notícia 1 Notícia 2 0.50 (50%) Notícia 3 Passo 4) - Criação da Matriz de Similaridade entre notícias. 0.25 (25%) Figura 15 – Exemplificação do Cálculo de Similaridade. Conforme apresentado na Figura 15, o processo de cálculo de similaridade pode ser compreendido em quatro passos, que são: no passo 1 são escolhidos duas notícias para serem comparadas – levando em conta que este processo é executado entre todas as 48 notícias da base de dados temporária, ou seja, cada notícia será comparada com todas as demais, desta forma se existe n notícias, será criada uma matriz de similaridade do tipo nxn. Após a escolha das duas notícias, é selecionada a notícia que possui mais termos (mesmo com a truncagem dos termos, pode acontecer que notícias possuem menos que 20 termos, como aquelas que só possuem título) para ser utilizada como o pivô da comparação, em que os termos pertencentes a ela serão comparados com os termos da outra notícia – esta escolha de notícia pivô é necessária para delimitar a quantidade de termos e seu grau de importância, que será utilizado na hora de efetuar o cálculo. No momento da comparação, os termos da notícia pivô que não existirem na outra notícia, receberão o valor de importância 0 (zero) – este valor advém da multiplicação do valor de importância do termo da notícia pivô (que neste caso é 1) com o valor da outra notícia (que é zero); no passo 2 são organizados os termos e seus respectivos graus de importância para serem utilizados no próximo passo; através do passo 3 é calculado o grau de similaridade ao se aplicar a fórmula cosine (detalhada na seção de revisão de literatura desse trabalho) juntamente com os valores vindos dos passos anteriores. O valor resultante sempre estará entre 0 (zero) e 1 (um). Assim, o valor 0 representará que uma notícia é totalmente diferente da outra e o valor 1 representará que uma notícia é totalmente similar. Os valores que estiverem no intervalo dos dois representará o grau de similaridade entre as notícias. No passo 4 é representada a matriz de similaridade entre as notícias. Assim, ao finalizar o processo do cálculo de similaridade, as informações são armazenadas no banco de dados para serem utilizadas na próxima fase. Desta forma, através do processo do cálculo de similaridade é possível inferir o quanto uma notícia é similar a outra, logo a coleção de notícias já estará apta a passar para a etapa de agrupamento. Nessa etapa será executado o processo de clustering propriamente dito. 4.5 Agrupamento Este é o último processo da técnica de clustering, em que são criados os clusters de notícias a partir da aplicação do algoritmo adotado sobre a matriz de similaridade. Através da Figura 16 pode ser compreendido todo o processo de execução do algoritmo de agrupamento. 49 A A B C A B A C B B A C B B A A A A B C A B A A B C A C B C B A A A A B B C C Legenda: - Processo é executado sempre no inicio e no término da execução do algoritmo; - Seleciona-se uma notícia que ainda não foi adicionada a um cluster (seleção feita de forma aleatória); - Esta será a notícia pai do cluster e irá representar todas as ligações do cluster. - Processo de comparação entre a notícia pai e com as notícias que ainda não foram selecionadas; - Se satisfaz o valor pré-definido do threshold (valor adotado 0.6) então a notícia é mantida como integrante do cluster, senão é descartada (deste cluster); Figura 16 – Exemplificação do Agrupamento (Clustering). 50 Antes de discorrer sobre a seqüência do processo, é importante ressaltar que, no momento em que foi criado a matriz de similaridade entre as notícias, todas as mesmas foram ligadas entre si, através do valor de similaridade. Então, nesse momento, é possível afirmar que existe apenas um cluster e que todas as notícias da base temporária pertencem a ele. Conforme a exemplificação da Figura 16, o processo de agrupamento é realizado através da aplicação de um algoritmo, em que as ligações que não satisfazerem o threshold são removidas, mantendo-se apenas as ligações entre notícias que são realmente similares. Desta forma, o resultado é a criação de vários grupos. O processo inicia-se a partir da seleção das notícias que se encontram na base temporária. Nesse primeiro momento, é selecionada uma notícia aleatoriamente para ser a notícia pai do primeiro cluster, que posteriormente é comparado o grau de similaridade (dela com as outras notícias) com o valor do threshold pré-definido, se o grau for maior ou igual ao valor do threshold, este registro é mantido, caso contrário, ele é removido da base. Após o término do processo, a etapa é executada novamente, utilizando-se as notícias que restaram, até que não haja mais notícias que ainda não foram comparadas. Após o término do processo de agrupamento, foi criado uma gama de grupos ou clusters, contendo apenas notícias similares dentro de cada grupo. Ressaltando que após o processo de clustering, as notícias ficaram alocadas em grupos disjuntos, ou seja, uma notícia pertencente a um grupo não poderá estar ligada a outro cluster, desta forma tem-se grupos limitados de notícias que tratam do mesmo assunto. A partir da clusterização das notícias, foi possível verificar uma melhora significativa na qualidade do serviço prestado pela CN, no que se diz respeito à agilidade na busca de notícias sobre determinados assuntos. Isso possibilitou uma maior abrangência das consultas, pois, ao incluir a mesma a possibilidade de se agrupar possíveis notícias que satisfazem à condição da busca, foi possível retornar notícias pertencentes aos clusters das notícias retornadas em primeira instância. Os resultados obtidos nessas consultas serão descritos na próxima seção, em que serão apresentadas as telas de interação com o usuário e seus resultados. 4.6 Consultas Após o término do processo de clustering sobre as notícias da base temporária, ou seja, ao finalizar a etapa de criação de clusters de notícias, as mesmas já estão aptas a serem 51 visualizadas e consultadas pelos usuários, portanto, neste momento as notícias são liberadas para visualização. A interface disponibilizada (derivada do primeiro trabalho) para visualização dos clusters de notícias é o principal meio de acesso a estas informações. Mas antes de detalhar como os clusters são visualizados, vale a pena ressaltar como as notícias eram consultadas no primeiro trabalho, para que haja, a partir disso, uma noção do que foi modificado. No primeiro trabalho, que resultou a criação da Central de Notícias, as consultas podiam ser disparadas pelo usuário (através de consulta por palavra-chave) ou sugeridas pela CN (através da tela principal, sem ação de consulta pelo usuário), em que a ordenação das mesmas estava ligada às interações dos usuários com a CN, ou seja, as categorias e as notícias que fossem mais acessadas eram tidas como importantes e conseqüentemente eram mostradas primeiramente. Desta forma, após o processo de leitura, as notícias já estavam disponíveis para o usuário, podendo, assim, executar consultas por palavras-chave ou por acesso direto as categorias de notícias. O potencial das consultas estava na forma de ordenação das notícias, em que era considerada a interação do usuário com a CN, pois era possível, através disso, visualizar apenas notícias pertencentes ao seu contexto, ou seja, visualizar notícias que pertencem ao contexto que ele mais acessa. Mais detalhes sobre as consultas em [PASSARIN, 2005]. Nesse trabalho, manteve-se algumas das funcionalidades do primeiro, sendo agregado o processo de Clustering, da técnica de Mineração de Textos. Tal processo permitiu, além das vantagens mantidas do primeiro trabalho, a visualização de notícias agregadas por similaridade. Isso possibilitou a cada notícia acessada pelo usuário, a possibilidade de navegação por notícias similares. A interface desenvolvida permite o acesso e a visualização dos clusters de notícias. Mas é interessante ressaltar as vantagens advindas da utilização destes clusters, podendo citar um exemplo, através da Figura 17, de como foi reorganizada a forma de visualização das notícias da tela principal da CN. 52 Figura 17 – Tela de Principal da CN. A tela principal da CN, como ilustrada na Figura 17, mostra uma quantidade limitada de notícias (dez) da última leitura efetuada, no entanto, é possível acessar as demais notícias através de um mecanismo de paginação. Mas, o diferencial em relação ao primeiro trabalho, é que neste, as notícias que estão na tela principal são as consideradas notícias pais, ou seja, a notícia usada como fator de comparação com as demais notícias no cluster. Portanto, tem-se na tela principal da CN as principais notícias, ordenadas de forma decrescente de tamanho do cluster (quantidade de notícias em um cluster). Isso possibilita inferir que, se várias fontes disponibilizam notícias que tratam do mesmo assunto, pode-se dizer que este assunto tem uma forte probabilidade de ser mais relevante que os outros em um dado tempo (num sentido global). Portanto, quanto maior for a quantidade de notícias dentro de um cluster, maior é o seu grau de importância. Essa característica melhora a disposição das notícias, possibilitando o aperfeiçoamento da interface com o usuário. Tal 53 forma de ordenação também é mantida no momento em que um usuário executa uma consulta por palavra-chave ou quando acessa diretamente uma das categorias de notícia. É importante ressaltar também a forma como foi tratada uma consulta por palavrachave. Para esse tipo de consulta foram realizadas as seguintes alterações: As palavras-chave também passaram pelo processo de Análise dos Dados. Com isso, foram removidas as palavras negativas. Tendo apenas os termos-índices da busca, a consulta que era executada nos campos título e descrição, passou a ser executada sobre os termos já tratados na fase de identificação de termos-índices. Desta forma são retornados apenas os registros de notícias que satisfazem à condição, sobre os termos-índices das notícias. A forma de ordenação dos resultados, que antes era realizada de forma decrescente da quantidade de acessos em uma notícia, ou seja, as notícias mais visitadas eram mostradas nas primeiras posições, passou a ter relação ao tamanho dos clusters. Assim, os clusters com mais notícias são os primeiros a serem apresentados. A forma de acessar as notícias de um cluster está disponível ao usuário no momento em que ele acessa uma notícia e visualiza as notícias semelhantes. A forma disponibilizada para acessar uma notícia está relacionada ao link disponível em cada notícia, denominado “Notícias Semelhantes (quantidade de notícias semelhantes)”, conforme ilustrado na Figura 17. A partir do acesso a esse link é aberta uma nova tela que contém as informações sobre a notícia e as notícias pertencentes ao seu cluster. Essa tela pode ser visualizada na Figura 18. 54 Notícia Pai Notícias Semelhantes Figura 18 – Tela de Notícias Semelhantes da CN. A partir da tela ilustrada na Figura 18 é possível a visualização de todas as notícias pertencentes a um cluster. Nela são mostradas informações da notícia, como título, descrição, a fonte da notícia, a data que foi cadastrada e a quantidade de acessos. Logo abaixo são mostradas as notícias similares. Tais notícias são apresentadas ao se executar uma consulta na base de dados central. Essa consulta tem como retorno todas as notícias pertencentes ao cluster em que a notícia aberta está incluída. Ao se aplicar a técnica para a criação de aglomerados de notícias foi possível a concretização da idéia principal do trabalho, que era a de aperfeiçoar as consultas e/ou resultados. Isso possibilitou ao usuário uma navegação mais dinâmica e uma localização de informações mais eficiente. 4.7 Interface de Gerenciamento Essa seção irá apresentar as telas construídas para executar os processos descritos nas seções anteriores, ou seja, todo o processo de Leitura e Clusterização foi executado através de uma área de gerenciamento (ou administração) dos processos executados em cada etapa, podendo ser executados em qualquer momento e de qualquer lugar. 55 Conforme a Figura 19 pode ser visualizada a principal tela de acesso aos processos desempenhados pela CN, em que através de uma área principal (menu) pode-se dar início a todas as fases adotadas para obtenção, tratamento e disponibilização de notícias. Figura 19 – Tela de Gerenciamento da CN. Conforme descrito nas seções anteriores, cada etapa que compõe o processo de Clustering é executada individualmente e de forma seqüencial. Esta seqüência segue a seguinte ordem: Leitura dos Feeds RSS, Análise dos Dados, Recuperação das Informações, Cálculo de Similaridade, Agrupamento e Liberação das notícias para o usuário. Na etapa de obtenção de conteúdo através dos feeds RSS é criado um processo de leitura, que representa a definição da base de dados temporária, assim, enquanto todas as notícias obtidas deste processo não forem totalmente tratadas, as mesmas estarão inaptas a serem visualizadas pelo usuário, ou seja, ficarão temporariamente em segundo plano, aguardando liberação. Este processo de leitura será utilizado para as demais fases, em que a partir da mesma, dá-se início a cada etapa individualmente. Esse processo de obtenção de conteúdo pode ser visualizado na Figura 20, em que é feita a leitura de cada feed RSS de forma seqüencial. 56 Figura 20 – Tela de Leitura de Feeds RSS. A partir do processo de Leitura, dá-se início a tarefa de Clustering. Na primeira etapa é executada a Análise dos Dados. Conforme é apresentado na Figura 21, para iniciar a Análise dos Dados, é selecionada a leitura desejada e executado o processo. Desta forma, todas as notícias pertencentes à leitura em questão serão analisadas, assim, serão removidas todas as palavras negativas do texto, mantendo apenas os termos importantes. Essa maneira de selecionar uma leitura e executar um processo sobre as notícias pertencentes a ela, é mantida também nas fases de Recuperação das Informações, Cálculo de Similaridade, Agrupamento e Liberação, sendo as telas semelhantes a da Figura 21. Figura 21 – Tela de Análise dos Dados. Portanto, a partir destas telas de gerenciamento é possível executar os processos que compõem a obtenção de conteúdo e de pós-tratamento dos mesmos, que representa o processo de Clustering. Na próxima seção serão mostrados os resultados obtidos, assim como algumas limitações e problemas ocasionados no decorrer do desenvolvimento e as soluções tomadas para sanar essas divergências. 57 5 CONCLUSÕES O trabalho Central de Notícias [PASSARIN, 2005] possui um repositório com uma vasta quantidade de informações que se mantém atualizada diariamente. Mas, essa estrutura não foi explorada no primeiro trabalho, deixando para novas pesquisas a responsabilidade de trabalhar especificamente com o conteúdo destas informações. A partir disso, deu-se início a elaboração desse trabalho. A técnica de Mineração de Textos, pertencente à área de Inteligência Artificial, foi escolhida para extrair conhecimentos advindos das notícias armazenadas. Entre as diferentes tarefas de Mineração de Textos, a que foi mais bem aceita no domínio deste trabalho, foi o processo de Clustering, que possibilitou a criação de grupos de notícias que tratam do mesmo assunto. Isso permitiu à CN sugerir ao usuário, através de uma notícia inicial, novas notícias que abordam o mesmo assunto. No decorrer do desenvolvimento deste trabalho surgiram algumas problemáticas decorrentes, principalmente, da grande quantidade de informações contida na CN, de acordo com o número de notícias. Agrega-se, a isso, o fato de tratar de uma aplicação web, em que os procedimentos são executados em tempo real, o que torna certas etapas do processo de clustering trabalhosas e inviáveis. Uma decisão tomada para suprir esta problemática foi a de executar o processo de clustering apenas uma vez, após a leitura das informações, ou seja, o processo de clustering é pré-executado antes de liberar as notícias, e os clusters criados são mantidos em banco de dados. Mas o ideal seria que a aplicação do Clustering fosse realizada em tempo real e que, através de uma consulta executada pelo usuário, fosse feito o processo de agrupamento e as notícias similares fossem retornadas como resultado. No entanto, essa idéia foi descartada devido ao grande processamento que iria resultar cada consulta. A problemática da quantidade excessiva de dados resultou na eliminação de alguns feeds RSS, como, por exemplo, os feeds da língua inglesa e os que tiveram pouco acesso no primeiro trabalho. Essa medida visou diminuir a quantidade de informações, trabalhando-se apenas com as notícias pertencentes aos contextos mais acessados na CN (ou seja, as notícias mais importantes para os usuários que acessam o sistema). Isso melhorou consideravelmente o processamento e tornou possível a execução de certos processos via web. Como, por exemplo, os processos relacionados ao cálculo de similaridade, que exige de um processamento consideravelmente grande. Nesse processo, 58 cada notícia é comparada com todas as demais e, ao ser executada tal tarefa, o tempo de processamento da página sempre extrapolava o tempo limite (padrão da web, que é de 30 segundos). Como medida imediata para minimizar este tempo de processamento, fez-se necessária a eliminação de feeds RSS não tão importantes, mantendo apenas as possíveis notícias condizentes com o contexto dos leitores. Um outro ponto importante está relacionado aos resultados obtidos através da aplicação da técnica de clustering. Nesses resultados foi detectada a existência de notícias em clusters que, aparentemente, não tratam do mesmo assunto, apenas possuem palavras em comum. Mas esse tipo de divergência já era esperado, pois os relatos sobre a utilização dessa técnica já demonstram que um pequeno percentual de erro pode vir a ocorrer. Uma explicação para a existência deste tipo de divergência está na forma em que os textos das notícias foram tratados, ou seja, como citado na literatura deste trabalho, existem dois tipos de abordagens de dados, que é a Análise Semântica e a Análise Estatística. A semântica baseia-se nas funcionalidades dos termos nos textos e a estatística na freqüência em que os termos aparecem no texto. E por ter utilizado a análise estatística neste trabalho, o sentido dos termos, a localização dos termos em uma oração e as suas corretas funções foram descartadas. Desta forma, se um determinado termo em um texto de uma notícia possui certo significado e em outro texto outro significado, essa diferença não é considerada, o que resulta na existência de notícias que possuem os mesmos termos, mas que tratam de assunto totalmente diferentes. Embora tenham ocorrido algumas limitações impostas pela quantidade de informações trabalhadas e pelo grande processamento exigido na execução do processo de clusterização, os resultados propostos e esperados foram alcançados. Como trabalhos futuros, pode ser proposta uma melhoria dos algoritmos utilizados, a possibilidade de se adotar a análise semântica dos dados e a implementação de algoritmos de stemming e thesaurus condizentes com o domínio do trabalho. 59 6 REFERÊNCIAS BIBLIOGRÁFICAS [ALMEIDA, 2004] ALMEIDA, Leandro Maciel. Categorização de Mensagens de Texto para Ambientes de Aprendizado Colaborativo. Trabalho de Conclusão de Curso (Curso Sistemas de Informação) CEULP/ULBRA, Tocantins, 2004. [BIAZUS, 2003] BIAZUS, Diogo de Oliveira. PostgreSQL. 2003. Disponível em: <http://www.postgresql.org.br/pmwiki.php?n=Main.PostgreSQL>. Acesso em: 22 de novembro de 2005. [CASTAGNETTO, 2001] CASTAGNETTO, Jesus; RAWAT, Harish; SCHUMANN, Sascha; SCOLLO, Chris; VELIATH, Deepak. Profissional PHP Programando. São Paulo: Makron, 2001. [CORDEIRO, 2005] CORDEIRO, Arildo Dirceu. Gerador inteligente de sistemas com auto-aprendizagem para gestão de informações e conhecimento. Tese de Doutorado (Universidade Federal de Santa Catarina), Santa Catarina, 2005. [EBECKEN, 2003] EBECKEN, Nelson Francisco Favilha. LOPES, Maria Célia Santos. COSTA, Myrian Christina de Aragão. Mineração de Textos. In: REZENDE, S.O. Sistemas Inteligentes: Fundamentos e Aplicações. Manole: São Paulo, 2003. [HABN, 2000] HABN, U.; MANI, I. The challenges of automatic sumarization. IEEE Computer, 2000. [HAMMERSLEY, 2003] HAMMERSLEY, Ben. Content Syndication with RSS. Sebastopol: O’Reilly, 2003. [LOPES, 2004] LOPES, Maria Célia Santos. Mineração de Dados Textuais Utilizando Técnicas de Clustering para o Idioma Português. Tese de Doutorado (Universidade Federal do Rio de Janeiro, COPPE), Rio de Janeiro, 2004. [MARTINS, 2003] MARTINS, Claudia Aparecida. Uma abordagem para préprocessamento de dados textuais em algoritmos de aprendizado. Tese de Doutorado (ICMC-USP), São Paulo, 2003. [PASSARIN, 2005] PASSARIN, Darley. RSS no desenvolvimento de uma Central de Notícias. Prática de Sistemas de Informação I. CEULP/ULBRA, Tocantins, 2005. [SALTON, 1983] SALTON, Gerard; MACGILL, Michael J. Introdution to Modern Information Retrieval. New York: McGRAW-Hill, 1983. 60 [SALTON, 1987] SALTON, Gerard; BUCKEY, Chris. Term weighting opproaches in automatic text retrieval. Ithaca, New York: Department of computer science, Cornell University, 1987. [SANCHES, 2003] SANCHES, Marcelo Kaminski. Aprendizado de máquina semisupervisionado: proposta de um algoritmo para rotular exemplos a partir de poucos exemplos rotulados. Dissertação de Mestrado em Ciência da Computação e Matemática Computacional (USP), São Paulo, 2003. [SOARES, 2004] SOARES, Walace. PHP5: Conceitos, Programação e Integração com Banco de Dados. São Paulo: Érica, 2004. [TAN, 1999] TAN, A. H. Text Mining: The state of the art and the challenges. In Proceedings of the PAKDD’99 workshop on Knowledge Discovery from Advanced Databases, Beijing, pp. 65-70, 1999. [YANG, 1997] YANG, Y.; PEDERSON, J. A comparative study on feature selection in text categorization. Fourteenth International Conference on Machine Learning, ICML, 1997. [WIVES, 1997] WIVES, Leandro Krug. Um Estudo Sobre Técnicas de Recuperação de Informações Com Ênfase em Informações Textuais. Programa de Pós- Graduação em Computação (Universidade Federal do Rio Grande do Sul), Rio Grande do Sul, 1997. [WIVES, 1999] WIVES, Leandro Krug. Um estudo sobre Agrupamento de Documentos Textuais em Processamento de Informações não Estruturadas Usando Técnicas de “Clustering”. Dissertação de Mestrado em Ciência da Computação (Universidade Federal do Rio Grande do Sul), Rio Grande do Sul, 1999. [WIVES, 2002] WIVES, Leandro Krug. Tecnologias de Descoberta de Conhecimento em Textos Aplicadas à Inteligência Competitiva. Programa de Pós-Graduação em Computação (Universidade Federal do Rio Grande do Sul), Rio Grande do Sul, 2002. [WIVES, 2005] WIVES, Leandro Krug. Eurekha!. Disponível em: < http://www.leandro.wives.nom.br/eurekha/eurekha.htm>. Último acesso em: 10 de novembro de 2005.