SlideShare uma empresa Scribd logo
1 de 39
Centro de Informática – Universidade Federal da Paraíba




              Ordenação e Recuperação de Dados
               Aula 1: Consultas Booleanas




                Prof. Alexandre Duarte - http://alexandre.ci.ufpb.br
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
                      Empregado                     Gerente   Salário
                     Paulo                         Pedro      50000
                      Pedro                        João       60000
                      José                         Pedro      50000


  Tipicamente permitem consultas númericas e por exatidão
   e.g., Salário < 60000 AND Gerente = Pedro.

                                                                        4
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                   Sec. 1.1




      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
Centro de Informática – Universidade Federal da Paraíba                                          Sec. 1.1

      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




          Brutus AND Caesar BUT NOT                                      1 se a peça contém
          Calpurnia                                                      a palavra, 0 caso
                                                                         contrário
Centro de Informática – Universidade Federal da Paraíba   Sec. 1.1




      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
Centro de Informática – Universidade Federal da Paraíba   Sec. 1.1

      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
O modelo clássico de busca
                Tarefa
                 Tarefa                       Livrar-se de um rato de forma
                                               Livrar-se de um rato de forma
                                              politicamente correta
                                               politicamente correta
                                Equívoco?
                                Equívoco?
               Informação
                Informação                    Como se livrar de um
                                               Como se livrar de um
               necessária
                necessária                    rato sem matá-lo
                                               rato sem matá-lo
                                Equívoco?
                                Equívoco?
                Forma
                 Forma                        Como capturar um rato vivo
                verbal
                                              Como capturar um rato vivo
                 verbal
                                Equívoco?
                                Equívoco?
               Consulta
                Consulta                           ratoeira


                             Motor de Busca
                             Motor de Busca




Refinamento
 Refinamento                   Resultado
                                Resultado
da consulta
 da consulta                                    Documentos
                                                 Documentos
Centro de Informática – Universidade Federal da Paraíba   Sec. 1.1

      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
Centro de Informática – Universidade Federal da Paraíba   Sec. 1.1




      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
Centro de Informática – Universidade Federal da Paraíba   Sec. 1.1




      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.    Por que?
                                                     Por que?
             Matriz extremamente esparsa
       Qual seria uma melhor representação?
             Armazenamos apenas as ocorrências de 1’s




                                                                 13
Centro de Informática – Universidade Federal da Paraíba                         Sec. 1.2




      Í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 ?

       Brutus                                   1         2   4   11 31 45 173 174
       Caesar                                  1          2   4   5    6   16 57 132
       Calpurnia                              2       31      54 101
                            O que acontece se a palavra Caesar for
                            O que acontece se a palavra Caesar for
                            adicionada ao documento 14?
                            adicionada ao documento 14?                                14
Centro de Informática – Universidade Federal da Paraíba                         Sec. 1.2




      Í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


          Brutus                                  1       2    4   11 31 45 173 174
         Caesar                                  1        2    4   5    6   16 57 132
          Calpurnia                             2         31   54 101


      Dicionário                                                   Postings
                             Ordenadas por docID (veremos mais tarde o porque
                                                                           15
Sec. 1.2




 Construção de um índice invertido
   Documentos para                    Friends, Romans, countrymen.
   indexar


                       Tokenizer
Fluxo de tokens
                                   Friends Romans      Countrymen
                        Módulos
                       Linguísticos
                                      friend   roman    countryman
 Tokens modificados
                       Indexador friend                    2         4

                                   roman                   1         2
    Índice invertido
                                   countryman             13         16
Centro de Informática – Universidade Federal da Paraíba          Sec. 1.2

      Passos do Indexador: Sequência de
      Tokens
       Sequência pares (token modificado, Document ID)




                 Doc 1                             Doc 2

  I did enact Julius                        So let it be with
 Caesar I was killed                       Caesar. The noble
    i' the Capitol;                       Brutus hath told you
  Brutus killed me.                      Caesar was ambitious
Centro de Informática – Universidade Federal da Paraíba   Sec. 1.2




      Passos do indexador: Ordenação
       Ordene pelos termos
             E depois pelo Doc-ID




           Passo central da
              indexação
Centro de Informática – Universidade Federal da Paraíba   Sec. 1.2

     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ão
              Mais tarde
Sec. 1.2




   E quanto ao armazenamento?
                            Listas de
                             Doc Ids

  Termos e
frequências
                            Veremos no
                            curso:
                            •Como indexar
                            eficientemente?
                            •De quanto
                            armazenamento
                            precisamos?
                Ponteiros                      20
Centro de Informática – Universidade Federal da Paraíba   Sec. 1.3




      Acabamos de construir um índice
                                                             Foco de
       Como processamos uma consulta?                         hoje
          Mais tarde – que tipos de consulta podemos processar ?




                                                                 21
Centro de Informática – Universidade Federal da Paraíba                             Sec. 1.3




      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:

                                 2       4        8       16   32        64     128 Brutus
                                 1        2       3       5    8    13        21 34 Caesar

                                                                                           22
Centro de Informática – Universidade Federal da Paraíba                             Sec. 1.3




       Calculando a interseção
        Percorrer as duas listas de postings
         simultaneamente, em tempo linear em relação ao
         número de elementos das listas

                                 2       4        8       16   32        64     128 Brutus
   2       8
                                 1        2       3       5    8    13        21 34 Caesar



     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.
                                                                                           23
Calculando a interseção




                          24
Centro de Informática – Universidade Federal da Paraíba                      Sec. 1.3




      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
Centro de Informática – Universidade Federal da Paraíba   Sec. 1.3

      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
Centro de Informática – Universidade Federal da Paraíba   Sec. 1.3




      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
Centro de Informática – Universidade Federal da Paraíba                      Sec. 1.3




      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                                  2      4     8   16 32 64 128
     Caesar                                  1        2   3   5   8   16 21 34
     Calpurnia                             13 16

            Consulta: Brutus AND Caesar AND Calpurnia                            28
Centro de Informática – Universidade Federal da Paraíba                      Sec. 1.3




      Exemplo de otimização de consulta
       Processo em ordem crescente de frequência:
             Comece pelo menor conjunto.


                                    Por isso mantemos a
                                  frequência no dicionário


     Brutus                                  2      4     8   16 32 64 128
     Caesar                                  1        2   3   5   8   16 21 34
     Calpurnia                             13 16

        Execute a consulta como (Calpurnia AND Brutus) AND Caesar.
                                                                                    29
Centro de Informática – Universidade Federal da Paraíba   Sec. 1.3




      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
Exercícios
 Recomende uma ordem de
  processamento para a
  seguinte consulta
                           Term            Freq
(tangerine OR trees) AND   eyes           213312
(marmalade OR skies) AND   kaleidoscope    87009
(kaleidoscope OR eyes)     marmalade      107913
                           skies          271658
                           tangerine       46653
                           trees          316812




                                                   31
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

Mais conteúdo relacionado

Mais de Alexandre Duarte

Ciência da Computação como Ciência
Ciência da Computação como CiênciaCiência da Computação como Ciência
Ciência da Computação como CiênciaAlexandre Duarte
 
Metodologia da Pesquisa Científica: Introdução
Metodologia da Pesquisa Científica:  IntroduçãoMetodologia da Pesquisa Científica:  Introdução
Metodologia da Pesquisa Científica: IntroduçãoAlexandre Duarte
 
Gráficos: 10 dicas sobre o que fazer e sobre o que não fazer
Gráficos: 10 dicas sobre o que fazer e sobre o que não fazerGráficos: 10 dicas sobre o que fazer e sobre o que não fazer
Gráficos: 10 dicas sobre o que fazer e sobre o que não fazerAlexandre Duarte
 
Panorama de Pesquisas em Análise de Dados na UFPB
Panorama de Pesquisas em Análise de Dados na UFPBPanorama de Pesquisas em Análise de Dados na UFPB
Panorama de Pesquisas em Análise de Dados na UFPBAlexandre Duarte
 
Sumarização Estatística 2D: Variáveis Nominais
Sumarização Estatística 2D: Variáveis NominaisSumarização Estatística 2D: Variáveis Nominais
Sumarização Estatística 2D: Variáveis NominaisAlexandre Duarte
 
Correlação e Classificação
Correlação e ClassificaçãoCorrelação e Classificação
Correlação e ClassificaçãoAlexandre Duarte
 
Sumarização Estatística 2D
Sumarização Estatística 2DSumarização Estatística 2D
Sumarização Estatística 2DAlexandre Duarte
 
Sumarização Estatística 1D
Sumarização Estatística 1DSumarização Estatística 1D
Sumarização Estatística 1DAlexandre Duarte
 
Preparação e Limpeza de Dados
Preparação e Limpeza de DadosPreparação e Limpeza de Dados
Preparação e Limpeza de DadosAlexandre Duarte
 
Introdução ao Projeto de Experimentos
Introdução ao Projeto de ExperimentosIntrodução ao Projeto de Experimentos
Introdução ao Projeto de ExperimentosAlexandre Duarte
 
Introdução ao Projeto de Surveys
Introdução ao Projeto de SurveysIntrodução ao Projeto de Surveys
Introdução ao Projeto de SurveysAlexandre Duarte
 
Introdução à Análise de Dados - Aula 01
Introdução à Análise de Dados - Aula 01Introdução à Análise de Dados - Aula 01
Introdução à Análise de Dados - Aula 01Alexandre Duarte
 
Introdução à Analise de Dados - aula 3 - Agregação de Dados
Introdução à Analise de Dados - aula 3 - Agregação de DadosIntrodução à Analise de Dados - aula 3 - Agregação de Dados
Introdução à Analise de Dados - aula 3 - Agregação de DadosAlexandre Duarte
 
Introdução à Análise de Dados - Aula 02 - Tipos Básicos de Dados
Introdução à Análise de Dados - Aula 02 - Tipos Básicos de Dados Introdução à Análise de Dados - Aula 02 - Tipos Básicos de Dados
Introdução à Análise de Dados - Aula 02 - Tipos Básicos de Dados Alexandre Duarte
 
Análise de Redes Sociais: Introdução aos Grafos Aleatórios
Análise de Redes Sociais: Introdução aos Grafos Aleatórios Análise de Redes Sociais: Introdução aos Grafos Aleatórios
Análise de Redes Sociais: Introdução aos Grafos Aleatórios Alexandre Duarte
 
Análise de Redes Sociais: Introdução
Análise de Redes Sociais: IntroduçãoAnálise de Redes Sociais: Introdução
Análise de Redes Sociais: IntroduçãoAlexandre Duarte
 
Dicas para calouros na Universidade
Dicas para calouros na UniversidadeDicas para calouros na Universidade
Dicas para calouros na UniversidadeAlexandre Duarte
 
Unidade 0: Projeto de Experimentos
Unidade 0: Projeto de ExperimentosUnidade 0: Projeto de Experimentos
Unidade 0: Projeto de ExperimentosAlexandre Duarte
 

Mais de Alexandre Duarte (20)

Ciência da Computação como Ciência
Ciência da Computação como CiênciaCiência da Computação como Ciência
Ciência da Computação como Ciência
 
Metodologia da Pesquisa Científica: Introdução
Metodologia da Pesquisa Científica:  IntroduçãoMetodologia da Pesquisa Científica:  Introdução
Metodologia da Pesquisa Científica: Introdução
 
Gráficos: 10 dicas sobre o que fazer e sobre o que não fazer
Gráficos: 10 dicas sobre o que fazer e sobre o que não fazerGráficos: 10 dicas sobre o que fazer e sobre o que não fazer
Gráficos: 10 dicas sobre o que fazer e sobre o que não fazer
 
Panorama de Pesquisas em Análise de Dados na UFPB
Panorama de Pesquisas em Análise de Dados na UFPBPanorama de Pesquisas em Análise de Dados na UFPB
Panorama de Pesquisas em Análise de Dados na UFPB
 
Agrupamento com K-Means
Agrupamento com K-MeansAgrupamento com K-Means
Agrupamento com K-Means
 
Sumarização Estatística 2D: Variáveis Nominais
Sumarização Estatística 2D: Variáveis NominaisSumarização Estatística 2D: Variáveis Nominais
Sumarização Estatística 2D: Variáveis Nominais
 
Correlação e Classificação
Correlação e ClassificaçãoCorrelação e Classificação
Correlação e Classificação
 
Sumarização Estatística 2D
Sumarização Estatística 2DSumarização Estatística 2D
Sumarização Estatística 2D
 
Sumarização Estatística 1D
Sumarização Estatística 1DSumarização Estatística 1D
Sumarização Estatística 1D
 
Transformação de Dados
Transformação de DadosTransformação de Dados
Transformação de Dados
 
Preparação e Limpeza de Dados
Preparação e Limpeza de DadosPreparação e Limpeza de Dados
Preparação e Limpeza de Dados
 
Introdução ao Projeto de Experimentos
Introdução ao Projeto de ExperimentosIntrodução ao Projeto de Experimentos
Introdução ao Projeto de Experimentos
 
Introdução ao Projeto de Surveys
Introdução ao Projeto de SurveysIntrodução ao Projeto de Surveys
Introdução ao Projeto de Surveys
 
Introdução à Análise de Dados - Aula 01
Introdução à Análise de Dados - Aula 01Introdução à Análise de Dados - Aula 01
Introdução à Análise de Dados - Aula 01
 
Introdução à Analise de Dados - aula 3 - Agregação de Dados
Introdução à Analise de Dados - aula 3 - Agregação de DadosIntrodução à Analise de Dados - aula 3 - Agregação de Dados
Introdução à Analise de Dados - aula 3 - Agregação de Dados
 
Introdução à Análise de Dados - Aula 02 - Tipos Básicos de Dados
Introdução à Análise de Dados - Aula 02 - Tipos Básicos de Dados Introdução à Análise de Dados - Aula 02 - Tipos Básicos de Dados
Introdução à Análise de Dados - Aula 02 - Tipos Básicos de Dados
 
Análise de Redes Sociais: Introdução aos Grafos Aleatórios
Análise de Redes Sociais: Introdução aos Grafos Aleatórios Análise de Redes Sociais: Introdução aos Grafos Aleatórios
Análise de Redes Sociais: Introdução aos Grafos Aleatórios
 
Análise de Redes Sociais: Introdução
Análise de Redes Sociais: IntroduçãoAnálise de Redes Sociais: Introdução
Análise de Redes Sociais: Introdução
 
Dicas para calouros na Universidade
Dicas para calouros na UniversidadeDicas para calouros na Universidade
Dicas para calouros na Universidade
 
Unidade 0: Projeto de Experimentos
Unidade 0: Projeto de ExperimentosUnidade 0: Projeto de Experimentos
Unidade 0: Projeto de Experimentos
 

Recuperação de Informação com Consultas Booleanas

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

Notas do Editor

  1. Grep is line-oriented; IR is document oriented.
  2. Linked lists generally preferred to arrays Dynamic space allocation Insertion of terms into documents easy Space overhead of pointers