230 likes | 298 Views
CS276 Information Retrieval and Web Search Christopher Manning and Prabhakar Raghavan Lecture 1: Boolean retrieval. Definições.
E N D
CS276Information Retrieval and Web Search Christopher Manning and Prabhakar Raghavan Lecture 1: Boolean retrieval
Definições • Técnicas para encontrar documentos de natureza não estruturada(texto em geral) que satisfaça uma necessidade de informação de um usuário a partir de grande quantidade de documentos. • Coleção: Conjunto de documentos • Objetivo: Recuperar os documentos com informações que são relevantes para a necessidade do usuário.
Desestruturado (texto) vs. Estruturado (banco de dados) em 1996 Empresa de dados estatísticos
Desestruturado (texto) vs. Estruturado (banco de dados) em 2009
Técnicas RI • Recuperação Booleana; • Modelo Clássico; • Matriz de Incidência; • Índice Invertido; • Otimização de consultas.
The classic search model TASK Info Need Verbal form Query SEARCHENGINE QueryRefinement Results Corpus
Sec. 1.1 Matriz Incidência (Termos x Documentos) 1 se documento contem termo, 0 caso contrario BrutusANDCaesarBUTNOTCalpurnia
Sec. 1.1 Matriz de Incidência • Cada linha representa um termo. • Cada coluna representa um documento. • Cada posição do vetor pode assumir 0/1. • Onde: 0 Ausencia no texto e 1 aparece no texto. • Exemplo consulta: Brutus, Caesar and not Calpurnia (complemento); • Fazer uma operacao AND nas linhas Brutus, Caesar e Calpurnia. • Exemplo: • 110100 AND 110111 AND 101111 = 100100 (Brutus) (Caesar) (Calpurnia) (Resposta)
Sec. 1.2 1 2 4 11 31 45 173 1 2 4 5 6 16 57 132 Índice Invertido • Para cada termo t, nos devemos criar uma lista com os números onde o termo t aparece; • Onde: docID, representa um número de documento; Brutus 174 Caesar Calpurnia 2 31 54 101
Sec. 1.2 1 2 4 11 31 45 173 1 2 4 5 6 16 57 132 Dicionário Listas Índice Invertido • Em memória, podemos usar listas ligadas ou arrays de tamanhos variáveis; Listas Brutus Caesar Calpurnia 2 31 54 101 Ordenado pelo by docID
Sec. 1.2 Tokenizer Friends Romans Countrymen Token stream. Linguistic modules More on these later. friend friend roman countryman Tokens modificados. roman Indexer 2 4 countryman 1 2 Índice Invertido 16 13 ConstruçãoÍndice Invertido Documentos para indexar. Friends, Romans, countrymen.
Sec. 1.2 Passos Indexador: Token • Dividir os documentos em pares (termos, Document ID). Doc 1 Doc 2 I did enact Julius Caesar I was killed i' the Capitol; Brutus killed me. So let it be with Caesar. The noble Brutus hath told you Caesar was ambitious
Sec. 1.2 Passos Indexador: Ordenação • Ordenar termos. • Ordem alfabética
Sec. 1.2 Passos Indexador: Dicionário & Listas • Criar dicionário de termos; • Adicionar na lista os documentos que o termos aparecem; • Adicionar a freqüência do termo;
Sec. 1.2 Custo de Armazenamento Listas dos docIDs Termos e freqüências Ponteiros
Sec. 1.3 2 4 8 16 32 64 1 2 3 5 8 13 21 Consulta com operador: AND • Considere a consulta: BrutusANDCaesar • Recuperar a lista do termo Brutus; • Recuperar a lista do termo Caesar; • Interseção (“Merge”) das duas listas: 128 Brutus Caesar 34
Sec. 1.3 Brutus Caesar 13 128 2 2 4 4 8 8 16 16 32 32 64 64 8 1 1 2 2 3 3 5 5 8 8 21 21 13 34 Exemplo: merge algorithm 128 2 34 Obs: As listas devem estar ordenadas pelo docID.
Sec. 1.1 Conclusões Modelo Booleano • Ainda e utilizado em sistemas: • E-mail, catalogo de Bibliotecas; • Modelo de RI utilizado por 3 décadas. • Processamento lento para consultar grande volume de termos e documentos • Exemplo: Um milhão de documentos, cada documento aproximadamente com 1000 termos. • Exatidão nas consultas • Exemplo: • a) Procurar palavra Brutus; • b) Procurar palavras iniciadas com a letra B. (impossível)
Sec. 1.3 2 4 8 16 32 64 128 1 2 3 5 8 16 21 34 Otimização de consultas • Qual a melhor maneira de realizar a consulta abaixo? Brutus Caesar Calpurnia 13 16 Query: BrutusANDCalpurniaANDCaesar 20
Sec. 1.3 2 4 8 16 32 64 128 1 2 3 5 8 16 21 34 Exemplo de otimização de consultas • Inicie com os termos com as menores freqüências, ou seja, que possuem as menores listas. Por isso e importante armazenar a freqüência dos termos Brutus Caesar Calpurnia 13 16 Execute a consulta como (CalpurniaANDBrutus)AND Caesar.
Sec. 1.3 Otimização mais geral • e.g., (madding OR crowd) AND (ignoble OR strife) • Pegue freqüência dos documentos para todos os termos. • Estime o tamanho de cada OR pela soma das freqüências dos documentos. • Processar em ordem crescente pelo tamanho das listas (OR).
Course staff • Professor: Christopher ManningOffice: Gates 158 manning@cs.stanford.edu • Professor: Prabhakar Raghavanpragh@yahoo-inc.com • TAs: Andrey Guev, Shakti Sinha, Roshan Sumbaly • In general, don’t use the above addresses, but: • Newsgroup: su.class.cs276 [preferred] • cs276-aut0910-staff@lists.stanford.edu