SlideShare ist ein Scribd-Unternehmen logo
1 von 35
Downloaden Sie, um offline zu lesen
Extração de informações de texto e
  cálculo de similaridade usando
          Apache Lucene
            André Luis Schwerz
           Rafael Liberato Roberto



                           Abril/ 2012


        By André Luis Schwerz e Rafael Liberato Roberto . Este trabalho foi licenciado
        com uma Licença Creative Commons - Atribuição 3.0 Não Adaptada.
Roteiro
• Por que extrair informações?
• Processo de extração de informação
  • Tokenização
  • Normalização
  • Eliminação de Stopwords
  • Stemming
• Indexação e Busca
• Apache Lucene
• Atividade




                                       2
Por que extrair informação?
• Muito conteúdo sendo gerado
  • Textos não estruturados
    • Blogs
    • E-mails
    • Fóruns
    • Redes sociais
    • Artigos
    • Websites


• Realizar busca em textos não estruturados

• Inteligência Coletiva

• Como extrair informação desses conteúdos?
                                              3
Processo de Extração de Informação


                                             Refinamento


                              Pré-
        Coleta                                  Indexação             Mineração            Análise
                         Processamento

• Formação da        • Preparação dos    • Organização com     • Cálculos,        • Análise humana
  base de              dados               objetivo de busca     inferências,
  conhecimento                             rápida                extração de
                     • Processamento                             conhecimento
                                                                                  • Leitura e
• Varredura manual     de Linguagem      • Recuperação da                           interpretação dos
  ou automática        natural             Informação          • Mineração de       dados
  (Crawling)                                                     dados




                                                                                                     4
Processo de Extração de Informação


                                             Refinamento


                              Pré-
        Coleta                                  Indexação             Mineração            Análise
                         Processamento

• Formação da        • Preparação dos    • Organização com     • Cálculos,        • Análise humana
  base de              dados               objetivo de busca     inferências,
  conhecimento                             rápida                extração de
                     • Processamento                             conhecimento
                                                                                  • Leitura e
• Varredura manual     de Linguagem      • Recuperação da                           interpretação dos
  ou automática        natural             Informação          • Mineração de       dados
  (Crawling)                                                     dados




                                                                                                     5
Extração de Informações de Texto
     Pré-
                Indexação       Mineração
Processamento




                            1      Tokenização


                            2     Normalização

                            3       Stopwords


                            4        Stemming



                                                 6
1   Tokenização
Tokenização                                                                        2   Normalização
       Pré-
                      Indexação           Mineração
  Processamento
                                                                                   3    Stopwords

• Interpreta o texto transformado em termos                                        4    Stemming


• Exemplo

     Texto: Pouco se aprende com a vitória, mas muito com a derrota.
                                  1              1               1

                      Pouco               se          aprende           com


                  0           5       6         8 9             16 17         20

Termos:
[“Pouco”, “se”, “aprende”, “com”, “a”, “vitória”, “mas”, “muito”, “com”, “a”, “derrota”]

                                                                                                7
1   Tokenização
Tokenização                                                 2   Normalização
      Pré-
                 Indexação   Mineração
 Processamento
                                                            3    Stopwords

• Diferentes formas de tokenização                          4    Stemming

 Pouco se aprende com a vitória, mas muito com a derrota.

Shingle n=4

 Pouco                        aprende com
 Pouco se                     aprende com a
 Pouco se aprende             aprende com a vitória
 Pouco se aprende com         com
 se                           com a
 se aprende                   com a vitória
 se aprende com               a
 se aprende com a             a vitória
 aprende                      vitória
                                                                         8
1     Tokenização
  Normalização                                                        2    Normalização
         Pré-
                    Indexação      Mineração
    Processamento
                                                                      3      Stopwords

                                                                      4      Stemming
  • Conversão do texto para letras minúsculas.

  • Pode remover acentos, pontos, números, etc.


    Texto: Pouco se aprende com a vitória, mas muito com a derrota.

[“pouco”, “se”, “aprende”, “com”, “a”, “vitoria”, “mas”, “muito”, “com”, “a”, “derrota”]




                                                                                      9
1   Tokenização
 Remoção de Stopwords                                                    2   Normalização
        Pré-
                     Indexação      Mineração
   Processamento
                                                                         3    Stopwords

 • Remove as palavras comuns                                             4    Stemming

   • Sem significado relevante
 • Preposição, pronome, etc.
 • Depende do idioma

     Texto: Pouco se aprende com a vitória, mas muito com a derrota.

[“pouco”, “se”, “aprende”, “com”, “a”, “vitoria”, “mas”, “muito”, “com”, “a”, “derrota”]
                   [“pouco”, “aprende”, “vitoria”, “muito”, “derrota”]




                                                                                      10
1   Tokenização
 Stemming                                                                2   Normalização
        Pré-
                     Indexação       Mineração
   Processamento
                                                                         3    Stopwords

 • Converte os termos em sua raiz gramatical                             4    Stemming

 • Elimina plural
             Pouco se aprende com a vitória, mas muito com a derrota.
[“pouco”, “se”, “aprende”, “com”, “a”, “vitoria”, “mas”, “muito”, “com”, “a”, “derrota”]
                   [“pouco”, “aprende”, “vitoria”, “muito”, “derrota”]

                                 pouco           pouc
                                 aprende         aprend
                                 vitoria         vitor
                                 muito           muit
                                 derrota         derrot

                                                                                      11
Indexação
      Pré-
                 Indexação   Mineração
 Processamento
                                                               Documento 1

• Estabelece uma estrutura para os dados
                                         Termos   Documentos
                                                               Documento 2
• Índice invertido                 Termo1             1
                                   Termo2            1,2
   • Vocabulário e ocorrência
                                   Termo3             2
                                   Termo4             3
                                                               Documento 3




• Banco de dados


                                                                        12
Indexação
      Pré-
                  Indexação   Mineração
 Processamento



• Tratamento de termos que são muito usados em uma coleção de
 documentos

• Fator tf
  • Quantidade de vezes que o termo i aparece no documento (Quão bem i
    descreve d)

• Fator idf
  • Inverso da frequência do termo i dentro da coleção de documentos.
  • Quanto menos usado for o termo, maior o idf




                                                                         13
Mineração
      Pré-
                 Indexação   Mineração
 Processamento




• Utilização algoritmos para extrair informações dos dados
 estruturados




                                                             14
Apache Lucene™
• Biblioteca para recuperação de informação;

• Projeto código aberto implementado em Java;

• Primeira distribuição em 2000;

• Versão atual 3.5;

• Disponível em       http://lucene.apache.org/core/


• Documentação em
 http://lucene.apache.org/core/old_versioned_docs/versions/3_5_0/api/core/index.html


 *Os slides a seguir tem como objetivo fornecer um tutorial rápido e
 básico da utilização do Lucene
                                                                                       15
Analisadores
      Pré-
                 Indexação     Mineração
 Processamento



• Estabelece regras para realização do pré-processamento

• Alguns tipos de Analisadores

                                  Analyzer
     Whitespace Analyzer     Divide tokens por espaço em branco

     Simple Analyzer         Divide tokens por caracteres que não são letras,
                             normaliza (lowercase) e remove pontuação.
     Stop Analyzer           Simple Analyzer mais remoção de stopwords em
                             inglês
     Standard Analyzer       Mais sofisticado. Identifica certos tipos de tokens,
                             como e-mail, nomes de empresas, etc. Normaliza
                             (lowercase) e remove pontuação e stopwords



                                                                                    16
Analisadores
          Pré-
                          Indexação          Mineração
     Processamento



                        Analyzer


      Reader                   Tokenizer         ...         TokenFilter   TokenFilter   Tokens




                          TokenFilter




StopFilter                                                  Length
                                                             Filter

        LowerCase                                Standard
          Filter                                   Filter

                     Shingle        PorterStem
                      Filter          Filter
                                                                                                  17
Analisadores
            Pré-
                            Indexação          Mineração
       Processamento



                          Analyzer


        Reader                   Tokenizer         ...     TokenFilter   TokenFilter   Tokens




public final class MeuAnalisador extends Analyzer{
                 TokenFilter


     @Override
     public TokenStream tokenStream(String fieldName, Reader reader)
     {
    StopFilter                             Length
        TokenStream t = new WhitespaceTokenizer(Version.LUCENE_35, reader)
                                            Filter
        return new ShingleFilter(t, 4);
            LowerCase             Standard
     }         Filter               Filter

                       Shingle        PorterStem
}
                        Filter          Filter
                                                                                                18
Analisadores
      Pré-
                 Indexação     Mineração
 Processamento


• Suporte a outros idiomas

  • Definido pelo analisador

  • Somente é necessário se o analisador realizar stemming e a remoção de
    stopwords

• Idiomas suportados pelo Apache Lucene
   • Brazilian
   • Chinese
   • Dutch
   • French
   • German
   • Greek
   • Russian
   • Thai



                                                                            19
Indexação
      Pré-
                 Indexação   Mineração
 Processamento



• Cria arquivos estruturados que permitem o rápido acesso
 as palavras.
  • Índice Invertido




                                             Termos   Documentos
                                         aprend           1
                                         derrot          1,2
                                         muit            1,3
                                         pouc            1,2
                                         vitor           1,5



                                                                   20
Indexação
     Pré-
                Indexação   Mineração
Processamento


                                         Document

                                            Field

                                            Field

                                            Field




                                        Index Writer   Analyzer




                                                              21
Indexação
           Pré-
                          Indexação          Mineração
      Processamento



 • IndexWriter                 responsável por escrever no índice.

IndexWriter(Directory dir, IndexWriterConfig config)
dir          Diretório onde o índice será escrito
config       responsável por definir a versão do lucene e o analyzer a ser utilizado


 Métodos
 addDocument(Document doc)               Insere o documento no índice
 close()                                 Encerra o processo de indexação


 • IndexWriterConfig
IndexWriterConfig(Version matchVersion, Analyzer analyzer)

matchVersion          Versão do lucene. Version.LUCENE_35
analyzer              Analisador a ser utilizado

                                                                                       22
Indexação
         Pré-
                        Indexação        Mineração
    Processamento
                                                        Document

 • Document                                               Field
Document()
                                                          Field
 Métodos
 add(Fieldable field)   Adiciona o field no documento     Field



 • Field
Field(String name, String value, Field.Store store, Field.Index index)

 name       Nome do campo
 value      String a ser processada
 store      Store.YES / Store.NO
 index      Index.ANALYZED | Index.NOT_ANALYZED



                                                                   23
Indexação
         Pré-
                         Indexação       Mineração
    Processamento



  • BrazilianAnalyzer                 responsável por estabelecer as regras do pré-processamento.

 BrazilianAnalyzer(Version matchVersion)                                                  Field


  matchVersion      Versão do lucene. Version.LUCENE_35                                   Field

                                                                                          Field




                                                                Analyzer             Index Writer



Directory dir = FSDirectory.open(new File(pathIndexDir));
Analyzer an = new BrazilianAnalyzer(Version.LUCENE_35);
IndexWriterConfig config = new IndexWriterConfig(Version.LUCENE_35, an);
IndexWriter indexWriter = new IndexWriter(dir, config);

Document d = new Document();
d.add(new Field("livro", “livro”, Store.YES, Index.ANALYZED));
                                                                                                    24
Busca
      Pré-
                 Indexação   Mineração
 Processamento



• Encontra documentos que são relevantes para a
  consulta.
• Rapidez e Classificação


       Busca




                                  Resultados


                                                  25
Busca
        Pré-
                   Indexação   Mineração
   Processamento




                    Consulta               Query Parser   Analyzer




                                             Index        Resultados
                                            Searcher



                                           Index Reader

Busca



              Resultados
                                                                     26
Busca
       Pré-
                  Indexação        Mineração
  Processamento




  IndexReader           responsável pela leitura do índice.

Directory dir = FSDirectory.open(new File(“c://data”));
IndexReader reader = IndexReader.open(dir);



  IndexSearcher               implementa um buscador para o IndexReader.

IndexSearcher searcher = new IndexSearcher(reader)



  QueryParser             analisador da consulta.

QueryParser parser = new QueryParser(Version.LUCENE_35, “field”,
analyzer)

                                                                           27
Busca
       Pré-
                  Indexação        Mineração
  Processamento




  Query           consulta analisada pelo QueryParser

Query query = parser.parse(“string de busca”);


  Cálculo de similaridade entre a query e os documentos
 TopDocs hits = searcher.search(q,100);
 ScoreDoc[] scoreDocs = hits.scoreDocs;


  Exibindo o resultado
 for(ScoreDoc sd : scoreDocs){
     Document d = searcher.doc(sd.doc);
     System.out.println("Nome do Arquivo: " + d.get("file"));
     System.out.println("Detalhando os resultados:");
     System.out.println(searcher.explain(q, sd.doc));
 }
                                                                28
Score
       Pré-
                  Indexação        Mineração
  Processamento



• Retorno do cálculo de similaridade entre a query e o
  documento




Termo             Descrição
tf(t in d)        O número de vezes que o termo t ocorre no documento d

idf(t)            Leva em consideração o número de documentos que contém o termo t

coord(q,d)        Fração de todos os termos da consulta que o documento contém

queryNorm(q,d)    Fator de normalização da consulta

t.getBoost()      Privilegia o termo t na consulta q em tempo de busca

norm(t,d)         Encapsula alguns fatores de boost em tempo de indexação
                                                                                     29
Operadores

Consulta           Encontra o documento que...
java               Contém o termo java no campo padrão (default field)
java junit         Contém o termo java ou junit ou os dois no campo padrão (default field)
java OR junit
+java +junit       Contém ambos, java e junit no campo padrão (default field)
java AND junit

                   Contém o termo java ou junit ou os dois no campo padrão (default field)
titulo:ant         Contém o termo ant no campo titulo
titulo:extremo     Contém o termo extremo no campo titulo e que não contenha esporte no
–assunto:esporte   campo assunto
titulo:extremo
AND NOT
assunto:sports




                                                                                             30
Operadores

Consulta            Encontra o documento que...
(agil OR extrema)   Contém metodologia e deve conter agil ou extrema, todos no campo
AND                 padrão (default field)
metodologia
titulo:"junit in    Contém a frase “junit in action” no campo titulo
action"
titulo:"junit       Contém os termos junit e action com 5 posições um do outro, no campo
action"~5           titulo
java*               Contém termos que começam com java, tais como javaspaces,
                    javaservers
java~               Contém termo próximos ao termo java, como lava




                                                                                           31
Atividade
1. Baixar o projeto com o esqueleto e os livros da bíblia na
   forma de arquivos texto
2. Fazer a indexação da bíblia
3. Fazer a busca que mostra os versículos da Bíblia
   correspondentes a consulta

Obs. Cada arquivo possui um capítulo do livro

                                                         Gênesis 01.txt
I Samuel 01.txt    Mateus 01.txt    1 No princípio criou Deus os céus e a terra.
                                    2 A terra era sem forma e vazia; e havia trevas sobre a face do
I Samuel 02.txt    Mateus 02.txt      abismo, mas o Espírito de Deus pairava sobre a face das águas.
                                    3 Disse Deus: haja luz. E houve luz.
      ...                ...        4 Viu Deus que a luz era boa; e fez separação entre a luz e as
                                      trevas.
                                    5 E Deus chamou à luz dia, e às trevas noite. E foi a tarde e a
                                      manhã, o dia primeiro.
                                    ...
                                                                                               32
Atividade
   2. Fazer a indexação da bíblia
       • Para permitir a busca por versículo, criar um document por
          versículo
                                                                                    Document

                                                                     livro                   Gênesis
                     Gênesis 01.txt
1 No princípio criou Deus os céus e a terra.                       capitulo                     01
2 A terra era sem forma e vazia; e havia trevas sobre a face do
  abismo, mas o Espírito de Deus pairava sobre a face das águas.               1 No princípio criou Deus os céus e a
                                                                   versiculo
                                                                                 terra.
3 Disse Deus: haja luz. E houve luz.
4 Viu Deus que a luz era boa; e fez separação entre a luz e as
  trevas.
5 E Deus chamou à luz dia, e às trevas noite. E foi a tarde e a                     Document
  manhã, o dia primeiro.
...                                                                  livro                   Gênesis

                                                                   capitulo                     01

                                                                               2 A terra era sem forma e vazia; e
                                                                   versiculo
                                                                                 havia trevas sobre a face do
*usar o nome do arquivo para preencher os campos                                 abismo, mas o Espírito de Deus
livro e capítulo                                                                 pairava sobre a face das águas.


                                                                                                                33
Atividade – Código exemplo




     Passo 01: Inicializa o processo de Indexação



     Passo 02: Processo de Indexação



     Passo 03: Processo de Busca e impressão do resultado



                                                            34
Referências
• RAJARAMAN, A. & ULLMAN, J.D., Mining of Massive
 Datasets, 2011

• ALAG, S., Collective Intelligence in Action, Manning,
 2009.

• MCCANDLES, M. et al. Lucene in Action, 2010.




                                                          35

Weitere ähnliche Inhalte

Was ist angesagt?

CapellaDays2022 | Thales DMS | A global engineering process based on MBSE to ...
CapellaDays2022 | Thales DMS | A global engineering process based on MBSE to ...CapellaDays2022 | Thales DMS | A global engineering process based on MBSE to ...
CapellaDays2022 | Thales DMS | A global engineering process based on MBSE to ...Obeo
 
Guia rápido de utilização do Visio 2013
Guia rápido de utilização do Visio 2013Guia rápido de utilização do Visio 2013
Guia rápido de utilização do Visio 2013Nilton (LOMEUTEC)
 
Policy Gradient를 이용한 인공지능 ETF 포트폴리오 매니저
Policy Gradient를 이용한 인공지능 ETF 포트폴리오 매니저Policy Gradient를 이용한 인공지능 ETF 포트폴리오 매니저
Policy Gradient를 이용한 인공지능 ETF 포트폴리오 매니저Gyusu Han
 
SAP PLM BOM (Bill of Material) Redlining
SAP PLM BOM (Bill of Material) RedliningSAP PLM BOM (Bill of Material) Redlining
SAP PLM BOM (Bill of Material) RedliningEric Stajda
 
Capella Days 2021 | A STEP towards Model-based: Case Study covering Conceptua...
Capella Days 2021 | A STEP towards Model-based: Case Study covering Conceptua...Capella Days 2021 | A STEP towards Model-based: Case Study covering Conceptua...
Capella Days 2021 | A STEP towards Model-based: Case Study covering Conceptua...Obeo
 
Training Webinars - Secret hacks for OutSystems 10
Training Webinars - Secret hacks for OutSystems 10Training Webinars - Secret hacks for OutSystems 10
Training Webinars - Secret hacks for OutSystems 10OutSystems
 
Software development methodologies
Software development methodologiesSoftware development methodologies
Software development methodologiesAnkita Lachhwani
 
What are the benefits of reactive programming in java
What are the benefits of reactive programming in java What are the benefits of reactive programming in java
What are the benefits of reactive programming in java Dmytro Melnychuk
 
Enterprise cloud strategy - PDF
Enterprise cloud strategy - PDFEnterprise cloud strategy - PDF
Enterprise cloud strategy - PDFHoangVanDai
 
Case Study: Migration to GitLab (from Bitbucket) at AppsFlyer
Case Study: Migration to GitLab (from Bitbucket) at AppsFlyerCase Study: Migration to GitLab (from Bitbucket) at AppsFlyer
Case Study: Migration to GitLab (from Bitbucket) at AppsFlyerNoa Harel
 
Business Intelligence in Upstream-Downstream
Business Intelligence in Upstream-DownstreamBusiness Intelligence in Upstream-Downstream
Business Intelligence in Upstream-DownstreamNirav Modh
 
Version Control with Git
Version Control with GitVersion Control with Git
Version Control with GitLuigi De Russis
 
Introdução ao Flyway
Introdução ao FlywayIntrodução ao Flyway
Introdução ao FlywayJadson Santos
 

Was ist angesagt? (20)

CapellaDays2022 | Thales DMS | A global engineering process based on MBSE to ...
CapellaDays2022 | Thales DMS | A global engineering process based on MBSE to ...CapellaDays2022 | Thales DMS | A global engineering process based on MBSE to ...
CapellaDays2022 | Thales DMS | A global engineering process based on MBSE to ...
 
Guia rápido de utilização do Visio 2013
Guia rápido de utilização do Visio 2013Guia rápido de utilização do Visio 2013
Guia rápido de utilização do Visio 2013
 
UnBBayes Overview
UnBBayes OverviewUnBBayes Overview
UnBBayes Overview
 
1 dados mestres e inbound1
1 dados mestres e inbound11 dados mestres e inbound1
1 dados mestres e inbound1
 
Policy Gradient를 이용한 인공지능 ETF 포트폴리오 매니저
Policy Gradient를 이용한 인공지능 ETF 포트폴리오 매니저Policy Gradient를 이용한 인공지능 ETF 포트폴리오 매니저
Policy Gradient를 이용한 인공지능 ETF 포트폴리오 매니저
 
SAP PLM BOM (Bill of Material) Redlining
SAP PLM BOM (Bill of Material) RedliningSAP PLM BOM (Bill of Material) Redlining
SAP PLM BOM (Bill of Material) Redlining
 
Images, Deep Dive!
Images, Deep Dive!Images, Deep Dive!
Images, Deep Dive!
 
Capella Days 2021 | A STEP towards Model-based: Case Study covering Conceptua...
Capella Days 2021 | A STEP towards Model-based: Case Study covering Conceptua...Capella Days 2021 | A STEP towards Model-based: Case Study covering Conceptua...
Capella Days 2021 | A STEP towards Model-based: Case Study covering Conceptua...
 
Training Webinars - Secret hacks for OutSystems 10
Training Webinars - Secret hacks for OutSystems 10Training Webinars - Secret hacks for OutSystems 10
Training Webinars - Secret hacks for OutSystems 10
 
Apresentacao geral sap r3
Apresentacao geral sap r3Apresentacao geral sap r3
Apresentacao geral sap r3
 
Git e GitHub - Conceitos Básicos
Git e GitHub - Conceitos BásicosGit e GitHub - Conceitos Básicos
Git e GitHub - Conceitos Básicos
 
Software development methodologies
Software development methodologiesSoftware development methodologies
Software development methodologies
 
What are the benefits of reactive programming in java
What are the benefits of reactive programming in java What are the benefits of reactive programming in java
What are the benefits of reactive programming in java
 
Design participativo
Design participativoDesign participativo
Design participativo
 
Fundamentos de Testes de Software
Fundamentos de Testes de SoftwareFundamentos de Testes de Software
Fundamentos de Testes de Software
 
Enterprise cloud strategy - PDF
Enterprise cloud strategy - PDFEnterprise cloud strategy - PDF
Enterprise cloud strategy - PDF
 
Case Study: Migration to GitLab (from Bitbucket) at AppsFlyer
Case Study: Migration to GitLab (from Bitbucket) at AppsFlyerCase Study: Migration to GitLab (from Bitbucket) at AppsFlyer
Case Study: Migration to GitLab (from Bitbucket) at AppsFlyer
 
Business Intelligence in Upstream-Downstream
Business Intelligence in Upstream-DownstreamBusiness Intelligence in Upstream-Downstream
Business Intelligence in Upstream-Downstream
 
Version Control with Git
Version Control with GitVersion Control with Git
Version Control with Git
 
Introdução ao Flyway
Introdução ao FlywayIntrodução ao Flyway
Introdução ao Flyway
 

Andere mochten auch

Turbinando sua aplicação com Lucene, Solr e Hibernate Search
Turbinando sua aplicação com Lucene, Solr e Hibernate SearchTurbinando sua aplicação com Lucene, Solr e Hibernate Search
Turbinando sua aplicação com Lucene, Solr e Hibernate SearchPaulo César M Jeveaux
 
CLASSIFICAÇÃO DE TEXTOS APLICADA À AVALIAÇÃO ECONÔMICA - TCC
CLASSIFICAÇÃO DE TEXTOS APLICADA À AVALIAÇÃO ECONÔMICA - TCCCLASSIFICAÇÃO DE TEXTOS APLICADA À AVALIAÇÃO ECONÔMICA - TCC
CLASSIFICAÇÃO DE TEXTOS APLICADA À AVALIAÇÃO ECONÔMICA - TCCVivaldo Jose Breternitz
 
Reforma da Lei de Direitos Autorais
Reforma da Lei de Direitos AutoraisReforma da Lei de Direitos Autorais
Reforma da Lei de Direitos AutoraisAndré Luis Schwerz
 
Link analysis - Análise de Links
Link analysis - Análise de LinksLink analysis - Análise de Links
Link analysis - Análise de LinksAndré Luis Schwerz
 
Pesquisando bilhões de documentos em milésimos de segundo
Pesquisando bilhões de documentos em milésimos de segundoPesquisando bilhões de documentos em milésimos de segundo
Pesquisando bilhões de documentos em milésimos de segundoHermano Soares
 
Python x R: mas e o Weka?
Python x R: mas e o Weka? Python x R: mas e o Weka?
Python x R: mas e o Weka? pichiliani
 
Solr - Indexação e Busca com ferramenta Open Source
Solr - Indexação e Busca com ferramenta Open SourceSolr - Indexação e Busca com ferramenta Open Source
Solr - Indexação e Busca com ferramenta Open SourceMarcelo Rodrigues
 
Buscas Poderosas Com Solr
Buscas Poderosas Com SolrBuscas Poderosas Com Solr
Buscas Poderosas Com Solralmeidaricardo
 
Filiação partidária e risco de corrupção de servidores públicos federais
Filiação partidária e risco de corrupção de servidores públicos federaisFiliação partidária e risco de corrupção de servidores públicos federais
Filiação partidária e risco de corrupção de servidores públicos federaisRommel Carvalho
 
Uso de mineração de dados e textos para cálculo de preços de referência em co...
Uso de mineração de dados e textos para cálculo de preços de referência em co...Uso de mineração de dados e textos para cálculo de preços de referência em co...
Uso de mineração de dados e textos para cálculo de preços de referência em co...Rommel Carvalho
 
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
 
Ferramentas para Mineração de Dados
Ferramentas para Mineração de DadosFerramentas para Mineração de Dados
Ferramentas para Mineração de DadosManoel Amaro
 
Abe Curso Estudos De Caso Ii
Abe Curso Estudos De Caso IiAbe Curso Estudos De Caso Ii
Abe Curso Estudos De Caso Iiufrj
 
L) médico pesquisando medicações
L) médico   pesquisando medicaçõesL) médico   pesquisando medicações
L) médico pesquisando medicaçõesLeonardo Alves
 
Cmc encaminhamento- solicitando e agendando
Cmc  encaminhamento- solicitando e agendandoCmc  encaminhamento- solicitando e agendando
Cmc encaminhamento- solicitando e agendandoLeonardo Alves
 
Cmc liberando a agenda-horários
Cmc   liberando a agenda-horáriosCmc   liberando a agenda-horários
Cmc liberando a agenda-horáriosLeonardo Alves
 
Text mining mengmeng & jack_lsu
Text mining mengmeng & jack_lsuText mining mengmeng & jack_lsu
Text mining mengmeng & jack_lsujjdai
 
K) médico histórico de consultas, retornos, consultas antigas
K) médico   histórico de consultas, retornos, consultas antigasK) médico   histórico de consultas, retornos, consultas antigas
K) médico histórico de consultas, retornos, consultas antigasLeonardo Alves
 
Prontuário Eletrônico - Prefeituras
Prontuário Eletrônico - PrefeiturasProntuário Eletrônico - Prefeituras
Prontuário Eletrônico - PrefeiturasLeonardo Alves
 

Andere mochten auch (20)

Turbinando sua aplicação com Lucene, Solr e Hibernate Search
Turbinando sua aplicação com Lucene, Solr e Hibernate SearchTurbinando sua aplicação com Lucene, Solr e Hibernate Search
Turbinando sua aplicação com Lucene, Solr e Hibernate Search
 
CLASSIFICAÇÃO DE TEXTOS APLICADA À AVALIAÇÃO ECONÔMICA - TCC
CLASSIFICAÇÃO DE TEXTOS APLICADA À AVALIAÇÃO ECONÔMICA - TCCCLASSIFICAÇÃO DE TEXTOS APLICADA À AVALIAÇÃO ECONÔMICA - TCC
CLASSIFICAÇÃO DE TEXTOS APLICADA À AVALIAÇÃO ECONÔMICA - TCC
 
Reforma da Lei de Direitos Autorais
Reforma da Lei de Direitos AutoraisReforma da Lei de Direitos Autorais
Reforma da Lei de Direitos Autorais
 
Link analysis - Análise de Links
Link analysis - Análise de LinksLink analysis - Análise de Links
Link analysis - Análise de Links
 
Pesquisando bilhões de documentos em milésimos de segundo
Pesquisando bilhões de documentos em milésimos de segundoPesquisando bilhões de documentos em milésimos de segundo
Pesquisando bilhões de documentos em milésimos de segundo
 
Python x R: mas e o Weka?
Python x R: mas e o Weka? Python x R: mas e o Weka?
Python x R: mas e o Weka?
 
Solr - Indexação e Busca com ferramenta Open Source
Solr - Indexação e Busca com ferramenta Open SourceSolr - Indexação e Busca com ferramenta Open Source
Solr - Indexação e Busca com ferramenta Open Source
 
Buscas Poderosas Com Solr
Buscas Poderosas Com SolrBuscas Poderosas Com Solr
Buscas Poderosas Com Solr
 
Filiação partidária e risco de corrupção de servidores públicos federais
Filiação partidária e risco de corrupção de servidores públicos federaisFiliação partidária e risco de corrupção de servidores públicos federais
Filiação partidária e risco de corrupção de servidores públicos federais
 
Uso de mineração de dados e textos para cálculo de preços de referência em co...
Uso de mineração de dados e textos para cálculo de preços de referência em co...Uso de mineração de dados e textos para cálculo de preços de referência em co...
Uso de mineração de dados e textos para cálculo de preços de referência em co...
 
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
 
Ferramentas para Mineração de Dados
Ferramentas para Mineração de DadosFerramentas para Mineração de Dados
Ferramentas para Mineração de Dados
 
Abe Curso Estudos De Caso Ii
Abe Curso Estudos De Caso IiAbe Curso Estudos De Caso Ii
Abe Curso Estudos De Caso Ii
 
L) médico pesquisando medicações
L) médico   pesquisando medicaçõesL) médico   pesquisando medicações
L) médico pesquisando medicações
 
Cmc encaminhamento- solicitando e agendando
Cmc  encaminhamento- solicitando e agendandoCmc  encaminhamento- solicitando e agendando
Cmc encaminhamento- solicitando e agendando
 
Cmc liberando a agenda-horários
Cmc   liberando a agenda-horáriosCmc   liberando a agenda-horários
Cmc liberando a agenda-horários
 
Text mining mengmeng & jack_lsu
Text mining mengmeng & jack_lsuText mining mengmeng & jack_lsu
Text mining mengmeng & jack_lsu
 
K) médico histórico de consultas, retornos, consultas antigas
K) médico   histórico de consultas, retornos, consultas antigasK) médico   histórico de consultas, retornos, consultas antigas
K) médico histórico de consultas, retornos, consultas antigas
 
Oficina Pentaho
Oficina PentahoOficina Pentaho
Oficina Pentaho
 
Prontuário Eletrônico - Prefeituras
Prontuário Eletrônico - PrefeiturasProntuário Eletrônico - Prefeituras
Prontuário Eletrônico - Prefeituras
 

Kürzlich hochgeladen

FASE 1 MÉTODO LUMA E PONTO. TUDO SOBRE REDAÇÃO
FASE 1 MÉTODO LUMA E PONTO. TUDO SOBRE REDAÇÃOFASE 1 MÉTODO LUMA E PONTO. TUDO SOBRE REDAÇÃO
FASE 1 MÉTODO LUMA E PONTO. TUDO SOBRE REDAÇÃOAulasgravadas3
 
planejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdfplanejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdfmaurocesarpaesalmeid
 
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdfPROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdfHELENO FAVACHO
 
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...IsabelPereira2010
 
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptxSlides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptxLuizHenriquedeAlmeid6
 
Araribá slides 9ano.pdf para os alunos do medio
Araribá slides 9ano.pdf para os alunos do medioAraribá slides 9ano.pdf para os alunos do medio
Araribá slides 9ano.pdf para os alunos do medioDomingasMariaRomao
 
3-Livro-Festa-no-céu-Angela-Lago.pdf-·-versão-1.pdf
3-Livro-Festa-no-céu-Angela-Lago.pdf-·-versão-1.pdf3-Livro-Festa-no-céu-Angela-Lago.pdf-·-versão-1.pdf
3-Livro-Festa-no-céu-Angela-Lago.pdf-·-versão-1.pdfBlendaLima1
 
INTERVENÇÃO PARÁ - Formação de Professor
INTERVENÇÃO PARÁ - Formação de ProfessorINTERVENÇÃO PARÁ - Formação de Professor
INTERVENÇÃO PARÁ - Formação de ProfessorEdvanirCosta
 
Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!Ilda Bicacro
 
SLIDE DE Revolução Mexicana 1910 da disciplina cultura espanhola
SLIDE DE Revolução Mexicana 1910 da disciplina cultura espanholaSLIDE DE Revolução Mexicana 1910 da disciplina cultura espanhola
SLIDE DE Revolução Mexicana 1910 da disciplina cultura espanholacleanelima11
 
Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"Ilda Bicacro
 
Discurso Direto, Indireto e Indireto Livre.pptx
Discurso Direto, Indireto e Indireto Livre.pptxDiscurso Direto, Indireto e Indireto Livre.pptx
Discurso Direto, Indireto e Indireto Livre.pptxferreirapriscilla84
 
About Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de HotéisAbout Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de Hotéisines09cachapa
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...azulassessoria9
 
Slides sobre as Funções da Linguagem.pptx
Slides sobre as Funções da Linguagem.pptxSlides sobre as Funções da Linguagem.pptx
Slides sobre as Funções da Linguagem.pptxMauricioOliveira258223
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...azulassessoria9
 
Historia da Arte europeia e não só. .pdf
Historia da Arte europeia e não só. .pdfHistoria da Arte europeia e não só. .pdf
Historia da Arte europeia e não só. .pdfEmanuel Pio
 
A QUATRO MÃOS - MARILDA CASTANHA . pdf
A QUATRO MÃOS  -  MARILDA CASTANHA . pdfA QUATRO MÃOS  -  MARILDA CASTANHA . pdf
A QUATRO MÃOS - MARILDA CASTANHA . pdfAna Lemos
 
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSOLeloIurk1
 

Kürzlich hochgeladen (20)

FASE 1 MÉTODO LUMA E PONTO. TUDO SOBRE REDAÇÃO
FASE 1 MÉTODO LUMA E PONTO. TUDO SOBRE REDAÇÃOFASE 1 MÉTODO LUMA E PONTO. TUDO SOBRE REDAÇÃO
FASE 1 MÉTODO LUMA E PONTO. TUDO SOBRE REDAÇÃO
 
planejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdfplanejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdf
 
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdfPROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
 
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
 
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptxSlides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
 
Araribá slides 9ano.pdf para os alunos do medio
Araribá slides 9ano.pdf para os alunos do medioAraribá slides 9ano.pdf para os alunos do medio
Araribá slides 9ano.pdf para os alunos do medio
 
3-Livro-Festa-no-céu-Angela-Lago.pdf-·-versão-1.pdf
3-Livro-Festa-no-céu-Angela-Lago.pdf-·-versão-1.pdf3-Livro-Festa-no-céu-Angela-Lago.pdf-·-versão-1.pdf
3-Livro-Festa-no-céu-Angela-Lago.pdf-·-versão-1.pdf
 
INTERVENÇÃO PARÁ - Formação de Professor
INTERVENÇÃO PARÁ - Formação de ProfessorINTERVENÇÃO PARÁ - Formação de Professor
INTERVENÇÃO PARÁ - Formação de Professor
 
Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!
 
SLIDE DE Revolução Mexicana 1910 da disciplina cultura espanhola
SLIDE DE Revolução Mexicana 1910 da disciplina cultura espanholaSLIDE DE Revolução Mexicana 1910 da disciplina cultura espanhola
SLIDE DE Revolução Mexicana 1910 da disciplina cultura espanhola
 
Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"
 
Discurso Direto, Indireto e Indireto Livre.pptx
Discurso Direto, Indireto e Indireto Livre.pptxDiscurso Direto, Indireto e Indireto Livre.pptx
Discurso Direto, Indireto e Indireto Livre.pptx
 
About Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de HotéisAbout Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de Hotéis
 
Aula sobre o Imperialismo Europeu no século XIX
Aula sobre o Imperialismo Europeu no século XIXAula sobre o Imperialismo Europeu no século XIX
Aula sobre o Imperialismo Europeu no século XIX
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
 
Slides sobre as Funções da Linguagem.pptx
Slides sobre as Funções da Linguagem.pptxSlides sobre as Funções da Linguagem.pptx
Slides sobre as Funções da Linguagem.pptx
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
 
Historia da Arte europeia e não só. .pdf
Historia da Arte europeia e não só. .pdfHistoria da Arte europeia e não só. .pdf
Historia da Arte europeia e não só. .pdf
 
A QUATRO MÃOS - MARILDA CASTANHA . pdf
A QUATRO MÃOS  -  MARILDA CASTANHA . pdfA QUATRO MÃOS  -  MARILDA CASTANHA . pdf
A QUATRO MÃOS - MARILDA CASTANHA . pdf
 
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
 

Extração de informações usando Apache Lucene

  • 1. Extração de informações de texto e cálculo de similaridade usando Apache Lucene André Luis Schwerz Rafael Liberato Roberto Abril/ 2012 By André Luis Schwerz e Rafael Liberato Roberto . Este trabalho foi licenciado com uma Licença Creative Commons - Atribuição 3.0 Não Adaptada.
  • 2. Roteiro • Por que extrair informações? • Processo de extração de informação • Tokenização • Normalização • Eliminação de Stopwords • Stemming • Indexação e Busca • Apache Lucene • Atividade 2
  • 3. Por que extrair informação? • Muito conteúdo sendo gerado • Textos não estruturados • Blogs • E-mails • Fóruns • Redes sociais • Artigos • Websites • Realizar busca em textos não estruturados • Inteligência Coletiva • Como extrair informação desses conteúdos? 3
  • 4. Processo de Extração de Informação Refinamento Pré- Coleta Indexação Mineração Análise Processamento • Formação da • Preparação dos • Organização com • Cálculos, • Análise humana base de dados objetivo de busca inferências, conhecimento rápida extração de • Processamento conhecimento • Leitura e • Varredura manual de Linguagem • Recuperação da interpretação dos ou automática natural Informação • Mineração de dados (Crawling) dados 4
  • 5. Processo de Extração de Informação Refinamento Pré- Coleta Indexação Mineração Análise Processamento • Formação da • Preparação dos • Organização com • Cálculos, • Análise humana base de dados objetivo de busca inferências, conhecimento rápida extração de • Processamento conhecimento • Leitura e • Varredura manual de Linguagem • Recuperação da interpretação dos ou automática natural Informação • Mineração de dados (Crawling) dados 5
  • 6. Extração de Informações de Texto Pré- Indexação Mineração Processamento 1 Tokenização 2 Normalização 3 Stopwords 4 Stemming 6
  • 7. 1 Tokenização Tokenização 2 Normalização Pré- Indexação Mineração Processamento 3 Stopwords • Interpreta o texto transformado em termos 4 Stemming • Exemplo Texto: Pouco se aprende com a vitória, mas muito com a derrota. 1 1 1 Pouco se aprende com 0 5 6 8 9 16 17 20 Termos: [“Pouco”, “se”, “aprende”, “com”, “a”, “vitória”, “mas”, “muito”, “com”, “a”, “derrota”] 7
  • 8. 1 Tokenização Tokenização 2 Normalização Pré- Indexação Mineração Processamento 3 Stopwords • Diferentes formas de tokenização 4 Stemming Pouco se aprende com a vitória, mas muito com a derrota. Shingle n=4 Pouco aprende com Pouco se aprende com a Pouco se aprende aprende com a vitória Pouco se aprende com com se com a se aprende com a vitória se aprende com a se aprende com a a vitória aprende vitória 8
  • 9. 1 Tokenização Normalização 2 Normalização Pré- Indexação Mineração Processamento 3 Stopwords 4 Stemming • Conversão do texto para letras minúsculas. • Pode remover acentos, pontos, números, etc. Texto: Pouco se aprende com a vitória, mas muito com a derrota. [“pouco”, “se”, “aprende”, “com”, “a”, “vitoria”, “mas”, “muito”, “com”, “a”, “derrota”] 9
  • 10. 1 Tokenização Remoção de Stopwords 2 Normalização Pré- Indexação Mineração Processamento 3 Stopwords • Remove as palavras comuns 4 Stemming • Sem significado relevante • Preposição, pronome, etc. • Depende do idioma Texto: Pouco se aprende com a vitória, mas muito com a derrota. [“pouco”, “se”, “aprende”, “com”, “a”, “vitoria”, “mas”, “muito”, “com”, “a”, “derrota”] [“pouco”, “aprende”, “vitoria”, “muito”, “derrota”] 10
  • 11. 1 Tokenização Stemming 2 Normalização Pré- Indexação Mineração Processamento 3 Stopwords • Converte os termos em sua raiz gramatical 4 Stemming • Elimina plural Pouco se aprende com a vitória, mas muito com a derrota. [“pouco”, “se”, “aprende”, “com”, “a”, “vitoria”, “mas”, “muito”, “com”, “a”, “derrota”] [“pouco”, “aprende”, “vitoria”, “muito”, “derrota”] pouco pouc aprende aprend vitoria vitor muito muit derrota derrot 11
  • 12. Indexação Pré- Indexação Mineração Processamento Documento 1 • Estabelece uma estrutura para os dados Termos Documentos Documento 2 • Índice invertido Termo1 1 Termo2 1,2 • Vocabulário e ocorrência Termo3 2 Termo4 3 Documento 3 • Banco de dados 12
  • 13. Indexação Pré- Indexação Mineração Processamento • Tratamento de termos que são muito usados em uma coleção de documentos • Fator tf • Quantidade de vezes que o termo i aparece no documento (Quão bem i descreve d) • Fator idf • Inverso da frequência do termo i dentro da coleção de documentos. • Quanto menos usado for o termo, maior o idf 13
  • 14. Mineração Pré- Indexação Mineração Processamento • Utilização algoritmos para extrair informações dos dados estruturados 14
  • 15. Apache Lucene™ • Biblioteca para recuperação de informação; • Projeto código aberto implementado em Java; • Primeira distribuição em 2000; • Versão atual 3.5; • Disponível em http://lucene.apache.org/core/ • Documentação em http://lucene.apache.org/core/old_versioned_docs/versions/3_5_0/api/core/index.html *Os slides a seguir tem como objetivo fornecer um tutorial rápido e básico da utilização do Lucene 15
  • 16. Analisadores Pré- Indexação Mineração Processamento • Estabelece regras para realização do pré-processamento • Alguns tipos de Analisadores Analyzer Whitespace Analyzer Divide tokens por espaço em branco Simple Analyzer Divide tokens por caracteres que não são letras, normaliza (lowercase) e remove pontuação. Stop Analyzer Simple Analyzer mais remoção de stopwords em inglês Standard Analyzer Mais sofisticado. Identifica certos tipos de tokens, como e-mail, nomes de empresas, etc. Normaliza (lowercase) e remove pontuação e stopwords 16
  • 17. Analisadores Pré- Indexação Mineração Processamento Analyzer Reader Tokenizer ... TokenFilter TokenFilter Tokens TokenFilter StopFilter Length Filter LowerCase Standard Filter Filter Shingle PorterStem Filter Filter 17
  • 18. Analisadores Pré- Indexação Mineração Processamento Analyzer Reader Tokenizer ... TokenFilter TokenFilter Tokens public final class MeuAnalisador extends Analyzer{ TokenFilter @Override public TokenStream tokenStream(String fieldName, Reader reader) { StopFilter Length TokenStream t = new WhitespaceTokenizer(Version.LUCENE_35, reader) Filter return new ShingleFilter(t, 4); LowerCase Standard } Filter Filter Shingle PorterStem } Filter Filter 18
  • 19. Analisadores Pré- Indexação Mineração Processamento • Suporte a outros idiomas • Definido pelo analisador • Somente é necessário se o analisador realizar stemming e a remoção de stopwords • Idiomas suportados pelo Apache Lucene • Brazilian • Chinese • Dutch • French • German • Greek • Russian • Thai 19
  • 20. Indexação Pré- Indexação Mineração Processamento • Cria arquivos estruturados que permitem o rápido acesso as palavras. • Índice Invertido Termos Documentos aprend 1 derrot 1,2 muit 1,3 pouc 1,2 vitor 1,5 20
  • 21. Indexação Pré- Indexação Mineração Processamento Document Field Field Field Index Writer Analyzer 21
  • 22. Indexação Pré- Indexação Mineração Processamento • IndexWriter responsável por escrever no índice. IndexWriter(Directory dir, IndexWriterConfig config) dir Diretório onde o índice será escrito config responsável por definir a versão do lucene e o analyzer a ser utilizado Métodos addDocument(Document doc) Insere o documento no índice close() Encerra o processo de indexação • IndexWriterConfig IndexWriterConfig(Version matchVersion, Analyzer analyzer) matchVersion Versão do lucene. Version.LUCENE_35 analyzer Analisador a ser utilizado 22
  • 23. Indexação Pré- Indexação Mineração Processamento Document • Document Field Document() Field Métodos add(Fieldable field) Adiciona o field no documento Field • Field Field(String name, String value, Field.Store store, Field.Index index) name Nome do campo value String a ser processada store Store.YES / Store.NO index Index.ANALYZED | Index.NOT_ANALYZED 23
  • 24. Indexação Pré- Indexação Mineração Processamento • BrazilianAnalyzer responsável por estabelecer as regras do pré-processamento. BrazilianAnalyzer(Version matchVersion) Field matchVersion Versão do lucene. Version.LUCENE_35 Field Field Analyzer Index Writer Directory dir = FSDirectory.open(new File(pathIndexDir)); Analyzer an = new BrazilianAnalyzer(Version.LUCENE_35); IndexWriterConfig config = new IndexWriterConfig(Version.LUCENE_35, an); IndexWriter indexWriter = new IndexWriter(dir, config); Document d = new Document(); d.add(new Field("livro", “livro”, Store.YES, Index.ANALYZED)); 24
  • 25. Busca Pré- Indexação Mineração Processamento • Encontra documentos que são relevantes para a consulta. • Rapidez e Classificação Busca Resultados 25
  • 26. Busca Pré- Indexação Mineração Processamento Consulta Query Parser Analyzer Index Resultados Searcher Index Reader Busca Resultados 26
  • 27. Busca Pré- Indexação Mineração Processamento IndexReader responsável pela leitura do índice. Directory dir = FSDirectory.open(new File(“c://data”)); IndexReader reader = IndexReader.open(dir); IndexSearcher implementa um buscador para o IndexReader. IndexSearcher searcher = new IndexSearcher(reader) QueryParser analisador da consulta. QueryParser parser = new QueryParser(Version.LUCENE_35, “field”, analyzer) 27
  • 28. Busca Pré- Indexação Mineração Processamento Query consulta analisada pelo QueryParser Query query = parser.parse(“string de busca”); Cálculo de similaridade entre a query e os documentos TopDocs hits = searcher.search(q,100); ScoreDoc[] scoreDocs = hits.scoreDocs; Exibindo o resultado for(ScoreDoc sd : scoreDocs){ Document d = searcher.doc(sd.doc); System.out.println("Nome do Arquivo: " + d.get("file")); System.out.println("Detalhando os resultados:"); System.out.println(searcher.explain(q, sd.doc)); } 28
  • 29. Score Pré- Indexação Mineração Processamento • Retorno do cálculo de similaridade entre a query e o documento Termo Descrição tf(t in d) O número de vezes que o termo t ocorre no documento d idf(t) Leva em consideração o número de documentos que contém o termo t coord(q,d) Fração de todos os termos da consulta que o documento contém queryNorm(q,d) Fator de normalização da consulta t.getBoost() Privilegia o termo t na consulta q em tempo de busca norm(t,d) Encapsula alguns fatores de boost em tempo de indexação 29
  • 30. Operadores Consulta Encontra o documento que... java Contém o termo java no campo padrão (default field) java junit Contém o termo java ou junit ou os dois no campo padrão (default field) java OR junit +java +junit Contém ambos, java e junit no campo padrão (default field) java AND junit Contém o termo java ou junit ou os dois no campo padrão (default field) titulo:ant Contém o termo ant no campo titulo titulo:extremo Contém o termo extremo no campo titulo e que não contenha esporte no –assunto:esporte campo assunto titulo:extremo AND NOT assunto:sports 30
  • 31. Operadores Consulta Encontra o documento que... (agil OR extrema) Contém metodologia e deve conter agil ou extrema, todos no campo AND padrão (default field) metodologia titulo:"junit in Contém a frase “junit in action” no campo titulo action" titulo:"junit Contém os termos junit e action com 5 posições um do outro, no campo action"~5 titulo java* Contém termos que começam com java, tais como javaspaces, javaservers java~ Contém termo próximos ao termo java, como lava 31
  • 32. Atividade 1. Baixar o projeto com o esqueleto e os livros da bíblia na forma de arquivos texto 2. Fazer a indexação da bíblia 3. Fazer a busca que mostra os versículos da Bíblia correspondentes a consulta Obs. Cada arquivo possui um capítulo do livro Gênesis 01.txt I Samuel 01.txt Mateus 01.txt 1 No princípio criou Deus os céus e a terra. 2 A terra era sem forma e vazia; e havia trevas sobre a face do I Samuel 02.txt Mateus 02.txt abismo, mas o Espírito de Deus pairava sobre a face das águas. 3 Disse Deus: haja luz. E houve luz. ... ... 4 Viu Deus que a luz era boa; e fez separação entre a luz e as trevas. 5 E Deus chamou à luz dia, e às trevas noite. E foi a tarde e a manhã, o dia primeiro. ... 32
  • 33. Atividade 2. Fazer a indexação da bíblia • Para permitir a busca por versículo, criar um document por versículo Document livro Gênesis Gênesis 01.txt 1 No princípio criou Deus os céus e a terra. capitulo 01 2 A terra era sem forma e vazia; e havia trevas sobre a face do abismo, mas o Espírito de Deus pairava sobre a face das águas. 1 No princípio criou Deus os céus e a versiculo terra. 3 Disse Deus: haja luz. E houve luz. 4 Viu Deus que a luz era boa; e fez separação entre a luz e as trevas. 5 E Deus chamou à luz dia, e às trevas noite. E foi a tarde e a Document manhã, o dia primeiro. ... livro Gênesis capitulo 01 2 A terra era sem forma e vazia; e versiculo havia trevas sobre a face do *usar o nome do arquivo para preencher os campos abismo, mas o Espírito de Deus livro e capítulo pairava sobre a face das águas. 33
  • 34. Atividade – Código exemplo Passo 01: Inicializa o processo de Indexação Passo 02: Processo de Indexação Passo 03: Processo de Busca e impressão do resultado 34
  • 35. Referências • RAJARAMAN, A. & ULLMAN, J.D., Mining of Massive Datasets, 2011 • ALAG, S., Collective Intelligence in Action, Manning, 2009. • MCCANDLES, M. et al. Lucene in Action, 2010. 35