Arquivos Invertidos André Ferreira da Silva Jimy Marques Madeiro

Slides:



Advertisements
Apresentações semelhantes
Grupo:Danilo de Carvalho Gleimar B. Baleeiro Rodrigo Duarte
Advertisements

Aula T-09 – BCC202 Listas (Parte 1) Túlio Toffolo www. decom. ufop
Software Básico Silvio Fernandes
Motivação para listas duplamente encadeadas e circulares
Software Básico Silvio Fernandes Universidade Federal Rural do Semiárido Departamento de Ciências Exatas e Naturais Ciência da Computação Aula 05:
Software Básico Silvio Fernandes Universidade Federal Rural do Semi-Árido Departamento de Ciências Ambientais Ciência da Computação Aula 06: Funções.
Operações envolvendo imagens
14/10/09 Uma animação possui: Início; Passo; Fim; 1.
UNIVERSIDADE LUTERANA DO BRASIL COMUNIDADE EVANGÉLICA LUTERANA SÃO PAULO Reconhecida pela Portaria Ministerial nº 681 de 07/12/89 – DOU de 11/12/89 Campus.
Indexação Automática de Documentos
03/08/2011 Professor Leomir J. Borba- –
Listas Encadeadas CONTEÚDO (1) Motivação (2) Definição (3) Operações
LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS INTRODUÇÃO AOS APLICATIVOS JAVA Prof. Thiago Pereira Rique
INTRODUÇÃO AOS APLICATIVOS JAVA
Software Básico Silvio Fernandes Universidade Federal Rural do Semi-Árido Departamento de Ciências Exatas e Naturais Ciência da Computação Aula.
Software Básico Silvio Fernandes Universidade Federal Rural do Semi-Árido Departamento de Ciências Exatas e Naturais Ciência da Computação Aula.
Software Básico Silvio Fernandes
Excel Profa. Cristina M. Nunes.
Algoritmos para Seleção e Projeção
Gerenciamento de Arquivos, Páginas e Registros
Algoritmos para Projeção e Operações de Conjuntos AULA 22 Profa. Sandra de Amo GBC053 – BCC
Análise de Requisitos Use Case Renata Araujo Ricardo Storino
1 Complexidade de Algoritmos Complexidade de pior caso Complexidade de melhor caso de uso bem menos freqüente em algumas situações específicas Complexidade.
Árvores.
1 MergeSort Seja uma lista A de n elementos. O algoritmo consiste das seguintes fases Dividir A em 2 sub-listas de tamanho n/2 Conquistar: ordenar cada.
Arquivos Seqüenciais Inhaúma Neves Ferraz
Arquivos Extensíveis.
Estatística Básica Utilizando o Excel
Capítulo 6 Sistemas de Arquivos 6.1 Arquivos 6.2 Diretórios
Classificação (Ordenação) de dados
Estruturas de Controle
Auditoria de Segurança da Informação
Listas Encadeadas.
Revisão da Linguagem C.
Classes e objetos Arrays e Sobrecarga
Classes e objetos P. O. O. Prof. Grace.
MetaLib - Visão Geral 1º Encontro de Usuários ALEPH 30 Nov. e 1º Dez. de 2006 Caio Pellegatti.
Aula 07 Comandos de Repetição while e for
Listas e algoritmos (em Scratch)
IDENTIFICAÇÃO, MODELAGEM E ANÁLISE DE PROCESSOS Luís Gonzaga Trabasso
Introdução à Programação
Relação de Movimentação de Produtos 1 Posto de Combustível.
DFD – Data Flow Diagram Diagrama de Fluxo de Dados
Inteligência Artificial
PROGRAMAÇÃO I UNIDADE 1.
Compressão de Textos Juliano Palmieri Lage.
Pesquisa em Memória Primária
Algoritmos Culturais.
Estruturas de Dados com Jogos
Salas de Matemática.
Coordenação Geral de Ensino da Faculdade
Principais operações em Listas TPA Listas Simples Inserção no Final 1.void insereNofinalDaLista(Lista *l, Elemento e){ 2.Lista paux,p; 3. p.
SISTEMAS OPERACIONAIS
Busca com informação e exploração
Ordenação Externa de Arquivos – Um exemplo
Introdução e Busca Cega
Mineração da Web Recuperação de Informação
Recuperação de Informação Clássica
Técnicas de Modelagem para Aplicações em Computação Gráfica
Projeto de Banco de Dados
1 2 Observa ilustração. Cria um texto. Observa ilustração.
Fundamentos de Programação
Vetores e Matrizes Ameliara Freire
Linguagem e Ambiente Scratch
Ceça Moraes – Introdução à Programação SI1
BCC 101 – Matemática Discreta I
Módulo Compras Relatórios e Relações 1. Objetivo 2 Conhecer os relatórios e as relações do sistema disponibilizadas no módulo Compras.
Ceça Moraes – Introdução à Programação SI1
Planilha Eletrônica - Excel
1 Efficient Phrase Querying with an Auxiliary Index (SIGIR) 2002 Trabalho realizado por: Trabalho realizado por: João Casteleiro Alves João Casteleiro.
Transcrição da apresentação:

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

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

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

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)

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

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

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.

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)

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)

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)

Atualizando

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

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

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

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

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

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>

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)

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

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

(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)]

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

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 8.965 termos e 31.101 documentos. Tamanho da matriz: 8.965 x 31.101 x 4 bytes ≈ 1 Gigabyte de memória principal

Exemplo cold days hot in it like pease porridge 1 - 2 3 4 5 6 pot some the - 1 2

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

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.

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

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.

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)