Você está na página 1de 2

Universidade Federal de Minas Gerais

Algoritmos e Estruturas de Dados II

Trabalho Prtico II: Mquina de Busca

A base para o funcionamento de uma mquina de busca, tais como Google e Yahoo!,
a construo de um ndice invertido para uma coleo de documentos. Dada a coleo de
documentos, um ndice invertido uma estrutura contendo uma entrada para cada palavra
(termo) que aparece em pelo menos um documento. Para cada palavra, o ndice invertido
armazena a lista de documentos que a contm. Por exemplo, dados os seguintes documentos:
Documento "d1.txt":
Quem casa quer casa. Porem ninguem casa.
Ninguem quer casa tambem. Quer apartamento.
Documento "d2.txt":
Ninguem em casa. Todos sairam. Todos.
Quer entrar? Quem? Quem?
Documento "d3.txt":
Quem esta no apartamento? Ninguem, todos sairam.
O ndice invertido seria:
apartamento
casa
em
entrar
esta
ninguem
no
porem
quem
quer
sairam
tambem
todos

d1.txt
d1.txt
d2.txt
d2.txt
d3.txt
d1.txt
d3.txt
d1.txt
d1.txt
d1.txt
d2.txt
d1.txt
d2.txt

d3.txt
d2.txt

d2.txt

d3.txt

d2.txt
d2.txt
d3.txt

d3.txt

d3.txt

Neste trabalho voc deve projetar um sistema que implementa uma mquina de busca
utilizando um ndice invertido. O trabalho consiste nas 3 partes, descritas a seguir:
Parte 1: Leitura de arquivos (1 ponto)
O sistema recebe como entrada um conjunto de arquivos de texto, que devem ser lidos,
palavra aps palavra, para construir o ndice invertido. Detalhes:
Voc pode assumir que os arquivos contm apenas caracteres que so letras (az e
AZ), nmeros (09), e caracteres de pontuao (",", ".", "?", etc.).
Voc pode assumir que o texto no tem acentos nem "".
Aps ler cada palavra, voc deve (i) transformar todas as letras maisculas em
minsculas e (ii) apagar todos os caracteres que no so letras ou nmeros. Por
exemplo, depois de ler "GuardaChuva?", voc deve transformla em "guardachuva",
antes de inserila no ndice invertido. Desta forma, a mesma palavra apresentada com
letras minsculas ou maisculas, ou que esto adjacentes a pontuao, no sero
diferenciadas.
Voc dever ler 5 textos, que sero fornecidos atravs do Moodle. Seu trabalho
dever funcionar para estes textos.
Parte 2: Estruturas de dados do ndice invertido (5 pontos)
Para implementar o ndice invertido voc deve utilizar uma estrutura de dados do tipo
dicionrio (map). Dicionrios so estruturas associativas que armazenam elementos
combinando uma chave com um valor. A chave usada exclusivamente para identificar o
elemento, que contm um valor mapeado. Podemos fazer uma analogia com a lista telefnica,
em que o nome da pessoa a chave, e o telefone da pessoa o valor associado ao nome.
Neste trabalho, as chaves so todas as palavras contidas nos documentos e o valor associado
a cada chave o conjunto (set) com os nomes dos documentos.
Parte 3: Consultas simples (4 pontos)
Nesta parte do trabalho voc utilizar o ndice invertido construdo para realizar consultas
de UMA palavra. Dada uma palavra, o seu buscador deve imprimir na tela a lista de documentos
que contm a palavra em ordem alfabtica.
Por exemplo: para a consulta por apartamento o seu programa deve imprimir
d1.txt
d3.txt

Você também pode gostar