Você está na página 1de 16

Introduo

Encontrar a informao desejada na Web uma atividade que depende do uso de mquinas de busca e, consequentemente, de sua eficincia e eficcia. Para permitir a busca por palavras chaves, frases ou consultas booleanas no contedo completo de textos (full text searching), as ferramentas de busca varrem a Web, fazendo o download dos textos, indexando seu contedo. Desde dezembro de 1997, a relao entre a cobertura relativa de ndices de mquinas de busca e o nmero estimado de pginas pblicas indexveis na Web tem reduzido substancialmente. Em 1999 nenhum ndice cobria mais do que 16% do tamanho estimado da Web indexvel [9]. Neste mesmo ano, o nmero estimado de pginas pblicas indexveis era de 800 milhes, totalizando cerca de 15 terabytes de dados ou 6 terabytes de texto, aps a remoo de rtulos HTML, comentrios e espaos em branco [9]. Uma consequncia do crescimento da Web, alm da invisibilidade da maior parte deste contedo, o aumento do esparsamento do mapeamento destes ndices sobre o contedo pblico indexvel, podendo tornar vagas, consultas feitas por palavras chave ou combinaes booleanas [8]. Uma alternativa para aumentar a preciso na busca de informaes na Web a pesquisa por frases, na qual, o usurio especifica uma frase completa que deseja encontrar na base de dados. Entretanto, para a realizao de busca por frases, mquinas de busca devem incorporar mtodos apropriados. Este artigo apresenta uma comparao entre os resultados obtidos em implementaes de mecanismos de busca por frases utilizando ndices de arquivos invertidos com contadores de posio e ndices para a prxima palavra (Nextword Indexes)[8].

Tcnicas de busca por frases em bancos de dados textuais


Um banco de dados textual uma coleo de documentos, que pode tambm ser visto como um largo conjunto de registros, em que cada registro contm apenas uma lista de palavras de tamanho arbitrrio. Os dois mtodos principais de busca por frases em bancos de dados textuais de larga escala, utilizando indexao de textos, so os arquivos invertidos com contadores de posio e ndices para a prxima palavra[12]. Um arquivo invertido possui duas partes principais: uma estrutura de busca, chamada de vocabulrio, contendo todos os termos distintos existentes no texto indexados e, para cada termo, uma lista invertida que armazena os identificadores dos registros contendo o termo. Consultas so feitas tomando-se a lista invertida correspondente ao termo procurado. As consultas booleanas so feitas obtendo-se a conjuno ou disjuno entre as listas relativas ao termos

presentes na consulta. Arquivos invertidos podem ser utilizados para busca de frases, atravs da adio de mais informaes a lista invertida. Basicamente, adiciona-se os deslocamentos no texto em que ocorrem as palavras. Os ndices para a prxima palavra apresentam uma abordagem mais eficiente do que o uso de arquivos invertidos com contadores de posio. Nessa abordagem, para cada palavra existente no vocabulrio criado uma lista com as palavras que ocorrem em uma posio subsequente no texto, juntamente com apontadores de posio para essas ocorrncias. Este trabalho apresenta em detalhes essas 2 tcnicas, com uma breve comparao entre elas. Na seo 2 detalhamos os ndices invertidos com contadores de posio. Na seo 3 demonstramos os ndices para a prxima palavra. Na seo 4, apresentamos algumas tcnicas de compresso, em especial, tcnicas a serem aplicadas para o ndice para a prxima palavra. Finalizando, na seo 5 apresentamos nossas concluses e, na seo 6, sugerimos alguns trabalhos futuros.

ndices Invertidos com Contadores de Posio


Arquivos invertidos so tradicionalmente usados para a implementao de ndices lexicogrficos, ou seja, de ndices ordenados [7]. Aplicado ao contexto de pesquisas por frases, um arquivo invertido pode ser visto como uma lista ordenada de palavras-chave contendo, para cada palavra, um apontador para cada um dos documentos em que a palavra ocorre, juntamente com a posio da palavra nesse documento. Este tipo de ndice torna uma busca bem mais eficiente, no entanto, ela possui um custo adicional. A dimenso de um arquivo invertido da ordem de 10 a 100% do tamanho do texto original [7]. Alm disso, a cada atualizao dos documentos originais, necessrio atualizar o arquivo invertido. A figura 1 mostra esquematicamente um arquivo invertido onde so documentos indexados, e so as localizaes em que as palavras ocorrem nesses documentos.

Figura 1: Esquema de um arquivo invertido

Em busca do compromisso adequado entre capacidade de pesquisa e uso efetivo de recursos, comum impor certas restries ao arquivo invertido e, consequentemente, capacidade de pesquisa possibilitada. Restries no vocabulrio (remoo de palavras mais frequentes, artigos e preposies, por exemplo), tornam o arquivo invertido menor e aceleram as consultas, sob o risco de torn-las mais imprecisas (justamente pela remoo de palavras que podem ser relevantes). Um arquivo invertido como o mostrado na figura 1, pode ser aplicado diretamente na busca por um termo nico. Em uma busca por frases fazemos mltiplas pesquisas, procurando ocorrncias sucessivas dos termos em um documento. O encadeamento das mltiplas pesquisas feito do seguinte modo: 1. O primeiro termo pesquisado. Como resultado, temos uma lista temporria de documentos e posies do termo nos documentos. 2. O prximo termo pesquisado nos documentos existentes na lista temporria, sendo retirados dela, os documentos em que o termo no ocorre na posio adequada (posio subsequente ao termo anteriormente pesquisado). 3. O processo se repete at que o ltimo termo tenha sido encontrado, ou at que a lista temporria fique vazia, indicando que a frase no foi encontrada. Se considerarmos que este processo que executamos uma repetio de mesclagens (merge ) de listas, teremos custo linear para o processo de busca. O custo em espao tambm ser linear, uma vez que alocada uma entrada na lista temporria para cada ocorrncia de um termo. Fica claro que a ordem de busca dos termos da frase de fundamental importncia. A cada passo da pesquisa, a lista temporria sofre apenas remoes. Assim, devemos iniciar a busca pelo termo menosfrequente (fazendo a pesquisa em ordem diferente da ordem de ocorrncia de termos na frase). Com esta alterao na ordem, minimizamos tempo e espao, j que a lista temporria ser iniciada com o menor tamanho possvel. A pesquisa iniciando por palavras com muitas ocorrncias no texto pode levar a lista temporria a uma dimenso intratvel. Em nossos experimentos, pudemos constatar que, ao efetuar uma consulta na ordem direta, iniciando a busca com uma palavra muito frequente, o equipamento de testes entrou

em thrash , inviabilizando a execuo da consulta para conjuntos de documentos com tamanho acima de 20MB. Diversas tcnicas de otimizao podem ser empregadas na consulta de frases com arquivos invertidos. Uma otimizao importante a compresso desses arquivos. Como as dimenses de um arquivo invertido (10 a 100% do espao indexado) o tornam imprprio para uso em memria primria, uma prtica manter os vetores de pesquisa em memria secundria. A reduo do tempo de acesso a estes vetores, advinda da reduo de ocupao de disco que a compactao propicia, permite ganhos de desempenho significativos [2].

Figura: Frequncia de palavras

A questo das palavras mais comuns e do dicionrio negativo tambm tm fundamental importncia. Se no incluirmos em um arquivo invertido as palavras constantes em um dicionrio negativo, ou as palavras muito frequentes, porm pouco significativas, podemos reduzir a dimenso desses arquivos, com ganhos em espao e tempo de processamento das consultas. Em nossos experimentos pudemos verificar a reduo de espao nos arquivos

invertidos, conforme mostrado no grfico 4. Tambm contatamos uma diminuio no tempo de indexao, conforme o demonstrado no grfico 3.

Figura: Tamanho do ndice

Para a construo dos ndices foram eliminadas as 10 palavras mais comuns, que correspondem a cerca de 20% do total de palavras nos documentos. Os ganhos em espao so mais significativos se considerarmos que a operao de consulta mais frequente que a de indexao. A principal perda justamente a eliminao de termos que podem se tornar relevantes em alguma situao particular. Um exemplo clssico uma frase composta apenas por palavras comuns, que no poder ser respondida pela consulta ao arquivo invertido, caso tenhamos ignorado essas palavras na consutruo do ndice.

Figura: Tempo de indexao

Implementao

Implementamos um esquema simplificado de listas invertidas para permitir o levantamento de algumas informaes caractersticas deste tipo de ndice e sua comparao com outros tipos de indexao. Nesta implementao todo o ndice foi mantido em memria primria. Para a criao do vocabulrio foi usada uma rvore binria. Cada n da rvore contm uma lista de ocorrncias da palavra indexada. Cada n da lista contm uma lista de ocorrncias da palavra no documento. Para a medio de espao foram considerados os campos da estrutura que seriam armazenados em um arquivo no disco: palavras do vocabulrio, nomes de arquivos e localizao das palavras nesses arquivos. Nenhum esquema de compactao foi considerado. As medies efetuadas permitiram confirmar os resultados previstos pela lieratura com relao a complexidade de tempo e espao e importncia da eliminao de palavras comuns.

ndices para Prxima Palavra


Arquivos invertidos permitem a avaliao de consultas por frases, mas as abordagens orientadas a indexao de frases so mais eficientes. Uma dessas abordagens conhecida como ndice para prxima palavra [8]. Um ndice para a prxima palavra consiste de um vocabulrio de palavras distintas e, para cada uma dessas palavras w, uma lista com as prximas palavras que a sucedem. A lista de prximas palavras consiste de todas as palavras s que sucedem w em algum local da base de documentos. Para cada par ws existe uma seqncia de localidades, determinando o documento e a posio em que esse par ocorreu [8].

Figura: Exemplo de ndices para a prxima palavra.

Na figura 5 temos um exemplo desses ndices. No primeiro nvel deles temos as palavras do vocabulrio. Essas palavras correspondem s palavras existentes na base de dados que possuem uma palavra sucessora. No segundo

nvel temos o ndice para a prxima palavra. Os dois primeiros nveis so implementados como rvores binrias. Cada palavra no primeiro nvel contm um ponteiro para uma rvore de prximas palavras. Essa rvore contm o endereo de incio de uma lista de documentos em que o par de palavras ocorre. Cada documento dessa lista possui o endereo de uma outra lista contendo as posies em que ocorreram esses pares. Atravs dessas posies podemos testar a ocorrncia de frases. Para a recuperao da frase ``the man who is'', inicialmente devemos determinar os pares a serem pesquisados. Uma vez que o nmero de palavras na frase par, podemos agrupar em pesquisas ao ndice de prxima palavra. Dessa forma, realizamos a recuperao do par ``the man'', juntamente com a recuperao do par``who is''. Analisando a figura 5, notamos que o par ``the man'' ocorre no documento 5, na posio 235. Fazendo o mesmo para o par ``who is'', podemos constatar sua ocorrncia no mesmo documento 2 posies subseqentes. Isso significa que os pares se sucedem no texto. Pares distintos so sucessivos se ocorrem com diferena de 2 posies. Pares compostos so sucessivos se possuem diferena de 1 posio. Se a consulta desejada fosse a frase ``the man who'', estaramos impossibilitados de dividir a frase em pares distintos. Nesse caso, teramos que procurar o par ``the man'' e o par ``man who''. Esses pares, para serem considerado sucessivos, devem ocorrer com uma diferena de 1 posio nos ndices. Existem diversas tcnicas para otimizar a pesquisa por frases. Na seo 3.2 discutimos essas alternativas. A tcnica de ndice para a prxima palavra pode auxiliar no apenas na pesquisa por frases. Dentre suas outras utilidades destacamos [8]:

Navegao em frases. Dado uma palavra w, o ndice pode ser utilizado para identificar todas as palavras seguintes. Esta funcionalidade no pode ser alcanada pelos arquivos invertidos. O ndice pode ser utilizado para a complementao de frases e complementao de palavras dentro de uma frase.

Abordagem combinada
Os logs do Excite de 1997 a 1999, tendo retirado as consultas de teor pornogrfico, apresentaram 1.583.922 consultas, incluindo as consultas duplicadas. Nessas consultas, 132.276 eram consultas explcitas a frases. Do conjunto total de consultas, apenas 5% possua uma palavra que no existia no texto. De todas as consultas que no eram frases, 41% possuam frases encontradas na base de dados (contendo 21.9 Gb de informaes). Em 8,4% das consultas realizadas existia uma das 3 palavras mais comuns da lngua inglesa.

Baseado nesse grande nmero de ocorrncias de palavras comuns foi proposto uma abordagem hbrida, combinando arquivos invertidos e ndices para a prxima palavra [3]. Esta tcnica tem como objetivo manter a eficincia das consultas, ao mesmo tempo que se prope a diminuir o tamanho dos ndices gerados. Nesse esquema, denominado esquema baseado na freqncia mxima (top frequency), utilizado o fato das palavras comuns existirem em grande parte das consultas para melhorar o tempo de resposta. Nesse caso, apenas as palavras mais comuns so utilizadas como ndice para a prxima palavra. O restante das palavras indexado normalmente, na forma de ndices invertidos. As palavras comuns tambm so indexadas como ndices invertidos, uma vez que elas podem ocorrer em final de frases.

Figura: Exemplo de ndice utilizando a abordagem combinada.

Na figura 6 temos um exemplo dessa abordagem. Nela, temos um vocabulrio com 5 palavras, sendo duas palavras comuns (the, who). No caso de uma consulta pela frase ``the man who is very tall'', iniciamos pelos pares que comeam por palavras comuns. Assim, realizamos a busca dos ndices para ``the man'' e ``who is''. Como as palavras very e tall no so palavras comuns, devemos recuperar seus ndices invertidos, para posterior combinao dos resultados, descobrindo assim, onde eles se sucedem. No caso dos dois pares com palavras comuns, encontramos no documento 5 uma sucesso. Precisamos realizar a pesquisa na lista dos dois outros vocbulos para descobrir se eles tambm aparecem no documento 5. A pesquisa nos ndices para a prxima palavra propicia uma reduo na quantidade de elementos a pesquisar. Este o ponto chave para melhoria no desempenho. Com menos itens a verificar, sero necessrios menos acessos ao disco, reduzindo o tempo de resposta.

Tabela: Tempo de Consulta Nmero de Palavras Comuns 1,56 3 6 10 20 254 0,76 0,57 0,53 0,50 0,46 Tempo Total Consultas Consultas

com 2 palavras com 5 palavras 0,49 0,31 0,31 0,30 0,30 0,27 6,41 2,28 2,28 2,10 1,98 1,83

Na tabela 1, temos uma comparao entre consultas a frases utilizando arquivos invertidos e a abordagem combinada [3]. Nela podemos visualizar o ganho de desempenho obtido com a introduo de poucas palavras comuns em um ndice para a prxima palavra. Na tabela 2 temos o tamanho do ndice para a prxima palavra, utilizado na abordagem hbrida, com diferentes quantidades de palavras comuns utilizadas na sua construo [3]. Nessa tabela temos ainda uma comparao desse tamanho, em relao ao tamanho total do ndice invertido. A utilizao exclusiva dos ndices para a prxima palavra tem o incoveniente de duplicar o tamanho dos ndices, alm de dificultar a pesquisa por ordem (rank). A abordagem combinada reduz o tamanho dos ndices e mantem uma estrutura mais adequada para a pesquisa por ordem.
Tabela: Tamanho dos ndices Nmero de Tamanho % em Relao ao

Palavras Comuns do ndice ndice Invertido 3 6 10 20 254 254 427 520 657 1366 10,81% 18,17% 22,13% 27,46 % 58,13%

Planejamento de consultas
A utilizao de consultas com ndices para a prxima palavra traz mais eficincia s pesquisas. Essa eficincia pode ainda ser melhorada atravs de um melhor planejamento das consultas a serem realizadas. Esse planejamento refere-se forma como os pares so selecionados para a pesquisa [2]. Como exemplo, suponha a realizao da pesquisa pela frase ``1980 year of the Tiger''. Quando possumos uma quantidade par de palavras, podemos simplesmente combin-las duas a duas para montar a consulta. No caso de um nmero mpar de palavras, podemos apenas agrupar os itens 2 a 2 e, no caso do ltimo item, realizarmos uma combinao com a penltima palavra. Nesse caso teremos pares para consulta. No caso da frase acima, selecionamos os pares``1980 year'', ``of the'' e ``the Tiger''. Essa abordagem de simplesmente agrupar os pares, sem levar em considerao a quantidade de ocorrncias desses pares, chamada de estratgia descuidada(naive) [2]. Essa abordagem usa o mnimo possvel de pares para a consulta. Uma outra abordagem, denominada abordagem mnima, usa tambm o mnimo possvel de pares, no entanto, todos os possveis agrupamentos so analisados busca dos pares que possuem menos ocorrncias, facilitando assim o conjunto total a ser pesquisado. Em uma outra estratgia, chamada de estratgia ordenada, realizamos todas as possveis combinaes permitidas entre os pares de palavras, buscando uma combinao que minimize o conjunto de pesquisa. Nessa procura, podemos encontrar um nmero de pares maior que o mnimo exigido, diferentemente das tcnicas anteriores. As abordagens descuidada e mnima ainda podem ser otimizadas atravs de uma ordenao na ordem de avaliao dos pares. Nesse caso, iniciamos a consulta pelo par com maior raridade de ocorrncia, continuando o casamento pelos pares restantes (ordenados por raridade), at que todo o conjunto de pares tenha sido pesquisado. Na figura 7 temos uma comparao entre os tempos de resposta para essas abordagens [2]. Nela podemos constatar que o planejamento das consultas traz ganho de desempenho. As consultas utilizando a abordagem ordenada obtiveram melhor desempenho, seguido pela abordagem mnima ordenada e a abordagem descuidade ordenada. Embora teoricamente a abordagem descuidada ordenada devesse sempre obter tempos melhores que a abordagem sem ordenao, o gasto proveniente com essa ordenao influencia no resultado final, uma vez que ela no consegue ganhos significativos na pesquisa. Os ganhos obtidos com a abordagem ordenada justificam a

introduo de pares adicionais, uma vez que seu tempo de resposta foi quase sempre o melhor dentre todas as abordagens.

Figura: Comparao do tempo de execuo das diferentes estratgias de planejamento.

Experimentos realizados
Realizamos a implementao de um algoritmo para a indexao e busca utilizando arquivo invertido, e um algoritmo para indexao e busca utilizando ndices para prxima palavra. Esses programas no foram otimizados, sendo utilizados apenas para constatar a grande diferena de desempenho entre as tcnicas. Para a realizao das comparaes, utilizamos arquivos com diversos documentos do Wall Street Journal, disponveis na rede interna do DCC. Os testes consistiram na utilizao de 3 arquivos com 2, 10 e 20Mb de tamanho. Nas figuras 3 e 4 temos uma comparao entre os tamanhos dos ndices e o tempo gasto na indexao das palavras por cada uma das abordagens. Criamos um conjunto de 150 consultas aleatrias para cada um dos arquivos. Essas consultas possuam 50 frases com 2 palavras, 50 com 4 palavras e 50 com 6 palavras. Essas consultas foram submetidas aos 2 programas, realizando a contabilizao do tempo gasto para cada resposta. A diferena de desempenho obtida foi muito grande. O ndice para a prxima palavra conseguiu respostas, em mdia, 3 ordens de grandeza mais rpidas que as respostas utilizando arquivos invertidos. Na tabela 3 temos uma comparao nos desempenhos dos programas. Essa tabela mostra a mdia de tempo das consultas realizadas no arquivo de 10Mb para frases com 2, 4 e 6 palavras.
Tabela: Tempos de resposta

Palavras

Tempo mdio

Tempo mdio

em arquivos invertidos em Nextword 2 4 6 0,150 0,271 0,267 0,00005 0,00011 0,00036

Compresso de ndices
O objetivo principal do uso de qualquer estrutura de ndices aumentar a velocidade de recuperao da informao indexada. Como pudemos observar nos experimentos, o tamanho das listas de arquivos invertidos e ndices para prxima palavra assumem propores grandes com relao ao texto indexado. Este problema tem sido abordado sob dois pontos de vista: A aplicao direta de algoritmos de compactao de nmeros inteiros (convenientes para listas invertidas), tais como os cdigos delta e gama de Elias, a codificao Golomb-Rice[10] orientados a bits (bitwise) e esquemas orientados a Bytes (Bytewise). Uma outra abordagem a busca por esquemas de representao de listas que facilitem a compactao[2]. O uso de compresso reduz tanto o tamanho dos arquivos de ndices quanto o tempo necessrio para avaliao de consultas[10]. Sem o uso de compresso, o custo de recuperao de listas invertidas a soma entre o tempo gasto na procura e recuperao da lista no disco, aliado ao tempo gasto para transferir a lista para o cache da CPU, antes desta ser processada. Usando listas compactadas, a velocidade de acesso s listas invertidas fica em funo dos requisitos computacionais para a decodificao dos dados e o tempo necessrio para recuper-la do disco e disponibiliza-la no cache da CPU, para posterior processamento. Para que um esquema de compresso permita acesso relativo rpido a listas invertidas, a soma do tempo de recuperao das listas e o processamento adicional de decodificao deve ser menor que o tempo de recuperao de listas no comprimidas. Um aspecto que torna o uso de compactao ainda mais atrativo ela aumenta o nmero de listas invertidas presentes no cache da memria, reduzindo o nmero de acessos a disco[10].

Algoritmos de compactao
Algoritmos de compactao podem usar combinaes adequadas para cada classe de informao armazenada. Na compactao de ndices invertidos com

deslocamento, utilizados na busca por frases, pode-se usar os esquemas orientados a bits (cdigos de Elias e Golomb-Rice) e esquemas orientados a Bytes(Bytewise) para representar identificadores de documentos, juntamente com a frequncia do termo no documento e os deslocamentos existentes. Melhores resultados podem ser obtidos com a compresso orientada a Bytes[10]. Nesta, um inteiro k representado em uma sequncia de blocos de 8 bits, onde os 7 bits menos significativos so usados para representar o valor e o bit remanescente usado para indicar se o respectivo bloco o ltimo ou se existe um prximo bloco. Por exemplo, para os nmeros inteiros entre 2 7 e 214, dois blocos so necessrios para obter todas as representaes. O primeiro bloco contm os 7 bits menos significativos do nmero e o oitavo bit usado para indicar que existe um prximo bloco. O segundo bloco contm os bits mais significativos restantes e o oitavo bit indica que o bloco o ltimo.

Representao eficiente de ndices para prxima palavra


O principal objetivo dos esquemas alternativos de deslocamentos prover informao suficiente para a localizao de elementos dentro de um conjunto, minimizando o espao necessrio para armazen-los. Isso pode ser alcanado atravs do uso de algoritmos especializados de compresso [4] [6] [11], ou atravs de formas alternativas de otimizao no armazenamento dos deslocamentos. Baseando-se na premissa que em consultas por frases no necessrio saber a posio absoluta de uma palavra dentro de um documento, tcnicas alternativas de clculo do deslocamento de palavras podem ser desenvolvidas [2], utilizando as posies relativas das palavras nas frases, causando uma reduo no tamanho dos nmeros armazenados, e, propiciando assim, uma diminuio no tamanho total dos ndices. Indicadores compostos Os indicadores de posio nos ndices para a prxima palavra so grandes, tipicamente em torno de 50% do tamanho do texto indexado [8]. Eles devem ser suficientemente eficientes para identificar se as palavras ocorrem de forma sucessiva em um texto, no importando aonde essas palavras ocorrem. A tcnica de indicadores compostos baseada nessa idia. Nesse caso, cada ocorrncia de uma palavra w em um texto tem um nmero associado. Esse nmero n se a ocorrncia em questo a ensima no texto. Na tabela 4 temos um exemplo dessa forma de clculo dos deslocamentos.

Nesse exemplo, para testarmos a ocorrncia de uma frase w1w2w3, devemos descobrir se existe um ndice composto para w1w2 e para w2w3 no documento. Se esses ndices existirem e, os ndices para w2 forem os mesmos, ento as palavras w1, w2 e w3 se sucedem dentro do documento, existindo a frase em questo. Para a pesquisa pela frase ``time the red'', encontramos os ndices compostos para ``time the'' e para ``the red''. Como o ndice para a palavra the o mesmo (tabela 4), a frase ocorre no texto.

Tabela: Clculo do deslocamento utilizando indicadores compostos Texto the first time the red dog saw the cat Desl. 1 1 1 2 1 1 1 3 1

Tabela: Clculo do deslocamento baseado em palavras repetidas Texto the first time the red dog saw the cat Desl 1 1 2 3 3 3 4 5 6

Deslocamento baseado em palavras repetidas Deslocamentos que nos permitam distinguir entre ocorrncias repetidas de uma mesma palavra em um texto so suficientes para a avaliao de consultas por frases. Uma outra alternativa para representao dos deslocamentos a representao baseada em palavras repetidas. Nesse caso, uitilizamos um contador para o deslocamento que somente incrementado quando uma palavra se repete. Para eliminar a possibilidade de casamentos falsos, esse contador incrementado por 2 em 2 passos. Devemos incrementar a ocorrncia de 1, uma palavra antes da nova ocorrncia do termo, e mais uma vez de 1 quando realmente o termo ocorre novamente. Na tabela 5 temos um exemplo dessa forma de clculo do deslocamento. Na tabela 6 temos uma comparao do tamanho dos ndices obtidos com as tcnicas de compactao citadas anteriormente. Podemos notar que os ndices compostos apresentam um melhor aproveitamento do espao, obtendo maiores redues no tamanho total dos ndices (medidos em Gb).

Tabela: Comparativo do tamanho do ndice para prxima palavra com compactao Tamanho do ndices Normal Composto Palavras Repetidas Web 4,37 3,81 3,99 WSJ 0,25 0,21 0,22

Concluso
Analisando os resultados dos experimentos realizados, foi possvel constatar a superioridade do ndice para prxima palavra. Os resultados obtidos demonstraram que o tempo de resposta utilizando esse ndice chegou a ser ordens de grandeza superior ao ndice invertido. Apesar desses resultados estarem de acordo com o previsto na literatura, a enorme discrepncia entre eles sugere que seja necessrio realizar um estudo mais detalhado das implementaes. Apesar da superioridade de desempenho do ndice para a prxima palavra, o ndice invertido superior em alguns aspectos. O tempo necessrio para indexao de uma base de dados foi, em mdia, dez vezes menor que o tempo exigido pelo ndice para prxima palavra (figura 4). Alem disso, o tamanho do ndice para prxima palavra fica em torno de 2 vezes o tamanho dos ndices invertidos (figura 3). Essas limitaes sugerem a utilizao dos ndices para prxima palavra juntamente com tcnicas de compactao, reduzindo assim suas fraquezas. A abordagem combinada incorpora as caractersticas de desempenho do ndice para a proxima palavra, ao mesmo tempo que permite a deciso sobre quanto a mais de espao estamos dispostos a gastar. Isso um fator atrativo, diante dos ganhos possibilitados.

Trabalhos Futuros
Para uma anlise mais detalhada das abordagens, sugerimos como trabalhos futuros a otimizao das implementaes, juntamente com a implementao da abordagem combinada, submetendo-as a consultas reais geradas por uma mquina de busca. Com isso, teremos uma anlise mais precisa do

comportamento das abordagens em casos reais. Alternativamente, poderamos utilizar a abordagem combinada, utilizando como palavras comuns as palavras que mais ocorrerem nas consultas. Nesse caso, os ndices deveriam ser refeitos a cada intervalo de tempo predefinido, aps a ordenao das palavras mais utilizadas, para que o ganho com desempenho se torne o mximo. Tambm sugerimos a utilizao de alguma tcnica de compactao para testar os ganhos produzidos com desempenho e tamanho dos ndices, no caso especfico dos ndices para a prxima palavra.