Arquivo Invertido Grupo:Danilo de Carvalho Gleimar B. Baleeiro Rodrigo Duarte.
Transcript of Arquivo Invertido Grupo:Danilo de Carvalho Gleimar B. Baleeiro Rodrigo Duarte.
![Page 1: Arquivo Invertido Grupo:Danilo de Carvalho Gleimar B. Baleeiro Rodrigo Duarte.](https://reader035.fdocuments.net/reader035/viewer/2022081422/552fc0f8497959413d8b50d2/html5/thumbnails/1.jpg)
Arquivo Invertido
Grupo:Danilo de Carvalho Gleimar B. Baleeiro
Rodrigo Duarte
![Page 2: Arquivo Invertido Grupo:Danilo de Carvalho Gleimar B. Baleeiro Rodrigo Duarte.](https://reader035.fdocuments.net/reader035/viewer/2022081422/552fc0f8497959413d8b50d2/html5/thumbnails/2.jpg)
Roteiro
Motivação Introdução Arquivo Invertido Tipos de Consultas Métodos Tecnologia
![Page 3: Arquivo Invertido Grupo:Danilo de Carvalho Gleimar B. Baleeiro Rodrigo Duarte.](https://reader035.fdocuments.net/reader035/viewer/2022081422/552fc0f8497959413d8b50d2/html5/thumbnails/3.jpg)
Motivação
Como recuperar informação?
Aumento do volume de dados armazenados na forma de textos. Ex.:bibliotecas digitais
Buscas seqüenciais atenderiam ao propósito?
![Page 4: Arquivo Invertido Grupo:Danilo de Carvalho Gleimar B. Baleeiro Rodrigo Duarte.](https://reader035.fdocuments.net/reader035/viewer/2022081422/552fc0f8497959413d8b50d2/html5/thumbnails/4.jpg)
Motivação
A construção de uma estrutura de dados(índices) diminuiria o tempo de resposta na busca.
De que modo poderia se recuperar esses textos?
![Page 5: Arquivo Invertido Grupo:Danilo de Carvalho Gleimar B. Baleeiro Rodrigo Duarte.](https://reader035.fdocuments.net/reader035/viewer/2022081422/552fc0f8497959413d8b50d2/html5/thumbnails/5.jpg)
Introdução
O que é Índice?- Mecanismo utilizado para localizar um dado termo em um texto(custo < linear).
Tipo de Índices- Arquivos Invertidos (inverted files)- Arquivos de Assinatura (singature files)- Mapas de Bits (bitmaps)
![Page 6: Arquivo Invertido Grupo:Danilo de Carvalho Gleimar B. Baleeiro Rodrigo Duarte.](https://reader035.fdocuments.net/reader035/viewer/2022081422/552fc0f8497959413d8b50d2/html5/thumbnails/6.jpg)
Arquivo Invertido
Composição:- Vocabulário : Arranjo contendo todas as palavras do texto.
- Ocorrências: Lista de todos os documentos (identificados por números) nos quais uma palavra ocorre.
![Page 7: Arquivo Invertido Grupo:Danilo de Carvalho Gleimar B. Baleeiro Rodrigo Duarte.](https://reader035.fdocuments.net/reader035/viewer/2022081422/552fc0f8497959413d8b50d2/html5/thumbnails/7.jpg)
Exemplo
Documento Texto
1Pease porridge hot,pease porridge cold.
2 Pease porridge in the post.
3 Nine days old.
4 Some like it hot, some like it cold
5 Some like it in the pot.
6 Nine days old.
![Page 8: Arquivo Invertido Grupo:Danilo de Carvalho Gleimar B. Baleeiro Rodrigo Duarte.](https://reader035.fdocuments.net/reader035/viewer/2022081422/552fc0f8497959413d8b50d2/html5/thumbnails/8.jpg)
ExemploNúmero Termo Ocorrências Documento
1 Cold 2 1,4
2 Days 2 3,6
3 Hot 2 1,4
4 In 2 2,5
5 It 2 4,5
6 Like 2 4,5
7 Nine 2 3,6
8 Old 2 3,6
9 Pease 2 1,2
10 Porridge 2 1,2
11 Pot 2 2,5
12 Some 2 4,5
13 the 2 2,5
![Page 9: Arquivo Invertido Grupo:Danilo de Carvalho Gleimar B. Baleeiro Rodrigo Duarte.](https://reader035.fdocuments.net/reader035/viewer/2022081422/552fc0f8497959413d8b50d2/html5/thumbnails/9.jpg)
Consultas Termo único: Busca no vocabulário e
recupera a lista de ocorrências.
Conjunção: “termo AND termo”
Disjunção: “termo OR termo”
Negação: “NOT “
![Page 10: Arquivo Invertido Grupo:Danilo de Carvalho Gleimar B. Baleeiro Rodrigo Duarte.](https://reader035.fdocuments.net/reader035/viewer/2022081422/552fc0f8497959413d8b50d2/html5/thumbnails/10.jpg)
Métodos para construção de Índices
Matriz de Freqüência
- Cada linha corresponde a um documento e cada coluna corresponde a um termo do vocabulário
![Page 11: Arquivo Invertido Grupo:Danilo de Carvalho Gleimar B. Baleeiro Rodrigo Duarte.](https://reader035.fdocuments.net/reader035/viewer/2022081422/552fc0f8497959413d8b50d2/html5/thumbnails/11.jpg)
Exemplocold days hot in it like nine old pease porridge pot some the
1 1 - 1 - - - - - 2 2 - - -
2 - - - 1 - - - - 1 1 1 - 1
3 - 1 - - - - 1 1 - - - - -
4 1 - 1 - 2 2 - - - - - 2 -
5 - - - 1 1 1 - - - - 1 1 1
6 - 1 - - - - 1 1 - - - - -
![Page 12: Arquivo Invertido Grupo:Danilo de Carvalho Gleimar B. Baleeiro Rodrigo Duarte.](https://reader035.fdocuments.net/reader035/viewer/2022081422/552fc0f8497959413d8b50d2/html5/thumbnails/12.jpg)
Construção É necessário a leitura do documento da
coleção, ao final escrever a matriz, linha por linha no disco.
Construção é bastante simples.
Entretanto a solução é cara.-Ex.:Bíblia contém 8.965 termos e 31.101 documento. Tamanho da matriz (8.965 X 31.101 X 4 bytes = 1GB
![Page 13: Arquivo Invertido Grupo:Danilo de Carvalho Gleimar B. Baleeiro Rodrigo Duarte.](https://reader035.fdocuments.net/reader035/viewer/2022081422/552fc0f8497959413d8b50d2/html5/thumbnails/13.jpg)
Inversão em Memória
- O índice é todo construído em memória principal.
- Estrutura usada para armazenamento será a tabela hash.
Métodos para construção de Índices
![Page 14: Arquivo Invertido Grupo:Danilo de Carvalho Gleimar B. Baleeiro Rodrigo Duarte.](https://reader035.fdocuments.net/reader035/viewer/2022081422/552fc0f8497959413d8b50d2/html5/thumbnails/14.jpg)
... continuação
- Listas encadeadas em memória para armazenar as listas invertidas dos termos.
- O método leva cerca de 6 horas para indexar uma coleção de 5GB e consome 4GB de memória principal e nenhum espaço extra em disco.
![Page 15: Arquivo Invertido Grupo:Danilo de Carvalho Gleimar B. Baleeiro Rodrigo Duarte.](https://reader035.fdocuments.net/reader035/viewer/2022081422/552fc0f8497959413d8b50d2/html5/thumbnails/15.jpg)
Algoritmo1. /*Inicialização*/
Crie uma estrutura de dicionário vazia S.2. /* Fase um: coleta das características dos termos */
Para cada documento Dd na coleção, 1 ≤ d ≥ N,
(a) Leia Dd realizando o parser para obter termos indexáveis.(b) Para cada termo indexável t Є Dd,
i. Faça fd,t receber a freqüência do termo t em Dd
ii.Busque por t em Siii.Se t não estiver em S, insira-o.iv.Adicione um nó armazenado (d, fd,t) na lista
![Page 16: Arquivo Invertido Grupo:Danilo de Carvalho Gleimar B. Baleeiro Rodrigo Duarte.](https://reader035.fdocuments.net/reader035/viewer/2022081422/552fc0f8497959413d8b50d2/html5/thumbnails/16.jpg)
... continuação
3. /*Fase dois: saída do arquivo invertido*/Para cada termo 1 ≤ d ≥ n,
(a) Inicialize uma nova entrada do arquivo invertido(b) Para cada (d, fd,t) na lista correspondente a t, Adicione (d, fd,t) a essa entrada do arquivo invertido.(c) Se requerido, comprima a entrada do arquivo invertido.(d) Adicione essa entrada do arquivo invertido ao arquivo invertido.
![Page 17: Arquivo Invertido Grupo:Danilo de Carvalho Gleimar B. Baleeiro Rodrigo Duarte.](https://reader035.fdocuments.net/reader035/viewer/2022081422/552fc0f8497959413d8b50d2/html5/thumbnails/17.jpg)
Exemplo
![Page 18: Arquivo Invertido Grupo:Danilo de Carvalho Gleimar B. Baleeiro Rodrigo Duarte.](https://reader035.fdocuments.net/reader035/viewer/2022081422/552fc0f8497959413d8b50d2/html5/thumbnails/18.jpg)
Inversão baseada em Ordenação( sorted-based )
- O principal problema dos métodos descritos anteriormente é o alto consumo de memória principal.
- O uso de disco é inevitável quando grandes quantidades de texto precisam ser indexadas.
Métodos para construção de Índices
![Page 19: Arquivo Invertido Grupo:Danilo de Carvalho Gleimar B. Baleeiro Rodrigo Duarte.](https://reader035.fdocuments.net/reader035/viewer/2022081422/552fc0f8497959413d8b50d2/html5/thumbnails/19.jpg)
... continuação
- Triplas <termo,doc,freq> são armazenadas em arquivos temporários.
- O índice é obtido ordenando-se estas triplas em ordem ascendente do termo e depois do documento.
![Page 20: Arquivo Invertido Grupo:Danilo de Carvalho Gleimar B. Baleeiro Rodrigo Duarte.](https://reader035.fdocuments.net/reader035/viewer/2022081422/552fc0f8497959413d8b50d2/html5/thumbnails/20.jpg)
Resultados
A inversão para um coleção de 5GB leva cerca de 20 horas usando 40 MB de memória principal e 8 GB de espaço extra em disco.
Devido a quantidade de espaço em disco consumida, este método é considerado melhor para coleções de tamanho moderado (10 a 100MB)
![Page 21: Arquivo Invertido Grupo:Danilo de Carvalho Gleimar B. Baleeiro Rodrigo Duarte.](https://reader035.fdocuments.net/reader035/viewer/2022081422/552fc0f8497959413d8b50d2/html5/thumbnails/21.jpg)
Redução de custos Utilizar técnicas de compressão e
estratégias mais sofisticadas de intercalação
- Compressão dos arquivos temporários
- Intercalação de múltiplos caminhos
- Intercalação in-place
![Page 22: Arquivo Invertido Grupo:Danilo de Carvalho Gleimar B. Baleeiro Rodrigo Duarte.](https://reader035.fdocuments.net/reader035/viewer/2022081422/552fc0f8497959413d8b50d2/html5/thumbnails/22.jpg)
Tecnologia
Nenhuma maquina de busca comercial usa todas as técnicas (compressão + indexação).
Seguem o “hard way” – hardware way – muito disco e muita memoria principal
![Page 23: Arquivo Invertido Grupo:Danilo de Carvalho Gleimar B. Baleeiro Rodrigo Duarte.](https://reader035.fdocuments.net/reader035/viewer/2022081422/552fc0f8497959413d8b50d2/html5/thumbnails/23.jpg)
Referências http://www.dcc.ufla.br/~psleitao/COM187/c
om187.mbooleano.pdf
http://www.comp.ufla.br/monografias/ano2002/Geracao_de_arquivo_invertido_utilizando_Programacao_Paralela_MPI.pdf
http://homepages.dcc.ufmg.br/~nivio/cursos/pa02/seminarios/seminario3/seminario3.html