Consultas Booleanas
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

Consultas Booleanas

on

  • 730 views

 

Statistics

Views

Total Views
730
Views on SlideShare
730
Embed Views
0

Actions

Likes
0
Downloads
29
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

CC Attribution License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • Grep is line-oriented; IR is document oriented.
  • Linked lists generally preferred to arrays Dynamic space allocation Insertion of terms into documents easy Space overhead of pointers

Consultas Booleanas Presentation Transcript

  • 1. Centro de Informática – Universidade Federal da Paraíba Ordenação e Recuperação de Dados Aula 1: Consultas Booleanas Prof. Alexandre Duarte - http://alexandre.ci.ufpb.br
  • 2. Centro de Informática – Universidade Federal da Paraíba Agenda  Introdução  Índices invertidos  Processando consultas booleanas  Otimização de consultas  Detalhes sobre o curso 2
  • 3. Centro de Informática – Universidade Federal da Paraíba Recuperação da Informação  Recuperação da Informação (Information Retrieval - IR) consiste em encontrar material (geralmente documentos) de natureza não-estruturada (geralmente texto) em uma grande coleção (geralmente armazenada em computadores) que atenda a uma determinada necessidade de informação 3
  • 4. Centro de Informática – Universidade Federal da Paraíba Dados estruturados vs dados não- estruturados  Dados estruturados tendem a se referir a informação por meio de tabelas Empregado Gerente Salário Paulo Pedro 50000 Pedro João 60000 José Pedro 50000 Tipicamente permitem consultas númericas e por exatidão e.g., Salário < 60000 AND Gerente = Pedro. 4
  • 5. Centro de Informática – Universidade Federal da Paraíba Dados não-estruturados  Tipicamente se refere a texto livre  Permite  Consultas por palavras-chave incluindo operadores  Consultas conceituais mais sofisticadas  e.g., encontre todas as páginas web falando sobre abuso de drogas  Modelo clássico para consulta em documentos de texto 5
  • 6. Centro de Informática – Universidade Federal da Paraíba Sec. 1.1 Dados não estruturados em 1680  Quais peças de Shakespeare contêm as palavras Brutus AND Caesar BUT NOT Calpurnia?  Alguém poderia fazer um grep no texto de todas as peças de Shakespeare pesquisando por Brutus e Caesar, e depois remover todas as linhas contendo Calpurnia?  Por que esta não é a resposta?  Lentidão (para grandes volumes de dados)  Isolar o NOT Calpurnia não é trivial  Impraticável para outras operações (e.g., encontrar a palavra Romans perto de countrymen)  Recuperação com classificação (melhores documentos)  Cenas dos próximos capítulos 6
  • 7. Centro de Informática – Universidade Federal da Paraíba Sec. 1.1 Matriz de Incidências Termos /Documentos Antony and Cleopatra Julius Caesar The Tempest Hamlet Othello Macbeth Antony 1 1 0 0 0 1 Brutus 1 1 0 1 0 0 Caesar 1 1 0 1 1 1 Calpurnia 0 1 0 0 0 0 Cleopatra 1 0 0 0 0 0 mercy 1 0 1 1 1 1 worser 1 0 1 1 1 0 Brutus AND Caesar BUT NOT 1 se a peça contém Calpurnia a palavra, 0 caso contrário
  • 8. Centro de Informática – Universidade Federal da Paraíba Sec. 1.1 Vetores de Incidência  Temos então um vetor de 0/1 para cada termo  Para responder a consulta: pegar os vetores de Brutus, Caesar e Calpurnia (complemento)  e aplicar um AND binário.  110100 AND 110111 AND 101111 = 100100. 8
  • 9. Centro de Informática – Universidade Federal da Paraíba Sec. 1.1 Considerações básicas da Recuperação da Informação  Coleção: Conjunto fixo de documentos  Objetivo: Recuperar documentos que são relevantes para a necessidade de informação do usuário, ajudando-o a completar uma tarefa 9
  • 10. O modelo clássico de busca Tarefa Tarefa Livrar-se de um rato de forma Livrar-se de um rato de forma politicamente correta politicamente correta Equívoco? Equívoco? Informação Informação Como se livrar de um Como se livrar de um necessária necessária rato sem matá-lo rato sem matá-lo Equívoco? Equívoco? Forma Forma Como capturar um rato vivo verbal Como capturar um rato vivo verbal Equívoco? Equívoco? Consulta Consulta ratoeira Motor de Busca Motor de BuscaRefinamento Refinamento Resultado Resultadoda consulta da consulta Documentos Documentos
  • 11. Centro de Informática – Universidade Federal da Paraíba Sec. 1.1 Quão bons são os documentos recuperados?  Precisão : Fração dos documentos recuperados que é relevante para a necessidade de informação do usuário  Recall : Fração dos documentos relevantes na coleção que são recuperados  Definições e medições mais precisas serão vistas nas próximas aulas 11
  • 12. Centro de Informática – Universidade Federal da Paraíba Sec. 1.1 Coleções maiores  Considere N = 1 milhão de documentos, cada um com cerca de 1000 palavras.  Com uma média de 6 bytes/palavra incluindo espaços/pontuação  6GB de dados nos documentos  Digamos que existem M = 500K termos distintos. 12
  • 13. Centro de Informática – Universidade Federal da Paraíba Sec. 1.1 Impossível construir a matriz!  Uma matriz de 500K x 1M tem meio trilhão de 0’s e 1’s.  Mas não tem mais do que um bilhão de 1’s. Por que? Por que?  Matriz extremamente esparsa  Qual seria uma melhor representação?  Armazenamos apenas as ocorrências de 1’s 13
  • 14. Centro de Informática – Universidade Federal da Paraíba Sec. 1.2 Índice invertido  Para cada termo t, devemos armazenar uma lista com todos os documentos que contém t.  Identifique cada documento por um docID  Poderíamos utilizar arrays de tamanho fixo para isso ? Brutus 1 2 4 11 31 45 173 174 Caesar 1 2 4 5 6 16 57 132 Calpurnia 2 31 54 101 O que acontece se a palavra Caesar for O que acontece se a palavra Caesar for adicionada ao documento 14? adicionada ao documento 14? 14
  • 15. Centro de Informática – Universidade Federal da Paraíba Sec. 1.2 Índice invertido  Precisamos de listas com tamanhos variáveis  Em disco, uma lista continua é normal e melhor  Em memória podemos utilizar listas encadeadas ou arrays  Tradeoffs em tamanho/facilidade de inserção Brutus 1 2 4 11 31 45 173 174 Caesar 1 2 4 5 6 16 57 132 Calpurnia 2 31 54 101 Dicionário Postings Ordenadas por docID (veremos mais tarde o porque 15
  • 16. Sec. 1.2 Construção de um índice invertido Documentos para Friends, Romans, countrymen. indexar TokenizerFluxo de tokens Friends Romans Countrymen Módulos Linguísticos friend roman countryman Tokens modificados Indexador friend 2 4 roman 1 2 Índice invertido countryman 13 16
  • 17. Centro de Informática – Universidade Federal da Paraíba Sec. 1.2 Passos do Indexador: Sequência de Tokens  Sequência pares (token modificado, Document ID) Doc 1 Doc 2 I did enact Julius So let it be with Caesar I was killed Caesar. The noble i the Capitol; Brutus hath told you Brutus killed me. Caesar was ambitious
  • 18. Centro de Informática – Universidade Federal da Paraíba Sec. 1.2 Passos do indexador: Ordenação  Ordene pelos termos  E depois pelo Doc-ID Passo central da indexação
  • 19. Centro de Informática – Universidade Federal da Paraíba Sec. 1.2 Passos do Indexador: Dicionário & Postings  Múltiplas ocorrências de um mesmo termo são combinadas.  Quebra entre Dictionário e Postings  Adiciona-se informação sobre frequência Discutiremos a razão Mais tarde
  • 20. Sec. 1.2 E quanto ao armazenamento? Listas de Doc Ids Termos efrequências Veremos no curso: •Como indexar eficientemente? •De quanto armazenamento precisamos? Ponteiros 20
  • 21. Centro de Informática – Universidade Federal da Paraíba Sec. 1.3 Acabamos de construir um índice Foco de  Como processamos uma consulta? hoje  Mais tarde – que tipos de consulta podemos processar ? 21
  • 22. Centro de Informática – Universidade Federal da Paraíba Sec. 1.3 Processamento de consulta: AND  Considere o processamento da consulta: Brutus AND Caesar  Localize Brutus no Dicionário  Recupere sua lista de postings.  Localize Caesar no Dicionário  Recupere sua lista de potings  Encontre a interseção (“merge”) das duas listas: 2 4 8 16 32 64 128 Brutus 1 2 3 5 8 13 21 34 Caesar 22
  • 23. Centro de Informática – Universidade Federal da Paraíba Sec. 1.3 Calculando a interseção  Percorrer as duas listas de postings simultaneamente, em tempo linear em relação ao número de elementos das listas 2 4 8 16 32 64 128 Brutus 2 8 1 2 3 5 8 13 21 34 Caesar Se as listas têm comprimento x e y, o cálculo da interseção (merge) tem complexidade O(x+y) Crucial: listas de postings ordenadas pelo docID. 23
  • 24. Calculando a interseção 24
  • 25. Centro de Informática – Universidade Federal da Paraíba Sec. 1.3 Consultas booleanas: Resultado exato  O modelo de recuperação booleano permite fazer uma pergunta sobre a forma de uma expressão booleana:  Consultas booleanas utilizam AND, OR e NOT para combinar os termos na consulta  Cada documento é visto como um conjunto de palavras  É precisa: o documento obedece a condição ou não.  Provavelmente o modelo mais simples para se construir um sistema de Recuperação de Informação  Foi a principal forma de recuperação de informação por 3 décadas  Vários sistemas ainda em uso seguem esse modelo:  Email, catálogo de bibliotecas, Mac OS X Spotlight 25
  • 26. Centro de Informática – Universidade Federal da Paraíba Sec. 1.3 Pesquisas booleanas: Merges mais genéricos  Exercício: Adaptar o algoritmo de interseção para as consultas: Brutus AND NOT Caesar Brutus OR NOT Caesar Ainda é possível obter complexidade O(x+y)? 26
  • 27. Centro de Informática – Universidade Federal da Paraíba Sec. 1.3 Merging O que dizer sobre uma expressão booleana arbitrária? (Brutus OR Caesar) AND NOT (Antony OR Cleopatra)  Podemos sempre calcular a interseção em tempo linear?  Podemos fazer melhor? 27
  • 28. Centro de Informática – Universidade Federal da Paraíba Sec. 1.3 Otimização de consultas  Qual é a melhor ordem para se processar uma consulta?  Considere uma consulta que faz um AND de n termos.  Para cada um dos n termos, pegar sua lista de postagens, depois encontre as interseções. Brutus 2 4 8 16 32 64 128 Caesar 1 2 3 5 8 16 21 34 Calpurnia 13 16 Consulta: Brutus AND Caesar AND Calpurnia 28
  • 29. Centro de Informática – Universidade Federal da Paraíba Sec. 1.3 Exemplo de otimização de consulta  Processo em ordem crescente de frequência:  Comece pelo menor conjunto. Por isso mantemos a frequência no dicionário Brutus 2 4 8 16 32 64 128 Caesar 1 2 3 5 8 16 21 34 Calpurnia 13 16 Execute a consulta como (Calpurnia AND Brutus) AND Caesar. 29
  • 30. Centro de Informática – Universidade Federal da Paraíba Sec. 1.3 Uma otimização mais genérica  e.g., (madding OR crowd) AND (ignoble OR strife) AND (killed OR slain)  Obtenha a frequencia de documentos para todos os termos  Estime o tamanho de cada OR pela soma das suas frequências .  Processe em ordem crescente de tamanho 30
  • 31. Exercícios Recomende uma ordem de processamento para a seguinte consulta Term Freq(tangerine OR trees) AND eyes 213312(marmalade OR skies) AND kaleidoscope 87009(kaleidoscope OR eyes) marmalade 107913 skies 271658 tangerine 46653 trees 316812 31
  • 32. Centro de Informática – Universidade Federal da Paraíba Exercícios sobre processamento de consultas  Exercício: Se a consulta é friends AND romans AND (NOT countrymen), como poderíamos utilizar a frequência de countrymen?  Exercício: Estenda o algoritmo de merge para uma query boolean arbitrária. Podemos garantir que ele sempre terá complexidade linear em relação ao total de postings?  Dica: Comece com um consulta que é uma fórmula boolean: neste caso, cada termo só aparece uma única vez na consulta 32
  • 33. Centro de Informática – Universidade Federal da Paraíba Exercícios  Experimente o mecanismo de buscas de http://www.rhymezone.com/shakespeare/  Escreva sobre cinco funcionalidades de busca em que o site poderia ser melhor 33
  • 34. Centro de Informática – Universidade Federal da Paraíba Classificando resultados de busca  Consultas booleanas resultam em inclusão ou exclusão de documentos  Muitas vezes desejamos agrupar/classificar resultados  É preciso calcular a proximidade entre a consulta e cada documento  É preciso decidir se os documentos apresentados ao usuário são itens individuais ou coleções de documentos abrangendo diferentes aspectos da consulta. 34
  • 35. Centro de Informática – Universidade Federal da Paraíba Agrupamento, Classificação e Ranqueamento  Agrupamento: Dado um conjunto de documentos, agrupá-los em sub-conjuntos de acordo com seu conteúdo.  Classificação: Dado um conjunto de tópicos mais um novo documento D, decidir quais tópicos dizem respeito a D.  Ranqueamento: Como melhor ordenar um conjunto de resultados de uma consulta 35
  • 36. Centro de Informática – Universidade Federal da Paraíba A web e seus desafios  Documentos diversos  Usuário, consultas e necessidades de informação diversas  Vai além da análise de termos, explora idéias de redes sociais  Análise de ligações, padrões de click, ...  Como os motores de busca funcionam? Como podemos torná-los melhores? 36
  • 37. Centro de Informática – Universidade Federal da Paraíba Formas mais sofisticadas de recuperação da informação  Recuperação da informação em múltiplos idiomas  Responder a perguntas  Watson jogando Jeopardy  Sumarização  Mineração de texto  … 37
  • 38.  Centro de Informática – Universidade Federal da Paraíba   Detalhes sobre o curso  URL do curso: http://alexandrend.com  Avaliação:  Projeto 1 (em grupo) 20% - 15/02/2013  Projeto 2 (individual) 40% - 15/03/2013  Minitestes 40% - toda quarta-feira, inclusive a próxima  Livro texto:  Introduction to Information Retrieval  Disponível gratuítamente online (http://informationretrieval.org/) 38
  • 39. Centro de Informática – Universidade Federal da Paraíba Material sobre a aula de hoje  Introduction to Information Retrieval, capítulo 1  http://nlp.stanford.edu/IR-book/pdf/01bool.pdf  Shakespeare:  http://www.rhymezone.com/shakespeare/  Watson jogando Jeopardy:  http://www.youtube.com/watch?v=12rNbGf2Wwo Perguntas? 39