37
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 2: Vocabulário de termos e listas de postings

Vocabulário de termos e listas de postings

Embed Size (px)

Citation preview

Page 1: Vocabulário de termos e listas de postings

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 2: Vocabulário de termos e listas de postings

Page 2: Vocabulário de termos e listas de postings

Revisão da aula passada Índices invertidos (introdução):

Estrutura: Dicionário e Postings

Passo chave na construção: Ordenação Processamento de consultas Booleanas

Achar a interseção em tempo linear (“merging”) Otimizações simples

Ch. 1

Page 3: Vocabulário de termos e listas de postings

Roteiro para esta aulaAprofundamento sobre indexação Pré-processamento para criação do vocabulário

de termos Documentos Tokenization Que termos colocar no índice?

Postings Merge mais rápido: skip lists Postings posicionais e consultas por frases

Page 4: Vocabulário de termos e listas de postings

Relembrando o processo de indexação

Tokenizer

Fluxo de tokens Friends Romans Countrymen

Módulos Linguísticos

Tokens modificados friend roman countryman

Indexador

Índice invertido

friend

roman

countryman

2 4

2

13 16

1

Documentos paraindexar

Friends, Romans, countrymen.

Page 5: Vocabulário de termos e listas de postings

Parsing de um documento Qual o formato do documento?

pdf/word/excel/html? Em que idioma? Qual o conjunto de caracteres utilizados?

Cada um deste itens representa um problema de classificação. Veremos mais sobre isso no futuro.

Sec. 2.1

Page 6: Vocabulário de termos e listas de postings

Complicadores: Formato/idioma A coleção pode conter documentos escritos em

vários idiomas diferentes Um único índice pode conter termos de vários idiomas

diferentes Algumas vezes um único documento pode

contemplar múltiplos idiomas e diferentes formatos E-mail escrito em português com anexo em inglês

O que representa um documento unitário? Um arquivo? Um email? Um e-mail com 5 anexos? Um grupo de arquivos (PPT ou LaTeX salvo como HTM)?

Sec. 2.1

Page 7: Vocabulário de termos e listas de postings

Tokens e Termos

Page 8: Vocabulário de termos e listas de postings

Tokenization Entrada: “Friends, Romans and Countrymen” Saída: Tokens

Friends Romans Countrymen

Um token é uma instância de uma sequência de caracteres

Cada um dos tokens, depois de um processamento adicional, é candidato a ser uma entrada no índice

Mas como definir quais são os tokens válidos?

Sec. 2.2.1

Page 9: Vocabulário de termos e listas de postings

Tokenization Problemas na geração de tokens:

Finland’s capital Finland? Finlands? Finland’s? Hewlett-Packard Hewlett e Packard como dois

tokens diferentes? João Pessoa: um token ou dois?

Como você decidiu que seria um único token?

Sec. 2.2.1

Page 10: Vocabulário de termos e listas de postings

Números 23/03/2011 23 de Março 2011 55 B.C. B-52 Minha chave PGP é 324a3df234cb23e (083) 3216-7093 Geralmente incluem espaços em branco

Sistemas mais antigos podem não indexar números Muitas vezes é algo útil: pense em uma busca na Web por códigos

de erro em um determinado programa (Oracle, por exemplo) Meta-dados geralmente são indexados separadamente

Data de criação, formato, etc.

Sec. 2.2.1

Page 11: Vocabulário de termos e listas de postings

Tokenization: questões referentes ao idioma Francês

L'ensemble um token ou dois? L ? L’ ? Le ? Fazer l’ensemble casar com un ensemble

Até 2003 o Google não fazia isso Internacionalização!

Em alemão substantivos compostos não são segmentados Lebensversicherungsgesellschaftsangestellter ‘empregado de uma companhia de seguros de vida’ Sistemas de recuperação de informação em alemão se beneficiam de um

“quebrador de substantivos” Pode melhorar o desempenho em até 15%

Sec. 2.2.1

Page 12: Vocabulário de termos e listas de postings

Tokenization: questões referentes ao idioma Chinês e Japonês não tem espaços entre as

palavras: 莎拉波娃现在居住在美国东南部的佛罗里达。 Impossível garantir um fluxo de tokens único

Mais complicado ainda em Japonês, com a mistura de múltiplos alfabetos Datas/quantidades em diferentes formados

フォーチュン 500社は情報不足のため時間あた $500K(約 6,000万円 )

Katakana Hiragana Kanji Romaji

O usuário poderia fazer a consulta em Hiragana!

Sec. 2.2.1

Page 13: Vocabulário de termos e listas de postings

Tokenization: questões referentes ao idioma Árabe (e Hebraico) é escrito basicamente da direita

para a esquerda, mas alguns itens como números são escritos da esquerda para a direita

As palavras são separadas mas o formato das letras formam ligações complexas

← → ← → ← ‘A Algeria se tornou independente em 1962 depois

de 132 anos de ocupação Francesa’

Sec. 2.2.1

Page 14: Vocabulário de termos e listas de postings

Separadores

Com uma lista de separadores é possível excluir do dicionário as palavras mais comuns Pouco significado semântico: de, a, e, para, com Elas são muito freqüentes: ~30% dos postings dentre as 30 palavras mais

comuns

Porém, não é isso que se tem feito : Técnicas de compressão fazem com que o espaço necessário para incluir os

separadores seja muito pequeno Técnicas de otimização de consultas significam que se gasta muito pouco

tempo com os separadores durante o processamento da consulta. Eles são necessários para:

Consultas por frases: “Rei do Futebol” Títulos de música, livros, etc.: “Let it be”, “To be or not to be” Consultas “relacionais” : “Vôos para Fernando de Noronha”

Sec. 2.2.2

Page 15: Vocabulário de termos e listas de postings

Normalização Precisamos “normalizar”as palavras no texto indexado e

também nas consultas para uma mesma forma Queremos casar U.S.A. com USA

Um termo é uma palavra (normalizada), que é uma entrada para o dicionário de um sistema de recuperação de informação

Classes de equivalência são definidas para os termos, por exemplo: Remover os pontos U.S.A., USA USA

Remover os hífens Para-choques, parachoques parachoques

Sec. 2.2.3

Page 16: Vocabulário de termos e listas de postings

Normalização: outros idiomas Acentos: Francês résumé vs. resume. Tremas: Alemão: Tuebingen vs. Tübingen

Devem ser equivalentes Critério mais importante:

Como os usuários gostariam de utilizar estes termos em suas consultas?

Mesmo em linguagens como o Português, que usam acentos freqüentemente, os usuários muitas vezes podem preferir não digitá-los Geralmente é melhor normalizar para a forma sem acentos

Tuebingen, Tübingen, Tubingen Tubingen

Sec. 2.2.3

Page 17: Vocabulário de termos e listas de postings

Normalização: outros idiomas Normalização de formatos de datas

7 月 30日 vs. 7/30

Tokenization e normalização podem depender do idioma, portanto são correlacionadas à deteção do idioma do documento

Crucial: É preciso normalizar tanto o texto a ser indexado quanto os termos da consulta uniformemente

Morgen will ich in MIT … O que seria MIT?

Sec. 2.2.3

Page 18: Vocabulário de termos e listas de postings

Normalização

Uma alternativa às classes de equivalência é fazer expansão assimétrica

Um exemplo de onde esta técnica pode ser útil Digite: window Busca por: window, windows Digite: windows Busca por: Windows, windows, window Digite: Windows Busca por: Windows

Potencialmente mais poderosa porém menos eficiente

Sec. 2.2.3

Page 19: Vocabulário de termos e listas de postings

Thesaurus Como lidar com sinônimos e homônimos?

Classes de equivalência específicas carro = automóvel

Podem ser re-escritos para formar classes de equivalência Quando o documento contiver automóvel, indexar como carro e

automóvel. (e vice-versa) Ou pode-se expandir a consulta

Quando a consulta contiver automóvel, pesquisar também por carro

Como lidar com erros de grafia? Uma idéia é utilizar um soundex, que forma classes de

equivalência baseado em heurísticas fonética

Page 20: Vocabulário de termos e listas de postings

Lemmatization Reduzir variações à uma única base Exemplo

fui, era, sou ser carro, carrinho, carrão, carros carro

Os carros são de cores diferentes O carro ser de cor diferente

Lemmatization implica em reduzir as palavras à sua forma no dicionário

Sec. 2.2.4

Page 21: Vocabulário de termos e listas de postings

Especificidades do idioma Muitas das funcionalidades descritas anteriormente

descrevem transformações que são Dependentes de idioma Geralmente, dependentes de aplicação

Devem ser vistas como adendos ao processo de indexação

Sec. 2.2.4

Page 22: Vocabulário de termos e listas de postings

MERGE MAIS RÁPIDOSKIP POINTERS/SKIP LISTS

Page 23: Vocabulário de termos e listas de postings

Relembrando o merge básico Caminhe simultaneamente nas duas listas em tempo

linear ao total de postings

128

31

2 4 8 41 48 64

1 2 3 8 11 17 21

Brutus

Caesar2 8

Se as listas têm comprimento m e n, o cálculo da interseção tem complexidade O(m+n)

Podemos fazer melhor que isso?Sim (se o índice não for alterado muito freqüentemente).

Sec. 2.3

Page 24: Vocabulário de termos e listas de postings

Adicionando skip pointers (em tempo de indexação) às listas de postings

Por que? Para saltar (skip) postings que não vão aparecer nos

resultados da consulta Como? Onde colocamos os skip pointers?

1282 4 8 41 48 64

311 2 3 8 11 17 213111

41 128

Sec. 2.3

Page 25: Vocabulário de termos e listas de postings

Processando consultas com skip pointers

1282 4 8 41 48 64

311 2 3 8 11 17 213111

41 128

Suponha que tenhamos percorrido as duas listas até que processamos o 8 em cada lista. Processamos o 8 e avançamos.Temos agora o 41 e o 11. 11 é menor

Porém, 11 tem um skip pointer para o 31, então podemos pular (skip) a frente até o fim da lista.

Sec. 2.3

Page 26: Vocabulário de termos e listas de postings

Onde colocar os skip pointers? Tradeoff:

Mais ponteiros saltos menores saltos mais frequentes. Porém requer muitas comparações.

Menos ponteiros menos comparações, saltos mais longos poucos saltos bem sucedidos.

Sec. 2.3

Page 27: Vocabulário de termos e listas de postings

Colocando os skip pointers Heurística simples: para listas de tamanho L, colocar

L skip pointers distribuídos uniformemente

Ignora a distribuição dos termos

Fácil se o índice é relativamente estático; complicado se o L muda com freqüência.

Sec. 2.3

Page 28: Vocabulário de termos e listas de postings

CONSULTAS POR FRASES E ÍNDICES POSICIONAIS

Page 29: Vocabulário de termos e listas de postings

Consultas por frases Queremos ser capazes de responder consultas como

“Universidade Federal da Paraíba” – como uma frase

Portanto a frase “Eu moro na Paraíba” não é um bom resultado para a consulta. O conceito de consulta por frases se mostrou um dos

poucos recursos “avançados” de busca que cairam no gosto dos usuários

Para isto, não é suficiente armazenar apenas entradas do tipo <termo : documento>

Sec. 2.4

Page 30: Vocabulário de termos e listas de postings

Primeria tentativa: índices com bi-termos Indexar cada par de termos consecutivos como se

fossem uma frase Por exemplo, para o texto “Friends, Romans,

Countrymen” seriam gerados os bi-termos friends romans romans countrymen

Cada um desses bi-termos é agora uma entrada no dicionário

Consultas por frases de duas palavras são processadas imediatamente.

Sec. 2.4.1

Page 31: Vocabulário de termos e listas de postings

Consultas por frases mais longas Frases mais longas são processadas utilizando

operadores lógicos: universidade federal da paraiba pode ser quebrado

em dois bi-termos:universidade federal AND da paraiba

Sem acessar os documentos é impossível ter certeza que a consulta retornará realmente os documentos que possuem a frase completa.

Pode ter falsos positivos

Sec. 2.4.1

Page 32: Vocabulário de termos e listas de postings

Problemas com os bi-termos Falsos positivos, como mencionado anteriormente O tamanho do índice explode por conta do aumento

no dicionário Impraticável para tri-termos, por exemplo

Índices com bi-termos não são a solução padrão mas podem ser parte de uma estratégia conjunta

Sec. 2.4.1

Page 33: Vocabulário de termos e listas de postings

Solução 2: Índices posicionais Armazenar na lista de postings as posições dos

tokens no documento

<termo, número de documentos contendo o termo;doc1: posição1, posição2 … ;doc2: posição1, posição2 … ;etc.>

Sec. 2.4.2

Page 34: Vocabulário de termos e listas de postings

Exemplo de índice posicional

<be: 993427;1: 7, 18, 33, 72, 86, 231;2: 3, 149;4: 17, 191, 291, 430, 434;5: 363, 367, …>

Que documento 1,2,4,5poderia conter “to be

or not to be”?

Sec. 2.4.2

Page 35: Vocabulário de termos e listas de postings

Tamanho de um índice posicional É possível comprimir a lista de posições: falaremos

sobre isso em breve No entanto, um índice posicional aumenta

substancialmente o tamanho do índice Mesmo assim, índices posicionais são padrão hoje

por conta de seu poder e capacidade de responder consultas por frases.

Sec. 2.4.2

Page 36: Vocabulário de termos e listas de postings

Tamanho de um índice posicional Requer uma entrada para cada ocorrência, não

apenas uma por documento Tamanho do índice depende do tamanho médio dos

documentos Uma página web tem em média menos de 1000 termos Livros e poemas épicos podem chegar facilmente a

100.000 termos Considere um termo com frequência 0.1%

1001100,000

111000

PosiçõesPostingsTamanho do Doc

Sec. 2.4.2

Page 37: Vocabulário de termos e listas de postings

Regra geral Um índice posicional é entre duas e quatros vezes

maior que um índice não-posicional O tamanho do índice posicional representa algo

entre 35-50% do documento original Esses números valem para documentos escritos em

inglês. Tamanho do índice pode variar dependendo do

idioma

Sec. 2.4.2