82
WHYSEARCH: UM MECANISMO TEMPORAL E CAUSAL DE ENCADEAMENTO DE NOTÍCIAS Thiago de Siqueira Rodrigues Dissertação de Mestrado apresentada ao Programa de Pós-graduação em Engenharia de Sistemas e Computação, COPPE, da Universidade Federal do Rio de Janeiro, como parte dos requisitos necessários à obtenção do título de Mestre em Engenharia de Sistemas e Computação. Orientador: Jano Moreira de Souza Rio de Janeiro Setembro de 2011

WHYSEARCH: UM MECANISMO TEMPORAL E CAUSAL DE …objdig.ufrj.br/60/teses/coppe_m/ThiagoDeSiqueiraRodrigues.pdf · A Coordenação de Aperfeiçoamento de Pessoal de Nível Superior

  • Upload
    ngodiep

  • View
    213

  • Download
    0

Embed Size (px)

Citation preview

WHYSEARCH: UM MECANISMO TEMPORAL E CAUSAL DE

ENCADEAMENTO DE NOTÍCIAS

Thiago de Siqueira Rodrigues

Dissertação de Mestrado apresentada ao

Programa de Pós-graduação em Engenharia de

Sistemas e Computação, COPPE, da

Universidade Federal do Rio de Janeiro, como

parte dos requisitos necessários à obtenção do

título de Mestre em Engenharia de Sistemas e

Computação.

Orientador: Jano Moreira de Souza

Rio de Janeiro

Setembro de 2011

WHYSEARCH: UM MECANISMO TEMPORAL E CAUSAL DE

ENCADEAMENTO DE NOTÍCIAS

Thiago de Siqueira Rodrigues

DISSERTAÇÃO SUBMETIDA AO CORPO DOCENTE DO INSTITUTO ALBERTO

LUIZ COIMBRA DE PÓS-GRADUAÇÃO E PESQUISA DE ENGENHARIA

(COPPE) DA UNIVERSIDADE FEDERAL DO RIO DE JANEIRO COMO PARTE

DOS REQUISITOS NECESSÁRIOS PARA A OBTENÇÃO DO GRAU DE MESTRE

EM CIÊNCIAS EM ENGENHARIA DE SISTEMAS E COMPUTAÇÃO.

Examinada por:

________________________________________

Profo Jano Moreira de Souza, Ph.D.

________________________________________

Profo Geraldo Bonorino Xexéo, D.Sc.

________________________________________

Profo Fabio Andre Machado Porto, D.Sc.

RIO DE JANEIRO, RJ - BRASIL

SETEMBRO DE 2011

iii

Rodrigues, Thiago de Siqueira

WhySearch: Um Mecanismo Temporal e Causal de

Encadeamento de Notícias/ Thiago de Siqueira Rodrigues.

– Rio de Janeiro: UFRJ/COPPE, 2011.

XII, 70 p.: il.; 29,7 cm.

Orientador: Jano Moreira de Souza

Dissertação (mestrado) – UFRJ/ COPPE/ Programa de

Engenharia de Sistemas e Computação, 2011.

Referencias Bibliográficas: p. 67-70.

1. Recuperação da Informação. 2. Sabedoria das

Multidões. 3. Detecção e Rastreamento de Tópicos. I.

Souza, Jano Moreira. II. Universidade Federal do Rio de

Janeiro, COPPE, Programa de Engenharia de Sistemas e

Computação. III. Título.

iv

A minha família e a minha esposa Ana Lucia,

por todo apoio e companheirismo.

v

Agradecimentos

Gostaria de agradecer a todas essas pessoas que contribuíram de forma direta ou

indireta para a realização deste trabalho.

Primeiramente, ao Prof. Jano Moreira de Souza pela importante orientação e o

imenso apoio e incentivo demonstrado durante as diversas reuniões que foram decisivas

para definir os rumos desta pesquisa.

Ao Prof. Wallace Anacleto Pinheiro pela paciência e dedicação no

esclarecimento de dúvidas e na solução de diversos problemas.

Ao Prof. Geraldo Bonorino Xexéo pelas valiosas sugestões debatidas nas

reuniões semanais realizadas com seus orientados.

Aos amigos e companheiros da graduação e do mestrado, Marcelo Arêas,

Marcio Antelio, Luiz Fernando e Vinicius Guimarães, pelos momentos de descontração

e pelas conversas informais que na maioria das vezes resultavam em uma grande

contribuição e economia de tempo para desenvolvimento desta pesquisa.

A Coordenação de Aperfeiçoamento de Pessoal de Nível Superior - CAPES,

pelo apoio financeiro através da concessão de uma bolsa de estudos.

Aos meus queridos pais, Orealdo e Genilda, por sempre acreditarem no meu

potencial e pelo enorme esforço em me garantir uma educação de qualidade.

A minha irmã, Cristiane, por compartilhar comigo a vontade de concluir este

trabalho. A minha avó, Alba, pela sua presença especial em minha vida.

A minha esposa e companheira, Ana Lucia, pelo apoio, dedicação e

principalmente pela paciência nos momentos em que estive tão ocupado.

A Deus, sobretudo, por sempre me mostrar o melhor caminho a seguir.

vi

“O fator decisivo para vencer o maior obstáculo é, invariavelmente, ultrapassar o obstáculo anterior.” Henry Ford

“Quando Deus quer, não há quem não queira.” Ayrton Senna

vii

Resumo da Dissertação apresentada à COPPE/UFRJ como parte dos requisitos

necessários para a obtenção do grau de Mestre em Ciências (M.Sc.)

WHYSEARCH: UM MECANISMO TEMPORAL E CAUSAL DE

ENCADEAMENTO DE NOTÍCIAS

Thiago de Siqueira Rodrigues

Setembro/2011

Orientador: Jano Moreira de Souza

Programa: Engenharia de Sistemas e Computação

Com o desenvolvimento da Internet, diversos jornais e revistas, que antes

publicavam suas notícias apenas através de mídias impressas, hoje em dia também

disponibilizam o seu conteúdo através de páginas web. Nessas páginas, geralmente, o

texto de uma notícia é acompanhado por um conjunto de links que correspondem às

suas notícias relacionadas. Essa abordagem possui um grande problema. Os links para

as notícias relacionadas são geralmente criados manualmente (links estáticos) e de

forma ad hoc. Isso acaba restringindo os leitores a um pequeno conjunto de notícias pré-

selecionadas. Essa pesquisa propõe uma nova abordagem sobre esse assunto com o

objetivo de fornecer aos usuários um amplo encadeamento histórico das notícias

buscadas. Para isso foi desenvolvido um mecanismo temporal e causal de encadeamento

de notícias. Esse mecanismo tem a capacidade de refinar o relacionamento entre as

notícias e melhorar os seus resultados à medida que for sendo utilizado, com a aplicação

do conceito de sabedoria das multidões..............................................................

viii

Abstract of Dissertation presented to COPPE/UFRJ as a partial fulfillment of the

requirements for the degree of Master of Science (M.Sc.)

WHYSEARCH: A TEMPORAL AND CAUSAL NEWS LINK ENGINE

Thiago de Siqueira Rodrigues

September/2011

Advisor: Jano Moreira de Souza

Department: Systems Engineering and Computer Science

As a result of the Internet development, lots of newspapers and magazines, that

published their news only in the printed form, are also releasing their contents

electronically through web pages. In these pages, the news text is usually followed by a

set of links corresponding to the related news. This approach has a big problem. The

related news links are generally created manually (static links) and in an ad hoc way. It

restricts the readers to a small set of pre-selected news. This research proposes a new

approach about this subject aiming to give the users a wide and historical relationship

between the searched news. Thus, it was developed a temporal and causal news link

engine. This system can also enhance its results as it is used considering the wisdom of

crowds.

ix

Sumário

CAPÍTULO 1 Introdução ........................................................................................... 1

1.1 Motivação ........................................................................................................ 1

1.2 Problema ......................................................................................................... 1

1.3 Objetivo do Trabalho ..................................................................................... 2

1.4 Metodologia de Pesquisa ............................................................................. 2

1.5 Organização do Texto................................................................................... 3

CAPÍTULO 2 Revisão da Literatura ........................................................................ 5

2.1 Recuperação da Informação........................................................................ 5

2.2 Modelos Clássicos de Busca ....................................................................... 6

2.2.1 Modelo Booleano ................................................................................... 6

2.2.2 Modelo Vetorial ...................................................................................... 7

2.2.3 Modelo Probabilístico ............................................................................ 9

2.3 Relacionamento entre Documentos Web ................................................ 10

2.3.1 PageRank ............................................................................................. 12

2.4 Agregação de Conteúdo............................................................................. 13

2.5 Ferramentas de Busca Full-Text ............................................................... 14

2.6 Medidas de Similaridade ............................................................................ 17

2.7 Sabedoria das Multidões ............................................................................ 18

CAPÍTULO 3 Trabalhos Relacionados ................................................................. 21

3.1 Detecção e Rastreamento de Tópicos ..................................................... 21

3.1.1 Múltiplos Métodos para Aplicação do TDT ...................................... 22

3.1.2 Uma Abordagem Baseada em Clusters para Disseminar Notícias

23

3.1.3 Aplicações do TDT .............................................................................. 24

3.2 Google Living Stories .................................................................................. 26

3.3 Google News ................................................................................................ 29

CAPÍTULO 4 O Mecanismo de Encadeamento de Notícias WhySearch ....... 30

4.1 Visão Geral ................................................................................................... 30

4.2 Arquitetura do Sistema ............................................................................... 33

4.2.1 Camada de Extração e Processamento .......................................... 34

x

4.2.2 Camada de Aplicação ......................................................................... 35

4.2.3 Banco de Dados................................................................................... 35

4.3 Por que o WhySearch é Temporal............................................................ 37

4.4 Por que o WhySearch é Causal ................................................................ 37

4.5 Por que o WhySearch é Escalável ........................................................... 37

CAPÍTULO 5 Módulos do WhySearch.................................................................. 39

5.1 RSS Torrent .................................................................................................. 39

5.1.1 RSS Manager ....................................................................................... 39

5.1.2 RSS Downloader ................................................................................. 42

5.2 Full-Text Indexer .......................................................................................... 48

5.3 News Connetor............................................................................................. 49

5.4 Search Engine .............................................................................................. 51

5.5 Weight Updater ............................................................................................ 52

5.6 Path Analyzer ............................................................................................... 55

CAPÍTULO 6 Experimentos.................................................................................... 56

6.1 Visão Geral ................................................................................................... 56

6.2 Tamanho das Amostras.............................................................................. 56

6.2.1 Quantidade de Notícias ...................................................................... 57

6.2.2 Quantidade de Participantes.............................................................. 57

6.3 Execução....................................................................................................... 58

6.4 Comentários Finais...................................................................................... 64

CAPÍTULO 7 Conclusões e Trabalhos Futuros .................................................. 65

7.1 Contribuições................................................................................................ 65

7.2 Trabalhos Futuros........................................................................................ 66

Referências Bibliográficas .......................................................................................... 67

xi

Índice de Figuras

FIGURA 1 CÁLCULO SIMPLIFICADO DO PAGERANK........................................................... 12

FIGURA 2 DESEMPENHO DE UMA BUSCA POR UMA FRASE................................................ 16

FIGURA 3 DESEMPENHO DE UMA BUSCA MULTIUSUÁRIO................................................. 16

FIGURA 4 TELA PRINCIPAL DO LIVING STORIES................................................................ 26

FIGURA 5 SELEÇÃO DE UMA HISTÓRIA............................................................................. 27

FIGURA 6 ABA MANAGE LIVING STORIES DO LIVING STORIES CONTENT MANAGER............ 28

FIGURA 7 ABA MANAGE CONTENT DO LIVING STORIES CONTENT MANAGER..................... 28

FIGURA 8 INTERFACE DO SISTEMA.................................................................................... 31

FIGURA 9 BUSCA DE NOTÍCIAS......................................................................................... 31

FIGURA 10 DETALHAMENTO DE UMA NOTÍCIA ................................................................ 32

FIGURA 11 CONTEXTUALIZAÇÃO DE UMA NOTÍCIA .......................................................... 33

FIGURA 12 ARQUITETURA DO SISTEMA........................................................................... 34

FIGURA 13 MODELO DO BANCO DE DADOS DO WHYSEARCH............................................ 35

FIGURA 14 RSS MANAGER E RSS DOWNLOADER............................................................. 39

FIGURA 15 TELA DE FILTRO DO RSS MANAGER............................................................... 40

FIGURA 16 TELA DE CADASTRO DO RSS MANAGER......................................................... 41

FIGURA 17 TELA DE LOG DO RSS MANAGER.................................................................... 41

FIGURA 18 DIAGRAMA DE ATIVIDADES DO RSS DOWNLOADER....................................... 42

FIGURA 19 EXPANSÃO DA ATIVIDADE “REALIZAR INSERÇÃO” ........................................ 44

FIGURA 20 EXPANSÃO DA ATIVIDADE “REALIZAR ATUALIZAÇÃO ” ................................. 46

FIGURA 21 EXPANSÃO DA ATIVIDADE “TRATAR ITEM” ................................................... 47

FIGURA 22 PROMPT DE COMANDO DO RSS DOWNLOADER............................................... 48

FIGURA 23 GRAFO WHY................................................................................................... 49

FIGURA 24 CONJUNTOS DE NOTÍCIAS............................................................................... 50

FIGURA 25 DIAGRAMA DE ATIVIDADES DO WEIGHT UPDATER......................................... 53

FIGURA 26 EXPANSÃO DA ATIVIDADE “EXECUTAR WHY” ............................................... 54

FIGURA 27 COEFICIENTES DE SPEARMAN PARA CADA FERRAMENTA............................... 61

FIGURA 28 SPEARMAN MÉDIO X GRUPO DE NOTÍCIAS .................................................... 62

FIGURA 29 DISTRIBUIÇÃO DOS VALORES DE SPEARMAN PARA O GRUPO 1....................... 62

FIGURA 30 DISTRIBUIÇÃO DOS VALORES DE SPEARMAN PARA O GRUPO 2....................... 63

FIGURA 31 DISTRIBUIÇÃO DOS VALORES DE SPEARMAN PARA O GRUPO 3....................... 63

xii

FIGURA 32 DISTRIBUIÇÃO DOS VALORES DE SPEARMAN PARA O GRUPO 4....................... 63

1

CAPÍTULO 1 INTRODUÇÃO

1.1 Motivação

Atualmente, existem muitos sites voltados especificamente para notícias.

Agências de notícias tradicionais disponibilizam informações aos seus clientes através

desses sites. Como resultado, novas tecnologias, ferramentas e mecanismos de busca

especiais foram criados para ter acesso a essas notícias. Como exemplo, podemos citar o

padrão RSS e o Google News1, que utiliza aproximadamente 4.500 fontes de notícias.

Além disso, as notícias web são um tipo especial de informação pública que

possui algumas características exclusivas. Essas características criam um ambiente

favorável ao desenvolvimento de mecanismos que lidam especificamente com notícias,

pois contribuem com as tarefas de descoberta, coleta e busca, diferentemente dos

tradicionais mecanismos de busca na web. A existência de numerosas fontes de notícias

confiáveis e a rápida atualização dessas notícias são as diferenças mais importantes.

A versão online da maioria dos jornais disponibiliza links para várias notícias em

sua página principal, onde, ao selecionarmos um desses links, é exibida uma página com

o texto integral da notícia e uma série de outros links que correspondem às notícias

relacionadas. Esse artifício é uma tentativa de se contextualizar uma determinada notícia

com base em outras, dando ao leitor uma melhor compreensão do fato ocorrido.

Este trabalho visa aprimorar essa estratégia, pois a forma como o relacionamento

entre as notícias é realizado atualmente é muito limitada, tendo em vista que o leitor fica

restrito a apenas algumas notícias pré-selecionadas pelo editor do jornal, sem a

possibilidade de realizar algum tipo de filtragem.

1.2 Problema

Atualmente, a forma como as notícias web são disponibilizadas geralmente

segue um padrão específico. Primeiramente, é apresentado o texto da notícia e no fim da

página são fornecidos alguns links para as notícias relacionadas.

1 http://news.google.com

2

O principal problema dessa abordagem é que os links para as notícias

relacionadas são criados manualmente (estáticos) e de maneira ad hoc, ou seja, com

base na memória das pessoas que os publicam. Esse tipo de relacionamento entre

notícias acaba limitando a necessidade de informação dos leitores, pois eles ficam

restritos a um pequeno conjunto de notícias pré-selecionadas.

Para contornar esse problema, torna-se necessário o desenvolvimento de um

mecanismo que, além de relacionar um conjunto de notícias automaticamente, permita

aos usuários, durante uma leitura, realizarem buscas e navegarem por esses

relacionamentos.

1.3 Objetivo do Trabalho

Este trabalho tem como objetivo desenvolver e avaliar um novo método que

permita criar relacionamentos causais e temporais entre notícias web de forma a permitir

que esses relacionamentos sejam explicitados de forma natural, automática e intuitiva,

substituindo satisfatoriamente a forma como o relacionamento de notícias é realizado

atualmente através de links estáticos para notícias relacionadas

Para isso, foi desenvolvida a ferramenta WhySearch, que é composta por um

conjunto de módulos que atuam desde o relacionamento entre as notícias, que seria

equivalente aos links existentes entre páginas web, formando um grande grafo, até a

busca e exibição das notícias relacionadas. Além disso, fatores como tempo e causa

também são considerados.

Outra característica relevante é a capacidade que o sistema tem de refinar o

relacionamento entre as notícias e melhorar os seus resultados à medida que for sendo

utilizado, com a aplicação do conceito de sabedoria das multidões (SUROWIECKI,

2005).

1.4 Metodologia de Pesquisa

Segundo MARCONI & LAKATOS (2004), o trabalho pretende seguir as etapas

da concepção atual do método científico moderno, segundo o qual uma investigação

alcança seus objetivos de forma científica quando cumpre ou se propõe a cumprir as

seguintes etapas:

• Descobrimento do problema;

3

• Colocação precisa do problema;

• Procura de conhecimentos ou instrumentos relevantes ao problema;

• Tentativa de solução do problema com o auxílio dos meios identificados;

• Produção de novos dados empíricos;

• Obtenção da solução;

• Investigação das conseqüências da solução obtida;

• Prova (comprovação) da solução;

• Correção das hipóteses, teorias, procedimentos ou dados empregados na

obtenção da solução incorreta.

Em conformidade com esses passos, o descobrimento do problema ocorreu com

a necessidade de se relacionar melhor as notícias fornecidas por jornais ou revistas

online. Tal necessidade fez surgir um questionamento de como se desenvolver um

conjunto de métodos que resultem em uma ferramenta que permita encadear de modo

causal e temporal as notícias disponíveis na internet de forma completa e flexível. O

problema a ser solucionado é então, propor um conjunto de métodos de busca voltados

especificamente para notícias, com o objetivo de relacioná-las satisfatoriamente.

Durante a procura de conhecimentos ou instrumentos relevantes ao problema, foi

necessário um estudo sobre os formatos de disponibilização de notícias na internet,

mecanismos de busca, medidas de similaridade e diversos aspectos relacionados a

sistemas de recuperação da informação.

A produção de dados empíricos foi realizada através da utilização e avaliação da

ferramenta desenvolvida, que era responsável por coletar, processar, associar e exibir as

notícias provenientes de diversos jornais online.

A partir da execução e utilização da ferramenta, obtivemos a solução que teve

suas conseqüências investigadas e comprovadas através da realização de um

experimento que visava avaliá-la.

A correção de alguns procedimentos empregados foi realizada com o intuito de

adequarmos a ferramenta às necessidades que foram levantadas durante o experimento.

1.5 Organização do Texto

O capítulo 1 deste trabalho corresponde a presente introdução.

4

No capítulo 2 são apresentadas as características mais relevantes dos sistemas de

recuperação da informação, tendo como ponto de partida uma análise detalhada das

principais técnicas e algoritmos utilizados no desenvolvimento do mecanismo proposto.

O capítulo 3 da dissertação descreve alguns sistemas de busca de notícias. Para

isso, diversos trabalhos relacionados são detalhados em comparação à proposta desta

pesquisa.

O capítulo 4 apresenta uma descrição geral do mecanismo de busca WhySearch.

O capítulo 5 explica em detalhes o funcionamento de cada módulo que faz parte

da arquitetura do sistema.

No capítulo 6 descrevemos o experimento realizado, juntamente com os

resultados obtidos, de forma a mostrar que a ferramenta desenvolvida atende aos

requisitos propostos satisfatoriamente.

Finalmente o capítulo 7 apresenta a conclusão desta pesquisa, ressaltando suas

contribuições e sugerindo melhorias futuras.

5

CAPÍTULO 2 REVISÃO DA LITERATURA

Neste capítulo são apresentados os principais assuntos presentes na literatura que

estão relacionados a esta pesquisa. Entre eles podemos destacar a recuperação da

informação, que serve como base para todo o processo de encadeamento de notícias; os

modelos clássicos de busca (booleano, vetorial e probabilístico), que apresentam

diferentes estratégias de busca de documentos relevantes para uma determinada

consulta; o relacionamento entre documentos web, que visa determinar a relevância de

uma página a partir da análise da estrutura de links da web; a agregação de conteúdo

(content syndication), caracterizada principalmente pela disponibilização de feeds web

de uma determinada página; as ferramentas de busca full-text, usadas para facilitar as

buscas textuais realizadas no repositório de notícias do WhySearch; as medidas de

similaridade, que foram utilizadas para buscar e relacionar as notícias do repositório; e,

por fim, a sabedoria das multidões, uma teoria sobre a agregação da informação em

grupos utilizada para melhorar ainda mais os resultados do WhySearch.

2.1 Recuperação da Informação

O significado do termo recuperação da informação (RI) pode ser bastante amplo

dependendo da área e do contexto em que é utilizado. Formalmente, pode-se definir a

recuperação da informação como um artifício para se encontrar documentos que

satisfaçam uma necessidade de informação dentro de grandes coleções armazenadas

principalmente em computadores (MANNING et al., 2008).

Há alguns anos atrás, a recuperação da informação era considerada uma

atividade em que apenas algumas pessoas estavam envolvidas: bibliotecários,

assistentes jurídicos, etc. Atualmente, com o avanço tecnológico, milhares de pessoas

lidam com a recuperação da informação diariamente quando elas utilizam um

mecanismo de busca na web. A RI vem rapidamente se tornando o principal meio de

acesso à informação.

Para classificar os documentos resultantes de uma busca, os sistemas de RI

geralmente adotam um modelo para representar tanto os documentos quanto a consulta

do usuário. Muitos modelos foram propostos ao longo dos anos, porém três modelos são

6

considerados clássicos: booleano, vetorial e probabilístico (BAEZA-YATES &

RIBEIRO-NETO, 1999).

Esses modelos apresentam estratégias de busca de documentos relevantes

distintas para uma determinada consulta, onde cada documento é descrito por um

conjunto de palavras-chave representativas que busca descrever o assunto do documento

e sumarizar seu conteúdo.

Grande parte das atividades executadas pelo WhySearch está relacionada a

buscas textuais. Dessa forma, a RI assume um papel muito importante, pois ela serve

como base para todo o processo de encadeamento de notícias.

2.2 Modelos Clássicos de Busca

Os modelos clássicos utilizados no processo de recuperação de informação

(booleano, vetorial e probabilístico) apresentam estratégias de busca de documentos

relevantes distintas para uma determinada consulta.

Nesses modelos, cada documento é descrito por um conjunto de palavras-chave

representativas, também conhecidas como termos de indexação, que busca representar o

assunto do documento e sumarizar seu conteúdo de forma significativa.

As seções seguintes apresentam uma breve explicação sobre cada um desses

modelos.

2.2.1 Modelo Booleano

O modelo booleano é um modelo de recuperação da informação bastante

simples, baseado na teoria de conjuntos e na álgebra booleana. Como o conceito de um

conjunto é bastante intuitivo, o modelo booleano fornece uma arquitetura que é fácil de

ser entendida. Dessa forma, as consultas são especificadas como expressões booleanas

que possuem uma semântica precisa. Por conta de sua simplicidade natural e seu

formalismo objetivo, o modelo booleano recebeu uma grande atenção no passado e foi

amplamente adotado nos primeiros sistemas bibliográficos comerciais (BAEZA-

YATES & RIBEIRO-NETO, 1999).

Infelizmente, esse modelo possui algumas desvantagens significativas.

Primeiramente, sua estratégia de recuperação é baseada em um critério de decisão

binária (um documento só pode ser classificado como relevante ou não relevante) sem

nenhum tipo de escala gradual, o que impossibilita um bom desempenho na recuperação

7

dos documentos. Por conta disso, o modelo booleano é muito mais um modelo de

recuperação de dados do que um modelo de recuperação da informação. Outra

desvantagem desse modelo é o fato de suas expressões terem uma semântica precisa, ou

seja, quando realizamos uma consulta, são retornados apenas os documentos que se

adequam exatamente à condição proposta. Além disso, existem poucos operadores

(AND, OR e NOT), o que acaba impedindo a realização de consultas mais complexas.

Em grande parte das vezes, transformar uma necessidade de informação em uma

expressão booleana não é uma tarefa simples. Na realidade, a maioria dos usuários acha

complicado expressar as suas consultas como expressões booleanas. Apesar desses

problemas, o modelo booleano ainda é o modelo dominante nos sistemas de banco de

dados de documentos e fornece um bom ponto de partida para as pessoas ainda

inexperientes nessa área.

As principais vantagens do modelo booleano são a clareza do formalismo

existente por trás do modelo e a sua simplicidade. As principais desvantagens são a

rigidez da comparação que pode levar a recuperação de um número muito pequeno ou

muito grande de documentos. Atualmente, sabe-se que a atribuição de pesos aos termos

de indexação pode levar a uma melhoria substancial no desempenho da recuperação. A

atribuição desses pesos é uma das principais características do modelo vetorial.

2.2.2 Modelo Vetorial

Como o modelo vetorial reconhece que o uso de pesos binários prejudica

significativamente o desempenho da recuperação de documentos, ele propõe uma

estrutura na qual uma comparação parcial é possível. Isso é alcançado através da

atribuição de pesos não binários aos termos de indexação das consultas e documentos.

Esses pesos são utilizados para computar o grau de similaridade entre cada documento

armazenado no sistema e a consulta do usuário. Ao apresentar os documentos

retornados em ordem decrescente desse grau de similaridade, o modelo vetorial

considera os documentos que se adequam parcialmente aos termos de indexação da

consulta. Um efeito imediato dessa modificação é o fato do modelo vetorial conseguir

obter um resultado muito mais preciso (no sentido de que esse resultado é muito mais

aderente as necessidades de informação dos usuários) do que o modelo booleano

(BAEZA-YATES & RIBEIRO-NETO, 1999).

8

Para o modelo vetorial, o peso wi,j associado ao par (ki, dj) é positivo e não

binário. Além disso, os termos de indexação da consulta também possuem pesos.

Consideremos wi,q como o peso associado ao par (ki, q), onde wi,q ≥ 0. Então, o vetor

da consulta qr

será definido por qr

= (w1,q, w2,q, ..., wt,q), onde t é o número total de

termos de indexação do sistema. Da mesma forma, o vetor para um documento dj será

representado por jdr

= (w1,j, w2,j, ..., wt,j).

Dessa forma, um documento dj e a consulta q de um usuário são representados

como vetores t-dimensionais. O modelo vetorial avalia o grau de similaridade do

documento dj em relação à consulta q como a correlação entre os vetores jdr

e qr

. Essa

correlação pode ser quantificada como (BAEZA-YATES & RIBEIRO-NETO, 1999):

sim(dj, q) = qjd

qjdrr

rr

ו

Nesse caso, o grau de similaridade entre jdr

e qr

corresponde ao cosseno do

ângulo entre esses dois vetores, onde jdr

e qr

são as normas dos vetores do documento

e da consulta respectivamente. O fator qr

não afeta o ranqueamento porque ele é o

mesmo para todos os documentos. O fator jdr

fornece uma normalização no espaço dos

documentos.

Como wi,j ≥ 0 e wi,q ≥ 0, sim(q, dj) varia de 0 até 1. Dessa forma, ao invés de

tentar prever se um documento é relevante ou não, o modelo vetorial ranqueia os

documentos de acordo com seus graus de similaridade em relação à consulta. Além

disso, podemos estabelecer um valor mínimo para sim(dj, q) e retornar apenas os

documentos com grau de similaridade acima desse valor.

As principais vantagens do modelo vetorial são:

1) A sua forma de determinar pesos aos termos melhora o desempenho da

recuperação de documentos;

2) Sua estratégia de adequação parcial permite uma recuperação de documentos

que se aproximam das condições da consulta;

3) A fórmula de ranqueamento do cosseno ordena os documentos de acordo

com seus respectivos graus de similaridade em relação à consulta.

9

Teoricamente, o modelo vetorial tem a desvantagem de assumir que os termos

de indexação são mutuamente independentes. Porém, na prática, considerar uma

dependência entre esses termos pode ser uma desvantagem. Por conta da localidade de

muitas dessas dependências, sua aplicação indiscriminada a todos os documentos de

uma coleção pode prejudicar o desempenho como um todo.

Apesar de sua simplicidade, o modelo vetorial é uma estratégia de ranqueamento

bastante abrangente. Diversos métodos de ranqueamento foram comparados com ele,

porém existe um consenso de que, em geral, o modelo vetorial é superior ou quase tão

bom quanto as alternativas conhecidas. Além disso, ele é simples e rápido. Por essas

razões, ele é um modelo muito popular (BAEZA-YATES & RIBEIRO-NETO, 1999).

2.2.3 Modelo Probabilístico

O modelo probabilístico lida com o problema da RI dentro de uma abordagem

probabilística. A principal idéia por trás desse modelo é a de que, dada a consulta de um

usuário, existe um conjunto que contém apenas documentos relevantes. Vamos nos

referir a esse conjunto como o conjunto de respostas ideal. A partir da descrição desse

conjunto ideal, não teríamos problemas para retornar esses documentos. Dessa forma,

podemos pensar no processo de consulta como um processo para especificar as

propriedades de um conjunto de respostas ideal. Essa é uma forma análoga de se

interpretar o problema da RI como um problema de clusterização (HAN et al., 2006).

Porém, não sabemos exatamente quais são essas propriedades. Tudo o que sabemos é

que existem termos de indexação cujas semânticas deveriam ser usadas para caracterizar

essas propriedades. Como elas não são conhecidas no momento da consulta, um esforço

inicial deve ser feito para adivinhá-las. Essa tentativa inicial permite gerar uma

descrição probabilística preliminar do conjunto de respostas ideal que é usada para

retornar o primeiro conjunto de documentos. Então, uma interação com o usuário é

iniciada com o propósito de melhorar essa descrição probabilística. A interação pode ser

realizada da seguinte forma: o usuário verifica os documentos retornados e decide quais

são relevantes ou não. Na realidade, apenas os primeiros documentos precisam ser

examinados. Em seguida, o sistema usa essa informação para refinar a descrição do

conjunto de respostas ideal. Repetindo esse processo algumas vezes, espera-se que a

descrição se aproxime cada vez mais da realidade. Por conta disso, deve-se sempre ter

em mente a necessidade de se adivinhar inicialmente a descrição do conjunto de

10

respostas ideal. Além disso, um esforço consciente deve ser feito para modelar essa

descrição em termos probabilísticos.

O modelo probabilístico é baseado no Princípio Probabilístico. Esse princípio

diz que dada a consulta de um usuário q, e um documento dj da coleção, o modelo

probabilístico tenta estimar a probabilidade do usuário achar o documento dj relevante.

O modelo assume que essa probabilidade de relevância depende apenas das

representações da consulta e do documento. Além disso, o modelo assume que existe

um subconjunto de todos os documentos que o usuário prefere como o conjunto de

respostas para a consulta q. Esse conjunto de respostas ideal (R) deveria maximizar a

probabilidade de relevância geral para o usuário. Documentos dentro do conjunto R são

considerados relevantes para a consulta. Documentos fora desse conjunto são

considerados não relevantes (BAEZA-YATES & RIBEIRO-NETO, 1999).

Teoricamente, a principal vantagem do modelo probabilístico é que os

documentos são ranqueados em ordem decrescente de suas probabilidades de relevância

(BAEZA-YATES & RIBEIRO-NETO, 1999). Entre as desvantagens temos:

1) A necessidade de adivinhar inicialmente uma separação entre os conjuntos

de documentos relevantes e não relevantes;

2) O fato do método não considerar a freqüência com que um termo de

indexação aparece dentro de um documento, ou seja, todos os pesos são binários;

3) A adoção da independência entre os termos de indexação. Porém, como foi

discutido para o modelo vetorial, não está claro se a independência entre os termos de

indexação é uma consideração ruim em situações reais.

2.3 Relacionamento entre Documentos Web

Os algoritmos de busca clássicos (a exemplo dos modelos booleano, vetorial e

probabilístico) classificam documentos a partir de uma análise apenas dos termos que o

compõem, não levando em consideração a análise de hipertextos dos documentos web

(links, tamanho da fonte, estrutura, etc), e nem do contexto no qual os documentos estão

inseridos. Por essa razão, os algoritmos de busca clássicos mostraram-se insuficientes

no processo de busca por páginas web. A análise de links caracteriza uma tentativa de

inferir o grau de relevância de uma página a partir da análise da estrutura de links da

web. Para o caso das páginas web, utilizar a estrutura de links já existente mostrou-se

11

uma alternativa bastante eficiente, porém quando tentamos aplicar o mesmo conceito às

notícias web, esbarramos em um sério problema. Essas notícias geralmente não estão

conectadas por links, ou seja, a estrutura de links que relaciona as páginas web não

existe para as notícias. Esse é justamente um dos principais pontos abordados pelo

WhySearch, que atua criando essas relações e permite que elas sejam consultadas e até

mesmo atualizadas com o uso da sabedoria das multidões. Dessa forma, os algoritmos

de análise de links foram uma grande fonte de inspiração para o desenvolvimento desta

pesquisa.

Existem vários algoritmos na literatura que propõem a análise da estrutura de

links de uma coleção de documentos web, com o objetivo de extrair dessa estrutura a

opinião coletiva dos seus usuários. A abordagem simplista da análise da estrutura de

links envolve contabilizar o número de páginas que apontam para ela. Quanto maior

esse número, maior a importância da página. Um problema surge a partir da análise da

abordagem simplista: é mais importante ser apontado por sites anônimos ou ser

apontado por um site conhecido na web? Para solucionar esse problema, novos

algoritmos foram propostos, tais como o HITS (Hyperlink Induced Topic Search)

(KLEINBERG, 1999), que considera o conceito de concentradores (hubs) e autoridades

(authorities), e o PageRank (PAGE et al., 1999). A técnica normalmente empregada

nos sistemas de busca na web, por exemplo, é o emprego de palavras-chave digitadas

pelo usuário para realizar buscas em bases de dados indexadas. São exemplos desse tipo

de técnica, as máquinas de busca Google2 e Yahoo3. Outros exemplos são as bibliotecas

digitais científicas, tais como a ISI Web of Knowledge4, LANL5 e a NZDL6.

Como uma forma de melhorar ainda mais os resultados desses mecanismos de

busca, surgiram propostas envolvendo o uso de ontologias para o enriquecimento de

buscas baseadas em palavras-chave (PINHEIRO, 2004, PINHEIRO & MOURA, 2004).

Esses trabalhos destacam a importância da inclusão de regras de acordo com o perfil dos

usuários e análise dos relacionamentos envolvendo os conceitos associados aos termos

buscados, permitindo a expansão dos termos das buscas e uma melhor contextualização

das pesquisas realizadas.

2 www.google.com 3 www.yahoo.com 4 www.isiwebofknowledge.com 5 arxiv.org 6 nzdl.sadl.uleth.ca/cgi-bin/library

12

É interessante pensar nessas aplicações como seletores de informação relevante,

ou seja, elas privilegiam a informação mais importante, segundo algum critério

escolhido, em detrimento da informação considerada menos importante.

2.3.1 PageRank

O PageRank determina a relevância de uma página a partir da soma das

relevâncias das páginas que apontam para ela. A Figura 1 ilustra intuitivamente esse

algoritmo.

Figura 1 Cálculo simplificado do PageRank

O PageRank é definido pela seguinte fórmula (BRIN & PAGE, 1998):

PR(A) = (1-d) + d (PR(T1)/C(T1) + ... + PR(Tn)/C(Tn))

Onde d corresponde a um fator de decaimento com valor entre 0 e 1. Geralmente

utiliza-se o valor de 0,85, ou seja, se uma página não for apontada por nenhum outra,

seu PageRank mínimo será 0,15; Ti representa as páginas que apontam para A (1< i <n)

e Ci corresponde à quantidade de links existentes em Ti.

De acordo com a Figura 1 podemos dizer que o PageRank de “A” é 100 e o de

“B” 9. Como “A” está ligada a duas outras páginas (“C” e “D”), seu PageRank foi

dividido por dois (50 para cada link). Já “B” está ligada a três outras páginas (uma delas

é “C”) e seu PageRank foi dividido por três (3 para cada link). Como resultado, temos

“C” com PageRank 53 e “D” com apenas 50 recebido unicamente de “A”.

O PageRank corresponde a uma distribuição probabilística sobre as páginas web,

direcionada pelo fator d. A soma normalizada dos PageRanks de todas as páginas web é

13

constante e igual a 1. O valor PR(A) é calculado através de um algoritmo iterativo que

converge para um valor final. Os valores dos outros PR, a princípio, não conhecidos,

devem ser dados aleatoriamente, como por exemplo “0”, de tal forma que a soma

normalizada dos PageRanks de todas as páginas convirja para 1 (PAGE et al., 1999).

2.4 Agregação de Conteúdo

A agregação de conteúdo (content syndication) pode ser definida como uma

forma de localização controlada de um mesmo conteúdo em múltiplos destinos na

internet. Geralmente, ela se refere à disponibilização de feeds web de uma determinada

página com o objetivo de fornecer a outras pessoas um resumo ou atualização do

conteúdo desses sites (por exemplo, as últimas notícias de um jornal web)

(HAMMERSLEY, 2003).

O RSS (Really Simple Syndication) representa um conjunto de formatos de feeds

web usados para publicar conteúdos que são atualizados freqüentemente. Esses

documentos podem conter tanto um resumo como o conteúdo completo. Diferentemente

das páginas HTML, que apresentam seu conteúdo em qualquer navegador web, o

conteúdo dos feeds RSS são apresentados apenas através de programas específicos

chamados agregadores. Entre os mais populares podemos destacar o Google Reader7,

porém existem muitos outros.

Para os criadores de conteúdo, o RSS é um excelente gerador de tráfego, pois ele

cria um relacionamento direto com seus assinantes. Além de navegar até uma página, o

usuário requisitou ter seu conteúdo entregue em seu agregador. Se ele recebe uma

informação atualizada, ele pode clicar no link e ser direcionado ao site de origem do

conteúdo. Uma consideração importante para o proprietário do conteúdo é que o resumo

da informação precisa ser completo o suficiente para que o usuário sinta-se estimulado a

clicar no link, caso contrário, o feed pode ser ignorado. Existem serviços que

disponibilizam propagandas tanto no conteúdo original como no agregador do usuário,

junto ao feed, aumentando as chances do usuário consumir o conteúdo

(HAMMERSLEY, 2003).

As vantagens para quem publica o conteúdo são as mesmas do seu proprietário.

Os feeds criam um tráfego de alto valor, que pode levar ao aumento de receitas obtidas

através de propagandas. Além disso, essas receitas podem ser geradas a partir de

7 www.google.com.br/reader

14

propagandas exibidas nos próprios feeds. Outra parte envolvida são os criadores de

agregadores, que concentram num único local todos os feeds assinados pelos usuários.

Com isso, os criadores de agregadores conseguem aumentar a duração de suas seções e

vender suas próprias propagandas.

Os feeds RSS são uma poderosa forma de se agregar um público alvo, tendo em

vista a sua própria natureza de seleção. Por exemplo, uma concessionária pode colocar

propagandas em feeds de notícias sobre automóveis, sabendo que os usuários que

selecionarem esses feeds estão interessados em carros.

De todas as partes envolvidas, são os usuários que mais levam vantagens, pois os

feeds RSS oferecem uma grande conveniência. Os agregadores de feeds permitem que

os usuários organizem os conteúdos de acordo com seus interesses, geralmente de forma

sumarizada, facilitando a leitura.

Os feeds são escritos em XML e atualmente existem três principais

especificações para a criação desses arquivos: RSS 1.0 (RDF Site Summary 1.0), RSS

2.0 (Really Simple Syndication 2.0) e Atom. O RSS 2.0 é o formato mais utilizado

atualmente (WINER, 2003).

Pode-se dizer que os feeds RSS são uma das bases do mecanismo proposto. É

através deles que o WhySearch consegue popular o seu repositório de notícias,

explorando o fato deles serem atualizados constantemente.

2.5 Ferramentas de Busca Full-Text

As buscas full-text são importantes porque representam naturalmente a forma

como os seres humanos buscam informações. Além disso, vivemos em um cenário onde

a quantidade de dados armazenados cresce rapidamente.

Uma das funcionalidades do WhySearch é permitir a realização de buscas

textuais em seu repositório de notícias. Para isso, foi realizada uma pesquisa com o

objetivo de identificar ferramentas que pudessem ser utilizadas para esse propósito.

Como resultado, chegamos ao SGBD MySQL e a biblioteca Lucene.

A primeira versão do WhySearch utilizava uma funcionalidade do próprio banco

de dados, chamada MySQL Full-Text Search. Com ela, conseguíamos realizar consultas

full-text em tabelas de um tipo específico (MyISAM) através de uma simples sintaxe

(MATCH() ...AGAINST) (MYSQL, 2009). Apesar de sua praticidade, essa

funcionalidade não garantia o desempenho esperado.

15

Para contornar esse problema, modificamos o WhySearch para que passasse a

utilizar o Lucene que é uma popular biblioteca de busca full-text escrita em Java. Apesar

de seu uso demandar um pouco mais de esforço, tendo em vista que tivemos que

realizar alterações significativas no código da aplicação, os resultados obtidos foram

extremamente satisfatórios.

O Lucene é uma biblioteca Java voltada especificamente para buscas textuais.

Ele pode ser definido como um mecanismo de busca textual de alto desempenho,

adaptável para praticamente qualquer tipo de aplicação que requeira buscas full-text.

Um exemplo disso é o fato de podermos aplicar diversos algoritmos de processamento

de texto (eliminação de stopwords e stemming). Em relação ao WhySearch, estamos

utilizando o algoritmo de stemming de Porter (PORTER, 1997). Entre as principais

características do Lucene temos a busca ranqueada, diferentes tipos de consultas, busca

por campo, operadores booleanos, ordenação por qualquer campo, busca em múltiplos

índices com resultado unificado e buscas e atualizações simultâneas.

Os conceitos fundamentais do Lucene são: índice, documento, campo e termo.

Um índice contém uma seqüência de documentos. Um documento é uma seqüência de

campos. Um campo é uma seqüência nomeada de termos. Um termo é uma string de

texto. Uma mesma string em dois diferentes campos é considerada um termo distinto.

Dessa forma, termos são representados como pares de strings. A primeira corresponde

ao nome do campo e a segunda ao texto desse campo.

O índice armazena estatísticas sobre os termos para que as consultas sejam mais

eficientes. O índice construído pelo Lucene se encaixa na família dos índices invertidos.

Isso porque ele pode listar, para um termo, os documentos que o contém, ou seja, é o

inverso dos relacionamentos naturais, onde os documentos listam termos (APACHE,

2010).

Outro fator de extrema importância que também contribuiu para a utlização do

Lucene ao invés do MySQL no WhySearch foi a pesquisa realizada por ZAITSEV &

TKACHENKO (2006), que com o objetivo de avaliar a performance das buscas full-text

do MySQL e do Lucene, realizou algumas comparações. Para isso, foi utilizada uma

parte do banco de dados em inglês do Wikipédia (3.400.617 artigos que correspondem a

aproximadamente 5GB em tamanho) em um computador com um processador AMD

Sempron com 1GB de RAM e barramento SATA RAID. Para avaliar as ferramentas,

16

foram executadas 10.000 consultas randomicamente e foi medido o tempo médio de

uma consulta (ZAITSEV & TKACHENKO, 2006).

A Figura 2 ilustra o desempenho de uma busca por uma frase.

Figura 2 Desempenho de uma busca por uma frase

A Figura 2 mostra claramente que o desempenho do Lucene é muito melhor. A

Figura 3 apresenta o desempenho das ferramentas quando são utilizadas por 10 usuários

concorrentemente.

Figura 3 Desempenho de uma busca multiusuário

Mais uma vez, o Lucene apresentou um melhor resultado.

17

2.6 Medidas de Similaridade

A similaridade é uma quantidade que reflete a grandeza de um relacionamento

entre dois objetos ou características. Essa quantidade é normalmente definida por um

intervalo (por exemplo, valores entre -1 e +1 ou 0 e 1). Se a similaridade entre as

características i e j for descrita por Sij , poderemos obtê-la de diversas formas de acordo

com a medida utilizada. Entre as estratégias de similaridade podemos destacar o TF-

IDF, Jaccard, Dice, etc (KOUDAS et al., 2006).

O TF-IDF está diretamente relacionado ao modelo vetorial apresentado na Seção

2.2.2. Ele é quantificado simplesmente pela freqüência de um termo ki no documento dj.

A freqüência dos termos é conhecida como fator TF (Term Frequence) e fornece uma

medida de como um termo descreve o conteúdo de um documento. Além disso, a

dissimilaridade é quantificada pelo inverso da freqüência do termo ki entre os

documentos da coleção. Esse fator é conhecido como IDF (Inverse Document

Frequency). A motivação para a utilização do fator IDF é o fato dos termos que

aparecem em muitos documentos não serem muito úteis para distinguir um documento

relevante de um documento não relevante. Os métodos de RI mais eficazes tentam

balancear esses dois efeitos (BAEZA-YATES & RIBEIRO-NETO, 1999).

Consideremos N como o número total de documentos no sistema e ni como o

número de documentos nos quais o termo de indexação ki aparece. Façamos freqi,j a

freqüência do termo ki no documento dj, ou seja, o número de vezes que o termo ki é

mencionado no texto do documento dj. Então a freqüência normalizada fi,j do termo ki

no documento dj é dada por

fi,j = jfreqll

jfreqi

,max

,

Onde o máximo é computado sobre todos os termos que são mencionados no texto do

documento dj. Se o termo ki não aparecer no documento dj então fi,j = 0. Além disso,

façamos idfi a freqüência inversa do documento para ki. Ela é dada por

idfi = log ni

N

Uma das formas mais conhecidas de definir pesos aos termos é dada por

wi,j = fi,j × log ni

N

ou por variações dessa fórmula. Esse tipo de estratégia é conhecido como TF-IDF.

18

Para determinar o peso dos termos da consulta temos

wi,q = ×

+

qfreqll

qfreqi5050

,max

,,, log

ni

N

Onde freqi,q é a freqüência do termo ki no texto da consulta q (SALTON &

BUCKLEY, 1987). No desenvolvimento do WhySearch, o TF-IDF foi aplicado através

dos métodos de busca do Lucene que foi descrito na Seção 2.5.

Outra medida de grande importância para esta pesquisa é o coeficiente de

Jaccard. Esse coeficiente permite calcular a similaridade entre dois textos. Para isso,

dois conjuntos de termos devem ser extraídos dos dois textos a serem comparados. O

coeficiente de Jaccard corresponde à divisão entre o número de termos comuns aos dois

textos pelo total de termos dos textos. Neste trabalho, os termos repetidos não são

considerados. Formalmente, sendo A e B dois conjuntos de termos e |conjunto| o

número de termos de “conjunto”, tem-se:

J(A,B) = (|A ∩ B|) / (|A U B|)

O coeficiente de Jaccard fornece valores entre 0 e 1, onde valores mais próximos

de 1 representam textos mais similares (MANNING et al., 2008).

Neste trabalho, o coeficiente de Jaccard foi utilizado durante o processamento

realizado para relacionar todas as notícias do repositório, com o objetivo de atribuir

pesos a esses relacionamentos. Esse coeficiente foi escolhido, porque ele permite uma

avaliação isolada da similaridade entre duas notícias, diferentemente do TF-IDF que

leva em consideração todas as notícias do repositório. Para esse problema específico,

essa característica coloca o TF-IDF em desvantagem, tendo em vista que a adição de

novas notícias ao repositório faria com que os pesos das correlações já criadas ficassem

defasados.

2.7 Sabedoria das Multidões

A sabedoria das multidões é uma teoria sobre a agregação da informação em

grupos, resultando em decisões que são freqüentemente melhores do que decisões

tomadas por um único membro do grupo. Essa teoria é justificada através de inúmeros

casos de estudo. Entre eles, podemos destacar a surpresa de Francis Galton ao descobrir

que a média dos palpites de um povoado sobre o peso de um boi era muito mais

19

próxima do peso real do que as estimativas de membros do grupo isoladamente,

superando inclusive palpites de especialistas.

A tese central desse estudo, é que uma coleção de decisões de indivíduos

geralmente consegue ser melhor que decisões de indivíduos isolados ou até mesmo

especialistas (SUROWIECKI, 2005).

As vantagens de decisões descentralizadas foram classificadas em três tipos

principais:

• Conhecimento: o julgamento do Mercado (equilíbrio entre a lei da oferta e

da procura) que SUROWIECKI (2005) sustenta ser muito mais rápido e hábil e menos

sujeito a forças políticas do que as decisões de especialistas ou de comissões de

especialistas;

• Coordenação: a coordenação de comportamentos inclui, por exemplo, a

coordenação de movimento entre os freqüentadores de um restaurante popular que se

movem através de filas, sem que haja, entre eles, colisões. Nesse caso o senso comum

consegue julgar reações específicas de outros membros;

• Cooperação: como grupos de pessoas formam redes de relacionamentos

sem um sistema central controlando seu comportamento ou diretamente reforçando suas

obrigações.

Nem todas as massas (grupos) são sábias. Um exemplo claro são multidões ou

investidores alucinados numa bolha do mercado de ações. Existem quatro critérios-

chave que separam massas sábias das irracionais:

• Diversidade de opiniões: cada pessoa deve ter informações privadas mesmo

se forem apenas uma interpretação excêntrica dos fatos conhecidos;

• Independência: a opinião das pessoas não é determinada pelas opiniões

daqueles ao seu redor;

• Descentralização: as pessoas estão capacitadas a se especializar e extrair

conhecimento do local;

• Agregação: a existência de algum mecanismo para tornar julgamentos

individuais em uma decisão coletiva.

Existem situações em que as massas produzem um julgamento muito ruim.

Nesse tipo de situação sua cognição ou cooperação falham porque (em um sentido ou

20

outro) os membros da massa estão muito conscientes das opiniões dos outros e

começam a imitar um ao outro e a se conformarem ao invés de pensar individualmente.

A razão principal para que grupos de pessoas se conformem intelectualmente é que o

sistema de tomada de decisões tem um defeito sistemático.

Quando o ambiente de tomada de decisões não está preparado para aceitar uma

massa, os benefícios vindos de um julgamento individual e de informações pessoais são

perdidos. Nesses casos, o melhor que a massa conseguirá fazer é o melhor que o seu

membro mais inteligente puder. Histórias detalhadas desse tipo de falhas incluem:

• Muita centralização: o desastre com o ônibus espacial Columbia,

ocasionado por conta de uma burocracia de gerenciamento hierárquico da NASA que

estava totalmente fechada para as opiniões de engenheiros de hierarquia inferior;

• Muita divisão: a Inteligência americana falhou em prevenir os Ataques de

11 de Setembro de 2001 parcialmente porque informações obtidas por uma subdivisão

não estavam acessíveis a outras. Essas massas (dos analistas da inteligência, no caso)

trabalham melhor quando eles escolhem por eles mesmos em que trabalhar e de que

informações eles precisam. O isolamento do vírus do SARS é um exemplo de livre troca

de informações liberada para laboratórios em todo mundo para coordenar a pesquisa

sem um ponto central de controle;

• Muita imitação: quando as escolhas são visíveis e feitas em sequência, uma

“cascata de informação” pode acontecer de modo que apenas os poucos primeiros

tomadores de decisão lucram algo observando as opções de decisão disponíveis.

Quando isso acontece é muito mais eficiente para todo o resto simplesmente copiar

aqueles ao seu redor.

Uma característica particular do WhySearch é a sua capacidade de refinar os

relacionamentos entre as notícias a medida que é utilizado. Isso é possível através da

aplicação da sabedoria das multidões. Outro ponto favorável, é o fato das multidões que

utilizam o WhySearch estarem inseridas nos quatro critérios-chave que separam massas

sábias das irracionais (diversidade de opiniões, independência, descentralização e

agregação), pois a própria forma como o mecanismo foi desenvolvido garante essas

características.

21

CAPÍTULO 3 TRABALHOS RELACIONADOS

Este capítulo descreve alguns trabalhos diretamente relacionados a esta pesquisa.

Entre eles temos a detecção e rastreamento de tópicos (TDT - Topic Detection and

Tracking), uma área de pesquisa que investiga a organização das notícias publicadas

pelos meios de comunicação, que serviu como fonte de inspiração para o

desenvolvimento do mecanismo proposto; o Google Living Stories8, uma ferramenta

experimental voltada para notícias; e, por fim, o Google News, uma ferramenta de

visualização e de busca de notícias na internet, que foi comparada durante os

experimentos com o WhySearch.

3.1 Detecção e Rastreamento de Tópicos

A detecção e rastreamento de tópicos (TDT - Topic Detection and Tracking) é

uma área de pesquisa que investiga a organização das notícias publicadas pelos meios

de comunicação com base nos eventos que as geraram. Inicialmente, a pesquisa sobre o

TDT foi desenvolvida a partir de um fluxo de texto obtido das redes de notícias e de

sistemas que monitoravam programas de TV e de rádio convertendo tudo o que era

anunciado para texto. De forma geral, o objetivo do TDT é dividir um texto contínuo

em histórias individuais para monitorá-las como eventos que não foram detectados e

para classificá-las em grupos que tratam de tópicos específicos (ALLAN, 2002). Apesar

desta pesquisa não estar direcionada especificamente para esse problema, o TDT foi

uma grande fonte de inspiração e muitas de suas técnicas foram utilizadas.

A principal motivação para o desenvolvimento do TDT era fornecer uma

tecnologia para um sistema que iria monitorar as notícias divulgadas pelos meios de

comunicação e alertar um analista, por exemplo, sobre um novo evento de interesse que

pudesse estar acontecendo no mundo. Analistas geralmente estão muito interessados em

saber o que está acontecendo, porém não existem métodos efetivos para copiar e tratar o

gigantesco volume de informações que é disponibilizado diariamente. Em particular,

não existem sistemas que fazem isso através de um monitoramento de notícias, para

reportar eventos ao invés de notícias sobre um assunto particular e amplo.

8 http://livingstories.googlelabs.com

22

Esse problema evidencia um dos pontos que tornam essa metodologia um

assunto interessante. Apesar de o TDT ser similar a filtragem e a recuperação da

informação, ele é mais direcionado. Como resultado, admite a possibilidade de aplicar

análises automáticas de conteúdo mais profundas.

O TDT está dividido em cinco tarefas. Cada uma delas é visualizada como um

componente que possui uma solução que ajudará a resolver o problema de organização

das notícias com base em eventos (ALLAN, 2002). As tarefas são:

• Segmentação de uma história: é o problema de dividir a transcrição de um

noticiário em histórias individuais;

• Detecção da primeira história: consiste em reconhecer o início de um novo

tópico dentro de um conjunto de notícias;

• Detecção de clusters: é o problema de agrupar todas as histórias na medida

em que elas são obtidas, com base nos tópicos que elas abordam;

• Rastreamento: consiste em monitorar o fluxo de notícias com a finalidade

de encontrar histórias adicionais sobre um tópico que foi identificado através de

algumas histórias de exemplo;

• Detecção das ligações de uma história: é o problema de decidir se duas

histórias selecionadas randomicamente tratam do mesmo tópico.

As seções seguintes apresentam alguns trabalhos relacionados que utilizam o

TDT.

3.1.1 Múltiplos Métodos para Aplicação do TDT

O trabalho realizado por YANG et al. (2002) envolveu as cinco tarefas do TDT:

segmentação de uma história, detecção da primeira história, detecção de clusters,

rastreamento e detecção das ligações de uma história. Essas tarefas foram tratadas como

problemas de classificação supervisionados e não supervisionados. Além disso, foram

aplicados diversos algoritmos estatísticos de aprendizado para comparar os resultados

de cada problema.

Para a segmentação de uma história foram usados modelos de linguagem

exponencial e árvores de decisão; para a detecção da primeira história e a detecção das

ligações de uma história foram utilizadas medidas baseadas na similaridade do cosseno;

para a detecção de clusters foi utilizada uma combinação da clusterização incremental

23

com a clusterização hierárquica aglomerativa; por fim, para o rastreamento foi utilizado

principalmente o método de classificação dos k vizinhos mais próximos juntamente com

modelos de linguagem, árvores de decisão e uma variação da abordagem de Rocchio

(cálculo da similaridade através do cosseno entre dois vetores que representam a

consulta e a história).

Também foram estudados os efeitos da combinação de métodos alternativos para

gerar decisões de classificação conjuntas. Dessa forma, chegou-se a conclusão que o uso

combinado de múltiplos métodos geralmente melhora a classificação dos tópicos

quando comparado ao uso de um único método (YANG et al., 2002). Esse resultado vai

ao encontro da estratégia adotada pelo WhySearch, que combina fatores como causa e

tempo para melhorar seus resultados.

3.1.2 Uma Abordagem Baseada em Clusters para Disseminar Notícias

Os tradicionais sistemas de recuperação da informação foram construídos com

base na premissa de que a informação indexada seja significativamente homogênea no

que diz respeito a sua forma e localização. Esse não é o caso do trabalho realizado por

EICHMANN & SRINIVASAN (2002), que desenvolveram uma arquitetura integrada

de componentes extensíveis que conseguem processar informações disponibilizadas em

diversos formatos, incluindo o rádio, a TV (através do reconhecimento de voz e da

funcionalidade closed caption) e a web. Isso permitiu a realização de análises que

envolveram uma rica mistura de linguagens, mídias e formatos em uma aplicação

(EICHMANN & SRINIVASAN, 2002).

Essa pesquisa teve como foco principal as seguintes tarefas do TDT:

• Segmentação: consistiu em determinar as fronteiras entre as notícias

disponibilizadas pelos meios de comunicação monitorados. Dessa forma, o foco das

tarefas seguintes seria atuar sobre as histórias como unidades de análise.

O algoritmo de segmentação utilizado nesse trabalho funciona da seguinte

forma: o texto obtido através de um meio de comunicação é lido por um intervalo de

tempo específico. Inicialmente cada sentença (para o reconhecimento de voz

automático, uma sentença se refere a um grupo de palavras entre pausas) é considerada

um cluster. Uma medida de similaridade é calculada para todos os pares de clusters

vizinhos. Se os pares de vizinhos atingirem uma similaridade mínima pré-estabelecida,

os dois clusters são combinados para formar um novo cluster que, em seguida, é

24

comparado com seus vizinhos. O processo é repetido até que não existam mais clusters

com similaridade mínima, ou até que todas as sentenças obtidas inicialmente sejam

combinadas em um único cluster (EICHMANN & SRINIVASAN, 2002).

• Detecção de clusters: a detecção foi realizada através da identificação de

novas histórias que discutissem o mesmo tópico dentro de um conjunto mais amplo.

Isso pode ser visto naturalmente como um problema de clusterização incremental onde

não se pode esperar que todas as notícias cheguem para iniciar o processo de

identificação dos clusters. Geralmente, os sistemas são configurados para aguardar um

intervalo de tempo específico entre as execuções do algoritmo de clusterização. A

detecção de clusters é naturalmente uma atividade não supervisionada. Por conta disso,

ela não requer nenhum tipo de ação do usuário durante sua operação.

Para avaliar a similaridade entre um documento e um cluster ou a similaridade

entre clusters, foi utilizado o modelo vetorial com a aplicação do cosseno (EICHMANN

& SRINIVASAN, 2002).

• Rastreamento: diferentemente da detecção de clusters, o rastreamento

assume que o usuário já identificou um tópico com base em outras histórias. Dessa

forma, qualquer história subseqüente deveria ser retornada para o usuário.

O sistema de rastreamento começa com a geração de dois conjuntos de clusters a

partir de dados treinados: um conjunto das histórias relacionadas ao tópico treinado e

outro das histórias não relacionadas a esse tópico. Além disso, um limitante para a

similaridade foi utilizado para controlar a formação e extensão desses clusters

(EICHMANN & SRINIVASAN, 2002).

3.1.3 Aplicações do TDT

A pesquisa realizada por ALLAN et al. (2002) descreve um sistema que aplicou

quatro das cinco tarefas do TDT: rastreamento, detecção de clusters, detecção da

primeira história e detecção das ligações de uma história. Esse sistema utiliza como base

o modelo vetorial para descrever as histórias, ou seja, cada história é representada como

um vetor no espaço dos termos, onde as coordenadas correspondem à freqüência de um

termo particular em uma história (ALLAN et al., 2002).

A seguir são descritas as quatro tarefas do TDT tendo como foco o sistema

proposto:

25

• Rastreamento: o rastreamento consistiu basicamente em determinar quais

parâmetros seriam aplicados. Após a realização de alguns experimentos optou-se por

utilizar o centróide para representar os tópicos e o cosseno para comparar as histórias

em relação aos tópicos.

Na abordagem do centróide, os documentos são agrupados em clusters à medida

que eles são obtidos. Os clusters representam os tópicos que foram processados

anteriormente (passado). Cada cluster é representado por um centróide que corresponde

à média dos vetores que representam as histórias do cluster.

O cosseno é uma medida clássica de similaridade utilizada na Recuperação da

Informação. Ela está diretamente relacionada à representação das histórias como

vetores, e pode ser calculada simplesmente através do cosseno do ângulo entre esses

vetores (ALLAN et al., 2002).

• Detecção de clusters: essa tarefa foi realizada com a aplicação dos k

vizinhos mais próximos onde k = 1, ou seja, uma história recém obtida é comparada

com todas as outras processadas anteriormente com o objetivo de se chegar à história

mais similar. Se o valor dessa similaridade for maior do que um limitante pré-

determinado, considera-se que a história pertence ao tópico, caso contrário ela é

considerada um novo tópico. A exemplo do rastreamento, as comparações também

foram realizadas através do cosseno (ALLAN et al., 2002).

• Detecção da primeira história: para essa tarefa especificamente, foram

aplicadas as mesmas técnicas descritas na detecção de clusters.

• Detecção das ligações de uma história: a detecção das ligações de uma

história pode ser vista como uma tarefa fundamental do TDT. Ela isola e avalia

diretamente um componente que está implicitamente presente em todas as outras

tarefas: comparar dois textos para determinar se eles discutem o mesmo tópico.

Com o objetivo de melhorar os resultados do sistema proposto, foi aplicada a

técnica de expansão da consulta (query expansion), muito utilizada na Recuperação da

Informação. Essa técnica consiste em adicionar termos a consulta visando uma maior

acertividade da busca. No contexto dessa pesquisa, cada história foi tratada como uma

consulta que seria expandida (ALLAN et al., 2002).

26

3.2 Google Living Stories

O Living Stories é uma ferramenta experimental desenvolvida pelo Google, que

pode ser caracterizada como um novo formato para apresentação e consumo de notícias

online. Basicamente, ela consiste em combinar todas as notícias de uma história em uma

única página. Ao invés de escrever um novo artigo sobre uma história que necessita de

um novo URL e contem alguns novos desenvolvimentos e um breve retrospecto, uma

história viva reside em um URL permanente, que é atualizado regularmente com novas

notícias. Isso facilita a busca por atualizações nas histórias de interesse dos leitores,

assim como uma revisão mais profunda sobre as matérias relevantes para o contexto da

história (GOOGLE, 2010).

A Figura 4 ilustra a tela principal do Living Stories.

Figura 4 Tela principal do Living Stories

A Figura 5 mostra a seleção de uma história.

27

Figura 5 Seleção de uma história

Inicialmente, os resultados do Living Stories seriam comparados com os

resultados do WhySearch, tendo em vista que as duas ferramentas têm o mesmo

objetivo, ou seja, apresentar uma seqüência de notícias de forma a facilitar o

entendimento de uma historia como um todo. Porém, após instalar todos os pacotes do

Living Stories localmente, foi verificado que o relacionamento entre as notícias nessa

ferramenta deve ser feito manualmente pelo usuário, ou seja, a principal característica

que seria avaliada entre as ferramentas não existe no Living Stories.

A Figura 6 mostra a aba Manage Living Stories do Living Stories Content

Manager. Essa é a parte do Living Stories onde os usuários cadastram os títulos das

histórias.

28

Figura 6 Aba Manage Living Stories do Living Stories Content Manager

A Figura 7 apresenta a aba Manage Content do Living Stories Content Manager.

Ela permite que os usuários cadastrem notícias para as histórias que foram registradas

na aba Manage Living Stories da Figura 6.

Figura 7 Aba Manage Content do Living Stories Content Manager

Considerando a Figura 7, podemos notar que três notícias foram cadastradas

para a história “Greek Economic Crisis”.

29

É importante ressaltar que, apesar do Google Living Stories não relacionar as

notícias automaticamente, ele fornece uma interface bastante intuitiva que pode ser

utilizada em conjunto com os métodos de relacionamento e busca implementados no

WhySearch, com a realização de pequenos ajustes.

3.3 Google News

O Google News é um serviço do Google que permite a visualização e a busca de

notícias na internet. O grande diferencial do Google News é que as notícias apresentadas

em sua página não são escolhidas e organizadas por editores humanos, mas sim através

de um algoritmo, que leva em conta, dentre outros fatores, o número de vezes em que

determinada notícia aparece e em quais sites ela aparece. As notícias são atualizadas

periodicamente (DAS et al., 2007).

Essa ferramenta agrega artigos de mais de 4.500 fontes ao redor do mundo. As

notícias são colhidas, organizadas por assunto e exibidas de acordo com o interesse de

cada leitor. Outra característica que merece destaque é o fato do Google News estar

disponível em diversos países e idiomas (GOOGLE, 2011).

Nesta pesquisa, os resultados do Google News foram comparados com os do

WhySearch durante os experimentos realizados. O Google News foi escolhido

justamente por ser a ferramenta que mais se aproxima da proposta do WhySearch. Além

disso, já está consolidado e é amplamente utilizado em diversas partes do mundo.

Uma das opções de busca do Google News é a ordenação por relevância ou por

data. Para a realização dos experimentos, foi utilizada apenas a ordenação por

relevância, isso porque esse tipo de ordenação está mais voltado para a proposta desta

pesquisa, porém vale a pena ressaltar que os algoritmos do WhySearch consideram, em

conjunto, a relevância e a data de publicação das notícias.

30

CAPÍTULO 4 O MECANISMO DE ENCADEAMENTO DE

NOTÍCIAS WHYSEARCH

4.1 Visão Geral

O WhySearch é um mecanismo temporal e causal de encadeamento de notícias,

baseado em um repositório de notícias web.

Após a realização de uma busca, ao selecionarmos uma notícia, o sistema

permite obter a notícia correlacionada mais próxima e assim sucessivamente através do

botão “Why” (Por que). Além disso, também é possível recusar uma notícia considerada

inadequada através do botão “Refuse” (Recusar). Esse artifício permite explicitar de

forma clara e intuitiva toda a relação existente em um conjunto de notícias.

Outra característica de extrema importância dessa ferramenta é a capacidade que

ela possui de melhorar os seus resultados à medida que for sendo utilizada. Para isso,

utilizamos o conceito de sabedoria das multidões (SUROWIECKI, 2005).

Dessa forma, podemos dizer que o mecanismo de encadeamento proposto é

causal porque utiliza o conceito de sabedoria das multidões com o objetivo de permitir

aos próprios usuários confirmarem e estabelecerem relações de causa e efeito entre as

notícias pesquisadas. Além disso, ele também é temporal porque seus algoritmos

priorizam notícias mais recentes, ou seja, o relacionamento entre um conjunto de

notícias tenta partir de uma notícia mais atual para uma notícia mais antiga.

A Figura 8 apresenta a interface do sistema.

31

Figura 8 Interface do sistema

A Figura 9 ilustra a realização de uma busca que é muito semelhante à maioria

dos sistemas existentes atualmente.

Figura 9 Busca de notícias

A Figura 10 mostra o detalhamento de uma notícia. Uma característica particular

do WhySearch é exibir o conteúdo das notícias em sua própria página. Isso só é possível

porque todas as notícias exibidas são previamente processadas e armazenadas no banco

de dados do sistema. Dessa forma, deixamos de lidar apenas com links e passamos a

32

atuar sobre o conteúdo de cada notícia. Além disso, a ferramenta também disponibiliza

os links para as páginas de origem das notícias apresentadas através de seus títulos.

Figura 10 Detalhamento de uma notícia

A Figura 11 ilustra a contextualização de uma notícia realizada pelo mecanismo

WhySearch, ou seja, o usuário clicou no botão “Why” e a ferramenta exibiu a notícia

correlacionada mais próxima em relação a notícia atual.

33

Figura 11 Contextualização de uma notícia

Se uma determinada seqüência de notícias for esgotada, ou seja, se os botões

Why ou Refuse forem clicados até que não existam mais notícias a serem exibidas, o

sistema irá informar essa situação ao usuário. Esse tipo de cenário, apesar de possível, é

um tanto raro, tendo em vista que para repositórios grandes, a seqüência de notícias será

muito longa.

4.2 Arquitetura do Sistema

A Figura 12 mostra a arquitetura proposta. Ela é formada por um banco de dados

e duas grandes camadas que contêm uma série de componentes que, atuando em

conjunto, compõem todas as funcionalidades do mecanismo de encadeamento de

notícias WhySearch (RODRIGUES et al., 2010).

34

Figura 12 Arquitetura do sistema

4.2.1 Camada de Extração e Processamento

A Camada de Extração e Processamento envolve todos os módulos responsáveis

por obter (RSS Torrent), indexar (Full-Text Indexer) e relacionar (News Connector) as

notícias, ou seja, ela prepara o banco de dados para a Camada de Aplicação. Outra

característica de extrema importância dessa camada é o fato dela atuar de forma

completamente independente (background) da Camada de Aplicação. Como os

processos da Camada de Extração e Processamento são contínuos, com essa aborgagem,

evitamos que o seu processamento impacte na utilização do sistema através da Camada

de Aplicação.

35

4.2.2 Camada de Aplicação

A Camada de Aplicação envolve todos os módulos responsáveis por consultar

(Search Engine), atualizar (Weight Updater) e criar (Path Analyzer) relacionamentos

entre notícias, ou seja, ela corresponde à parte do sistema que interage diretamente com

os usuários.

4.2.3 Banco de Dados

Uma característica comum a todos os módulos do WhySearch é atuar sobre o

mesmo banco de dados, que nesse contexto, funciona como um repositório central de

notícias devidamente processadas, indexadas e relacionadas. A Figura 13 apresenta o

modelo desse banco de dados, que é o resultado de um esforço conjunto de três

diferentes iniciativas: o WhySearch, o Dado Autonômico (SILVA et al., 2008) e a

ferramenta Feed Organizer (PINHEIRO et al., 2009, PINHEIRO et al., 2010). A idéia é

combinar essas propostas e fornecer um ambiente integrado para lidar com notícias web.

Figura 13 Modelo do banco de dados do WhySearch

36

O modelo do banco de dados apresentado na Figura 13 é composto pelas

seguintes tabelas:

• MANAGER: armaneza as informações dos usuários que podem cadastrar

URLs de feeds que serão monitorados pelo RSS Torrent;

• FEED_LIST: registra as URLs dos feeds que serão monitorados pelo RSS

Torrent;

• CHANNEL: contém algumas informações da tag channel dos feeds. Um

canal é formado por um conjunto de itens;

• ITEM: armazena algumas informações de cada tag item dos feeds. Todo

item aponta para uma notícia;

• FEED: armazena todos os arquivos XML de feeds obtidos pelo RSS

Torrent;

• WEB_PAGE: registra as URLs das páginas de notícias apontadas pelos

feeds, seus arquivos HTML e os textos das notícias contidas nesses arquivos;

• CATEGORY: contém as categorias dos feeds (FEED_LIST), canais

(CHANNEL) e itens (ITEM);

• AUTHOR: armazena os autores de cada notícia (ITEM);

• NEWS_LOG: registra um log para cada rodada do RSS Torrent, contendo

as datas de início e término do processamento, os intervalos de tempo de cada método

utilizado (TF-IDF e Jaccard) e o intervalo de tempo para correlacionar as notícias;

• CORRELATION: armazena as correlações identificadas pelo News

Connector entre as notícias (ITEM), atribuindo pesos a essas correlações de acordo com

o método utilizado (TF-IDF ou Jaccard). Esses pesos serão atualizados pelo Weight

Updater à medida que o WhySearch for utilizado (sabedoria das multidões);

• PATH_ANALYZER: registra a quantidade de vezes em que determinados

intervalos de 3 notícias são apresentados aos usuários. Quando essa quantidade atinge

um valor pré-determinado, uma nova correlação é criada na tabela CORRELATION

pelo Path Analyzer;

• REFERENCE_CODES: registra alguns códigos específicos utilizados pelo

sistema. Atualmente esses códigos estão sendo utilizados para identificar a origem da

correlação criada na tabela CORRELATION (NC - News Connector ou PA - Path

Analyzer);

37

• CONFIGURATION: armazena algumas configurações do sistema como a

freqüência de atualização do valor médio (why) que é utilizado para modificar os pesos

das correlações à medida que o sistema é utilizado.

4.3 Por que o WhySearch é Temporal

O WhySearch pode ser considerado um mecanismo temporal porque ele leva em

consideração a variável tempo em dois pontos distintos do processamento das notícias.

Primeiramente, quando as notícias são relacionadas através do módulo News

Connector, utilizamos a data de publicação para relacionar apenas as notícias mais

recentes.

Em um segundo momento, essa mesma data é utilizada no algoritmo do módulo

Weight Updater que prioriza as notícias mais recentes à medida que o usuário avança

sobre o grafo Why através dos botões Why e Refuse, ou seja, o caminho percorrido pelo

usuário no grafo Why tenta partir de uma notícia mais atual para uma notícia mais

antiga.

4.4 Por que o WhySearch é Causal

O WhySearch pode ser considerado um mecanismo causal porque ele leva em

consideração a variável causa em dois pontos distintos do processamento das notícias.

Primeiramente, quando utilizamos a similaridade entre as notícias para

relacioná-las (criação do grafo Why), o que naturalmente já pressupõe uma relação de

causa, tendo em vista que as notícias mais similares possuem ligações com maior peso.

Em um segundo momento, podemos dizer que a ferramenta pergunta

explicitamente qual a relação de causa entre as notícias à medida que os usuários

avançam sobre o grafo Why, através dos botões Why e Refuse (módulo Weight

Updater). Além disso, o mecanismo refina essas relações à medida que é utilizado,

através do conceito de sabedoria das multidões.

4.5 Por que o WhySearch é Escalável

O WhySearch é escalável porque seus módulos adotam uma série de medidas

para limitar o tempo de processamento sem prejudicar o resultado das buscas. Entre as

características que garantem a escalabilidade do WhySearch, podemos destacar que:

38

• Os módulos responsáveis por obter e relacionar as notícias (camada de

extração e processamento) são executados em background, ou seja, o seu

funcionamento é totalmente desacoplado dos módulos que realizam as buscas dos

usuários (camada de aplicação);

• Existem configurações (arquivo .properties) no módulo News Connector que

limitam a quantidade de notícias que serão relacionadas a cada rodada de execução do

RSS Torrent. Com isso, é possível garantir que os links de similaridade serão criados

em um intervalo de tempo aceitável. Durante o desenvolvimento da ferramenta e a

realização dos experimentos, foram utilizadas as seguintes configurações: 500 como a

quantidade máxima de notícias recém armazenadas no banco de dados (última rodada) e

100 como a quantidade máxima de notícias de todo o banco de dados que serão

relacionadas com cada notícia da última rodada. Dessa forma, passamos a ter um limite

máximo de 50.000 relacionamentos por rodada;

• As funcionalidades de indexação e busca dos módulos Full-Text Indexer,

News Connector e Search Engine foram desenvolvidas com a utilização da biblioteca

Java Lucene, que consegue garantir excelentes resultados em intervalos de tempo

extremamente satisfatórios, como discutido no CAPÍTULO 2, Seção 2.5;

• Para evitar que o peso médio de todo o grafo seja recalculado

constantemente pelo módulo Weight Updater, foi criado um mecanismo que monitora e

atualiza essa medida na tabela CONFIGURATION de acordo com a quantidade de

vezes que ela é recuperada. Foi usado como limitante para atualização do peso médio

(MAX_VALUE) o valor 50, ou seja, a cada 50 utilizações o peso médio é recalculado.

Outra característica importante é que a ferramenta está preparada para calcular as

similaridades usando o coeficiente de Jaccard ou o TF-IDF. Por conta disso, a tabela

CONFIGURATION permite armazenar os valores dos pesos médios de Jaccard

(AVG_JACCARD_WHY) e TF-IDF (AVG_TF_IDF_WHY). A seleção da medida de

similaridade utilizada é feita através de um arquivo de configuração (.properties).

Este capítulo apresentou uma visão geral do mecanismo de encadeamento de

notícias WhySearch através de uma breve descrição de seu funcionamento e sua

arquitetura (camadas, módulos e banco de dados). O capítulo seguinte explica em

detalhes cada módulo que compõe o mecanismo proposto.

39

CAPÍTULO 5 MÓDULOS DO WHYSEARCH

Este capítulo visa descrever detalhadamente os módulos da ferramenta

WhySearch. Inicialmente serão descritos os módulos referentes à camada de Extração e

Processamento, responsável por obter, relacionar e indexar as notícias web. Estes

módulos são os seguintes: RSS Torrent, Full-Text Indexer e News Connetor. Em

seguida serão vistos os módulos pertencentes à camada de Aplicação, responsável por

consultar as notícias, atualizar o peso dos relacionamentos entre elas e, eventualmente,

criar novos relacionamentos. Estes módulos são os seguintes: Search Engine, Weight

Updater e o Path Analyzer.

5.1 RSS Torrent

O principal objetivo do RSS Torrent é formar um grande repositório de notícias.

Ele é composto por duas aplicações, o RSS Manager e o RSS Downloader. A Figura 14

mostra como esses componentes se relacionam.

Figura 14 RSS Manager e RSS Downloader

5.1.1 RSS Manager

O RSS Manager é uma aplicação web desenvolvida em Java e executada no

servidor de aplicação JBoss9. Ela tem como finalidade fornecer uma interface para

9 http://www.jboss.org

40

cadastrar os URLs dos feeds que serão monitorados e acompanhar o processamento das

notícias apontadas por esses feeds.

Essa aplicação é composta pelo seguinte conjunto de telas:

• Login: é uma tela de login tradicional, onde deve ser fornecido um nome de

usuário e uma senha. Após a realização do login, é exibida a tela de filtro. O cadastro

dos usuários que terão acesso a esse sistema deve ser realizado manualmente no banco

de dados (tabela MANAGER).

• Filtro: nessa tela o usuário terá as opções de filtrar, adicionar, alterar e

excluir registros, além de poder visualizar a tela de log. A Figura 15 ilustra a tela de

Filtro;

Figura 15 Tela de Filtro do RSS Manager

• Cadastro: é a tela onde são cadastrados os URLs dos feeds que serão

monitorados. A Figura 16 mostra a tela de Cadastro;

41

Figura 16 Tela de Cadastro do RSS Manager

• Edição: é uma tela que permite alterar algumas informações dos feeds

previamente cadastrados;

• Log: essa tela apresenta o histórico de cadastro das notícias, ou seja, são

mostradas as datas e horários de início e término de cada processamento, assim como a

quantidade de novas notícias adicionadas. A Figura 17 apresenta a tela de Log.

Figura 17 Tela de Log do RSS Manager

42

5.1.2 RSS Downloader

Atuando em conjunto com o RSS Manager, temos o RSS Downloader que, em

linhas gerais, é responsável por obter, processar e salvar no banco de dados as notícias

extraídas dos feeds que tiveram seus URLs previamente cadastrados. A Figura 18 exibe

um diagrama de atividades que descreve o funcionamento desse componente.

Figura 18 Diagrama de atividades do RSS Downloader

Abaixo descrevemos cada atividade da Figura 18 de acordo com a sua

numeração correspondente:

43

(1) Busca no arquivo de configuração (.properties) o valor inteiro que

corresponde ao intervalo de tempo (em minutos) que a ferramenta irá aguardar para

realizar um novo processamento dos URLs dos feeds previamente cadastrados. O

intervalo de tempo padrão definido foi de 10 minutos. Esse valor foi determinado

através de uma análise intuitiva do funcionamento da ferramenta de forma a garantir,

com certa margem de segurança, que nenhuma notícia seja perdida, porém nada impede

que ele seja modificado;

(2) Obtém a lista de URLs dos feeds;

(3) Retorna um URL da lista;

(4) Realiza o download do feed (arquivo XML) a partir do URL obtido

anteriormente;

(5) Abre o arquivo XML, correspondente ao feed para leitura, e extrai as

informações da tag channel (canal). Para realizar a leitura do arquivo XML utilizamos a

biblioteca dom4j10;

(6) Verifica se o canal em questão já existe no banco de dados;

(7) Realiza uma inserção. Essa atividade será expandida e explicada em detalhes

na Figura 19;

(8) Realiza uma atualização. Essa atividade também será expandida e explicada

em detalhes na Figura 20;

(9) Verifica se ainda existem URLs não lidos;

(10) Salva um registro de log no banco de dados com a data e hora de início e

término do processamento da lista de URLs;

(11) Dispara o módulo Full-Text Indexer;

(12) Faz com que o sistema espere o tempo definido no arquivo de

configuração (.properties) até começar um novo processamento.

A Figura 19 apresenta o diagrama de atividades referente à expansão da

atividade “Realizar inserção”.

10 http://dom4j.sourceforge.net

44

Figura 19 Expansão da atividade “Realizar inserção”

A seguir detalhamos cada uma das atividades presentes na Figura 19.

(1) Salva no banco de dados o arquivo correspondente à página HTML do canal;

(2) Verifica no arquivo XML do feed se o canal possui alguma tag category;

(3) Verifica se as categorias do canal já foram cadastradas. Em caso positivo,

segue com o fluxo das atividades, caso contrário, cadastra as novas categorias;

(4) Cadastra o canal no banco de dados;

45

(5) Salva o arquivo XML correspondente ao feed. Da forma como o banco de

dados foi modelado, conseguimos manter um histórico com diversas versões de todos os

feeds processados;

(6) Obtém a lista de itens (notícias) do feed;

(7) Retorna um item da lista;

(8) Trata o item. Essa atividade será expandida e explicada em detalhes na

Figura 21;

(9) Verifica se ainda existem itens não processados na lista.

A Figura 20 mostra o diagrama de atividades referente à expansão da atividade

“Realizar atualização”.

Essa atividade foi criada com o intuito de evitar a replicação de notícias no

banco de dados. Tal problema reside na forma como os feeds são atualizados em suas

páginas de origem, pois uma atualização em um feed, na maioria das vezes, se dá

através da inclusão de algumas novas notícias e exclusão de outras mais antigas, dessa

forma, um feed pode conter notícias que já existem no repositório e notícias realmente

novas. Raramente, todas as notícias de um feed são substituídas por notícias mais

recentes.

Outro ponto que merece destaque é a possibilidade de uma mesma notícia ser

publicada em páginas distintas com textos similares. Para esses casos, o mecanismo

proposto não realiza nenhum tipo de tratamento, porém essa atividade pode ser

relacionada como um trabalho futuro bastante interessante. O processo de identificação

de dados que se referem à mesma entidade ou objeto no mundo real, mesmo que com

palavras escritas erroneamente, abreviações e tipos ou estilos de escrita diferentes

possui diversos nomes na literatura, tais como: deduplicação (deduplication)

(CARVALHO et al., 2006, SARAWAGI & BHAMIDIPATY, 2002), ligação de

registros (record linkage) (CHRISTEN, 2008, CHRISTEN et al., 2004, FELLEGI &

SUNTER, 1969), semelhança de objetos (object isomerism) (CHEN et al., 1996),

reconciliação de entidades (entity reconciliation) (DEY et al., 2002), heterogeneidade

de entidades (entity heterogeneity) (DEY et al., 1998), junção/purificação

(merge/purge) (HERNÁNDEZ & STOLFO, 1995), identificação de instâncias (instance

identification) (WANG & MADNICK, 1989), entre outros.

46

Figura 20 Expansão da atividade “Realizar atualização”

Abaixo descrevemos apenas as atividades 1, 4 e 8 da Figura 20. As atividades

restantes já foram explicadas no fluxo “Realizar inserção”.

(1) Atualiza no banco de dados o arquivo correspondente à página HTML do

canal.

47

(4) Atualiza o canal no banco de dados.

(8) Verifica se o item extraído do feed já foi cadastrado no banco de dados.

A Figura 21 mostra o diagrama de atividades referente à expansão da atividade

“Tratar item”. Essa atividade faz parte do fluxo dos diagramas das Figura 19 e Figura

20.

Figura 21 Expansão da atividade “Tratar Item”

A seguir explicamos o funcionamento das atividades da Figura 21.

(1) Salva no banco de dados a página HTML do item e o texto da notícia

extraído dessa página. Para extrair o texto da notícia, foi desenvolvido um algoritmo

que, com a utilização de expressões regulares, consegue identificar, na maioria das

vezes, a parte do texto referente ao seu conteúdo, ignorando tags HTML e eventuais

textos que não correspondam à notícia propriamente dita;

(2) Verifica se as categorias do item já foram cadastradas. Em caso positivo,

segue com o fluxo das atividades, caso contrário, cadastra as novas categorias;

(3) Verifica se os autores do item já foram cadastrados. Em caso positivo, segue

com o fluxo das atividades, caso contrário, cadastra os novos autores;

(4) Cadastra o item no banco de dados.

O RSS Downloader não possui uma interface gráfica. Ele é executado

diretamente pelo prompt de comando, e não recebe nenhum tipo de entrada fornecida

48

pelo usuário. Nesse prompt, as únicas informações exibidas são a data e hora de início e

término do processamento de todos os URLs de feeds cadastrados, seguida de uma

mensagem informando que a atualização foi realizada com sucesso. A Figura 22

apresenta o prompt de comando do RSS Downloader.

Figura 22 Prompt de comando do RSS Downloader

5.2 Full-Text Indexer

O Full-Text Indexer é o módulo responsável por indexar as notícias do banco de

dados através da biblioteca Lucene (APACHE, 2010). Para isso, sempre que uma

rodada de execução do RSS Torrent é concluída, o Full-Text Indexer recebe o

identificador do log das notícias recém-armazenadas. A partir desse número, essas

notícias são extraídas do banco de dados e salvas como arquivos de texto em um

diretório específico e pré-configurável (arquivo .properties).

Os nomes dos arquivos correspondem aos identificadores das notícias (tabela

ITEM) e os nomes dos diretórios onde eles são armazenados aos identificadores do log

(tabela NEWS_LOG).

Dessa forma, para que o arquivo com os índices seja criado ou atualizado, basta

executar um método específico do Lucene, indicando o diretório das notícias. Sempre

que realizamos uma busca ao índice do Lucene, recebemos como resposta o

identificador de uma notícia. Com essa informação, conseguimos obter o texto integral

da notícia através de uma consulta ao banco de dados.

49

5.3 News Connetor

O News Connector é o módulo responsável por relacionar a maior parte das

notícias armazenadas no banco de dados, resultando na criação/atualização do grafo

Why. Nesse grafo, as notícias correspondem aos nós e os relacionamentos às arestas. A

força dos relacionamentos entre as notícias é determinada pelos pesos (similaridade)

atribuídos as suas arestas.

A Figura 23 ilustra um grafo Why com 5 notícias.

Figura 23 Grafo Why

De acordo com a Figura 23, podemos dizer que existe relacionamento de peso

0,047 (similaridade) entre a notícia 3 (publicada em 08/04/2009) e a notícia 4 (publicada

em 29/05/2009). Todas as informações apresentadas nessa figura são armazenadas no

banco de dados e servem como base para percorrer o grafo Why, ou seja, são utilizadas

para determinar a próxima notícia que será mostrada ao usuário.

O News Connector é acionado sempre que o módulo Full-Text Indexer termina

de criar/atualizar o índice com as novas notícias obtidas através do RSS Torrent. Seu

funcionamento consiste em relacionar diversos conjuntos de notícias. A Figura 24

ilustra esses conjuntos.

50

Figura 24 Conjuntos de notícias

Os conjuntos da Figura 24 são representados por:

A – Conjunto de todas as notícias do repositório;

B – Subconjunto das notícias recém-armazenadas e indexadas;

C – Subconjunto das notícias mais recentes de B;

Dn – Subconjunto das notícias mais similares de A em relação a cada notícia de C, onde

n corresponde ao número da notícia de C. Em outras palavras, existirão os subconjuntos

D1, D2, ..., Dn, onde n é igual ao número total de notícias de C.

Eventualmente, as interseções da Figura 24 podem ser vazias. O objetivo dessa

figura, ao ilustrar essa particularidade, é apenas mostrar que situações desse tipo podem

ocorrer.

Para formar os subconjuntos Dn, utilizamos os índices criados pelo módulo Full-

Text Indexer e a biblioteca Lucene para buscar as notícias mais similares a cada notícia

do subconjunto C. Após a seleção das notícias que serão efetivamente relacionadas (por

exemplo, a notícia n e as notícias do conjunto Dn), basta apenas criar os

relacionamentos entre elas. Para isso, utilizamos o coeficiente de similaridade de

Jaccard. Esse coeficiente foi escolhido, porque ele permite uma avaliação isolada da

similaridade entre duas notícias, diferentemente do TF-IDF que leva em consideração

todas as notícias do repositório. Para esse problema específico, essa característica

coloca o TF-IDF em desvantagem, tendo em vista que a adição de novas notícias ao

repositório faria com que os pesos das correlações já criadas ficassem defasados. Uma

alternativa para contornar esse problema seria a realização de atualizações periódicas

dos valores de TF-IDF para todos os relacionamentos existentes entre as notícias do

51

repositório. É importante ressaltar que para funcionar corretamente, sem impactar outros

processos executados pela ferramenta, essas atualizações precisariam ser calibradas

(definição da periodicidade de execução) de acordo com a capacidade de processamento

do computador utilizado, de forma que elas sejam concluídas em intervalos de tempo

aceitáveis.

A primeira versão do News Connector tentava relacionar todas as notícias do

conjunto B com todas as notícias do conjunto A. Essa abordagem mostrou-se inviável

devido à grande quantidade de notícias envolvidas, o que fazia com que o tempo de

processamento fosse muito longo. Para contornar esse problema, passamos a limitar o

tamanho desses conjuntos através de arquivos de configuração do sistema (.properties).

Além disso, o tamanho do subconjunto C sempre é configurado com um valor maior do

que o tamanho do subconjunto Dn. Essa medida foi adotada com o intuito de priorizar a

criação de relacionamentos entre as notícias mais recentes. Durante o desenvolvimento

da ferramenta e a realização dos experimentos foram utilizados os valores de 500 e 100

como quantidade máxima de notícias para os conjuntos C e Dn respectivamente.

Essa alteração resolve o problema da escalabilidade, porém a limitação do

tamanho dos conjuntos de notícias faz com que nem todas as notícias do banco de dados

sejam relacionadas após uma rodada de execução do módulo News Connector. Isso não

chega a ser um problema, se considerarmos que o isolamento de algumas notícias é

temporário, pois a cada rodada, qualquer notícia já existente no repositório pode ser

relacionada a uma nova notícia, bastando, para isso, apresentar alguma similaridade.

Além disso, foi criado o módulo Path Analyzer que permite a adição de novos

relacionamentos entre as notícias. Esse módulo será explicado em detalhes na Seção

5.6.

5.4 Search Engine

O módulo Search Engine apresenta a estrutura de um mecanimo de busca

tradicional, onde os usuários fornecem um conjunto de palavras de interesse e o sistema

retorna um conjunto de documentos ordenados de acordo com sua relevância em relação

à consulta. O que diferencia esse módulo dos principais sistemas de busca utilizados

atualmente é o fato de ele lidar exclusivamente com notícias que são ranqueadas com

base apenas em seu conteúdo.

52

Para implementar esse módulo, foram utilizados os métodos de busca do Lucene

e o índice criado/atualizado pelo componente Full-Text Indexer.

5.5 Weight Updater

O Weight Updater é caracterizado pela navegação e atualização de pesos no

grafo Why. Quando um usuário seleciona uma notícia retornada pelo componente

Search Engine, significa que ele está escolhendo um vértice do grafo Why. À medida

que ele clica nos botões Why ou Refuse o grafo é percorrido e os pesos das arestas são

modificados de acordo com as medidas apresentadas a seguir:

why = averageWeight

refuse = α x why

Onde:

• averageWeight = n

n

1iiw∑

= .

• wi = peso de cada aresta do grafo Why.

• n= quantidade total de arestas do grafo Why.

• why = valor adicionado a uma aresta quando o usuário clica no botão Why.

• refuse = valor subtraído de uma aresta quando o usuário clica no botão

Refuse.

• α = valor constante. Durante o experimento apresentado no CAPÍTULO 6,

foram testados diversos valores para essa constante (3/2, 2, 5/2 e 3) e o valor 3 obteve

os melhores resultados. Dessa forma, o refuse equivale a desfazer um why equivocado e

diminuir o peso da aresta de 2 why , ou seja, o refuse tem o dobro do impacto do why.

Podemos fazer uma analogia com uma propaganda negativa, que geralmente possui um

peso maior do que uma propaganda positiva para as pessoas.

A Figura 25 mostra um diagrama de atividades que descreve o funcionamento

do Weight Updater.

53

Figura 25 Diagrama de atividades do Weight Updater

Abaixo descrevemos cada atividade da Figura 25 de acordo com a sua

numeração correspondente:

(1) Obtém o vértice correspondente à notícia selecionada pelo usuário após a

busca inicial;

(2) Identifica a opção que foi escolhida pelo usuário (Why ou Refuse);

(3) Executa o procedimento Why. Essa atividade será expandida e explicada em

detalhes na Figura 26;

(4) Subtrai o valor refuse da aresta que liga o vértice atual ao vértice anterior;

(5) Seleciona (sem mostrar) o vértice anterior;

A Figura 26 apresenta o diagrama de atividades referente à expansão da

atividade “Executar Why”.

54

Figura 26 Expansão da atividade “Executar Why”

A seguir detalhamos cada uma das atividades presentes na Figura 26.

(1) Identifica o vizinho do vértice atual que possui o maior peso;

(2) Verifica se existe algum vizinho apto. Um vizinho apto é caracterizado pela

seguinte condição:

((vizinho.peso + why) >= vizinhoMaiorPeso.peso) and (vizinho.data <=

verticeAtual.data) and (vizinho <> vizinhosVisitados).

É importante ressaltar que através de parte da condição apresentada acima

(vizinho.data <= verticeAtual.data) reforçamos o fato do WhySearch ser um

mecanismo temporal e causal, pois com essa condição, fazemos com que a seqüência de

notícias exibidas avance da mais recente para a mais antiga. Se a condição não for

satisfeita, o fator causal irá direcionar a seleção da notícia a ser exibida

(3) Obtém o melhor vizinho. O melhor vizinho corresponde ao vizinho apto com

a maior data, ou seja, o sistema prioriza as notícias mais recentes;

(4) Soma o valor why à aresta que liga o vértice atual ao melhor vizinho;

55

(5) Seleciona e mostra a notícia do melhor vizinho para o usuário;

(6) Soma o valor why à aresta que liga o vértice atual ao vizinho de maior peso;

(7) Seleciona e mostra a notícia do vizinho de maior peso para o usuário.

Para determinar os vértices que serão visitados no grafo, o algoritmo do

WhySearch considera o peso das arestas e as datas de publicação das notícias que, neste

caso, correspondem aos vértices. Dessa forma, ele tenta obter um equilíbrio entre esses

dois valores. Por conta disso, podemos dizer que o WhySearch é um mecanismo

temporal e causal de encadeamento de notícias.

5.6 Path Analyzer

O Path Analyzer é o módulo responsável por monitorar a seqüência de notícias

confirmadas pelos usuários, ou seja, as notícias onde o usuário clicou no botão Why. A

cada três notícias confirmadas, um novo registro é criado no banco de dados (tabela

PATH_ANALYZER) para a primeira e última notícia da seqüência. Se esse registro já

existir, o seu contador é incrementado. Quando esse contador atinge um valor limite

(configurável através de um arquivo .properties), ele é zerado e um relacionamento

direto envolvendo essas notícias é criado (tabela CORRELATION) com o valor why.

Caso essa correlação já exista, adicionamos o valor why ao peso dessa aresta.

Com esse módulo, compensamos o fato de não estarmos relacionando todas as

notícias do repositório (News Connector), através da criação de ligações entre nós de

caminhos freqüentes.

56

CAPÍTULO 6 EXPERIMENTOS

6.1 Visão Geral

O experimento proposto consiste em comparar o WhySearch e o Google News

com os resultados esperados pelos usuários, utilizando um repositório de notícias

controlado. O Google News foi escolhido para participar das comparações porque seus

resultados podem ser interpretados de forma semelhante aos do WhySearch. Além disso,

foi através do Google News que as notícias deste experimento foram selecionadas.

Outra característica que merece destaque é o fato dessa ferramenta ser amplamente

utilizada em todo o mundo, ou seja, é um bom referencial para a comparação que está

sendo proposta.

Para obter a opinião dos usuários, foi realizada uma pesquisa (preenchimento de

formulários) onde foram fornecidas algumas notícias sobre assuntos específicos e pedia-

se para que essas notícias fossem ordenadas de forma a criar uma idéia cronológica (da

notícia mais recente para a mais antiga) e de causa e efeito. O problema consiste em

ordenar as notícias com o objetivo de facilitar o entendimento de toda a história.

6.2 Tamanho das Amostras

Ao todo, 24 pessoas participaram da pesquisa (alunos de graduação, mestrado e

funcionários da Petrobras Distribuidora S.A.) que foi dividida em 4 grupos de 15

notícias que abordavam assuntos distintos.

A Tabela 1 apresenta a distribuição dos participantes pelos grupos de notícias.

Grupo Domínio Assunto Participantes

1 Economia Greek Economic Crisis 9

2 Esportes South Africa’s World Cup 4

3 Mundo Oil Leaking In Gulf Of Mexico 6

4 Saúde Swine Flu 5

Tabela 1 Distribuição dos participantes pelos grupos de notícias

57

Como podemos notar na Tabela 1, a distribuição dos participantes não se deu de

forma uniforme entre os grupos de notícias. Isso foi o resultado da limitação de tempo e

da grande dificuldade de se encontrar pessoas dispostas a participar do experimento.

Uma característica muito importante deste experimento é o fato de estarmos

utilizando amostras bastante heterogêneas, o que caracteriza uma boa representatividade

da amostra em comparação a população. Isso fica claro quando observamos a amostra

de usuários, que pertencem a lugares distintos e também quando verificamos os

diferentes domínios de notícias que foram empregados (SALVATORE & REAGLE,

2002, NETO et al., 2007).

Os tamanhos das amostras devem ser calculados previamente visando obter-se

uma amostra representativa da população.

6.2.1 Quantidade de Notícias

No caso das amostras referentes ao número de notícias, iremos considerar que 15

notícias é uma quantidade aceitável para compor um experimento, de forma que essas

notícias possam ser ordenadas com o objetivo de contar uma história.

6.2.2 Quantidade de Participantes

Quanto ao número de participantes, como o objetivo é estimar a relevância ou

não de uma notícia, para um grupo de leitores, em relação a sua posição dentro de uma

sequência, será realizada a análise da resposta dicotômica ou categórica que inclui os

cálculos que envolvem a estimativa da proporção populacional.

A fórmula utilizada para cálculo do tamanho da amostra para uma estimativa

confiável da proporção populacional (p) foi (LWANGA & LEMESHOW, 1991):

2

22/

E

q.p.)Z(n α=

Onde:

• n = Número de indivíduos na amostra.

• Zα/2 = Valor crítico que corresponde ao grau de confiança desejado.

• p = Proporção populacional de indivíduos que pertence à categoria que se

deseja estudar. Pode ser baseada em estudos anteriores ou dados da literatura. Caso não

seja possível definir este valor, pode-se usar 50%, pois este valor gera o maior tamanho

da amostra que pode ser calculado.

58

• q = Proporção populacional de indivíduos que não pertence à categoria que

se deseja estudar (q = 1 – p).

• E = Margem de erro ou erro máximo da estimativa. Identifica a diferença

máxima entre a proporção amostral e a verdadeira proporção populacional (p).

Dessa forma, visamos estimar entre leitores de notícias web no Brasil se uma

notícia está ou não relacionada a outra notícia. De acordo com os dados do Instituto

IBOPE Nielsen Online, de agosto de 2009 a agosto de 2010, o número de usuários

ativos (que acessam a Internet regularmente) cresceu 11%, atingindo 41,6 milhões de

pessoas. Somado às pessoas que possuem acesso no trabalho, o número salta para 51,8

milhões (IBOPE, 2010). Além disso, segundo a consultoria ComScore, 65,8% dos

usuários brasileiros freqüentaram sites de notícias. Isso mostra que o brasileiro é o

internauta da América Latina que mais acessa notícias na web (FOLHA.COM, 2010).

De acordo com esses dados, aproximadamente 34 milhões de pessoas acessam notícias

web regularmente no Brasil. Isto representa 17% da população brasileira de 192 milhões

de habitantes. Supondo um erro máximo de 20% com um grau de confiança sobre a

população total de 90% o resultado seria 9 participantes.

Assim, estes valores são adequados, pois tornam o experimento factível dentro

dos recursos de pessoal e tempo disponíveis e com alto grau de confiança sobre a

população total.

Conseguimos obter a quantidade de 9 participantes apenas para um grupo de

notícias. Com o objetivo de minimizar esse problema, aplicamos uma média ponderada

considerando o número de participantes de cada grupo para unificar os resultados

obtidos.

6.3 Execução

Para obter as 15 notícias de cada grupo, foram realizadas pesquisas ao site

Google News para os assuntos apresentados na Tabela 1. Além disso, a ordem em que

essas notícias foram obtidas (ordenação por relevância) também foi salva. A partir do

resultado das buscas, as notícias foram selecionadas de forma aleatória. É importante

ressaltar, que no experimento, as informações sobre as datas de publicação das notícias

selecionadas foram omitidas para que os participantes não fossem influenciados. Ao

todo, a pesquisa envolveu 60 notícias distribuídas igualmente entre 4 domínios distintos.

59

A partir desse ponto, os seguintes procedimentos foram adotados para cada

grupo de notícias:

1) Preparar o banco de dados (ambiente controlado): popular o banco de

dados com as notícias da pesquisa e executar o módulo News Connector para que essas

notícias fossem devidamente relacionadas entre si de acordo suas similaridades,

resultando no grafo Why.

2) Executar o WhySearch sem considerar a sabedoria das multidões:

registrar a seqüência de notícias gerada pela ferramenta sem considerar a sabedoria das

multidões, ou seja, essa seqüência foi obtida clicando-se apenas no botão Why. É

importante ressaltar que a escolha do ponto de partida para obtenção desta sequência

(notícia de origem) foi feita com base na primeira notícia mais escolhida pelos usuários

(moda estatística).

3) Executar o WhySearch considerando a sabedoria das multidões:

Desfazer as alterações no grafo Why que foram ocasionadas pela execução do item 2) e

treinar o WhySearch para obedecer a seqüência definida por cada usuário nas pesquisas,

ou seja, executar o WhySearch clicando nos botões Why ou Refuse até que as notícias

apresentadas pela ferramenta coincidam com a seqüência de cada usuário. Por fim,

devemos registrar a seqüência gerada pelo WhySearch clicando apenas no botão Why. A

seleção da notícia de origem foi feita de forma idêntica ao item 2).

Com isso, já temos todos os componentes que serão utilizados nas comparações

propostas neste experimento para cada grupo de notícias:

• Seqüências de notícias dos usuários: obtidas através de formulários de

pesquisa.

• Seqüências de notícias do Google News: obtida durante a seleção das

notícias que iriam fazer parte das pesquisas de cada grupo. Durante essa seleção, a

ordem em que as notícias foram obtidas foi registrada.

• Seqüências de notícias do WhySearch (sem SM): obtidas com a execução

do WhySearch para cada grupo sem considerar a sabedoria das multidões.

• Seqüências de notícias do WhySearch (com SM): obtidas com a execução

do WhySearch para cada grupo considerando a sabedoria das multidões.

Para concluir a avaliação do WhySearch, resta apenas realizar algumas análises

entre essas seqüências. Para isso, foi utilizado o coeficiente de correlação de postos de

60

Spearman. Esse coeficiente mede a intensidade da relação entre variáveis ordinais. Em

vez do valor observado, utiliza apenas a ordem das observações.

Desse modo, esse coeficiente não é sensível a assimetrias na distribuição, nem à

presença de outliers, não exigindo, portanto, que os dados provenham de duas

populações normais.

Aplica-se, igualmente, em variáveis intervalares como alternativa ao coeficiente

de correlação de Pearson, quando neste último se viola a normalidade. Nos casos em

que os dados não formam uma nuvem “bem comportada”, com alguns pontos muito

afastados dos restantes, ou em que parece existir uma relação crescente ou decrescente

em formato de curva, o coeficiente de correlação de Spearman é mais apropriado

(MARDEN, 1996).

A fórmula para calcular o coeficiente de Spearman é dada por:

nn

d61

3

n

1i

2i

−−=ρ∑=

Onde:

• n = número de pares (xi, yi).

• id = (postos de xi dentre os valores de x) - (postos de yi dentre os valores de

y).

Se os postos de x são exatamente iguais aos pontos de y, então todos os id serão

zero e ρ será 1.

O coeficiente de Spearman varia entre -1 e 1. Quanto mais próximo estiver

destes extremos, maior será a associação entre as variáveis. O sinal negativo da

correlação significa que as variáveis variam em sentido contrário, isto é, as categorias

mais elevadas de uma variável estão associadas a categorias mais baixas da outra

variável (MARDEN, 1996).

O WhySearch será avaliado através do seguinte conjunto de comparações, para

cada grupo de notícias:

• Seqüências dos Usuários x Seqüência WhySearch (sem SM);

• Seqüências dos Usuários x Seqüência WhySearch (com SM);

• Seqüências dos Usuários x Seqüência Google News.

61

Como cada grupo contou com a participação de diversos usuários, será

necessário calcular o coeficiente de Spearman entre a seqüência de cada participante e a

seqüência da ferramenta que será avaliada. Em seguida, será calculado o coeficiente de

Spearman médio e seu desvio padrão.

Por fim, para unificar os resultados obtidos para cada grupo de notícias, foi

calculada a média ponderada onde os pesos correspondem à quantidade de participantes

de cada grupo apresentado na Tabela 1.

A Figura 27 apresenta os resultados unificados dos coeficientes de Spearman

para cada ferramenta.

-0,1

-0,05

0

0,05

0,1

0,15

0,2

0,25

0,3

0,35

WhySearch (com SM)

WhySearch(sem SM)

GoogleNews

Ferramenta

Spe

arm

an M

édio

Figura 27 Coeficientes de Spearman para cada ferramenta

A Figura 27 deixa bem claro que o WhySearch apresenta um resultado muito

melhor do que o Google News. Além disso, fica comprovado que a aplicação da

sabedoria das multidões melhora ainda mais os resultados, quando o treinamento da

ferramenta é realizado para um mesmo grupo de usuários e notícias.

A Figura 28 ilustra, para cada ferramenta, o comportamento do coeficiente de

Spearman médio em relação aos grupos de notícias das pesquisas.

62

-0,2

-0,1

0

0,1

0,2

0,3

0,4

0,5

1 2 3 4

Grupo

Sp

ea

rma

n M

éd

io

WhySearch (com SM)

WhySearch (sem SM)

Google News

Figura 28 Spearman Médio x Grupo de Notícias

Mais uma vez, fica claro na Figura 28 o excelente resultado apresentado pelo

WhySearch, tendo em vista que as curvas de cada ferramenta são bem comportadas e

não se cruzam em nenhum momento. A Figura 28 mostra que os melhores resultados

foram obtidos para o WhySearch (com SM) e para o WhySearch (sem SM). O Google

News apresentou os piores resultados.

A Figura 29 mostra as distribuições dos valores de Spearman para cada

ferramenta avaliada no grupo 1.

0

0,2

0,4

0,6

0,8

1

1,2

1,4

1,6

-2,1

3

-1,9

4

-1,7

5

-1,5

5

-1,3

6

-1,1

7

-0,9

8

-0,7

9

-0,6

0

-0,4

1

-0,2

1

-0,0

2

0,1

7

0,3

6

0,5

5

0,7

4

0,9

3

1,1

3

1,3

2

1,5

1

1,7

0

1,8

9

2,0

8

2,2

7

2,4

6

2,6

6

Spearman

WhySearch (sem SM)

WhySearch (com SM)

Google News

Figura 29 Distribuição dos valores de Spearman para o grupo 1

A Figura 30 apresenta as distribuições dos valores de Spearman para cada

ferramenta avaliada no grupo 2.

63

0

0,5

1

1,5

2

2,5

-3,6

5

-3,3

4

-3,0

3

-2,7

2

-2,4

1

-2,1

0

-1,7

9

-1,4

8

-1,1

7

-0,8

6

-0,5

5

-0,2

4

0,0

7

0,3

8

0,6

9

1,0

0

1,3

1

1,6

2

1,9

3

2,2

5

2,5

6

2,8

7

3,1

8

3,4

9

3,8

0

4,1

1

Spearman

WhySearch (sem SM)

WhySearch (com SM)

Google News

Figura 30 Distribuição dos valores de Spearman para o grupo 2

A Figura 31 apresenta as distribuições dos valores de Spearman para cada

ferramenta avaliada no grupo 3.

0

0,2

0,4

0,6

0,8

1

1,2

1,4

1,6

-2,5

7

-2,3

7

-2,1

7

-1,9

6

-1,7

6

-1,5

6

-1,3

6

-1,1

6

-0,9

6

-0,7

6

-0,5

5

-0,3

5

-0,1

5

0,0

5

0,2

5

0,4

5

0,6

5

0,8

6

1,0

6

1,2

6

1,4

6

1,6

6

1,8

6

2,0

6

2,2

6

2,4

7

Spearman

WhySearch (sem SM)

WhySearch (com SM)

Google News

Figura 31 Distribuição dos valores de Spearman para o grupo 3

A Figura 32 apresenta as distribuições dos valores de Spearman para cada

ferramenta avaliada no grupo 4.

0

0,5

1

1,5

2

2,5

-2,8

3

-2,6

0

-2,3

7

-2,1

4

-1,9

1

-1,6

8

-1,4

5

-1,2

3

-1,0

0

-0,7

7

-0,5

4

-0,3

1

-0,0

8

0,1

5

0,3

8

0,6

1

0,8

4

1,0

7

1,3

0

1,5

3

1,7

6

1,9

9

2,2

2

2,4

5

2,6

8

2,9

1

Spearman

WhySearch (sem SM)

WhySearch (com SM)

Google News

Figura 32 Distribuição dos valores de Spearman para o grupo 4

64

As distribuições apresentadas nas Figuras Figura 29, Figura 30, Figura 31 e

Figura 32 mostram que os valores de Spearman para o WhySearch estão um pouco mais

dispersos que os do Google News, porém geralmente são maiores, o que conferiu os

melhores resultados para essa ferramenta.

6.4 Comentários Finais

Como podemos verificar na Seção 6.3, o WhySearch apresentou melhores

resultados em comparação ao Google News. Além disso, foi mostrado que esses

resultados ficam ainda melhores quando aplicamos a sabedoria das multidões.

Entre as vantagens do WhySearch, podemos destacar a sua capacidade de se

adaptar as necessidades de informação dos usuário (sabedoria das multidões). Outra

característica importante é o balanceamento realizado pelo algoritmo do módulo Weight

Updater entre a data de publicação das notícias e suas similaridades. Isso confere ao

WhySearch uma característica inovadora que mostrou-se bastante eficiente, como foi

comprovado durante os experimentos.

Entre as dificuldades encontradas para a realização deste experimento podemos

destacar a seleção de pessoas capazes e dispostas a participar. Isso foi o resultado

natural da complexidade do experimento que demandava a leitura de 15 notícias em

inglês, onde essas notícias deveriam ser posteriormente ordenadas de forma a criar uma

idéia cronológica e de causa e efeito.

Outro problema que merece destaque foi encontrar alguma ferramenta que

pudesse ser utilizada em uma comparação com o WhySearch satisfatoriamente.

Realizamos uma tentativa inicial com o Google Living Stories, porém chegamos a

conclusão que essa ferramenta não atendia aos requisitos mínimos da comparação que

seria realizada. Por fim, optamos pelo Google News, que apesar de não funcionar da

mesma forma que o WhySearch, poderia ter seus resultados interpretados de forma

similar para a realização do experimento.

Por fim, um grande esforço foi realizado na consolidação e interpretação dos

dados obtidos tanto das ferramentas envolvidas quanto dos participantes do

experimento. Além disso, precisávamos de uma medida estatística (coeficiente de

Spearman) que permitisse comparar a ordenação de listas.

65

CAPÍTULO 7 CONCLUSÕES E TRABALHOS FUTUROS

Neste trabalho, apresentamos uma nova abordagem sobre o encadeamento de

notícias web, onde tentamos inferir relações temporais e de causa e efeito levando em

conta diversos fatores como a similaridade das notícias, suas datas de publicação e a

sabedoria das multidões. Para isso, mostramos em detalhes todos os módulos que

compõem o mecanismo de encadeamento de notícias WhySearch.

Com o objetivo de avaliar essa ferramenta, foi realizado um experimento que

comparou a opinião dos usuários com os resultados do WhySearch e do Google News.

Esse experimento apresentou resultados extremamente satisfatórios, tendo em vista que

os dois métodos implementados no WhySearch (com e sem a sabedoria das multidões)

obtiveram resultados melhores que o Google News.

Com isso, podemos afirmar que um mecanismo de busca que envolva relevância

e tempo (WhySearch) apresenta resultados melhores do que ferramentas que consideram

apenas a relevância (Google News), isso no que diz respeito a apresentação de uma

seqüência de notícias com o objetivo de contar uma história como um todo.

7.1 Contribuições

De acordo com os objetivos propostos, podemos destacar as seguintes

contribuições deste trabalho:

• Foi proposta uma arquitetura para apoiar o mecanismo de encadeamento de

notícias desenvolvido;

• Foi desenvolvida uma ferramenta (RSS Torrent) capaz de popular um

repositório com notícias obtidas a partir de uma lista de feeds RSS;

• Foi desenvolvida uma ferramenta (News Connector) para relacionar as

notícias de um repositório de acordo com suas similaridades, com o objetivo de formar

um grafo;

• Foi proposto um algoritmo (Weight Updater) que permite determinar

caminhos em um grafo considerando fatores como causa, tempo e a opinião dos

usuários;

66

• Foi apresentado um algoritmo de análise de caminhos freqüentes (Path

Analyzer) com o objetivo de criar novas ligações (arestas) entre as notícias (vértices); e

• O mecanismo proposto (WhySearch) foi avaliado por meio de um

experimento que analisou seu comportamento em relação aos resultados apresentados

pelo Google News.

Uma contribuição extra, é o fato do WhySearch ser uma das principais pesquisas

que compõem CR@NIO, que é um Centro de Referência e Análise de Notícias da

UFRJ. Isso permitirá o desenvolvimento de trabalhos futuros e a continuidade desta

pesquisa.

7.2 Trabalhos Futuros

Como trabalhos futuros, podemos destacar a realização de uma avaliação mais

completa da influência da sabedoria das multidões nos resultados da ferramenta. De

acordo com o experimento apresentado nesta pesquisa, podemos dizer que a sabedoria

as multidões faz com que o algoritmo convirja para as seqüências envolvidas no

treinamento. Porém, para garantir que a sabedoria das multidões melhore o resultado

para qualquer seqüência, precisaríamos treinar o WhySearch em amostras diferentes das

que foram envolvidas no experimento.

Outro ponto que merece destaque é a realização de uma melhoria na interface

gráfica da aplicação com a apresentação do histórico das notícias exibidas pela

ferramenta através de uma árvore, ou seja, à medida que o usuário visualizasse novas

notícias através dos botões Why e Refuse, novos nós seriam adicionados a essa árvore.

Além disso, o usuário ficaria livre para visualizar qualquer notícia que já tivesse sido

apresentada.

Por fim, um trabalho futuro extremamente interessante seria a utilização da

interface do Google Living Stories em conjunto com os métodos de relacionamento e

busca implementados no WhySearch. Com isso, conseguiríamos conferir ao Google

Living Stories um conjunto de funcionalidades automáticas que hoje são realizadas

manualmente.

Dessa forma, fica claro que o WhySearch é apenas o início de uma pesquisa que,

envolvendo tempo e causa, consegue melhorar ainda mais a busca e o seqüenciamento

de notícias.

67

REFERÊNCIAS BIBLIOGRÁFICAS

ALLAN, J., 2002, Topic Detection and Tracking: Event-based Information Organization (The Kluwer International Series on Information Retrieval, Volume 12), 1º ed., Springer, ISBN: 0792376641.

ALLAN, J., LAVRENKO, V., SWAN, R., 2002, "Explorations within topic tracking

and detection", pp. 197–224. Disponível em: <http://portal.acm.org/citation.cfm?id=772260.772271>.

APACHE, 2010, "Apache Lucene". Disponível em: <http://lucene.apache.org>. BAEZA-YATES, R., RIBEIRO-NETO, B., 1999, Modern Information

Retrieval, 1º ed., Addison Wesley, ISBN: 020139829X. BRIN, S., PAGE, L., 1998, "The anatomy of a large-scale hypertextual Web search

engine", Comput. Netw. ISDN Syst., pp. 107-117. Disponível em: <http://portal.acm.org/citation.cfm?id=297827>.

CARVALHO, M.G., GONÇALVES, M.A., LAENDER, A.H.F., SILVA,

A.S., 2006, "Learning to deduplicate", Proceedings of the 6th ACM/IEEE-CS joint conference on Digital libraries, New York, NY, USA, pp. 41–50. Disponível em: <http://portal.acm.org/citation.cfm?doid=1141753.1141760>.

CHEN, A., TSAI, P., KOH, J., 1996, "Identifying object isomerism in multidatabase

systems", Distributed and Parallel Databases. Disponível em: <http://www.springerlink.com/content/t630k76m27n77917>.

CHRISTEN, P., 2008, "Febrl: a freely available record linkage system with a graphical

user interface", Proceedings of the second Australasian workshop on Health data and knowledge management. pp. 17–25. Disponível em: <http://portal.acm.org/citation.cfm?id=1385089.1385094>.

CHRISTEN, P., CHURCHES, T., HEGLAND, M., 2004, "A Parallel Open Source Data

Linkage System", Advances in Knowledge Discovery and Data Mining, Springer, Heidelberg, Berlin, pp. 638-647. Disponível em: <http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.6.2487>

DAS, A.S., DATAR, M., GARG, A., ET AL., 2007, "Google news personalization:

scalable online collaborative filtering", Proceedings of the 16th international conference on World Wide Web, Banff, Alberta, Canada. Disponível em: <http://portal.acm.org/citation.cfm?id=1242572.1242610>.

DEY, D., SARKAR, S., DE, P., 2002, "A Distance-Based Approach to Entity

Reconciliation in Heterogeneous Databases", IEEE Transactions on Knowledge and Data Engineering, Piscataway, NJ, USA, pp. 567-582. Disponível em: <http://doi.ieeecomputersociety.org/10.1109/TKDE.2002.1000343>.

68

DEY, D., SARKAR, S., DE, P., 1998, "A Probabilistic Decision Model for Entity Matching in Heterogeneous Databases", Management Science, Institute for Operations Research and the Management Sciences (INFORMS), Linthicum, Maryland, USA, pp. 1379-1395. Disponível em: <http://www.jstor.org/stable/2634749>.

EICHMANN, D., SRINIVASAN, P., 2002, "A cluster-based approach to broadcast

news", pp. 149–174. Disponível em: <http://portal.acm.org/citation.cfm?id=772260.772269>.

FELLEGI, I.P., SUNTER, A.B., 1969, "A Theory for Record Linkage", Journal of the

American Statistical Association, pp. 1183-1210. Disponível em: <http://www.jstor.org/stable/2286061>.

FOLHA.COM, 2010, "Brasil lidera leitura de notícia na web na América

Latina". Disponível em: <http://www1.folha.uol.com.br/tec/752525-brasil-lidera-leitura-de-noticia-na-web-na-america-latina.shtml>.

GOOGLE, 2010, "Living Stories". Disponível

em: <http://livingstories.googlelabs.com>. GOOGLE, 2011, "Google News". Disponível

em: <http://news.google.com/intl/en_us/about_google_news.html>. HAMMERSLEY, B., 2003, Content Syndication with RSS, 1º ed., O'Reilly

Media, ISBN: 0596003838. HAN, J., KAMBER, M., PEI, J., 2006, Data Mining: Concepts and Techniques, Second

Edition, 2 ed., Morgan Kaufmann, ISBN: 1558609016. HERNÁNDEZ, M.A., STOLFO, S.J., 1995, "The merge/purge problem for large

databases", ACM SIGMOD Record, New York, NY, USA, pp. 127–138. IBOPE, 2010, "Internet no Brasil cresceu 5,9% em agosto". Disponível

em: <http://www.ibope.com.br/calandraWeb/servlet/CalandraRedirect?temp=6&proj=PortalIBOPE&pub=T&db=caldb&comp=pesquisa_leitura&nivel=null&docid=0A276B95D145374B832577B6007A5F6A>.

KLEINBERG, J.M., 1999, "Authoritative sources in a hyperlinked

environment", Journal of the ACM, New York, NY, USA, pp. 604-632. Disponível em: <http://portal.acm.org/citation.cfm?id=324140>.

KOUDAS, N., SARAWAGI, S., SRIVASTAVA, D., 2006, "Record linkage: similarity

measures and algorithms", Proceedings of the 2006 ACM SIGMOD International Conference on Management of Data, Chicago, IL, USA, pp 802-803.

LWANGA, S.K., LEMESHOW, S., 1991, Sample size determination in health studies:

a practical manual / S.K. Lwanga and S. Lemeshow, Geneva :, World Health Organization, ISBN: 9241544058 :

69

MANNING, C.D., RAGHAVAN, P., SCHÜTZE, H., 2008, Introduction to Information

Retrieval, 1º ed., Cambridge University Press, ISBN: 0521865719. MARCONI, M., LAKATOS, E., 2004, Metodologia Científica, 4 ed., São Paulo, Atlas. MARDEN, J.I., 1996, Analyzing and Modeling Rank Data, 1º ed., Chapman and

Hall/CRC, ISBN: 0412995212. MYSQL, 2009, "Natural Language Full-Text Searches". Disponível

em: <http://dev.mysql.com/doc/refman/5.1/en/fulltext-search.html>. NETO, B.B., SCARMINIO, I.S., BRUNS, R.E., 2007, Como Fazer

Experimentos, 3 ed., São Paulo, Brasil, ISBN: 9788526807532. PAGE, L., BRIN, S., MOTWANI, R., WINOGRAD, T., 1999, "The PageRank Citation

Ranking: Bringing Order to the Web". Digital Library Technologies Project. Disponível em: <http://ilpubs.stanford.edu:8090/422>.

PINHEIRO, W.A., 2004, Busca em Portais Semânticos: uma Abordagem Baseada em

Ontologias, Dissertação de Mestrado, Instituto Militar de Engenharia, Rio de Janeiro, RJ, Brasil.

PINHEIRO, W.A., SILVA, M.C.O., RODRIGUES, T.S., XEXÉO, G., SOUZA,

J.M., 2010, "Discarding Similar Data with Autonomic Data Killing Framework Based on High-Level Petri Net Rules: An RSS Implementation", The Sixth International Conference on Autonomic and Autonomous Systems, Cancun, México. IEEE Computer Society, pp. 110-115.

PINHEIRO, W.A., SILVA, M.C.O., BARROS, R., XEXÉO, G., SOUZA,

J.M., 2009, "Autonomic collaborative RSS: An implementation of autonomic data using data killing patterns", 13th International Conference on Computer Supported Cooperative Work in Design, Santiago, Chile, pp. 492-497.

PINHEIRO, W.A., MOURA, A.M.D.C., 2004, "An Ontology Based-Approach for

Semantic Search in Portals", 15th International Workshop on Database and Expert Systems Applications, IEEE Computer Society, Los Alamitos, CA, USA, pp. 127-131.

PORTER, M.F., 1997, "An algorithm for suffix stripping", Readings in information

retrieval, Morgan Kaufmann Publishers Inc, San Francisco, CA, USA, pp. 313-316.

RODRIGUES, T.S., PINHEIRO, W.A., SOUZA, J.M., XEXÉO,

G., 2010, "Relacionando Notícias Web: uma Abordagem Causal e Temporal", 9th International Information and Telecommunication Technologies Symposium, Rio de Janeiro, RJ, Brasil.

70

SALTON, G., BUCKLEY, C., 1987, Term Weighting Approaches in Automatic Text Retrieval, Cornell University, Disponível em: <http://portal.acm.org/citation.cfm?id=866292>.

SALVATORE, D., REAGLE, D.P., 2002, Schaum's outline of theory and problems of

statistics and econometrics, McGraw-Hill Professional, USA, ISBN: 9780071348522.

SARAWAGI, S., BHAMIDIPATY, A., 2002, "Interactive deduplication using active

learning", Proceedings of the eighth ACM SIGKDD international conference on Knowledge discovery and data mining, Edmonton, Alberta, Canada, pp. 269–278.

SILVA, M.C.O., SOUZA, J.M., OLIVEIRA, J., 2008, "Autonomic Data: Use of Meta

Information to Evaluate, Classify and Reallocate Data in a Distributed Environment", 3th Latin American Autonomic Computing Symposium Proceedings, Porto Alegre, RS, Brasil, pp. 73-76.

SUROWIECKI, J., 2005, The Wisdom of Crowds, Anchor, ISBN: 0385721706. WANG, J., MADNICK, S., 1989, "The Inter-Database Instance Identification Problem

in Integrating Autonomous Systems", Proceedings of the Fifth International Conference on Data Engineering, Washington, DC, USA, pp. 46-55.

WINER, D., 2003, "RSS 2.0 Specification". Harvard Law School. Disponível

em: <http://cyber.law.harvard.edu/rss/rss.html>. YANG, Y., CARBONELL, J., BROWN, R., ET AL., 2002, "Multi-strategy learning for

topic detection and tracking: a joint report of CMU approaches to multilingual TDT", pp. 85–114. Disponível em: <http://dl.acm.org/citation.cfm?id=772260.772266>.

ZAITSEV, P., TKACHENKO, V., 2006, "High Performance Full Text Search for

Database Content", The 2nd Annual EuroOSCON Open Source Convention.