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

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

Arquivos Invertidos André Ferreira da Silva Jimy Marques Madeiro

Apresentações semelhantes


Apresentação em tema: "Arquivos Invertidos André Ferreira da Silva Jimy Marques Madeiro"— Transcrição da apresentação:

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

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

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 Os valores das chaves secundárias são usados como uma base para localizar uma classe de registro de dados Possui duas partes principais: Estrutura de busca Lista invertida

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 Í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 O que é a estrutura 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 É invertido sobre um número selecionado de tipos de itens chave

6 Como funciona Arquivos invertidos são tradicionalmente utilizados para a implementação de índices lexicográficos (Harman et al. 1992) Busca por frases: Índice invertido contém para cada palavra: Um apontador para cada um dos documentos dos quais a palavra ocorre 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 Como funciona 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.

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

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

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

11 Atualizando

12 Arquivos Invertidos para Busca em Documentos
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

13 Exemplo Chocolate mousse pie; Chocolate chip cookies; Spinach pie;
Baklava “I want to bake something with chocolate.”

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

15 Exemplo 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

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

17 Exemplo Termo Único: Conjunção: Disjunção: Negação:
Procurar termo “hot” Conjunção: Procurar “some AND hot” <4,5> AND <1,4> => <4> Disjunção: Procurar “hot OR nine” <1,4> OR <3,6> => <1,3,4,6> Negação: Procurar “NOT (some AND hot)” <1,2,3,5,6>

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

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

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

21 (Documento;Palavras)
Exemplo Nú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)]

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

23 Matriz de freqüência Cada linha corresponde a um documento e cada coluna corresponde a um termo do vocabulário 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 Exemplo cold days hot in it like pease porridge 1 - 2 3 4 5 6 pot some
the - 1 2

25 Número Termo Documento 1 2 3 4 5 6 cold - days hot in it like 7 nine 8 old 9 Pease 10 porridge 11 pot 12 some 13 the

26 Inversão em memória Algoritmo:
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.

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

28 Inversão Baseada em Ordenaçã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ços 3. Leia o arquivo temporário e construa o arquivo invertido.

29 Inversão Baseada em Ordenação
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 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 "Arquivos Invertidos André Ferreira da Silva Jimy Marques Madeiro"

Apresentações semelhantes


Anúncios Google