Ordenação e Recuperação de Dados Prof. Alexandre Duarte - http://alexandre.ci.ufpb.br Centro de Informática – Universidade Federal da Paraíba Aula 1: Consultas Booleanas
Ordenação e Recuperação de Dados
Prof. Alexandre Duarte - http://alexandre.ci.ufpb.br
Centro de Informática – Universidade Federal da Paraíba
Aula 1: Consultas Booleanas
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
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
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
4
Empregado Gerente Salário
Paulo Pedro 50000
Pedro João 60000
50000José Pedro
Tipicamente permitem consultas númericas e por exatidão e.g., Salário < 60000 AND Gerente = Pedro.
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
Centro de Informática – Universidade Federal da Paraíba
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
Sec. 1.1
Centro de Informática – Universidade Federal da Paraíba
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
1 se a peça contém a palavra, 0 caso contrário
Brutus AND Caesar BUT NOT Calpurnia
Sec. 1.1
Centro de Informática – Universidade Federal da Paraíba
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
Sec. 1.1
Centro de Informática – Universidade Federal da Paraíba
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
Sec. 1.1
O modelo clássico de busca
DocumentosDocumentos
TarefaTarefa
Informação necessária
Informação necessária
ConsultaConsulta
Forma verbal
Forma verbal
ResultadoResultado
Motor de BuscaMotor de Busca
Refinamento da consulta
Refinamento da consulta
Livrar-se de um rato de forma politicamente correta
Livrar-se de um rato de forma politicamente correta
Como se livrar de um rato sem matá-lo
Como se livrar de um rato sem matá-lo
Como capturar um rato vivoComo capturar um rato vivoComo capturar um rato vivoComo capturar um rato vivo
ratoeira
Equívoco?Equívoco?
Equívoco?Equívoco?
Equívoco?Equívoco?
Centro de Informática – Universidade Federal da Paraíba
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
Sec. 1.1
Centro de Informática – Universidade Federal da Paraíba
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
Sec. 1.1
Centro de Informática – Universidade Federal da Paraíba
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.
Matriz extremamente esparsa
Qual seria uma melhor representação? Armazenamos apenas as ocorrências de 1’s
13
Por que?Por que?
Sec. 1.1
Centro de Informática – Universidade Federal da Paraíba
Í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 ?
14
Sec. 1.2
Brutus
Calpurnia
Caesar 1 2 4 5 6 16 57 132
1 2 4 11 31 45173
2 31
174
54101
O que acontece se a palavra Caesar for adicionada ao documento 14?
O que acontece se a palavra Caesar for adicionada ao documento 14?
Centro de Informática – Universidade Federal da Paraíba
Í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
Sec. 1.2
15
Dicionário PostingsOrdenadas por docID (veremos mais tarde o porque
Sec. 1.2
Brutus
Calpurnia
Caesar 1 2 4 5 6 16 57 132
1 2 4 11 31 45173
2 31
174
54101
TokenizerFluxo de tokens
Friends Romans Countrymen
Construção de um índice invertido
Módulos Linguísticos
Tokens modificadosfriend roman countryman
Indexador
Índice invertido
friend
roman
countryman
2 4
2
13 16
1
Documentos paraindexar
Friends, Romans, countrymen.
Sec. 1.2
Centro de Informática – Universidade Federal da Paraíba
Passos do Indexador: Sequência de Tokens
Sequência pares (token modificado, Document ID)
I did enact JuliusCaesar I was killed
i' the Capitol; Brutus killed me.
Doc 1
So let it be withCaesar. The noble
Brutus hath told youCaesar was ambitious
Doc 2
Sec. 1.2
Centro de Informática – Universidade Federal da Paraíba
Passos do indexador: Ordenação
Ordene pelos termos E depois pelo Doc-ID
Passo central da indexação
Sec. 1.2
Centro de Informática – Universidade Federal da Paraíba
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ãoMais tarde
Sec. 1.2
E quanto ao armazenamento?
20Ponteiros
Termos e frequências
Veremos no curso:•Como indexar eficientemente?•De quanto armazenamento precisamos?
Sec. 1.2
Listas de Doc Ids
Centro de Informática – Universidade Federal da Paraíba
Acabamos de construir um índice Como processamos uma consulta?
Mais tarde – que tipos de consulta podemos processar ?
21
Foco de hoje
Sec. 1.3
Centro de Informática – Universidade Federal da Paraíba
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:
22
128
34
2 4 8 16 32 64
1 2 3 5 8 13 21
BrutusCaesar
Sec. 1.3
Centro de Informática – Universidade Federal da Paraíba
Calculando a interseção Percorrer as duas listas de postings
simultaneamente, em tempo linear em relação ao número de elementos das listas
23
34
1282 4 8 16 32 64
1 2 3 5 8 13 21
128
34
2 4 8 16 32 64
1 2 3 5 8 13 21
BrutusCaesar2 8
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.
Sec. 1.3
Calculando a interseção
24
Centro de Informática – Universidade Federal da Paraíba
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
Sec. 1.3
Centro de Informática – Universidade Federal da Paraíba
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
Sec. 1.3
Centro de Informática – Universidade Federal da Paraíba
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
Sec. 1.3
Centro de Informática – Universidade Federal da Paraíba
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
Caesar
Calpurnia
1 2 3 5 8 16 21 34
2 4 8 16 32 64128
13 16
Consulta: Brutus AND Caesar AND Calpurnia 28
Sec. 1.3
Centro de Informática – Universidade Federal da Paraíba
Exemplo de otimização de consulta Processo em ordem crescente de frequência:
Comece pelo menor conjunto.
29
Por isso mantemos a frequência no dicionário
Execute a consulta como (Calpurnia AND Brutus) AND Caesar.
Sec. 1.3
Brutus
Caesar
Calpurnia
1 2 3 5 8 16 21 34
2 4 8 16 32 64128
13 16
Centro de Informática – Universidade Federal da Paraíba
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
Sec. 1.3
Exercícios
Recomende uma ordem de processamento para a seguinte consulta
Term Freq eyes 213312
kaleidoscope 87009
marmalade 107913
skies 271658
tangerine 46653
trees 316812
31
(tangerine OR trees) AND(marmalade OR skies) AND(kaleidoscope OR eyes)
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
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
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
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
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
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
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
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