• Nenhum resultado encontrado

Publicações do PESC Relp Surfing: Um Fframework para o Relacionamento de Páginas WEB

N/A
N/A
Protected

Academic year: 2021

Share "Publicações do PESC Relp Surfing: Um Fframework para o Relacionamento de Páginas WEB"

Copied!
65
0
0

Texto

(1)

RELP SURFING: UM FRAMETiVORK PARA O RELACIONAMENTO DE PÁGINAS WEB

Vinicius Faria Culmant Ramos

DISSERTAÇÃO SUBMETIDA AO CORPO DOCENTE DA COORDENACÃO DOS PROGRAMAS D E PÓS-GRADUAÇÃO DE ENGENHARIA DA UNIVERSIDADE FEDERAL DO RIO DE JANEIRO COMO PARTE DOS REQUISITOS NECESSÁRIOS PARA A OBTENCÃO DO GRAU D E MESTRE EM CIÊNCIAS EM ENGENHARIA DE SISTEMAS E COMPUTA@O.

Aprovada por:

RIO DE JANEIRO, R J - BRASIL JUNHO DE 2008

(2)

RAMOS, VINICIUS

FARIA

CULR/LANT RelP Surfing: Um Framework para o Rela- cionamento de Páginas Web [Rio de Janeiro] 2008

XII, 53 p. 29,7 cm (COPPE/UFRJ, M.Sc., Engenharia de Sistemas e Computação, 2008)

Dissertação

-

Universidade Federal do Rio de Janeiro, COPPE

1. Web Mining

2. Relacionamento de Páginas Web I. COPPE/UFRJ 11. Título (série)

(3)

A minha flha Júlia, por ser o centro do meu universo.

(4)

Agradecimentos

Em primeiro lugar quero agradecer à mínha família por ter me apoiado em todos os momentos de minha vida. Todos foram muito importantes nesta longa caminhada. Esta minha família maravilhosa que tem seus alicerces em meu pai e minha mãe.

São

eles que merecem todos os agradecimentos possíveis, pois sem eles eu não chegaria onde cheguei. Obrigado

D.

Claudio e D. Sonia. Eles merecem todo e qualquer elogio que eu possa dizer. Agradeço aos meus avós: Eurides, Oswaldo e Lia. Muito obrigado.

Não posso falar em minha família sem falar de meus irmãos. Isabela, Mano e Cássia, obrigado pelo carinho, risadas e apoio. Preciso falar de cada um deles em separado. Agradeço à Cássia pelos dias de risada e carinho que me proporcionou ao lado de seu marido Felipe e suas Bhas maravilhosas, Nathália e Duda. Falar da minha irmã caçula é até covardia com todos, porque a caçula da casa é sempre a que ganha os maiores elogios e com ela não seria diferente. Era ela que brigava comigo, que conversava comigo, que brincava comigo etc. Era a Isabela que me fazia sorrir e olhar sempre pra &ente em busca de meus objetivos.

E

o Mano e sua esposa Ana são muito especiais nesta caminhada. A minha cunhada sempre interessada em saber quando eu terminaria o mestrado e o meu irmão sempre interessado em me levar para jogar futebol. Foram inúmeras as vezes que saímos com esta finalidade. Esse era o meu passatempo predileto.

Agradeço à minha filha Júlia, sem dúvida tornou-se o centro do meu universo. Antes de nascer ela já incentivava o seu pai a terminar o mestrado e a acordar cedo para trabalhar em sua dissertação. Agradeço também à Keila, mãe da minha m a . Agradeço pelo carinho e apoio que me foi dado por toda elaborqão deste trabalho.

(5)

Em m~uitou m o ~ e n t c s esse apoie fei de extrema irnpsrt&ncia, principa?rnsrl,e q~a;-ida se tratava de cuidar de nossa &lha. Obrigado.

Agradeço à Taísa por seu companheirismo, carinho, apoio e dedicação, principalmente na etapa final desta dissertação. Era ela que preparava o meu café para eu ficar acordado até mais tarde, que me ajudava a revisar os capítulos da dissertação e que dedicava parte de seu tempo para me acompanhar. Todas essas palavras são poucas se comparado ao seu carinho por mim e tudo que posso agradecer a ela.

Obrigado pela força Nini, Rache1 e Ayla. Estes são grandes amigos e merecem meus agradecimentos. Estes aqui são meus cumpadres e minha afilhada, respectivamente. Eles foram, em muitos momentos, peças fundamentais para a conclusão desta dissertação.

Se eu não falasse desse grande amigo, co-orientador, íncentivador e péssimo jogador de futebol chamado Alexandre Stauffer, esses agradecimentos não estariam completo. Foi ele que meu auxiliou em todas as etapas de minha graduação e

- 3

qgstrado. Esse cara conhecido apenas como Stauffer é responsável por minha dedica.+ aos estudos. Foi o StaufTer que me ensinou a fazer pesquisa. Foi o Stauífer que me ensinou a escrever um texto acadêmico. Foi o Stauffer que me auxiliou a encontrar grande parte do conhecimento que tenho hoje. Para isso eu tive que ensiná-lo a jogar futebol, mas parece que ele ainda não aprendeu. Obrigado Stauffer pela amizade, emails, correções, esporros e tudo mais que você já fez por mim.

Obrigado Luis Alfredo que, além de orientador, também tornou-se um grande amigo. Uma pessoa dona de um vasto conhecimento. Uma pessoa dona de um enorme senso de humor. Em todos os momentos deste trabalho me incentivou e me apoiou. Obrigado pela enorme contribuição em meu conhecimento que me foi passada.

Agradeço às minhas amigas Miriam e Taís, minha orientadora e co-orientadora nos tempos de iniciação científica e de projeto final de curso. Elas são grandes responsáveis por eu construir essa carreira acadêmica. Foram elas que me incentivaram a fazer pesquisas científicas e até mesmo orientar alunos de graduação.

(6)

Dentre todos os meus xniges eu g ~ s t a i a de falar de alguns em especial. Obrigado Leizer que, apesai- de ter esse nome, tornou-se um de meus melhores amigos em pouco tempo. Foi meu amigo nos dias de futebol, nos dias de cerveja e nos dias de estudos também. Amigo para todos os momentos. Quero agradecer também à dupla: Fábio e Jesus. Ficamos amigos em pouco tempo e já fazem parte do meu ciclo de melhores amigos. Essenciais nas noites de cerveja e de papo-furado. Entre tantos outros grandes amigos quero agradecer ao Dill e sua esposa Camila pois tenho grande admiração e respeito por eles. A admiração ao Dill vem não só nos estudos mas também no futebol e na cachaça.

São muitos os meus grandes amigos e não posso dissertar sobre todos neste pequeno espaço, mas gostaria de lembrar de vários amigos de faculdade, de futebol e de cerveja. Obrigado Calisto, Papel, Izaías, Digão, Targino, Carol, Duran, Marquinho Tesouro, Léo Gaúcho, Thiago, Saulo e Marina. Todos vocês foram importantes para a realizqão deste trabalho. Agradeço também aos funcionários do Programa de Engenharia de Sistemas e Computação: Solange, Sônia, Claudia, Lúcia, Alex, Leandro, Guty e Itamar pelo apoio que me deram durante esta etapa. Agradeço aos professores Jano Moreira e Roberto Blaschek pela oportunidade em seus projetos que contribuiu para meu crescimento profissional e acadêmico.

Agradeço à professora Rosa Costa e ao professor Geraldo Xexéo por aceitarem o convite de participação na banca deste trabalho.

(7)

Resumo da Di~sP,Ftagik a p r e s e n t d ~ . à COPPE/UFPT c o m parte dcs req~:i~itos necessários para a obtenção do grau de Mestre em Ciências (M.Sc.)

RELP SURFING: UM FRAMEWORK PARA O RELACIONAMENTO DE PÁGINAS WEB

Vinicius Faria Culmant Ramos Junho/2008

Orientador: Luis Alfredo Vida1 de Carvalho

Programa: Engenharia de Sistemas e Computação

Este trabalho consiste em procurar páginas Web semelhantes usando a estrutura dos links na Web. Mais especificamente, dada uma página Web, a qual chamamos de página atual em alusão ao fato de que tipicamente esta é a página atualmente sendo visitada por um usuário, procuramos na estrutura dos links encontrar outras páginas Web que são semelhantes à atual. Modelamos a Web como. um grafo direcionado, ao qual chamamos de grafo Web. Cada nó desse grafo representa uma página W b e as asestas representam os links entre as páginas Web. Introduzimos um algoritmo que realiza uma busca aleatória nesse grafo começando pela página atual. A idéia básica é atribuir pesos às arestas desse grafo de forma a fazer essa busca tender em direção às páginas Web que são mais semelhantes à atual. Nesse trabalho, discutimos três métodos para atribuir pesos as arestas. Nosso algoritmo lembra e, de fato, é inspirado em outros algoritmos; porém ele vai além por explorar mais profundamente o grafo Web, permitindo que a busca aleatória alcance nós relativamente mais distantes da página atual.

(8)

Abstract of Dissertation prese~ted t e CO;PPE/UFK! 2s 2 pmtid f1Wment of the

requirements for the degree of Master of Science (h/I.Sc.)

RELP

SURFING:

A

FRAMEWORK FOR RELATING WEB PAGES

Vinicíus Faria Culmant Ramos June/2008

Department: Systems Engineering and Computes Science

Tbis work consists of searchíng for similar Web p a g a

using

the siructure of the links in the Web. More specifically, we are given a Web page, which we call the current Web page in allusion to the fact that it is typically the Web page being currently visited by a user, and search this link structure to find other Web pages that are similar to the current one. We model the structure of the Web as a weighted directed graph, to which we refer as the Web graph. Each node of the Web graph represents a Web page and its edges represent the links between Web pages. We introduce an algorithm that performs a kind of random walk on this graph starting from the node that represents the current Web page. The basic idea is to set up the weights of the edges in such a way to bias the random walk towards the nodes that tend to be more similar to the current Web page. In this work we discuss three methods for attributing weights to the edge. Our algorithm resembles and in fact is inspired in previous works; it extends on those works by exploring the Web graph more thoroughly, allowing the random wallc to reach nodes that are further away from the current Web page.

(9)

Sumário

2 Trabalhos Relacionados 4

. . .

2.1 Introdução 4

. . .

2.2 Algoritmo HITS 7

. . .

2.3 PageRank 10

. . .

2.4 Companion e Cocitation 13

. . .

2.4.1 Algoritmo Companion 13

. . .

2.4.2 Algoritmo Cocitation 16 3 Algoritmos Propostos 18 4 Implementa@es 26

. . .

4.1 Introdqão 26

. . .

4.2 Brazil Framework 27

. . .

4.3 Pro-Active WebjZter 28

. . .

4.4 Captura dos Dados 29

. . .

4.5 Obteqão dos Resultados 32

5 Resultados 34

. . .

5.1 Método Algo1 35

. . .

5.2 Método Algo2 40

. . .

5.3 MétodoAlg03 43 6 Conclusão 48

(10)

Lista

de

Figuras

2.1 Representqão de Hubs e Authorities

.

. .

. . . .

.

. . . .

.

.

.

.

.

.

8

2.2 Operação

.

. .

. . .

. .

. . .

. . .

. . . . . . . . . .

.

. . . . .

9 2.3 Operqão O

. . .

.

. . .

. . .

. . . .

.

. . . .

.

. .

.

.

.

. . .

9 2.4 (a) r-(u)

-

representa os "pais" de u; (b) r+(u) - representa os "filhos"

& 1 1 , , > , , , , _ . , - , , , , , - , - , , , - - - - , - - _ . ~ , - - - > , 11 2.5 (a) Páginas

A

e B co-citadas por C; (b) Grafo não-direcionado de

co-citação

.

. .

. . .

.

. . . .

.

. . .

.

. . . . .

. .

. . .

. .

14 3.1 Peso da aresta u -t v : w = número de nós do conjunto a

. . .

.

.

21 3.2 Peso da aresta u -, v : w = grau de entrada dos nós do conjunto a

.

.

21 3.3 Peso da aresta u 4 v : w = grau de saída dos nós do conjunto a

. . .

22 4.1 Exemplos de erros de sintaxe em um arquivo HTML

.

.

. .

.

.

.

.

.

.

30

(11)

Lista de Algoritmos

1 Algoritmo HITS

. . .

9 2 Algoritmo Iterativo que calcula o valor do PagelZank de cada nó

. . . .

12 3 Cbmpanion: Cálculo dos valores de h& e auIrhgrZtim

,

.

.

,

. .

,

3 3

(12)

Lista

de

Tabelas

Páginas sugeridas pelo método AlgOl para a URL java.sun.com. A A a 36

Páginas sugeridas pelo método Algo1 para a URL brasil.gov.br.

. . .

38 Páginas sugeridas pelo método Algo2 para a URL cosmErjhr.,

.

, , , 39 Páginas sugeridas pelo método Algo2 para a URL java.sun.com.

.

.

.

41 Páginas sugeridas peloméiodo Algo2 para a URL brasil.gov.br.

.

.

.

42

Páginas sugeridas pelo método Algo2 para a URL cos.ufrj.br.

.

. . . .

43 Phginm sugeridas pelo mé$odo &O3 para a UBL javasmcom , , , 45 Páginas sugeridas pelo método Algo3 para a URL brasil.gov.br.

. . .

46 Páginas sugeridas>elo m é t ~ d o Algo3 para a YRL cas.SrJ

h-

- -

, , 47

(13)

Capítulo

1

Introdução

A

WorZd Wzde Web (ou simplesmente Web) é um sistema de relacionamento de hipertexto acessado pela Internet. A sua criação remete-se ao começo da década de 80, quando Berners-Lee, então pesquisador do laboratbriir, CERN na Sdw, notou a dificuldade de físicos em todo o mundo de compartilharem informações sem que tivessem nma máquina específica ou fossem obrigados a instalar programas de apresentação de informação em suas máquinas. Em 1989, Berners-Lee desenvolveu uma proposta para a Web, que h i aperfeiqoada em 1990 c m a coopera@ de Cailliau [I].

No 3iní-d de 1997 a Web atingiu a marca de 3 milhi5es de páginas e mais de 200 milhões de links entre elas [2]. Em meados de 2000, Lawrence e Giles estimaram que a Web gossuia aipr~ximadammte 800 milhões de páginas 133 e em 2005 este número cresceu assustadoramente para algo em torno de 11.5 bilhões de páginas (41.

O rápido çrescimenio da Web deu-se muito à sua l á d utiliza+, incluindo r, fácil desenvolvimento e publicação de uma página na Web. Outro fator importante para esse crescimento é a diversidade de formas com que as infoxma@es podem ser publicadas na Web. Por exemplo, pode-se disponibilizar vídeos e imagens de forma simples e basiando cmegá-las

e m

um s d m Web e ha &@Q

(linli) deles com uma página Web; dessa forma eles poderão ser visualizados por praticamente qualquer

aavegador Web do

mercado.

AEm

disso,

s acesso desses recursos é também muito simples. Basta o usuário possuir o endereço URL (Unified Resomce T,inkage Locatnr) da pAgina que c a n t h o

link

para eskerecurso.

(14)

Por oiit,ri lado, a facilidade de dsssovolviniento ep~b!ica@.c depBghcis wabm por transformar a Web em uma grande produtora de lixo eletrônico. O fato de não haver vahiagih n o conteúdo publicado na Web favorece a proliferqão de p á i n a s com erros de sintaxe ou de conteúdo. Portanto, nos dias de hoje, cabe ao usuário certificar-se da coxre$ude d a i n f m q i i o que ele encontrana Web-

A Web proporcionou oportunidades nunca dantes imaginadas para os processos de recuperqão de informação (IR - do homônimo em inglês "Informatzon Retrieval"), haja vista que a sua alta expansão tornou a busca e recuperação de informação cada vez mais complexa e essencial.

A IR é uma disciplina multidisciplinar cujo principal e seu maior objetivo é a busca por informação, seja em documentos, entre documentos ou em metadados destes documentos. Em se tratando da Web, as principais ferramentas de IR presentes no dia a dia dos usuários são as ferramentas de busca, como por exemplo Yahoo! [5], Google [6] e Live Search [7]. Estas ferramentas são responsáveis por recuperar informações de páginas Web a partir de um pequeno conjunto de palavras- chave digitadas pelos usuários.

E um desafio incomensurável para a IR responder todas as questões dos usuários de forma rápida e eficaz. Reconhecendo esta dificuldade, nos concentramos em uma pequena porém significativa parte desse desafio, que é o estudo do relacionamento entre páginas Web. Já que os usuários precisam ter acesso rápido a informações de qualidade, a busca automática por páginas Web relacionadas àquelas atualmente sendo visualizada pelo usuário é evidentemente de grande valia. É precisamente este o tema principal deste trabalho.

Os sites de busca empregam essencialmente duas estratégias na busca por páginas Web. A primeira delas é associar o conteúdo de cada página às palavras- chave especificadas pelo usuário, ou seja, ao se digitar a palavra ('algoritmo", as ferramentas de busca procuram páginas que possuem esta palavra em seu conteúdo e as ordena por um processo de contagem (quanto mais vezes a palavra "algoritmo" aparecer melhor). Uma outra forma de relacionar o que se busca com páginas Web é explorando a estrutura dos links, ou seja, primeiramente se relaciona o que se busca com o conteúdo da página (não precisando lançar mão de contagem) e depois se procura uma ordenação das páginas usando a estrutura de links. Esta estratégia se

(15)

baseia na idéia de que a existêízcia de m

li&

de m a phgina

A

para uma página 3 pode ser vista como se

A

estivesse recomendando a página B.

Sabendo-se das dificuldades encontradas para buscar informagões em um ambiente com mais de 11 bilhões de páginas, a pesquisa por algoritmos e heurísticas que auxiliem o usuário nos motiva a achar relacionamentos entre páginas Web. É

com esse espírito que estudamos a estrutura dos links na Web de forma a melhor compreendê-la e utilizá-la na busca por esses relacionamentos.

O relacionamento de páginas Web utilizando a estrutura dos links assume pelo menos um dos princípios a seguir:

1. A existência de um link de uma página A para uma página B corresponde a uma recomendação do autor da página A para a página B.

2.

A

existência de um li& entre uma página A e uma página B indica que elas devem

tratas

do mesmo tema.

Estes dois princípios são essenciais para o desenvolvimento deste trabalho. ~ . l o r a m o s a estrutura dos

links

para estabelecer relacionamentos entre as páginas Web e a página que o usuário está visitando atualmente, a qual chamamos de página atual. O nosso foco é entender como páginas referenciadas pela página atual se relacionam, visando o estabelecimento de um ranking dessas páginas em termos de grau de relevância para com a página atual.

No Capítulo 2, fazemos urna breve descrição sobre a

IR

e o problema de busca de informqões na Web. Apresentamos algumas idéias existentes na literatura para explorar a estrutura dos links na Web visando a ordenação dos resultados de uma busca. Além disso, discutimos com mais detalhes dois algoritmos que utilizam esta estrutura para relaciona páginas Web através de u m a URL. No Capítulo

3, introduzimos nosso algoritmo e três variqóes dele para a busca de páginas relacionadas com a página atual. No Capítulo 4, apresentamos um framework e um Web proxy utilizados nas implementqões para captura dos dados de testes e avaliação do algoritmo proposto. No Capítulo 5, discutimos os resultados apresentados pelo nosso algoritmo. Por

h,

no último Capítulo apresentamos as conclusões deste trabalho e também sugestões de temas e principais contribuições para trabalhos futuros.

(16)

Capítulo

2

Trabalhos

Relacionados

2.1

Introdução

Há decadas que a busca por informações deixou de ser feita em artefatos de papel, como jornais, livros e revistas, e passou a ser feita por artefatos digitais. Não que estes artefatos digitais tenham substituídos os artefatos de papel por completo, mas muitos deixaram de ser fontes principais de pesquisa e de busca por informações. Esta mudança de paradigma cria uma nova área do conhecimento, que é conhecida como "Information Retmeual" (IR).

A IR surgiu assim que documentos digitais passaram a armazenar informações que antes eram datilografadas ou escritas em papel. É uma área multidisciplinar, contando com ciências matemáticas, de computação, bibliotecásia, entre outras. Em síntese, as áreas de atuwão principais da IR consistem na busca por informações em documentos, localização de documentos em base de dados, busca por metadados que descrevem os documentos e ainda busca em bases de dados genéricas abrangendo desde bases de dados relacionais até bases de dados de hipertextos como a World

Wide Web.

Uma das disciplinas da IR é a categorização de textos (TC

-

do homônimo em inglês Text Categorixation).

A

TC é a disciplina responsável por criar categorias para textos em linguagens naturais de acordo com um conjunto pré-definido de

IConhecida como "dados dos dados", de qualquer ordem em qualquer meio. Um item de metadado descreve uma referência individual ou o conteúdo de um item ou ainda uma coleção de dados incluindo múltiplos itens.

(17)

categorias. Nos dias d~ hc?je, a

TC

é largamente utilizada nos mais diversos contextos, desde a indexação de documentos até a fdtragem de vocábulos em um texto.

Não se pode falar sobre digitalização e busca por informação sem mencionar a

World Wzde Web

(ou simplesmente Web). A Web surgiu na década de 80 e em menos de duas décadas tornou-se o principal meio de difusão de informação. No final da década de 90, a Web se polarizou de forma abrupta, facilitando o acesso e permitindo a difusão maciça de informação. Em 1997 Bharat e Broder estimaram a existência de 200 milhões de páginas Web 121. Lawrence e Giles, em meados do ano 2000, estimaram o tamanho da Web em um valor um pouco menor que 800 milhões de páginas [3]. Mais recentemente, em 2005, este número cresceu para aproximadamente 11.5 bilhões de páginas Web, segundo estudo de Gulli e Signorini ~41.

O crescimento desordenado da Web cria diversas oportunidades para a IR, entre as quais podemos destacar a aplicação da TC sobre as páginas Web. No começo desta década, as ferramentas de busca utilizavam diversas técnicas de TC para ordenar de forma rápida e eficaz as páginas Web. Sebastiani [8] descreve as técnicas utilizadas pela TC nesse contexto.

Sobre as ferramentas de busca na Web, a busca por páginas através da análise do conteúdo é bastante eficiente. Porém, ela abre a possibilidade de os criadores de uma página burlarem os métodos de análise, adaptando o conteúdo do site de forma a satisfazer os critérios adotados pelas ferramentas de busca. Por exemplo, um método simples de análise de conteúdo é a contagem do número de vezes que cada palavra aparece em uma página. Portanto, se uma página

A

contém 10 vezes a palavra

W

e uma página

B

contém 5 vezes a mesma palavra, a página

A

aparecerá ordenada na frente da página

B

em caso de urna busca pela palavra

W.

Este é um exemplo clássico para demonstrar como a análise de conteúdo pode causar resultados ruins.

No final dos anos 90, pesquisadores de IR desenvolveram técnicas de análise estrutural dos linlts da Web. Algumas dessas técnicas baseiam-se em técnicas existentes em outras áreas do conhecimento como por exemplo no estudo de redes sociais e de redes de citações científicas.

(18)

As

redes sociais sib representadas como um grafo G = (V,'J,E), onde os n6s representam indivíduos e a existência de uma aresta (i, j) significa que o indivíduo i conhece o indivíduo j . Nessas redes, por exemplo, existe o interesse em ordenar os graus de entrada de cada nó [9].

Redes de citqões científicas [I01 revelam informações sobre a importância e o impacto de um artigo científico no meio acadêmico. Muitos dos métodos desenvolvidos baseiam-se na contagem da quantidade de referências a um determi~iado artigo [ll, 12, 13, 141.

A estrutura de um hipertexto é importantíssima para o funcionamento da Web. E essa estrutura que permite com que usuários se direcionem em sua navegação pela Web. Uma das primeiras análises da estrutura de links dos hipertextos foi feita por Botafogo et al. [15] visando a ordenação de páginas Web. Nesta abordagem as páginas são modeladas como um grafo direcionado, onde os nós representam as páginas e as arestas representam os linlcs entre páginas. Eles definem dois tipos de nós, chamados de index nodes e reference nodes. Os nós chamados de index nodes são aqueles cujo grau de saída é maior do que a média de todos os graus de saída no gsafo. Os reference nodes, por sua vez, possuem o grau de entrada maior do que a média de todos os graus de entrada no grafo. Uma proposta para a ordenação do resultado de urna busca foi apresentada por Carrière e Kazman (161. Esta ordenação baseia-se na contagem da quantidade de arestas de um nó (independente de serem arestas de saída ou de entrada).

Entre os algoritmos que analisam a estrutura dos links na Web, destacam-se dois: o algoritmo

HITS

[17], proposto por Kleinberg e descrito mais detalhadamente na Seção 2.2 e o algoritmo PageRank 1181, proposto por Page et al., que foi implementado juntamente a uma ferramenta de busca que nos dias atuais é a ferramenta de busca mais utilizada no mundo [6].

O

PageRank é descrito na Seção 2.3.

Outros dois algoritmos merecem nossa atenção, são eles: Companion e Cocitacion, ambos propostos por Dean e Henzinger [19]. Estes algoritmos são descritos na Seção 2.4 e também fazem uma análise estrutural dos linlcs da Web. Eles têm como objetivo principal o relacionamento de páginas, que é o foco principal desta dissertaqão.

(19)

2.2

Algoritmo

HITS

O principal recurso das páginas Web é o hiperlink. São os hiperlinks que proporcionam toda navegação pela Web. Até a publicação de Kleinberg 1171, a estrutura deste importante recurso havia sido pouco explorada, tanto por ferramentas de busca quanto por pesquisadores de

IB.

Na Seção 2.1, mencionamos tentativas de utilizqão da estrutura dos links da Web em processos de contagem de referências. Essa contagem funciona pura e simplesmente para avaliar a importância de algum ator em um mesmo nicho de

3

-

irrfi)maq%, seuds esse íz.t,t=r lrn sistema, m a pessoa ou -mâ.srgâmzaçau. E s s ~

referências existiam em locaís específicos, como em páginas Web de jornais ou revistas. Entretanto, com a difusão da Wodd Wzde Web, as referências entre sites deixaram de estar limitadas a pequenos nichos ou grupos.

Em

se tratando de referências, as ferramentas de busca na Web procuram ordenar páginas por sua relevância. Um dos métodos utilizados para estimar a relevância de uma página é um processo de contagem de referências, ou seja, dado uma página A qualquer, a estimativa da relevância de A é igual ao número de páginas que a referencia. Esse processo é claramente inspirado nos métodos utilizados para a ordenação de artigos acadêmicos.

Podemos definir um grafo sobre a estrutura dos hiperlinks pela Web. Cada página Web é representada por um nó no grafo e cada aresta representa a referência de uma página a outra. Portanto, esse grafo é direcionado, pois a existência de um hiperlink de uma página para outra não implica na existência de um hiperlink na direção oposta.

A

existância da aresta

(X

-+ Y) no grafo indica que o autor da página

X

faz referência à página Y. Espera-se que autores de páginas Web referenciem conteúdos que lhes são relevantes, então os autores da página

X

atribuem um pouco de

"autoridade" à página

Y.

Este conceito de "autoridade" (authority) norteou o trabalho de Kleinberg. Em seu trabalho, as páginas Web e seus links são representados por um grafo direcionado, como definimos acima. Para melhor entendermos a análise estrutural dos hipertextos no trabalho de Kleinberg precisamos definir as páginas chamadas de authorities e as chamadas de hubs.

(20)

Hub Aut horit y

Para especificarmos authority e hub, vamos usar de um exemplo simples: uma página Web p que referencia uma página Web q. Portanto o criador da página p especificou um certo grau de "autoridade" à página q. Com isso, é fácil acharmos authorities em potencial. Basta buscarmos por páginas muito referenciadas ou com alto grau de entrada. As páginas Web chamadas de hubs são aquelas que têm um grau de saída alto (veja Figura 2.1).

Com esta idéia, Kleinberg desenvolveu um algoritmo chamado HITS (Hypertext Induced Topic Selection) que analisa os links de um conjunto de páginas Web e os ordena de acordo com sua relevância. A entrada do algoritmo é um subgrafo da Web com as páginas a serem analisadas e ordenadas3.

O HITS

é um algoritmo iterativo. Para cada página p, atribui-se uma variável não-negativa x ( p ) chamada

peso authority e uma variável não-negativa chamada peso hub.

A

seguir, apresentamos o algoritmo proposto por Kleinberg:

30 subgrafo utilizado foi obtido utilizando-se ferramentas de buscas populares na época, como por exemplo, o yahoo! [5] e o alta vista [20].

(21)

Figura 2.2: Operagão @ Figura 2.3: Operaqão 0

G

: Grafo que representa a Web; I% : Número inteiro;

Seja x um vetor (1,1,1,..

.

,1) E

!Rn;

xo t z ; Yo c 2;

para cada i = 1, 2, 3,

...,

k faça

xá +-- qxi-1, yi-1); y,! +- @(xá, yi-1); xi t Normalizar x:; yi c Normalizar y,!; fim retorna (xk, yk);

Algoritmo 1: Algoritmo HITS

As operações e O representam atualizações dos valores dos pesos xb) e y(p) (veja figuras 2.2 e 2.3), respectivamente. Elas são definidas da seguinte forma:

A criação deste novo conceito estabeleceu um novo paradigma para as ferramentas de busca e para os pesquisadores de

IR. A

simples idéia de authorities como páginas iduenciadas ou concentradoras de informações e hubs como páginas que influenciam ou são difusoras de informações conseguem alterar a forma com

(22)

que as ferramentas de buscas na Web operam e, tambkm, como algims aplicativos, estabelecem relacionamentos entre páginas. Muitas das pesquisas que despontaram utilizaram dessa idéia. Além disso, este novo conceito norteia os métodos propostos neste trabalho.

Na Seção 2.3 apresentamos um outro algoritmo de ordenação de páginas Web que, apesar de não estar relacionado diretamente com o algoritmo de Kleinberg, possui algumas semelhanças com o

HITS,

principalmente no que tange a ordenação através do grau de entrada e de saída de um nó.

Enquanto as ferramentas de busca criavam alternativas para ordenar os resultados de suas buscas utilizando o conteiído das páginas, pesquisadores priorizavam o entendimento completo da estrutura dos links pela Web. Nas Seções 2.1 e 2.2, discutimos a importância de se utilizar a estrutura dos links para o relacionamento de páginas Web ou a ordenação de resultados de busca.

É neste sentido que Brin et al. [18] descrevem um algoritmo para ordenação de resultados de buscas. Diferentemente da abordagem de Kleinberg [17], na qual a entrada de seu algoritmo era o resultado da busca em algum dos diversos sites de busca (Alta Vista [20], Yahoo! [ 5 ] , entre outros), Brin e Page criaram a sua própria base de dados e a sua própria ferramenta de busca, chamada de Google [21]. Esta ferramenta viria a se tornar a principal ferramenta de busca dos dias de hoje.

Na época, a base de dados do Google estava populada com 75 milhões de URLs e mais de 320 milhões de links. Esses valores são relativamente altos, pois no ano 2000 (2 anos após a publicqão do artigo de Brin e Page) Lawrence e Giles [3] estimaram o tamanho da Web em um valor um pouco menor do que 800 milhões de páginas.

O

algoritmo de Brin e Page trabalha em cima de todo o grafo Web. O algoritmo baseia-se na contagem dos graus de entrada e de saída de cada um dos nós. Este conceito está fortemente ligado às pesquisas acadêmicas em torno do grau de importância de um artigo acadêmico [22, 231.

A

intuição é que artigos muito referenciados ou muito citados tendem a ser mais importantes do que outros artigos menos citados. Assim como artigos que citam muitos outros artigos costumam ser boas referências no meio acadêmico.

(23)

Figura 2.4: (a)

r-(u)

- representa os "pais" de u ; (b) I'+(u) - representa os "filhos" de u

A definição do algoritmo PageRank utiliza essa idéia das referências dos artigos acadêmicos. Este algoritmo é recursivo e, em cada iteração, ele atualiza o peso das arestas de um nó do grafo usando, basicamente, os graus de entrada e saída deste nó. O valor armazenado é considerado o grau de importância de cada nó (ou grau de "autoridade" de cada nó sobre os outros) e é este valor que eles chamam de PageRank. O grau de "autoridade" de um nó, como os próprios autores citam, faz referência ao conceito de authority descrito na Seção 2.2.

Para a definição do PageRank, precisamos de alguns conceitos básicos de teoria dos grafos. Seja u uma página Web. Denotamos por P ( u ) o conjunto de páginas Web que u aponta e r-(u) o conjunto de páginas Web que apontam para u (veja Figura 2.4).

Seja

A

uma matriz quadrada onde as linhas e colunas representam páginas Web. Seja u e v duas páginas Web. Seja N; = lI'+(u)l o número de links apontados por

u. Definimos o elemento (u, v) da matriz

A

como -2- se a aresta (u t v) existe e O

N-

no caso contrário.

Uma maneira de se deikir o PageRank é vendo

A

como a matriz de transição de uma cadeia de Markov [24] definida sobre o grafo Web.

A

partir disso, podemos definir a forma de se calcular o PageRank para cada um dos nós do grafo.

Definição do PageRank: Seja E(u) urna distribuição de probabilidade sobre as páginas Web, isto é, E(u)

>

O para todo u e

C,

E(u) = 1. Seja c

<

1 um parâmetro positivo. O PageRank consiste na distribuição estacionária da cadeia de Markov

(24)

sobre páginas Web COE matriz de tramição dada por

CA

+

(1 - c)E. Em palavras, essa cadeia de Marlcov equivale ao seguinte processo. Dada uma página Web u, com probabilidade c escolhemos um dos links de u e transitamos para a página apontada por u e, com probabilidade (1 - c), escolhemos urna página usando a distribuição E. Com esta definição, podemos apresentar o algoritmo que computa os valores PageRank de cada nó. Seja S um vetor sobre as páginas Web. O PageRank4 pode ser computado da seguinte forma:

R0

+ s ;

repita

-&,,

+- A&;

d +- ll&lll - II~+1II1;

&+l +- &+l

+

dE;

J + ll&+l - até 6

>

c ;

Algoritmo 2: Algoritmo Iterativo que calcula o valor do PageRank de cada nó.

Por se tratar de um algoritmo recursivo e por ter milhões de páginas Web (nós do grafo) a serem analisadas, o custo para se obter o valor de cada nó é alto a priori. Porém, esse custo é ainda relativamente pequeno se comparado ao custo de se indexar todo o texto de páginas Web.

Um problema óbvio deste algoritmo consiste na sua ineficiência quando o grafo é atualizado frequentemente com inserção e remoção de nós e arestas. Portanto, seria natural pensar que a aplicação desse método é ineficiente para um grafo que tenha a dimensão da Web, pois a cada minuto milhares de modificações são feitas. Esta inviabilidade não é de todo verdade, pois o método proposto atribui valores maiores para o PageRank de nós que possuem grau de saída ou o grau de entrada alto. Sabemos que na Web a criação ou remoção de páginas com graus de entrada ou saída alto não acontece com frequência. Por isso, o valor do PageRank de cada um dos nós não precisa ser modificado a cada atualização do grafo, podendo ser atualizado apenas de tempos em tempos.

4A convergência do algoritmo apresentado a seguir foge do escopo deste trabalho e a sua prova completa pode ser encontrada em [18].

(25)

2.4

Companion

e Cocitatian

Alternativamente às Seções 2.2 e 2.3, Dean e Hezinger propõem dois métodos de relacionamento de páginas através do endereço URL [19].

Um relacionamento entre duas páginas Web significa que elas possuem o mesmo tópico, mas não necessariamente o mesmo conteúdo ou a mesma semântica. Para exemplificar, se dermos o endereço www. cbf. com. br5, o método deverá retornar páginas relacionadas ao futebol, como páginas de clubes ou campeonatos de futebol. Esta abordagem requer que o usuário saiba exatamente a página que está prue~râido, diferentemxte do probleliiâ de UUsza na YJeU e!~eidadu âxteriurmxte neste capítulo.

A principal preocupação dos autores nessa abordagem é fornecer uma resposta boa e rápida ao usuário. Para isso, são utilizadas apenas informações dos linlcs da Web, ou seja, apenas a estrutura de links que a Web fornece. Para se obter essa informação, os autores construíram uma ferramenta que explora a estrutura de links da Web [25]. Apenas os links e a ordem com que esses links aparecem nas páginas são utilizados, e nenhum conteúdo das páginas é analisado.

Os dois algoritmos são chamados de Companion e Cocitation. O primeiro deles é baseado no algoritmo HITS proposto por Kleinberg (ver Seção 2.2). Em seu artigo, Kleinberg sugere a utilizqão do algoritmo HITS para o relacionamento de páginas, e apresenta diversas evidências de sua potencialidade. O segundo algoritmo apresenta páginas que são co-citadas pela entrada do algoritmo, ou seja, a URL correspondente. Por exemplo, se uma página C possui link para a página A e para a página B, então

A

e B são co-citadas por C, como demonstrado na Figura 2.5.

2.4.1

Algoritmo

Companion

O algoritmo companion tem como entrada de dados uma

URL

u e consiste nos 4 passos a seguir

1. Gerar o grafo de vizinhança de u; 2. Eliminar nós duplicados no grafo;

(26)

Figura 2.5: (a) Páginas A e B co-citadas por C; (b) Grafo não-direcionado de co-cita~ão

3. Computar pesos das arestas baseados em conexões dominio a dom6nio; 4. Calcular valor de hub e de authority de cada um dos nós do grafo e retornar

os 10 melhores authorities.

Esses passos são explicados mais detalhadamente abaixo. Passo 1

-

Gerando o grafo de vizinhança de um nó

Dado uma

URL

u construimos u m grafo direcionado com os nós próximos ao u no grafo Web. O grafo é constituído pelos seguintes nós e arestas:

2. máximo de B nós em r-(u) e, para cada nó v pai de u, escolher até BF nós em I'+(v) diferentes de u (mais detalhes em [19]); e

3. máximo de F nós em I'+(u) e, para cada nó v filho de u escolher FB pais de v diferentes de u (mais detalhes em 1191).

Os valores para B, BF,

F

e FB utilizados em [I91 foram adaptados com os experimentos realizados, não havendo valores máximos e mínimos limitando esses parâmetros.

A

estimativa dos autores é que para valores altos de B e F e valores baixos de BF e FB o algoritmo é mais eficaz.

No item 2, a escolha de B nós pais de u respeita os seguintes critérios: se u tiver mais do que

B

pais, escolhe-se B pais aleatoriamente; caso contrário, escolhe- se todos os pais de u. No mesmo item 2, a escolha de BF nós que sejam filhos dos pais de u respeita os critérios: se um pai x de u tiver mais do que BF +l

(27)

Wos, escolhe-se os B F / 2 filhos que são apontades na página x pelos BF/2 links imediatamente anteriores ao link de u em x e, de forma semelhante, também os B F / 2 &lhos apontados na página x pelos B F / 2 links imediatamente posteriores ao link que aponta pasa u em x. Se a página x tiver menos do que B F

+

I links, escolhe-se obviamente todos os links de x diferentes de u.

No item 3, a escolha de F nós filhos de u respeita os seguintes critérios: se u tiver mais do que F filhos, escolhe-se os filhos apontados pelos primeiros F links de u; caso contrário, escolhe-se todos os filhos de u. Para a escolha dos F B nós, segue-se os seguintes critérios: se um filho de u tiver mais do B F

+

I pais, escolhe-se os

BF

pais com maiores graus de entrada; caso contrário, escolhe-se todos os pais dos filhos de u.

Passo 2

-

Eliminar nós duplicados

Dois nós são considerados duplicados se possuírem cada um mais do que 10 links e se possuírem ao menos 95% dos links em comum. Nesse caso, os dois nós são combinados em um único nó contendo todos os links de ambos.

Passo 3

-

Computar pesos das arestas

Para calcular os valor dos pesos das arestas foi utilizado o algoritmo proposto por Bharat e Henzinger [26]. Para as arestas onde os nós de suas extremidades são de um mesmo domínio Web o peso é O. Se uma página u for apontada por k páginas de um mesmo domínio Web, porém distinto do domínio de u, então para cada uma dessas arestas de entrada de u atribui-se o peso authority

i .

Se uma página u possui link para 8 páginas de um mesmo domínio Web, porém distinto do domínio u, então pasa cada uma dessas arestas de saída de u atribui-se o peso hub

a.

Passo 4

-

Calcular valores para hubs e authorities

Neste passo, calcula-se os valores para hubs e authorities através do algoritmo imp

de Bharat e Henzinger [26]. Este algoritmo é uma extensão do algoritmo HITS com pesos nas arestas. O cálculo dos valores de hubs e authorities é feito da seguinte forma:

(28)

Iniciaiizar os elementos do vetor hub H com vaior 1.0; Inicializax os elementos do vetor authority A com valor 1.0;

enquanto vetores

H

e A não convergirem faça para todo n ó n do grafo de vizinhança N faça

I

c C ( n t - n ) ~ a r e s t a s ( ~ ) H [n'] x peso-authority(nf + n)

fim

para todo n e m N faça

I

H

[nI

c C ( n - n / ) t a r e s t a s ( ~ ) A[nf] x p e s o - h ~ b ( n -+ nf)

I

Normalizar vetores A e

E;

fim

Algoritmo 3: Companion: Cálculo dos valores de hubs e authorities

O retorno do algoritmo Companion são os 10 nós com os melhores valores de authorities calculados. De fato, este algoritmo é muito parecido com o algoritmo HITS. Uma das principais diferenças é a escolha de alguns nós considerando-se a ordem em que os links aparecem nas páginas. Na Seção 2.4.2 apresentamos o algoritmo Cocitation dos mesmos autores.

2.4.2

Algoritmo

Cocitation

Dois nós são co-citados se tiverem um nó pai em comum. Chamamos esses nós de nós "irmãos" (ver Figura 2.5). O grau de co-citação de dois nós é a quantidade de nós pais que eles possuem em comum. Este algoritmo é bem simples e trabalha em cima desta idéia. O algoritmo é descrito como:

1. Selecionar os nós vi que são filhos dos nós pais de u (i'+@-(u))); 2. Para cada nó vi calcular o grau de co-citação entre ele e o nó u ;

3. Retornar os 10 nós com maiores graus de co-citação em relação a u.

De fato, encontrar nós co-citados, em muitos casos, é bastante difícil. Por isso, foi implementada uma heurística na qual quando não há número suficiente de nós co-citados, retira-se uma parte do endereço URL usado. Por exemplo, se u for a

URL

http://www.algoritmo.com/x/y/z e não existir um número suficiente de nós co-citados então o algoritmo é reiniciado utilizando-se o novo endereço

(29)

http://www.algoritmo.mm/~/y. A heurística é aplicada recwsivamente até que se ache uma quantidade suficiente de nós co-citados ou que se chegue ao domínio da URL, que neste exemplo é http://www. algoritmo. com.

(30)

Capítulo

3

Algoritmos Propostos

Em diversos pontos deste trabalho enfatizamos a importância da estrutura dos linlts na Web para o relacionamento de páginas. Apresentamos diversos trabalhos relacionados para demonstrar este fato. No Capítulo 2 vimos dehições e algoritmos importantes para o relacionamento de páginas Web. Neste capítulo, abordamos fatores que nos levaram a desenvolver novos algoritmos e mesclar alguns dos algoritmos existentes para serem utilizados no relacionamento de páginas.

Enquanto os algotimos

HITS

e Companion enfatizam o relacionamento entre hubs e authorities, o algoritmo Cocitation foca apenas no relacionamente entre páginas pela estrutura dos links. O PageRank, por sua vez, utiliza links com pesos normalizados e navegação na Web (web surfing) através de modelos de busca aleatória ( random walk models)

.

Todos eles demonstraram-se muito eficazes em seus respectivos testes.

Os algoritmos

HITS

e Cornpanion possuem alguns problemas dos quais citamos os dois abaixo:

Se a maioria das páginas do grafo de vizinhança analisado for de um tema diferente da página requerida, então os melhores hubs e authorities serão consequentemente de um tema diferente. Uma possível solução seria adicionar informações do texto da página visitada [26];

Ambos consideram apenas parte dos links da Web, portanto a adição de algumas arestas a alguns nós pode modificar o resultado da ordenação dos hubs e authorities [27].

(31)

A soluçãi, dos dois pontos citados acima gera outros problemas. Por exemplo, a adição de informações sobre o texto da página implica no relacionamento de textos, que é por si só um problema bastante desafiador. Além disso, se aumentarmos o tamanho do grafo a ser analisado, aumentamos também o tempo de processamento do algoritmo. Encontrar o balanceamento ótimo entre eficiência versus eficácia é também um problema bastante complexo. Portanto levando em consideração a análise desses pontos na validação da eficiência desses algoritmos.

O algoritmo Cocitation possui um problema mais fundamental, pois a afirmqão de que duas páginas são relacionadas se elas são co-citadas por uma mesma página não é sempre verdade. Por exemplo, links para softwares requeridos para visualização de uma página, na maioria das vezes, não se relacionam com os outros links da mesma página. Uma solução seria a utilização do texto das páginas a serem relacionadas, o que nos remete mais uma vez ao problema de relacionamento de texto.

A eficiência do algoritmo PageRank está relacionada

ao

seu pré-processamento. Para recordarmos, a Web é representada por um grafo direcionado onde as páginas e os links são representados pelos nós e arestas do grafo, respectivamente. Além disso, para cada aresta do grafo associa-se um peso. Este peso é normalizado e o seu cálculo é feito utilizando-se um modelo de busca aleatória explicado na Seção 2.3. Este cálculo e sua respectiva normalização são responsáveis pelo

pré-processamento das informações do grafo, tornando inviável a utilização deste algoritmo em computadores de pequeno porte.

Temos como objetivo criar algoritmos que mesclem características dos algoritmos discutidos no Capítulo 2. Não temos como objetivo reinventar algoritmos para desqualificar os algoritmos já existentes nem tampouco corrigir os problemas encontrados em cada um deles. Queremos unificá-los em uma ferramenta que indique páginas relacionadas às visitadas pelo usuário.

Todos os algoritmos listados no Capítulo 2 são de certa forma relacionados, pois todos procuram de certa forma ordenar as páginas pelos seus graus de entrada, incluindo o algoritmo PageRank [28]. Por isso, todos os nossos algoritmos priorizam nós com alto grau de entrada.

O modelo de busca aleatória referenciado por Brin e Page representa a navegação pela Web de um usuário qualquer. Ou seja, um usuário inicializa a navegação em

(32)

iima págha qualquer, transita para uma outra página apontada pela página inicial e segue visitando as páginas usando a estrutura de links da Web. A qualquer momento o usuário pode também decidir visitar uma página que não é apontada pela página atual. Este modelo é representado pelo algoritmo PageRank e pode ser visto como a distribuição estacionária da cadeia de Markov definida pelo conjunto de nós e arestas que representa a Web.

Cada transição da cadeia de Markov é representada pelas arestas do grafo, e a probabilidade de transitar por uma certa aresta é especificada, no algoritmo PageRank, pelo peso dessa aresta no grafo. Então, a probabilidade de um usuário navegar de uma página A para uma página B é definida pelo peso da aresta ( A -, B).

A representação da Web como um grafo direcionado é altamente explorada na literatura [17, 18, 21, 19, 26, 28, 29, 301. Da mesma forma, utilizamos um grafo direcionado para representar a estrutura de links da Web e chamamos esse grafo de grafo Web. O grafo Web que utilizamos em nossos testes foi armazenado e capturado utilizando um Web proxy. Este armazenamento e a captura dos dados é detalhada no Capítulo 4.

Em nossos algoritmos estão presentes os conceitos de grau de entrada de um nó e modelo de busca aleatória. O modelo de busca aleatória define o método de iteração de nossos algoritmos, pois cada iteração simboliza urna transição na cadeia de Markov do grafo Web.

Em linhas gerais nosso algoritmo consiste em pegar o nó do grafo Web que representa a página atual e, a partir dele, executar uma busca aleatória por um certo número pré-determinado de passos. A página visitada ao final da busca é a saída do algoritmo.

Como vimos anteriormente, dado um nó u com um filho v, a transição de u para v depende do peso da aresta (u -, v). Estudamos três métodos para a computação do peso desta aresta:

AlgOl. Grau de entrada do nó v (ver Figura 3.1); Alg02. Grau de saída dos pais do nó v (ver Figura 3.2); Alg03. Grau de entrada dos pais do nó v (ver Figura 3.3).

(33)

Figura 3.1: Peso da aresta u -+ v : w = número de nós do conjunto õ

(34)
(35)

O método AlgOl prioriaa os n6s considerados bons authorities, atribuindo maiores pesos aos nós mais referenciados. A discussão de que este método é bom baseia-se na idéia mencionada no Capítulo 2 de que páginas muito referenciadas tendem a possuir maior qualidade na apresentação da informação e que quando uma página v é referenciada por uma página u, O autor da página u está de certo

modo dando "autoridade" à página v.

O método Algo2 se parece muito com o método AlgOl, pois também valoriza os nós considerados bons authorities. Entretanto, este método acrescenta mais um pasâmetro de confiança, que é a certeza de que o nó também é apontado por bons hubs. Ou seja, dado um nó v, os pais de v devem ser bons hubs (grau de saída alto) e o nó v precisa ser um bom authority. Esta idéia foi discutida nas Seções 2.2 e 2.4. O método Algo3 inverte a idéia do método Algo2 em relação ao pai do nó v. Ao invés de valorizar os nós cujos pais têm grau de saída alto, ele valoriza os nós cujos pais possuem graus de entrada alto, ou seja, os pais de um nó v qualquer devem ser bons authorities. Para ilustrar a idéia por trás desse método, considere páginas de um mesmo domínio, sendo uma delas de conteúdo mais restrito.

A

página com conteúdo mais restrito pode ter poucas referências externas, porém seus pais podem vir a ter muito mais referências, por possuírem um conteúdo mais amplo. Por exemplo, conside o site da CBF um síte sobre futebol que, por se tratar do órgao máximo de futebol do Brasil, é referenciado por diversos outros sites no mundo. Considere também um dos tópicos deste site sobre arbitragem (http://www.cbf.com. br/sitearbitros). Se um link

A

aponta para o site de arbitragem da CBF, por seu pai (site da CBF) ser muito sefesenciado, o peso do link

A

será alto, diferentemente dos métodos anteriores.

Inspirado no método Companion discutido na Seção 2.4.1, adicionamos ao algoritmo uma heurística para priorizar links entre páginas de diferentes domínios Web. Em cada passo da busca aleatória, se a página possuir mais de 10 links para páginas em seu próprio domínio, então com probabilidade 0,9 consideramos apenas os links para páginas de domínios Web distintos da página atual, forçando a busca a transitar para um outro domínio Web. Com probabilidade 0 , l consideramos todos os links da página atual.

'Confederação Brasileira de Futebol, órgão máximo do futebol brasileiro -

(36)

Ap6s L, defiriiçiio d9s m4todos e de medeh de hiisca akatória, apresentamos e

nosso algoritmo iterativo para o relacionamento de páginas Web. A entrada do algoritmo é uma URL e a quantidade de passos a serem realizados sobre a cadeia de Markov:

Entrada:

URL,

nurnPassos; Saída: URLrewosta; i u t U R L ; 2 resposta c u; numPassos t numPassos - 1; 16 l5

I

u + URLrcsposta; 17 fim

Algoritmo 4: Algoritmo Iterativo RS

3 ptotal + 1;

4 enquanto numPassos

o

O faça

No passo 5 do Algoritmo 4 chama-se a função HeumSticaDeCorte(u) que recebe

5 6 r 8 9 10 11 12 13 14

como parâmetro uma URL. Esta função implementa a heurística que discutimos anteriormente para príorizar os links para domínios Web diferentes do domínio de

HeuTisticaDeCorte(u); para cada filho v de u faça

w

t peso de (u -+ v ) de acordo com o método escolhido (AlgOl,

Algo2 ou Alg03); ptotal t Ptotal f

w;

P + (wlptotal); j3 c chooseEdge(p); s e j3 = verdadeiro então

I

~RLrewosta +

v;

fim fim

u. Isso ajuda a evitas que o algoritmo fique preso dentro de um mesmo domínio caso encontre páginas com botões voltar, links de menus, lznks para voltar ao topo

da página etc.

No passo 10 do Algoritmo 4 chama-se a função chooseEdge(p) que recebe como parâmetro um valor p entre O e 1. Este valor p representa a probabilidade de

(37)

trmsiçk da página ?I, para a phgina 1~. Nesta -hqão pega-se

um

nlherro aleatório

entre O e 1 e, caso ele seja inferior ao valor p, retorna-se verdadeiro, indicando uma possível transição para a página v. Caso contrário, retorna-se falso.

Os dados de entrada do algoritmo são uma

URL

e a quantidade de passos a serem executados pela cadeia de Markov. A quantidade de passos é importante para o nosso algoritmo pois é este dado que diferencia o nosso algoritmo de todos os outros apresentados. Um dos nossos objetivos é discutir a quantidade de passos máxima que podemos caminhar sobre a cadeia de Markov e, ainda assim, garantirmos o relacionamento entre páginas.

Enquanto que um valor muito pequeno para o número de passos faz a busca aleatória ficar muito restrita a poucas páginas, um valor excessivamente grande para o número de passos é igualmente ruim. Note que a cadeia de Markov definida por esse processo é ergódica e, portanto, converge para uma distribuição estacionária única que independe do nó onde a busca é iniciada. Portanto, se o número de passos for muito elevado, o algoritmo retornará uma página aproximadamente de acordo com a distribuição estacionária dessa cadeia de Markov e, portanto, a saída do algoritmo será de certa forma independente da URL fornecida de entrada.

O Capítulo 4 discute o processo involvendo a implementqão desses algoritmos, incluindo a fase de captura dos dados para testes.

(38)

Capítulo 4

lmplement açoes

4.1

Introdução

A

h

de avaliar a eficácia dos algoritmos apresentados no Capítulo 3, precisamos obter uma pequena porém significativa amostra da estrutura dos links da Web. Para isso implementamos algumas ferramentas, sendo a principal das quais um Web

proxyl que captura os links da página atual sendo visitada.

Este capítulo apresenta as ferramentas utilizadas na implementação dos algoritmos vistos no Capítulo 3. Na Seção 4.2 descrevemos uma arquitetura para servidores Web que é a base das implementações descritas neste capítulo. Na Seção 4.3 descrevemos a implementação de um Web proxy, o qual foi utilizado na captura dos dados de testes deste trabalho.

A

captura dos dados de testes e a obtenção dos resultados foram implementados em momentos distintos, por isso dedicamos uma seção para cada uma dessas etapas. Dessa forma na Seção 4.4 apresentamos a classe que captura as informações da Web (ou seja, os dados de testes) e na Seção 4.5 discutimos a implementação da classe de obtenção dos resultados a partir dos dados de teste.

Web proxy é um tipo de servidor que atua como intermediário, recebendo requisições clientes (usualmente provenientes de protocolo HTTP) e as repassando ao servidor de destino.

(39)

O Brazil Framework [31] é uma arquitetura para servidores Web mantido pela SUN [32] que visa conectar pessoas a informqões, sistemas ou outros dispositivos computacionais de forma segura e fácil. A arquitetura foi desenvolvida com a linguagem de programação Java e, por ser uma linguagem orientada a objetos, possui inúmeras facilidades de reuso de código.

O Brazil Fkamework é constituido principalmente de dois objetos denomindados Servidor e Requisição e uma interface chamada Handler. Cada um destes objetos possui carmterísticas importantes para o J%amework, 8 e n d ~ a principal delas o recebimento da requisição do usuário e o envio da resposta gerada por essa requisição. O protocolo para envio e recebimento das requisições dos usuários é o HTTP, o qual é protocolo mais utilizado na Web [33]. O handler é uma interface que tem por objetivo prover um mecanismo onde funcionalidades podem ser adicionadas à arquitetura do Brazil Fkamework.

O projeto Brazil foi desenvolvido para servir como um portal ou agregador de conteúdo. Com esse objetivo, ele foi desenvolvido a fim de servir de intermediário entre os servidores de conteúdo e os usuários, possibilitando a personalização de páginas Web e conteúdos diversos e, além disso, sendo flexível o suficiente para se ajustar a praticamente todo tipo de material atualmente disponível na Web.

A implementação da arquitetura do Brazil Framework baseia-se na flexibilidade e poi-tabilidade.

A

portabilidade se deve basicamente ao fato dela ter sido implementada na linguagem Java, que é independente de plataforma e, portanto, totalmente portável. A flexibilidade da arquitetura deve-se ao fato de que os desenvolvedores podem utilizá-la de três formas distintas: servidor Web, rnicro- servidor ou meta-servidor,

Cada uma dessas formas possui a sua própria função. Os servidores Web, por exemplo, são responsáveis por receber requisições dos navegadores e enviar como resposta a página Web solicitada. Os meta-servidores, também comumente chamados de Web proxies, servem como interface entre os navegadores e servidores Web. Sua função se restringe basicamente a receber a requisição dos navegadores e repassá-la ao servidor Web apropriado. Os micro-servidores, em contrapartida, são servidores que possuem pequenos materiais mas que não são suportados por

(40)

navegadores. Per esse aotivo estes servidores precisam trabalhar em conjimto com os meta-servidores.

O emprego desta arquitetura como um meta-servidor é um dos pilares deste trabalho. Essencialmente, esta abordagem permite que o servidor utilize conteúdos de milhares de servidores Web existentes. Esta irnplementqão nos permite buscar informações de outros servidores Web e apresentá-las num formato visual padronizado e personalizado para o site. Resumidamente, a tecnologia responde a uma requisição URL feita por um navegador Web, recupera o conteúdo em pequenas partes (que podem estar localizados em vários servidores diferentes), analisa e junta todo o conteúdo em uma só página, faz as transformações visuais necessárias e envia o resultado para o usuário.

As inúmeras funcionalidades e a enorme flexibilidade do Brazil Framework fizeram com que ele se tornasse uma ferramenta essencial para este trabalho. A captura de informações de páginas Web e a análise do conteúdo destas páginas são dois passos importantes para o armazenamento e a avaliação da estrutura dos links da Web. Como discutido nos Capítulos 1 e 2, a exploração da estrutura dos linlts da Web atinge diretamente o foco principal desta dissertqão.

Na Seção 4.3 discutimos a implementação de um meta-servidor ou Web proxy implementado sobre a arquitetura do Brazil Framework. Na Seção 4.4 apresentamos a implementação de uma classe sobre essa arquitetura. Esta classe é a responsável pela captura da estrutura de links das páginas Web.

4.3

Pro-Active Webfilter

Pro-active Webfilter (PAW) é um Web proxy de cóc digo aberto e que poc i e ser modificado sob a licensa do Apache [34]. É um projeto desenvolvido com tecnologia Java baseado no Brazil Fmmework Haja vista que ambos são desenvolvidos com tecnologia Java, o servidor

PA W

possui a mesma portabilidade do Brazil Fkamework. O PAW é uma ferramenta de fácil utilização, tanto para usuários quanto para desenvolvedores, e pode ser dividido em dois componentes básicos:

Servidor PA

W

-

responsável pela filtragem das requisições HTTP e resposta ao usuário;

(41)

Por se tratar de um Web proxy, ele permite a manipulação de requisições HTTP e de respostas no formato HTML. Essas manipulações são feitas através de handlers e de Jilters. Sucintamente, os handlers são responsáveis pelas requisições HTTP, ao passo que os filters se encarregam do envio dos dados no formato HTML para o usuário.

A interface gráfica é de fácil utilização, o que propicia a manutenção do servidor e dos filters e handlers de maneira rápida e eficiente. Isto advem do fato de que estes dois componentes possuem arquivos de configt~ra@iio escritos na linguagem XML.

Na próxima seção é apresentada a implementação de um Jilter, que é utilizado para recupera a estrutura de links da Web através da análise do documento HTML gerado para ser enviado ao usuário.

4.4

Captura dos Dados

O crescimento desordenado da World Wide Web ainda é instrumento de pesquisa em todo o mundo. Hoje em dia, a utilização da Web por milhões de usuários dificulta a coleta de dados estruturais como um todo. Milhares de pessoas publicam informações a todo momento. Publicar informações significa atualizar sites ou criar novos endereços URLs. Essas atividades são efetuadas pelos próprios usuários e a validação dos links existentes na página não é feita por qualquer ferramenta ou compilador.

As páginas Web, em sua maioria, são criadas utilizando-se a linguagem HTML (Hypertext Markup Language), a qual não recebe qualquer validação de seus links. Quando falamos de validação de um link, nos referimos à existência da URL apontada por este link. Isto deve-se ao fato de que a linguagem HTML é

uma linguagem limitada à marcação de texto e não possui um compilador2 ou um interpretador.3 Portanto, criar ferramentas que varrem o código em busca

2Programas que leêm o código fonte de uma linguagem de programação e o transforma em linguagem de máquina para ser executado pelo processador. Após compilados, os programas podem ser executados inúmeras vezes.

3Programas que leêm o código fonte de uma linguagem de programação e o transforma em linguagem de máquina, sendo que esta transformação acontece imediatamente antes que cada

(42)

de padrões (chamados de parser) é iim trabdho & h o e exaustivo; Nesta seqão apresentamos um parser de documentos HTML que buscam endereços URL dentro destes documentos.

Os diversos formatos de apresentação de links admitidos pela linguagem HTML corroboram a idéia de difícil criação de um parser para essa linguagem. Este não é

o principal problema para se criar um parser e talvez seja o menor deles. Os grandes problemas são realmente os abundantes erros de digitação e de sintaxe existentes nas páginas Web. A Figura 4.1 ilustra um erro de sintaxe frequentemente encontrado nas páginas Web e largamente aceito pelos navegadores Web modernos. Na Figura 4.2 mostramos a maneira correta com que esse exemplo deve ser escrito de acordo com as definições HTML.

Figura 4.1: Exemplos de erros de sintaxe em um arquivo HTML

Em documentos HTML, as marcações do texto são feitas por tags que devem aparecer entre os caracteres

<

e

>.

Em sua maioria, as marcações são delimitadas por um tag de abertura e um tag de fechamento, como por exemplo <b> e </b>, respectivamente (para maiores detalhes sobre a especificação HTML, veja [35]).

Na Figura 4.1 está faltando o fechamento d a tag <a>, o que caracteriza um erro de sintaxe. Porém isso não inviabiliza a visualização do documento pelo navegador, o qual é capaz, de mostrar salva uma ligeira diferença de formato em relação a

linha do programa seja executada. Assim, a cada execução do programa, uma nova execução do interpretador se faz necessária.

(43)

Figura 4.2: Correções de sintaxe do HTML da Figura 4.1

versão com a tag de fechamento </a>. O problema de visualização da página Web é mínimo pois, apesar de a página não ser apresentada exatamente como o seu criador gostaria que fosse, ela continua sendo válida e o link também continua sendo

válido. A grande dificuldade é na criação de um parser HTML para interpretar páginas com esses erros de sintaxe.

Diferente de linguagens de programação que precisam ser compiladas ou interpretadas, a linguagem HTML é apenas para marcação de textos. Por isso, os erros de sintaxe passam despercebidos em HTML, pois a linguagem não possui qualquer verificação anterior à sua publicação. Ou seja, a linguagem HMTL não é interpretada nem compilada, o que facilita a existência de erros de sintaxe conforme os descritos acima.

Como vimos, erros de digitação e erros de sintaxe podem ocorrer em documentos HTML. Podemos prever alguns erros de sintaxe, porém isso não é possível para os erros de digitação. Portanto, ao recolhermos os dados de testes não validamos os endereços URL obtidos. A validação, ou melhor, a verificação d a existência do endereço URL só é feita numa etapa posterior, a ser discutida na Seção 4.5.

O parser HTML navega pelas diversas tags do documento. Na verdade, o parser não busca por tags HTML especificamente, mas sim por qualquer tag, ou seja, qualquer string que esteja entre

<

e

>.

Sendo assim, ao encontrarmos as tags <a> e </a>, buscamos por seus atributos "href" ou "onclick" e os valores que

Referências

Documentos relacionados

Os resultados deste estudo mostram que entre os grupos pesquisados de diferentes faixas etárias não há diferenças nos envoltórios lineares normalizados das três porções do

Podem treinar tropas (fornecidas pelo cliente) ou levá-las para combate. Geralmente, organizam-se de forma ad-hoc, que respondem a solicitações de Estados; 2)

ministradas pelo professor da disciplina, indagado sem poderia ter outra possibilidade de metodologia, e não continuar como a velha máxima do Futsal e Carimba o mesmo

No entanto, maiores lucros com publicidade e um crescimento no uso da plataforma em smartphones e tablets não serão suficientes para o mercado se a maior rede social do mundo

esta espécie foi encontrada em borda de mata ciliar, savana graminosa, savana parque e área de transição mata ciliar e savana.. Observações: Esta espécie ocorre

O valor da reputação dos pseudônimos é igual a 0,8 devido aos fal- sos positivos do mecanismo auxiliar, que acabam por fazer com que a reputação mesmo dos usuários que enviam

Na última etapa em que a pesquisadora apresentou uma frase com e sem segmentação convencional a maioria das crianças elegeu a escrita segmentada de forma convencional

 Rendimentos de trabalho por conta própria, os quais são os auferidos no exercício, de forma independente, de profissão em que predomine o carácter