A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

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

Apresentações semelhantes


Apresentação em tema: "1 Arquivos Invertidos André Ferreira da Silva Jimy Marques Madeiro Talita Perciano Costa Leite UNIVERSIDADE FEDERAL DE ALAGOAS DEPARTAMENTO DE TECNOLOGIA."— Transcrição da apresentação:

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

2 2 Roteiro O que é a estrutura O que é a estrutura Como funciona Como funciona Operações em arquivos invertidos de Registros de Dados Operações em arquivos invertidos de Registros de Dados –Modificando os dados –Atualizando Arquivos Invertidos para busca em documentos Arquivos Invertidos para busca em documentos –Busca em documentos texto Granularidade do Índice de um Arquivo Invertido Granularidade do Índice de um Arquivo Invertido Construção de índices Construção de índices –Matriz de freqüência –Inversão em memória –Inversão baseada em ordenação

3 3 O que é a estrutura Organização ou estrutura de arquivo que permite uma procura rápida por consultas em geral envolvendo valores de chaves secundárias especificados Organização ou estrutura de arquivo que permite uma procura rápida por consultas em geral envolvendo valores de chaves secundárias especificados Os valores das chaves secundárias são usados como uma base para localizar uma classe de registro de dados Os valores das chaves secundárias são usados como uma base para localizar uma classe de registro de dados Possui duas partes principais: Possui duas partes principais: –Estrutura de busca –Lista invertida

4 4 O que é a estrutura O tipo mais comum de arquivo invertido tem um nível-duplo de indexação e lista de acesso associada O tipo mais comum de arquivo invertido tem um nível-duplo de indexação e lista de acesso associada Índice de nível 1 (tipos de atributos) Índice de nível 2 (valores de item) Nível 3 (listas de acesso) Nível 4 (registros de dados)

5 5 O que é a estrutura Arquivos completamente invertidos Arquivos completamente invertidos –É invertido sobre todos os tipos itens chave no registro –Estabelecem acesso rápido para base de dados –Grande espaço de armazenamento na indexação Arquivo parcialmente invertido Arquivo parcialmente invertido –É invertido sobre um número selecionado de tipos de itens chave

6 6 Como funciona Arquivos invertidos são tradicionalmente utilizados para a implementação de índices lexicográficos (Harman et al. 1992) Arquivos invertidos são tradicionalmente utilizados para a implementação de índices lexicográficos (Harman et al. 1992) Busca por frases: Busca por frases: –Índice invertido contém para cada palavra: Um apontador para cada um dos documentos dos quais a palavra ocorre Um apontador para cada um dos documentos dos quais a palavra ocorre As posições da palavra nesse documento As posições da palavra nesse documento –Busca torna-se mais eficiente nesse tipo de índice –A dimensão do próprio índice é um problema –Índice precisa ser atualizado a cada modificação do documento original

7 7 Como funciona A pesquisa é feita da seguinte forma: A pesquisa é feita da seguinte forma: –O primeiro termo é pesquisado –Como resultado tem-se uma lista temporária de documentos e posições contendo o termo pesquisado –Utiliza-se a lista temporária para pesquisar o próximo termo –Repete-se a pesquisa para os próximos termos até que o último tenha sido pesquisado, ou até que a lista esteja vazia É desejável que os termos menos comuns sejam pesquisados inicialmente. É desejável que os termos menos comuns sejam pesquisados inicialmente.

8 8 Modificando os dados Índice de nível 1 (tipos de atributos) Índice de nível 2 (valores de item) Nível 3 (listas de acesso) Nível 4 (registros de dados)

9 9 Modificando os dados Índice de nível 1 (tipos de atributos) Índice de nível 2 (valores de item) Nível 3 (listas de acesso) Nível 4 (registros de dados)

10 10 Modificando os dados Índice de nível 1 (tipos de atributos) Índice de nível 2 (valores de item) Nível 3 (listas de acesso) Nível 4 (registros de dados)

11 11 Atualizando

12 12 Arquivos Invertidos para Busca em Documentos Componentes Componentes –Léxico: conjunto de palavras em um conjunto de documentos; –Lista de ocorrências: todas as entradas que se aplicam a uma palavra específica; –Postings: entrada em uma lista invertida. Construção Construção

13 13 Exemplo 1. Chocolate mousse pie; 2. Chocolate chip cookies; 3. Spinach pie; 4. Baklava I want to bake something with chocolate.

14 14 Busca em Documentos Texto Termo único Termo único –Busca no vocabulário e recupera lista de ocorrências Conjunção Conjunção –Intersecção das listas de ocorrências Disjunção Disjunção –União das listas de ocorrências Negação Negação –Complemento do resultado

15 15 Exemplo DocumentoTexto 1Pease porridge hot, pease porridge cold, 2Pease porridge in the pot, 3Nine days old. 4Some like it hot, some like it cold, 5Some like it in the pot, 6Nine days old.

16 16 Exemplo NúmeroTermoDocumento 1cold(2;1,4) 2days(2;3,6) 3hot(2;3,6) 4in(2;1,4) 5it(2;2,5) 6like(2;4,5) 7nine(2;4,5) 8old(2;3,6) 9Pease(2;1,2) 10porridge(2;1,2) 11pot(2;2,5) 12some(2;4,5) 13the(2;2,5)

17 17 Exemplo Termo Único: Termo Único: –Procurar termo hot Conjunção: Conjunção: –Procurar some AND hot AND => AND => Disjunção: Disjunção: –Procurar hot OR nine OR => OR => Negação: Negação: –Procurar NOT (some AND hot)

18 18 Granularidade do Índice de um Arquivo Invertido Grossa Grossa –Identifica apenas um bloco de texto Moderada Moderada –Identifica apenas um documento Fina Fina –Identifica cada palavra (cada byte)

19 19 Grossa Índice requer menos memória Índice requer menos memória Consulta exige mais processamento em cada bloco Consulta exige mais processamento em cada bloco Consulta de frase leva a maior número de false matches Consulta de frase leva a maior número de false matches

20 20 Fina Busca por frase é eficiente Busca por frase é eficiente Busca aproximada é eficiente Busca aproximada é eficiente Índice requer mais memória Índice requer mais memória

21 21 Exemplo NúmeroTermo(Documento;Palavras) 1cold[2;(1;6),(4;8)] 2days[2;(3;2),(6;2)] 3hot[2;(1;3),(4;4)] 4in[2;(2;3),(5;4)] 5it[2;(4;3,7),(5;3)] 6like[2;(4;2,6),(5;2)] 7nine[2;(3;1),(6;1)] 8old[2;(3;3),(6;3)] 9Pease[2;(1;1,4),(2;1)] 10porridge[2;(1;2.5),(2;2)] 11pot[2;(2;5),(5;6)] 12some[2;(4;1,5),(5;1)] 13the[2;(2;4),(5;5)]

22 22 Construção de Índices Métodos Métodos –Matriz de freqüência –Inversão em memória –Inversão baseada em ordenação

23 23 Matriz de freqüência Cada linha corresponde a um documento e cada coluna corresponde a um termo do vocabulário Cada linha corresponde a um documento e cada coluna corresponde a um termo do vocabulário Construção é bastante cara Construção é bastante cara –Ex.: Bíblia contém termos e documentos. Tamanho da matriz: x x 4 bytes 1 Gigabyte de memória principal

24 24 Exemplo colddayshotinitlikepeaseporridge potsomethe

25 25 NúmeroTermoDocumento cold days hot in it like nine old Pease porridge pot some the-1--1-

26 26 Inversão em memória Algoritmo: 1. Crie uma estrutura de dicionário vazia S. 2. Para cada documento D d na coleção, 1 d N. (a) Leia D d, realizando o parser para obter termos indexáveis. (b) Para cada termo indexável t pertencente a Dd, i. Faça f d,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,f d,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,f d,t ) na lista correspondente a t, adicione (d,f d,t ) a essa entrada. (c) Comprima a entrada. (d) Adicione essa entrada no arquivo invertido.

27 27 Inversão em memória O índice é todo construído em memória principal O índice é todo construído em memória principal Para armazenar o vocabulário: tabela hash é geralmente a melhor escolha Para armazenar o vocabulário: tabela hash é geralmente a melhor escolha Listas encadeadas em memória para armazenar as listas invertidas em termos Listas encadeadas em memória para armazenar as listas invertidas em termos 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 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

28 28 Inversão Baseada em Ordenação Algoritmo: 1. Construa um arquivo de saída temporário com registros 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ços 3. Leia o arquivo temporário e construa o arquivo invertido.

29 29 Inversão Baseada em Ordenação Consome menos memória principal Consome menos memória principal A inversão para a coleção de 5GB leva cerca de 20 horas usando 40MB de memória principal e 8GB de espaço extra em disco A inversão para a coleção de 5GB leva cerca de 20 horas usando 40MB de memória principal e 8GB de espaço extra em disco Devido a grande quantidade de espaço em disco consumida durante a inversão, este método é considerado o melhor para coleções de tamanho moderado (10 a 100MB) Devido a grande quantidade de espaço em disco consumida durante a inversão, este método é considerado o melhor para coleções de tamanho moderado (10 a 100MB)


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

Apresentações semelhantes


Anúncios Google