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.
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
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.