Information Retrieval using the Boolean Model in Ruby on Rails

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    Favorites, Groups & Events

    Information Retrieval using the Boolean Model in Ruby on Rails - Presentation Transcript

    1. Information Retrieval using the Boolean Model in Ruby on Rails Nuno Job 26 de Maio de 2008
    2. Information Retrieval using Boolean Model
      • M étodo de obter resultados numa pesquisa baseado em modelos booleanos.
      • Associação das palavras, ao resultado, com base numa formula.
      • Critérios de ponderação disponíveis em base de dados - Número de ocorrências.
      • V árias frameworks de IR disponíveis: Spynx, Ferret, ... Ask Google.
    3. 3 simples passos de indexaç ão
      • Era uma vez num reino muito distante uma princesa chamada Eduarda.
      historia.txt
    4. E a pesquisa?
      • Obter as ocorrências que satisfazem cada predicado : A AND B OR NOT C (A,B,C Sets)
      • Ou por um statement SQL complicado + Performance Ou obter tudo e usar uma linguagem de scripting + Versatilidade
    5. MapReduce!?
      • Arquitectura (?) usada pela Google para combater este problema de eficiência vs versatilidade. (e muitos outros)
      • Plataforma distribuída de computaç ão.
      • Um/vários mestre e vários workers
      • Funç ão map de cada worker processa “um bocado” de um documento enorme.
      • Função reduce cria a partir dos maps parciais o resultado final.
      • Afinal as linguagens funcionais servem para alguma coisa. Os compiladores e a engenharia de linguagens também...
      • Exemplo: os desafios que as linguagens dinâmicas trazem aos compiladores tradicionais
    6. MapReduce - Esquema
      • Porque é que nos interessa uma boa arquitectura? (ie: google twitter scaling architecture)
    7.  
    8. Step by Step on Ruby on Rails
      • Do it yourself em 15 minutos (ser á que tenho assim tanto tempo? )
      • Despreza-se as v árias formas de uma palavra. Para efeitos práticos deve ser considerado. (exemplo: procura != procurar )
    9. Criar o projecto e os modelos
      • O que s ão modelos? (wiki model view controller) Camada computacional responsável pela ligaç ão entre a aplicação e a base de dados
    10. Criar a base de dados
    11. Inserir um documento
    12. Mas....
      • Inserimos o documento sem processar as palavras?
      • Para que a procura seja eficiente é necessário que a indexação seja feita não aquando da sua criação mas num esquema de fila de espera. A arquitectura importa!
      • Para simplificar, indexamos aquando da criaç ão.
      • Mas e se o fizéssemos numa aplicação real com milhares de request por segundo?
    13. Depois da criaç ão, Indexar!
      • after_create? before_save?
    14. Vamos experimentar
    15. E.. Funcionou?
    16. A pesquisa
      • Com a informaç ão disponivel em BD como conseguir processar pesquisas?
      • Implementação Trivial
      • Mas tem um pequeno problema no modelo de dados (para os mais atentos...)
    17. O Problema
      • Quando definimos na base de dados o id do documento fica em document e n ão em document_id
      • Apesar de ser possível usar assim, os princípios de convention over configuration sugerem a alteraç ão
      • Para simplificar vamos continuar assim, mas...
    18. A relaç ão funciona? Mas ent ão se não funciona-se eu ia por na apresentação? Claro que não :)
    19. A pesquisa (bugs fixed)
      • Parece apropriado que seja o modelo dos documentos que faça a pesquisa devolvendo os documentos ordenados pelo peso.
      • Pode tamb ém vir a ser necessário uma pesquisa complementar. Exemplo: Existe a palavra neste documento?
    20. M ãos na massa...
    21. Os operadores
      • J á temos uma forma de descobrir quais os documentos que têm dada palavra.
      • Faltam as operações.
      • AND? OR? NOT?
      • AND por defeito. NOT como -.
    22. Primeira tentativa
      • O documento 4 é claramente o que devia aparecer em primeiro. Mas como?
    23. D úvidas
      • Ser á que devemos escolher apenas pelos pesos?
      • Será que é mais importante ter todas as palavras pelo menos uma vez? Ou ter ordenados pela soma dos pesos?
      • Far á sentido numa pesquisa textual o OR? Ou é o OR apenas a junção de duas pesquisas?
      • E nesse caso? A ordenaç ão?
    24. Respostas
      • Como em quase tudo, n ão há certo nem errado.
      • Existem vários estudos sobre produzir melhores resultados na pesquisa textual.
      • Para os obter usar uma framework como o spynx parece mais apropriado.
      • Para fins deste trabalho: O que tem todas as palavras primeiro, depois ordenado por peso. Implementaç ão fácil.
    25. Uma implementaç ão “trivial”
    26. E funcionou?
      • E a performance? E a pr óximidades das palavras? E (insira-aqui-a-sua-pergunta) ?
      • Frameworks! Frameworks! Frameworks!
    27. e-archia: Indexaç ão
    28. e-archia: Pesquisa
    29. Consideraç ões finais
      • Melhorar os resultados
      • Melhorar a performance
      • Arquitectura
      • “ kids, don’t try this at home”
    30. I accept chaos, I'm not sure whether it accepts me. Bob Dylan

    + dscapedscape, 2 years ago

    custom

    1056 views, 0 favs, 3 embeds more stats

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 1056
      • 959 on SlideShare
      • 97 from embeds
    • Comments 0
    • Favorites 0
    • Downloads 21
    Most viewed embeds
    • 95 views on http://nunojob.wordpress.com
    • 1 views on http://209.85.175.104
    • 1 views on http://74.125.93.104

    more

    All embeds
    • 95 views on http://nunojob.wordpress.com
    • 1 views on http://209.85.175.104
    • 1 views on http://74.125.93.104

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories