Centro de Informática – Universidade Federal da Paraíba              Ordenação e Recuperação de Dados               Aula 2...
Ch. 1Revisão da aula passada Índices invertidos (introdução):    Estrutura: Dicionário e Postings    Passo chave na con...
Roteiro para esta aulaAprofundamento sobre indexação Pré-processamento para criação do vocabulário  de termos   Document...
Relembrando o processo de indexação Documentos para                   Friends, Romans, countrymen. indexar                ...
Sec. 2.1Parsing de um documento Qual o formato do documento?   pdf/word/excel/html? Em que idioma? Qual o conjunto de ...
Sec. 2.1Complicadores: Formato/idioma A coleção pode conter documentos escritos em  vários idiomas diferentes    Um únic...
Tokens e Termos
Sec. 2.2.1Tokenization Entrada: “Friends, Romans and Countrymen” Saída: Tokens    Friends    Romans    Countrymen Um...
Sec. 2.2.1Tokenization Problemas na geração de tokens:    Finland’s capital →     Finland? Finlands? Finland’s?   Hewle...
Sec. 2.2.1Números   23/03/2011           23 de Março 2011   55 B.C.   B-52   Minha chave PGP é 324a3df234cb23e   (083...
Sec. 2.2.1Tokenization: questões referentes aoidioma Francês    Lensemble → um token ou dois?        L ? L’ ? Le ?     ...
Sec. 2.2.1   Tokenization: questões referentes ao   idioma    Chinês e Japonês não tem espaços entre as     palavras:    ...
Sec. 2.2.1Tokenization: questões referentes aoidioma Árabe (e Hebraico) é escrito basicamente da direita  para a esquerda...
Sec. 2.2.2Separadores Com uma lista de separadores é possível excluir do  dicionário as palavras mais comuns    Pouco si...
Sec. 2.2.3Normalização Precisamos “normalizar”as palavras no texto indexado e  também nas consultas para uma mesma forma ...
Sec. 2.2.3Normalização: outros idiomas Acentos: Francês résumé vs. resume. Tremas: Alemão: Tuebingen vs. Tübingen    De...
Sec. 2.2.3Normalização: outros idiomas Normalização de formatos de datas    7 月 30 日 vs. 7/30 Tokenization e normalizaç...
Sec. 2.2.3Normalização Uma alternativa às classes de equivalência é fazer  expansão assimétrica Um exemplo de onde esta ...
Thesaurus Como lidar com sinônimos e homônimos?    Classes de equivalência específicas       carro = automóvel    Pode...
Sec. 2.2.4Lemmatization Reduzir variações à uma única base Exemplo    fui, era, sou → ser    carro, carrinho, carrão, ...
Sec. 2.2.4Especificidades do idioma Muitas das funcionalidades descritas anteriormente  descrevem transformações que sã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 posti...
Sec. 2.3Adicionando skip pointers (em tempode indexação) às listas de postings       41                 128      2      4 ...
Sec. 2.3Processando consultas com skippointers       41               128      2     4   8   41    48       64    128     ...
Sec. 2.3Onde colocar os skip pointers? Tradeoff:    Mais ponteiros → saltos menores ⇒ saltos mais     frequentes. Porém ...
Sec. 2.3Colocando os skip pointers Heurística simples: para listas de tamanho L, colocar  √L skip pointers distribuídos u...
CONSULTAS POR FRASES E ÍNDICESPOSICIONAIS
Sec. 2.4Consultas por frases Queremos ser capazes de responder consultas como  “Universidade Federal da Paraíba” – como u...
Sec. 2.4.1Primeria tentativa: índices com bi-termos Indexar cada par de termos consecutivos como se  fossem uma frase Po...
Sec. 2.4.1Consultas por frases mais longas Frases mais longas são processadas utilizando  operadores lógicos: universida...
Sec. 2.4.1Problemas com os bi-termos Falsos positivos, como mencionado anteriormente O tamanho do índice explode por con...
Sec. 2.4.2Solução 2: Índices posicionais Armazenar na lista de postings as posições dos  tokens no documento   <termo, nú...
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;         ...
Sec. 2.4.2Tamanho de um índice posicional É possível comprimir a lista de posições: falaremos  sobre isso em breve No en...
Sec. 2.4.2Tamanho de um índice posicional Requer uma entrada para cada ocorrência, não  apenas uma por documento Tamanho...
Sec. 2.4.2Regra geral Um índice posicional é entre duas e quatros vezes  maior que um índice não-posicional O tamanho do...
Próximos SlideShares
Carregando em…5
×

Vocabulário de termos e listas de postings

725 visualizações

Publicada em

  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Vocabulário de termos e listas de postings

  1. 1. 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
  2. 2. 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
  3. 3. 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
  4. 4. 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
  5. 5. 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.
  6. 6. 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)?
  7. 7. Tokens e Termos
  8. 8. 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?
  9. 9. 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?
  10. 10. 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.
  11. 11. 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%
  12. 12. 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!
  13. 13. 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’
  14. 14. 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”
  15. 15. 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
  16. 16. 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
  17. 17. 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
  18. 18. 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
  19. 19. 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
  20. 20. 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
  21. 21. 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
  22. 22. MERGE MAIS RÁPIDOSKIP POINTERS/SKIP LISTS
  23. 23. 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).
  24. 24. 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?
  25. 25. 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.
  26. 26. 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.
  27. 27. 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.
  28. 28. CONSULTAS POR FRASES E ÍNDICESPOSICIONAIS
  29. 29. 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>
  30. 30. 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.
  31. 31. 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
  32. 32. 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
  33. 33. 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.>
  34. 34. 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, …>
  35. 35. 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.
  36. 36. 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
  37. 37. 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

×