29
1 Arquivos Invertidos Arquivos Invertidos André Ferreira da Silva André Ferreira da Silva Jimy Marques Madeiro Jimy Marques Madeiro Talita Perciano Costa Leite Talita Perciano Costa Leite UNIVERSIDADE FEDERAL DE ALAGOAS UNIVERSIDADE FEDERAL DE ALAGOAS DEPARTAMENTO DE TECNOLOGIA DA INFORMAÇÃO DEPARTAMENTO DE TECNOLOGIA DA INFORMAÇÃO CIÊNCIA DA COMPUTAÇÃO CIÊNCIA DA COMPUTAÇÃO

1 Arquivos Invertidos André Ferreira da Silva Jimy Marques Madeiro Talita Perciano Costa Leite UNIVERSIDADE FEDERAL DE ALAGOAS DEPARTAMENTO DE TECNOLOGIA

Embed Size (px)

Citation preview

Page 1: 1 Arquivos Invertidos André Ferreira da Silva Jimy Marques Madeiro Talita Perciano Costa Leite UNIVERSIDADE FEDERAL DE ALAGOAS DEPARTAMENTO DE TECNOLOGIA

11

Arquivos InvertidosArquivos Invertidos

André Ferreira da SilvaAndré Ferreira da Silva

Jimy Marques MadeiroJimy Marques Madeiro

Talita Perciano Costa LeiteTalita Perciano Costa Leite

UNIVERSIDADE FEDERAL DE ALAGOASUNIVERSIDADE FEDERAL DE ALAGOASDEPARTAMENTO DE TECNOLOGIA DA INFORMAÇÃODEPARTAMENTO DE TECNOLOGIA DA INFORMAÇÃO

CIÊNCIA DA COMPUTAÇÃOCIÊNCIA DA COMPUTAÇÃO

Page 2: 1 Arquivos Invertidos André Ferreira da Silva Jimy Marques Madeiro Talita Perciano Costa Leite UNIVERSIDADE FEDERAL DE ALAGOAS DEPARTAMENTO DE TECNOLOGIA

22

RoteiroRoteiro• O que é a estruturaO que é a estrutura• Como funcionaComo funciona• Operações em arquivos invertidos de Registros Operações em arquivos invertidos de Registros

de Dadosde Dados– Modificando os dadosModificando os dados– AtualizandoAtualizando

• Arquivos Invertidos para busca em documentosArquivos Invertidos para busca em documentos– Busca em documentos textoBusca em documentos texto

• Granularidade do Índice de um Arquivo InvertidoGranularidade do Índice de um Arquivo Invertido• Construção de índicesConstrução de índices

– Matriz de freqüênciaMatriz de freqüência– Inversão em memóriaInversão em memória– Inversão baseada em ordenaçãoInversão baseada em ordenação

Page 3: 1 Arquivos Invertidos André Ferreira da Silva Jimy Marques Madeiro Talita Perciano Costa Leite UNIVERSIDADE FEDERAL DE ALAGOAS DEPARTAMENTO DE TECNOLOGIA

33

O que é a estruturaO que é a estrutura

• Organização ou estrutura de arquivo que Organização ou estrutura de arquivo que permite uma procura rápida por consultas permite uma procura rápida por consultas em geral envolvendo valores de chaves em geral envolvendo valores de chaves secundárias especificadossecundárias especificados

• Os valores das chaves secundárias são Os valores das chaves secundárias são usados como uma base para localizar uma usados como uma base para localizar uma classe de registro de dadosclasse de registro de dados

• Possui duas partes principais:Possui duas partes principais:– Estrutura de buscaEstrutura de busca– Lista invertidaLista invertida

Page 4: 1 Arquivos Invertidos André Ferreira da Silva Jimy Marques Madeiro Talita Perciano Costa Leite UNIVERSIDADE FEDERAL DE ALAGOAS DEPARTAMENTO DE TECNOLOGIA

44

O que é a estruturaO que é a estrutura

• O tipo mais comum de arquivo invertido tem um nível-duplo O tipo mais comum de arquivo invertido tem um nível-duplo de indexação e lista de acesso associadade indexação e lista de acesso associada

AGE

CITY

EMP-ADDR

...

Atlanta

Chicago

Detroit

Houston

Atlanta

Atlanta

Chicago

Chicago

Atlanta

Chicago

Chicago

Índice de nível 1 Índice de nível 1

(tipos de atributos)(tipos de atributos)Índice de nível 2 Índice de nível 2

(valores de item)(valores de item)Nível 3 Nível 3

(listas de acesso)(listas de acesso)Nível 4Nível 4

(registros de (registros de dados)dados)

Page 5: 1 Arquivos Invertidos André Ferreira da Silva Jimy Marques Madeiro Talita Perciano Costa Leite UNIVERSIDADE FEDERAL DE ALAGOAS DEPARTAMENTO DE TECNOLOGIA

55

O que é a estruturaO que é a estrutura

• Arquivos completamente invertidosArquivos completamente invertidos– É invertido sobre todos os tipos itens chave no É invertido sobre todos os tipos itens chave no

registroregistro– Estabelecem acesso rápido para base de dadosEstabelecem acesso rápido para base de dados– Grande espaço de armazenamento na Grande espaço de armazenamento na

indexaçãoindexação

• Arquivo parcialmente invertidoArquivo parcialmente invertido– É invertido sobre um número selecionado de É invertido sobre um número selecionado de

tipos de itens chave tipos de itens chave

Page 6: 1 Arquivos Invertidos André Ferreira da Silva Jimy Marques Madeiro Talita Perciano Costa Leite UNIVERSIDADE FEDERAL DE ALAGOAS DEPARTAMENTO DE TECNOLOGIA

66

Como funcionaComo funciona

• Arquivos invertidos são tradicionalmente Arquivos invertidos são tradicionalmente utilizados para a implementação de índices utilizados para a implementação de índices lexicográficos (Harman et al. 1992)lexicográficos (Harman et al. 1992)

• Busca por frases:Busca por frases:– Índice invertido contém para cada palavra:Índice invertido contém para cada palavra:

• Um apontador para cada um dos documentos dos Um apontador para cada um dos documentos dos quais a palavra ocorrequais a palavra ocorre

• As posições da palavra nesse documentoAs posições da palavra nesse documento

– Busca torna-se mais eficiente nesse tipo de Busca torna-se mais eficiente nesse tipo de índiceíndice

– A dimensão do próprio índice é um problemaA dimensão do próprio índice é um problema– Índice precisa ser atualizado a cada Índice precisa ser atualizado a cada

modificação do documento originalmodificação do documento original

Page 7: 1 Arquivos Invertidos André Ferreira da Silva Jimy Marques Madeiro Talita Perciano Costa Leite UNIVERSIDADE FEDERAL DE ALAGOAS DEPARTAMENTO DE TECNOLOGIA

77

Como funcionaComo funciona

• A pesquisa é feita da seguinte forma:A pesquisa é feita da seguinte forma:– O primeiro termo é pesquisadoO primeiro termo é pesquisado– Como resultado tem-se uma lista temporária Como resultado tem-se uma lista temporária

de documentos e posições contendo o termo de documentos e posições contendo o termo pesquisadopesquisado

– Utiliza-se a lista temporária para pesquisar o Utiliza-se a lista temporária para pesquisar o próximo termopróximo termo

– Repete-se a pesquisa para os próximos termos Repete-se a pesquisa para os próximos termos até que o último tenha sido pesquisado, ou até até que o último tenha sido pesquisado, ou até que a lista esteja vaziaque a lista esteja vazia

• É desejável que os termos menos comuns É desejável que os termos menos comuns sejam pesquisados inicialmente. sejam pesquisados inicialmente.

Page 8: 1 Arquivos Invertidos André Ferreira da Silva Jimy Marques Madeiro Talita Perciano Costa Leite UNIVERSIDADE FEDERAL DE ALAGOAS DEPARTAMENTO DE TECNOLOGIA

88

Modificando os dadosModificando os dados

AGE

CITY

EMP-ADDR

...

Atlanta

Chicago

Detroit

Houston

Atlanta

Atlanta

Chicago

Chicago

Atlanta

Chicago

Chicago

Índice de nível 1 Índice de nível 1

(tipos de atributos)(tipos de atributos)Índice de nível 2 Índice de nível 2

(valores de item)(valores de item)Nível 3 Nível 3

(listas de acesso)(listas de acesso)Nível 4Nível 4

(registros de (registros de dados)dados)

Page 9: 1 Arquivos Invertidos André Ferreira da Silva Jimy Marques Madeiro Talita Perciano Costa Leite UNIVERSIDADE FEDERAL DE ALAGOAS DEPARTAMENTO DE TECNOLOGIA

99

AGE

CITY

EMP-ADDR

...

Atlanta

Chicago

Detroit

Houston

Atlanta

Atlanta

Chicago

Chicago

Atlanta

Chicago

Chicago

Modificando os dadosModificando os dadosÍndice de nível 1 Índice de nível 1

(tipos de atributos)(tipos de atributos)Índice de nível 2 Índice de nível 2

(valores de item)(valores de item)Nível 3 Nível 3

(listas de acesso)(listas de acesso)Nível 4Nível 4

(registros de (registros de dados)dados)

Page 10: 1 Arquivos Invertidos André Ferreira da Silva Jimy Marques Madeiro Talita Perciano Costa Leite UNIVERSIDADE FEDERAL DE ALAGOAS DEPARTAMENTO DE TECNOLOGIA

1010

Modificando os dadosModificando os dadosÍndice de nível 1 Índice de nível 1

(tipos de atributos)(tipos de atributos)Índice de nível 2 Índice de nível 2

(valores de item)(valores de item)Nível 3 Nível 3

(listas de acesso)(listas de acesso)Nível 4Nível 4

(registros de (registros de dados)dados)

AGE

CITY

EMP-ADDR

...

Atlanta

Chicago

Detroit

Houston

Atlanta

Atlanta

Chicago

Chicago

Atlanta

Chicago

Chicago

Chicago

Page 11: 1 Arquivos Invertidos André Ferreira da Silva Jimy Marques Madeiro Talita Perciano Costa Leite UNIVERSIDADE FEDERAL DE ALAGOAS DEPARTAMENTO DE TECNOLOGIA

1111

AtualizandoAtualizando

AGE

CITY

EMP-ADDR

...

Atlanta

Chicago

Detroit

Houston

Atlanta

Atlanta

Atlanta

Atlanta

Atlanta

Atlanta

Atlanta

Atlanta

Page 12: 1 Arquivos Invertidos André Ferreira da Silva Jimy Marques Madeiro Talita Perciano Costa Leite UNIVERSIDADE FEDERAL DE ALAGOAS DEPARTAMENTO DE TECNOLOGIA

1212

Arquivos Invertidos para Busca Arquivos Invertidos para Busca em Documentosem Documentos

• ComponentesComponentes– Léxico: conjunto de palavras em um Léxico: conjunto de palavras em um

conjunto de documentos;conjunto de documentos;– Lista de ocorrências: todas as entradas Lista de ocorrências: todas as entradas

que se aplicam a uma palavra específica;que se aplicam a uma palavra específica;– Postings: entrada em uma lista invertida.Postings: entrada em uma lista invertida.

• ConstruçãoConstrução

Page 13: 1 Arquivos Invertidos André Ferreira da Silva Jimy Marques Madeiro Talita Perciano Costa Leite UNIVERSIDADE FEDERAL DE ALAGOAS DEPARTAMENTO DE TECNOLOGIA

1313

ExemploExemplo

1.1. Chocolate mousse Chocolate mousse pie;pie;

2.2. Chocolate chip Chocolate chip cookies;cookies;

3.3. Spinach pie;Spinach pie;

4.4. BaklavaBaklava

bake

baklava

chip

chocolate

cookie

mousse

pie

spinach

2

4

2

1

2

1

1

3

3 4

2

3 4

“I want to bake something with chocolate.”

Page 14: 1 Arquivos Invertidos André Ferreira da Silva Jimy Marques Madeiro Talita Perciano Costa Leite UNIVERSIDADE FEDERAL DE ALAGOAS DEPARTAMENTO DE TECNOLOGIA

1414

Busca em Documentos Busca em Documentos TextoTexto• Termo únicoTermo único

– Busca no vocabulário e recupera lista de Busca no vocabulário e recupera lista de ocorrênciasocorrências

• ConjunçãoConjunção– Intersecção das listas de ocorrênciasIntersecção das listas de ocorrências

• DisjunçãoDisjunção– União das listas de ocorrênciasUnião das listas de ocorrências

• NegaçãoNegação– Complemento do resultadoComplemento do resultado

Page 15: 1 Arquivos Invertidos André Ferreira da Silva Jimy Marques Madeiro Talita Perciano Costa Leite UNIVERSIDADE FEDERAL DE ALAGOAS DEPARTAMENTO DE TECNOLOGIA

1515

ExemploExemplo

Documento Texto

1 Pease porridge hot, pease porridge cold,

2 Pease porridge in the pot,

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 16: 1 Arquivos Invertidos André Ferreira da Silva Jimy Marques Madeiro Talita Perciano Costa Leite UNIVERSIDADE FEDERAL DE ALAGOAS DEPARTAMENTO DE TECNOLOGIA

1616

ExemploExemploNúmero Termo Documento

1 cold (2;1,4)

2 days (2;3,6)

3 hot (2;3,6)

4 in (2;1,4)

5 it (2;2,5)

6 like (2;4,5)

7 nine (2;4,5)

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 17: 1 Arquivos Invertidos André Ferreira da Silva Jimy Marques Madeiro Talita Perciano Costa Leite UNIVERSIDADE FEDERAL DE ALAGOAS DEPARTAMENTO DE TECNOLOGIA

1717

ExemploExemplo

• Termo Único:Termo Único:– Procurar termo “hot”Procurar termo “hot”

• Conjunção:Conjunção:– Procurar “some AND hot”Procurar “some AND hot”

• <4,5> AND <1,4> => <4><4,5> AND <1,4> => <4>

• Disjunção:Disjunção:– Procurar “hot OR nine”Procurar “hot OR nine”

• <1,4> OR <3,6> => <1,3,4,6><1,4> OR <3,6> => <1,3,4,6>

• Negação:Negação:– Procurar “NOT (some AND hot)”Procurar “NOT (some AND hot)”

• <1,2,3,5,6><1,2,3,5,6>

Page 18: 1 Arquivos Invertidos André Ferreira da Silva Jimy Marques Madeiro Talita Perciano Costa Leite UNIVERSIDADE FEDERAL DE ALAGOAS DEPARTAMENTO DE TECNOLOGIA

1818

Granularidade do Índice de um Granularidade do Índice de um Arquivo InvertidoArquivo Invertido

• GrossaGrossa– Identifica apenas um bloco de textoIdentifica apenas um bloco de texto

• ModeradaModerada– Identifica apenas um documentoIdentifica apenas um documento

• FinaFina– Identifica cada palavra (cada byte)Identifica cada palavra (cada byte)

Page 19: 1 Arquivos Invertidos André Ferreira da Silva Jimy Marques Madeiro Talita Perciano Costa Leite UNIVERSIDADE FEDERAL DE ALAGOAS DEPARTAMENTO DE TECNOLOGIA

1919

GrossaGrossa

• Índice requer menos memóriaÍndice requer menos memória

• Consulta exige mais processamento Consulta exige mais processamento em cada blocoem cada bloco

• Consulta de frase leva a maior Consulta de frase leva a maior número de “false matches”número de “false matches”

Page 20: 1 Arquivos Invertidos André Ferreira da Silva Jimy Marques Madeiro Talita Perciano Costa Leite UNIVERSIDADE FEDERAL DE ALAGOAS DEPARTAMENTO DE TECNOLOGIA

2020

FinaFina

• Busca por frase é eficienteBusca por frase é eficiente

• Busca aproximada é eficienteBusca aproximada é eficiente

• Índice requer mais memóriaÍndice requer mais memória

Page 21: 1 Arquivos Invertidos André Ferreira da Silva Jimy Marques Madeiro Talita Perciano Costa Leite UNIVERSIDADE FEDERAL DE ALAGOAS DEPARTAMENTO DE TECNOLOGIA

2121

ExemploExemploNúmero Termo (Documento;Palavras)

1 cold [2;(1;6),(4;8)]

2 days [2;(3;2),(6;2)]

3 hot [2;(1;3),(4;4)]

4 in [2;(2;3),(5;4)]

5 it [2;(4;3,7),(5;3)]

6 like [2;(4;2,6),(5;2)]

7 nine [2;(3;1),(6;1)]

8 old [2;(3;3),(6;3)]

9 Pease [2;(1;1,4),(2;1)]

10 porridge [2;(1;2.5),(2;2)]

11 pot [2;(2;5),(5;6)]

12 some [2;(4;1,5),(5;1)]

13 the [2;(2;4),(5;5)]

Page 22: 1 Arquivos Invertidos André Ferreira da Silva Jimy Marques Madeiro Talita Perciano Costa Leite UNIVERSIDADE FEDERAL DE ALAGOAS DEPARTAMENTO DE TECNOLOGIA

2222

Construção de ÍndicesConstrução de Índices

• MétodosMétodos– Matriz de freqüênciaMatriz de freqüência– Inversão em memóriaInversão em memória– Inversão baseada em ordenaçãoInversão baseada em ordenação

Page 23: 1 Arquivos Invertidos André Ferreira da Silva Jimy Marques Madeiro Talita Perciano Costa Leite UNIVERSIDADE FEDERAL DE ALAGOAS DEPARTAMENTO DE TECNOLOGIA

2323

Matriz de freqüênciaMatriz de freqüência

• Cada linha corresponde a um Cada linha corresponde a um documento e cada coluna corresponde documento e cada coluna corresponde a um termo do vocabulárioa um termo do vocabulário

• Construção é bastante caraConstrução é bastante cara– Ex.: Bíblia contém 8.965 termos e 31.101 Ex.: Bíblia contém 8.965 termos e 31.101

documentos. Tamanho da matriz: 8.965 x documentos. Tamanho da matriz: 8.965 x 31.101 x 4 bytes ≈ 1 Gigabyte de 31.101 x 4 bytes ≈ 1 Gigabyte de memória principalmemória principal

Page 24: 1 Arquivos Invertidos André Ferreira da Silva Jimy Marques Madeiro Talita Perciano Costa Leite UNIVERSIDADE FEDERAL DE ALAGOAS DEPARTAMENTO DE TECNOLOGIA

2424

ExemploExemplocold days hot in it like peasepease porridgporridg

ee

1 1 - 1 - - - 2 2

2 - - - 1 - - 1 1

3 - 1 - - - - - -

4 1 - 1 - 2 2 - -

5 - - - 1 1 1 - -

6 - 1 - - - - - -

pot some the

- - -

1 - 1

- - -

- 2 -

1 1 1

- - -

Page 25: 1 Arquivos Invertidos André Ferreira da Silva Jimy Marques Madeiro Talita Perciano Costa Leite UNIVERSIDADE FEDERAL DE ALAGOAS DEPARTAMENTO DE TECNOLOGIA

2525

Número Termo Documento

1 2 3 4 5 6

1 cold 1 - - 1 - -

2 days - - 1 - - 1

3 hot 1 - - 1 - -

4 in - 1 - - 1 -

5 it - - - 2 1 -

6 like - - - 2 1 -

7 nine - - 1 - - 1

8 old - - 1 - - 1

9 Pease 2 1 - - - -

10 porridge 2 1 - - - -

11 pot - 1 - - 1 -

12 some - - - 2 1 -

13 the - 1 - - 1 -

Page 26: 1 Arquivos Invertidos André Ferreira da Silva Jimy Marques Madeiro Talita Perciano Costa Leite UNIVERSIDADE FEDERAL DE ALAGOAS DEPARTAMENTO DE TECNOLOGIA

2626

Inversão em memóriaInversão em memóriaAlgoritmo:1. Crie uma estrutura de dicionário vazia S.2. 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 pertencente a Dd,

i. Faça fd,t receber a freqüência do termo t em Dd.ii. Busque por t em S.iii. Se t não estiver em S, insira-o.iv. Adicione um nó armazenando (d,fd,t) na lista

correspondente ao termo t.3. Para cada termo 1 ≤ t ≤ 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.(c) Comprima a entrada.(d) Adicione essa entrada no arquivo invertido.

Page 27: 1 Arquivos Invertidos André Ferreira da Silva Jimy Marques Madeiro Talita Perciano Costa Leite UNIVERSIDADE FEDERAL DE ALAGOAS DEPARTAMENTO DE TECNOLOGIA

2727

Inversão em memóriaInversão em memória

• O índice é todo construído em memória O índice é todo construído em memória principalprincipal

• Para armazenar o vocabulário: tabela Para armazenar o vocabulário: tabela hashhash é geralmente a melhor escolhaé geralmente a melhor escolha

• Listas encadeadas em memória para Listas encadeadas em memória para armazenar as listas invertidas em termosarmazenar as listas invertidas em termos

• Leva cerca de 6 horas para indexar uma Leva cerca de 6 horas para indexar uma coleção de 5GB e consome 4GB de memória coleção de 5GB e consome 4GB de memória principal e nenhum espaço extra em discoprincipal e nenhum espaço extra em disco

Page 28: 1 Arquivos Invertidos André Ferreira da Silva Jimy Marques Madeiro Talita Perciano Costa Leite UNIVERSIDADE FEDERAL DE ALAGOAS DEPARTAMENTO DE TECNOLOGIA

2828

Inversão Baseada em Inversão Baseada em OrdenaçãoOrdenação

Algoritmo:1. Construa um arquivo de saída temporário com registros <t, d, ft >2 . Ordene os registros usando o merge-sort

(a) Leia um pedaço do arquivo temporário(b) Ordene-o (usando o quicksort)(c) Escreva-o de volta no mesmo lugar(d) Utilize o merge-sort para ordenação dos

pedaços3. Leia o arquivo temporário e construa o arquivo invertido.

Page 29: 1 Arquivos Invertidos André Ferreira da Silva Jimy Marques Madeiro Talita Perciano Costa Leite UNIVERSIDADE FEDERAL DE ALAGOAS DEPARTAMENTO DE TECNOLOGIA

2929

Inversão Baseada em Inversão Baseada em OrdenaçãoOrdenação

• Consome menos memória principalConsome menos memória principal

• A inversão para a coleção de 5GB leva cerca A inversão para a coleção de 5GB leva cerca de 20 horas usando 40MB de memória de 20 horas usando 40MB de memória principal e 8GB de espaço extra em discoprincipal e 8GB de espaço extra em disco

• Devido a grande quantidade de espaço em Devido a grande quantidade de espaço em disco consumida durante a inversão, este disco consumida durante a inversão, este método é considerado o melhor para método é considerado o melhor para coleções de tamanho moderado (10 a coleções de tamanho moderado (10 a 100MB)100MB)