• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Vocabulário de termos e listas de postings
 

Vocabulário de termos e listas de postings

on

  • 580 views

 

Statistics

Views

Total Views
580
Views on SlideShare
580
Embed Views
0

Actions

Likes
0
Downloads
21
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
  • Nontrivial issues. Requires some design decisions.
  • Nevertheless: “Google ignores common words and characters such as where, the, how, and other digits and letters which slow down your search without improving the results.” (Though you can explicitly ask for them to remain.)
  • Why not the reverse?

Vocabulário de termos e listas de postings Vocabulário de termos e listas de postings Presentation Transcript

  • Centro de Informática – Universidade Federal da Paraíba Ordenação e Recuperação de Dados Aula 2: Vocabulário de termos e listas de postings Prof. Alexandre Duarte - http://alexandre.ci.ufpb.br
  • Ch. 1Revisã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
  • 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
  • Relembrando o processo de indexação Documentos para Friends, Romans, countrymen. indexar Tokenizer Fluxo de tokens Friends Romans Countrymen Módulos Linguísticos Tokens modificados friend roman countryman Indexador friend 2 4 roman 1 2 Índice invertido countryman 13 16
  • Sec. 2.1Parsing 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 umproblema de classificação. Veremos maissobre isso no futuro.
  • Sec. 2.1Complicadores: 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)?
  • Tokens e Termos
  • Sec. 2.2.1Tokenization 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.1Tokenization 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.1Nú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.1Tokenization: questões referentes aoidioma Francês  Lensemble → 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 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.1Tokenization: questões referentes aoidioma Á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.2Separadores 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.3Normalizaçã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.3Normalizaçã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.3Normalizaçã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 O que seria MIT? Morgen will ich in MIT … Crucial: É preciso normalizar tanto o texto a ser indexado quanto os termos da consulta uniformemente
  • Sec. 2.2.3Normalizaçã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
  • 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
  • Sec. 2.2.4Lemmatization 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.4Especificidades 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
  • MERGE MAIS RÁPIDOSKIP POINTERS/SKIP LISTS
  • Sec. 2.3 Relembrando o merge básico  Caminhe simultaneamente nas duas listas em tempo linear ao total de postings 2 4 8 41 48 64 128 Brutus2 8 1 2 3 8 11 17 21 31 CaesarSe as listas têm comprimento m e n, o cálculo dainterseção tem complexidade O(m+n)Podemos fazer melhor que isso?Sim (se o índice não for alterado muito freqüentemente).
  • Sec. 2.3Adicionando skip pointers (em tempode indexação) às listas de postings 41 128 2 4 8 41 48 64 128 11 31 1 2 3 8 11 17 21 31 Por que?  Para saltar (skip) postings que não vão aparecer nos resultados da consulta Como? Onde colocamos os skip pointers?
  • Sec. 2.3Processando consultas com skippointers 41 128 2 4 8 41 48 64 128 11 31 1 2 3 8 11 17 21 31Suponha que tenhamos percorrido as duas listas atéque processamos o 8 em cada lista. Processamos o 8e 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.3Onde 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.3Colocando 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.
  • CONSULTAS POR FRASES E ÍNDICESPOSICIONAIS
  • Sec. 2.4Consultas 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.1Primeria 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.1Consultas 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 paraibaSem 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.1Problemas 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.2Soluçã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.2Exemplo de índice posicional <be: 993427; 1: 7, 18, 33, 72, 86, 231; Que documento 1,2,4,5 2: 3, 149; poderia conter “to be 4: 17, 191, 291, 430, 434; or not to be”? 5: 363, 367, …>
  • Sec. 2.4.2Tamanho 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.2Tamanho 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% Tamanho do Doc Postings Posições 1000 1 1 100,000 1 100
  • Sec. 2.4.2Regra 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