SlideShare uma empresa Scribd logo
1 de 37
Introduction to Information Retrieval




     Ordenação e Recuperação de Dados

                                      Aula 11:
                       Classificação de Texto e Naive Bayes
                                 Alexandre Duarte
                               alexandre@di.ufpb.br


                                                              1
Agenda

❶   Revisão

❷   Classificação de Texto

❸   Naive Bayes

❺   Avaliação


                             2
Agenda

❶   Revisão

❷   Classificação de Texto

❸   Naive Bayes

❺   Avaliação


                             3
Olhar vs clicar




                  4
Usando um heap mínimo para selecionar
os top k documentos entre N

  Usar um heap binário mínimo
  Um heap binário mínimo é uma árvore binária na qual o
   valor de cada nó é menor que o valor de seus filhos.
  Precisamos de O(N log k) operações para construir um
   heap contendo os k maiores valores entre os N
   documentos.
  Essencialmente linear em N para um valor pequeno
   para k e grande para N



                                                       5
Heap binário mínimo




                      6
Índice Estratificado




                       7
Sistema de Buscas Completo




                             8
Aula de Hoje

 Classificação de texto: definição e relevância para recuperação
  da informação
 Naive Bayes: classificador de textos básico
 Avaliação de classificação de texto: o que sabemos que funciona
  e não funciona?




                                                               9
Agenda

❶   Revisão

❷   Classificação de Texto

❸   Naive Bayes

❺   Avaliação


                             10
Uma tarefa de classificação de texto: Filtro de
Spam para E-mail
From: ‘‘’’ <takworlld@hotmail.com>
Subject: real estate is the only way... gem oalvgkay
Anyone can buy real estate with no money down
Stop paying rent TODAY !
There is no need to spend hundreds or even thousands for
similar courses
I am 22 years old and I have already purchased 6 properties
using the
methods outlined in this truly INCREDIBLE ebook.
Change your life NOW !
=================================================
Click Below to order:
http://www.wholesaledaily.com/sales/nmd.htm
=================================================
Como você escreveria um programa para detectar e excluir
automaticamente este tipo de mensagem?

                                                           11
Definição formal de CT: Treinamento
Dados:
 Um espaço documental X
     Os documentos são representados neste espaço – tipicamente,
      algum espaço com grande número de dimensões.
 Um conjunto finito de classes C = {c1, c2, . . . , cJ}
     As classes são definidas manualmente, de acordo com as
      necessidades da aplicação (ex., relevante vs. Não-relevante).
 Um conjunto de treinamento D de documentos classificados
  com cada documento classificado <d, c> ∈ X × C
Usando um método de aprendizagem ou algoritmo de
  aprendizagem, desejamos um classificador ϒ seja capaz de
  mapear documentos em classes:
                           ϒ:X→C                                      12
Definição formal de CT: Aplicação/Testes


Dada: uma descrição d ∈ X de um documento
Determinar:
ϒ (d) ∈ C,
que representa a classe mais apropriada para d




                                                 13
Classificação em Tópicos




                           14
Exemplos do uso de classificação em engenhos de
busca


   Identificação de linguagem (classes: Inglês vs. Português etc.)
   Detecção automática de spam em documentos (spam vs.
    não-spam)
   Detecção de conteúdo erótico (erótico vs. não-erótico)
   Detecção de sentimento: em relação a um filme ou avaliação
    de um produto, por exemplo (positivo vs. negativo)




                                                                  15
Métodos de classificação: 1. Manual


   Classificação manual era utilizada pelo Yahoo no início da
    Web
   Extremamente preciso se feito por especialistas
   Consistente quando o conjunto de documentos e o time são
    pequenos
   Alcançar escala é difícil e caro.
   → Precisamos de métodos automáticos de classificação.



                                                                 16
Métodos de classificação: 2. Baseado em Regras

   Google Alerts era baseado em regras de classificação.
   Existem ferramenta estilo IDEs para facilitar a escrita de
    regras complexas de forma eficiente (ex., Verity)
   Geralmente: Combinações booleanas (Google Alerts)
   Acurácia é muito alta se as regras são cuidadosamente
    refinadas ao longo do tempo por um especialista.
   Construir e manter sistemas de classificação baseado em
    regras pode ser trabalho e muito caro.



                                                                 17
Métodos de classificação: 3.
Estatístico/Probabilístico

    Esta foi a nossa definição para o problema de classificação
     como um problema de aprendizagem
    (i) Aprendizagem supervisionada da função de classificação ϒ
     e
     (ii) sua aplicação para a classificação de novos documentos
    Veremos um dos métodos para fazer isso: Naive Bayes
    Nada é grátis: requer dados de treinamento classificados
     manualmente
    Mas essa classificação manual não precisa ser feita por
     especialistas.
                                                                18
Agenda

❶   Revisão

❷   Classificação de Texto

❸   Naive Bayes

❺   Avaliação


                             19
O Classificador Naive Bayes
   O classificador Naive Bayes é um classificador probabilístico.
   Computamos a probabilidade de um documento d ser da classe c
    como segue:


   nd é o comprimento do documento (número de tokens)
   P(tk |c) é a probabilidade condicional do termo tk ocorrer em um
    documento da classe c
   P(tk |c) pode ser visto como uma medida de quanto a presença de tk
    contribui para determinar que c é a classe correta do documento
   P(c) é a probabilidade anterior de c.
   Se os termos de um documento não fornecem evidências o suficiente
    sobre uma classe ou outra, nós escolhemos o c com o maior P(c).


                                                                         20
Classe máxima a posteriori

   Nosso objetivo com o Naive Bayes é encontrar a “melhor”
    classe para o documento.
   A melhor classe é muito provavelmente a classe máxima a
    posteriori (MAP) cmap:




                                                              21
Utilizando o log
    Multiplicar um número muito grande de probabilidades pode
     resultar em um underflow de ponto flutuante.
    Uma vez que log(xy) = log(x) + log(y), podemos somar os logs
     da probabilidades ao invés de multiplicar as probabilidades.
    Uma vez que log é uma função monotônica, a classe com o
     maior score não muda.
    O que realmente calculamos na prática é:




                                                                22
Classificador Naive Bayes
  Regra de classificação:



  Interpretação simples:
     Cada parâmetro condicional log          é uma medida de
      quão bom indicador é a presença de tk para a classe c.
     A probabilidade anterior log     é uma medida da frequência
      relativa de c.
     A soma da probabilidade anterior com os pesos dos termos é
      uma medida de quanta evidência temos de que um documento
      pertence a uma determinada classe.
     Selecionamos a classe com maior evidência.
                                                                23
Estimando parâmetros – parte 1
  Estimar os parâmetros     e         dos dados de treinamento:
   Como?
  Anterior:

  Nc : número de documentos na classe c; N: número total de
   documentos
  Probabilidades condicionais:

  Tct é o número de tokens t nos documentos de treinamento da
   classe c (inclui múltiplas ocorrências)


                                                               24
O problema com esta abordagem : Zeros




   P(China|d) ∝ P(China) ・ P(BEIJING|China) ・ P(AND|China)
               ・ P(TAIPEI|China) ・ P(JOIN|China) ・
P(WTO|China)

   Se WTO nunca ocorrer na classe China no conjunto de treinamento


                                                               25
O problema com esta abordagem : Zeros (cont)

    Se não há ocorrências de WTO nos documentos da classe China,
     teremos uma estimativa nula:




    → Teremos P(China|d) = 0 para qualquer documento que
     contenha WTO!
    Probabilidades nulas não podem ser condicionadas.



                                                             26
Para evitar zeros: adicionar um suavizante

  Antes:



  Agora: adicionar um a cada contador para evitar zeros:



  B é o número de palavras diferentes (neste caso, o tamanho do
   vocabulário)


                                                             27
Exemplo




   Estimar os parâmetros para o classificador Naive Bayes
   Classificar o documento de teste




                                                             28
Exemplo: Estimando os parâmetros




Os denominadores são (8 + 6) e (3 + 6) porque os comprimentoes
de textc e    são 8 e 3, respectivamente, e porque a constante B
é 6 uma vez que o vocabulário é formado por seis termos.



                                                              29
Exemplo: Classificação




Portanto, o classificador classifica o documento de teste como c =
China. A razão para esta decisão é que a ocorrência de três
indicadores positivos CHINESE em d5 pesam mais do que a
ocorrência dos dois indicadores negativos JAPAN e TOKYO.



                                                                 30
Agenda

❶   Revisão

❷   Classificação de Texto

❸   Naive Bayes

❺   Avaliação


                             31
Exemplo: A coleção de Reuters




                                32
Um documento da Reuters




                          33
Avaliando classificação


   A avaliação precisa ser realizada usando dados de teste que
    sejam independentes dos dados de treinamento (conjuntos
    disjuntos).
   É muito simples conseguir um resultado de testes em um
    conjunto que já foi utilizando durante o treinamento. (ex., é
    só memorizar o conjunto).
   Métricas: Precisão, recall, F1, acurácia de classficação




                                                                34
Precisão P e recall R




          P = TP / ( TP + FP)
          R = TP / ( TP + FN)




                                35
Uma medida combinada: F
  F1 nos permite balancear precisão e recall.




                                                 36
Calculando a média: Micro vs. Macro
  Temos uma média única (F1) para uma classe.
  Queremos também uma medida única do desempenho
   agregado para todas as classes na coleção.
  Macroaveraging
     Calcular F1 para cada classe C
     Calcule a média desses C números
  Microaveraging
     Calcular TP, FP, FN para cada classe C
     Some esses C números (ex, todos os TPs para obter um TP
      agregado)
     Calcule o F1 para os TP, FP, FN agregados
                                                                37

Mais conteúdo relacionado

Destaque

Apache Lucene - Relevância dos Resultados
Apache Lucene - Relevância dos ResultadosApache Lucene - Relevância dos Resultados
Apache Lucene - Relevância dos ResultadosRafael Domingues
 
Dicionários e Recuperação Tolerante
Dicionários e Recuperação ToleranteDicionários e Recuperação Tolerante
Dicionários e Recuperação ToleranteAlexandre Duarte
 
Modelo de Espaço Vetorial
Modelo de Espaço VetorialModelo de Espaço Vetorial
Modelo de Espaço VetorialAlexandre Duarte
 
Scalable sentiment classification for big data analysis using naive bayes cla...
Scalable sentiment classification for big data analysis using naive bayes cla...Scalable sentiment classification for big data analysis using naive bayes cla...
Scalable sentiment classification for big data analysis using naive bayes cla...Tien-Yang (Aiden) Wu
 
Aula espaço vetorial
Aula espaço vetorialAula espaço vetorial
Aula espaço vetorialTuane Paixão
 
Sistemas de recomendação
Sistemas de recomendaçãoSistemas de recomendação
Sistemas de recomendaçãoAnderson Dantas
 
Introduction to text classification using naive bayes
Introduction to text classification using naive bayesIntroduction to text classification using naive bayes
Introduction to text classification using naive bayesDhwaj Raj
 
Aula 02 - Recuperação da Informação / Modelos de Sistemas de Recuperação
Aula 02 - Recuperação da Informação / Modelos de Sistemas de RecuperaçãoAula 02 - Recuperação da Informação / Modelos de Sistemas de Recuperação
Aula 02 - Recuperação da Informação / Modelos de Sistemas de RecuperaçãoNilton Heck
 

Destaque (11)

Apache Lucene - Relevância dos Resultados
Apache Lucene - Relevância dos ResultadosApache Lucene - Relevância dos Resultados
Apache Lucene - Relevância dos Resultados
 
Construção de Índices
Construção de ÍndicesConstrução de Índices
Construção de Índices
 
Dicionários e Recuperação Tolerante
Dicionários e Recuperação ToleranteDicionários e Recuperação Tolerante
Dicionários e Recuperação Tolerante
 
Modelo de Espaço Vetorial
Modelo de Espaço VetorialModelo de Espaço Vetorial
Modelo de Espaço Vetorial
 
Scalable sentiment classification for big data analysis using naive bayes cla...
Scalable sentiment classification for big data analysis using naive bayes cla...Scalable sentiment classification for big data analysis using naive bayes cla...
Scalable sentiment classification for big data analysis using naive bayes cla...
 
Naive Bayes | Statistics
Naive Bayes | StatisticsNaive Bayes | Statistics
Naive Bayes | Statistics
 
Aula espaço vetorial
Aula espaço vetorialAula espaço vetorial
Aula espaço vetorial
 
Sistemas de recomendação
Sistemas de recomendaçãoSistemas de recomendação
Sistemas de recomendação
 
Introduction to text classification using naive bayes
Introduction to text classification using naive bayesIntroduction to text classification using naive bayes
Introduction to text classification using naive bayes
 
Aula 02 - Recuperação da Informação / Modelos de Sistemas de Recuperação
Aula 02 - Recuperação da Informação / Modelos de Sistemas de RecuperaçãoAula 02 - Recuperação da Informação / Modelos de Sistemas de Recuperação
Aula 02 - Recuperação da Informação / Modelos de Sistemas de Recuperação
 
Projeto de Experimentos
Projeto de ExperimentosProjeto de Experimentos
Projeto de Experimentos
 

Semelhante a Introduction to Information Retrieval and Text Classification with Naive Bayes

Avaliação de Sistemas de Recuperação da Informação
Avaliação de Sistemas de Recuperação da InformaçãoAvaliação de Sistemas de Recuperação da Informação
Avaliação de Sistemas de Recuperação da InformaçãoAlexandre Duarte
 
Defesa de Artigo: "GPU-NB: A Fast CUDA -based Implementation of Naive Bayes"
Defesa de Artigo: "GPU-NB: A Fast CUDA -based  Implementation of Naive Bayes"Defesa de Artigo: "GPU-NB: A Fast CUDA -based  Implementation of Naive Bayes"
Defesa de Artigo: "GPU-NB: A Fast CUDA -based Implementation of Naive Bayes"Andrew Edberg
 
Redes Bayesianas para Recuperação de Informação Estruturada
Redes Bayesianas para Recuperação de Informação EstruturadaRedes Bayesianas para Recuperação de Informação Estruturada
Redes Bayesianas para Recuperação de Informação EstruturadaAdolfo Neto
 
Recuperação Inteligente de Informações
Recuperação Inteligente de InformaçõesRecuperação Inteligente de Informações
Recuperação Inteligente de Informaçõeselliando dias
 
Sistemas Baseados em Casos (Parte I)
Sistemas Baseados em Casos (Parte I)Sistemas Baseados em Casos (Parte I)
Sistemas Baseados em Casos (Parte I)Fabiana Lorenzi
 
Processamento de Linguagem Natural
Processamento de Linguagem NaturalProcessamento de Linguagem Natural
Processamento de Linguagem NaturalThiago Reis da Silva
 
Aprendizagem Automática
Aprendizagem AutomáticaAprendizagem Automática
Aprendizagem Automáticabutest
 
Espaço incremental para a mineração visual de conjuntos dinâmicos de documentos
Espaço incremental para a mineração visual de conjuntos dinâmicos de documentosEspaço incremental para a mineração visual de conjuntos dinâmicos de documentos
Espaço incremental para a mineração visual de conjuntos dinâmicos de documentosRoberto de Pinho
 
[José Ahirton Lopes] Treinamento - Árvores de Decisão, SVM e Naive Bayes
[José Ahirton Lopes] Treinamento - Árvores de Decisão, SVM e Naive Bayes[José Ahirton Lopes] Treinamento - Árvores de Decisão, SVM e Naive Bayes
[José Ahirton Lopes] Treinamento - Árvores de Decisão, SVM e Naive BayesAhirton Lopes
 
Introdução a Ciência de Dados
Introdução a Ciência de DadosIntrodução a Ciência de Dados
Introdução a Ciência de DadosNauber Gois
 
Type based termination for recursive definitions
Type based termination for recursive definitionsType based termination for recursive definitions
Type based termination for recursive definitionsrodrigogribeiro
 

Semelhante a Introduction to Information Retrieval and Text Classification with Naive Bayes (16)

Avaliação de Sistemas de Recuperação da Informação
Avaliação de Sistemas de Recuperação da InformaçãoAvaliação de Sistemas de Recuperação da Informação
Avaliação de Sistemas de Recuperação da Informação
 
Defesa de Artigo: "GPU-NB: A Fast CUDA -based Implementation of Naive Bayes"
Defesa de Artigo: "GPU-NB: A Fast CUDA -based  Implementation of Naive Bayes"Defesa de Artigo: "GPU-NB: A Fast CUDA -based  Implementation of Naive Bayes"
Defesa de Artigo: "GPU-NB: A Fast CUDA -based Implementation of Naive Bayes"
 
Clustering (Agrupamento)
Clustering (Agrupamento)Clustering (Agrupamento)
Clustering (Agrupamento)
 
Redes Bayesianas para Recuperação de Informação Estruturada
Redes Bayesianas para Recuperação de Informação EstruturadaRedes Bayesianas para Recuperação de Informação Estruturada
Redes Bayesianas para Recuperação de Informação Estruturada
 
Recuperação Inteligente de Informações
Recuperação Inteligente de InformaçõesRecuperação Inteligente de Informações
Recuperação Inteligente de Informações
 
Sistemas Baseados em Casos (Parte I)
Sistemas Baseados em Casos (Parte I)Sistemas Baseados em Casos (Parte I)
Sistemas Baseados em Casos (Parte I)
 
Processamento de Linguagem Natural
Processamento de Linguagem NaturalProcessamento de Linguagem Natural
Processamento de Linguagem Natural
 
ID3 Algorithm
ID3 AlgorithmID3 Algorithm
ID3 Algorithm
 
Big data
Big dataBig data
Big data
 
Aprendizagem Automática
Aprendizagem AutomáticaAprendizagem Automática
Aprendizagem Automática
 
Espaço incremental para a mineração visual de conjuntos dinâmicos de documentos
Espaço incremental para a mineração visual de conjuntos dinâmicos de documentosEspaço incremental para a mineração visual de conjuntos dinâmicos de documentos
Espaço incremental para a mineração visual de conjuntos dinâmicos de documentos
 
Web Data Mining com R
Web Data Mining com RWeb Data Mining com R
Web Data Mining com R
 
[José Ahirton Lopes] Treinamento - Árvores de Decisão, SVM e Naive Bayes
[José Ahirton Lopes] Treinamento - Árvores de Decisão, SVM e Naive Bayes[José Ahirton Lopes] Treinamento - Árvores de Decisão, SVM e Naive Bayes
[José Ahirton Lopes] Treinamento - Árvores de Decisão, SVM e Naive Bayes
 
Introdução a Ciência de Dados
Introdução a Ciência de DadosIntrodução a Ciência de Dados
Introdução a Ciência de Dados
 
Data science
Data scienceData science
Data science
 
Type based termination for recursive definitions
Type based termination for recursive definitionsType based termination for recursive definitions
Type based termination for recursive definitions
 

Mais de Alexandre Duarte

Táticas para Projeto de Experimentos
Táticas para Projeto de ExperimentosTáticas para Projeto de Experimentos
Táticas para Projeto de ExperimentosAlexandre Duarte
 
Fazer Ciência é Difícil!
Fazer Ciência é Difícil!Fazer Ciência é Difícil!
Fazer Ciência é Difícil!Alexandre Duarte
 
Escolhendo um Projeto de Pesquisa
Escolhendo um Projeto de PesquisaEscolhendo um Projeto de Pesquisa
Escolhendo um Projeto de PesquisaAlexandre 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
 

Mais de Alexandre Duarte (20)

Táticas para Projeto de Experimentos
Táticas para Projeto de ExperimentosTáticas para Projeto de Experimentos
Táticas para Projeto de Experimentos
 
Causalidade e Abdução
Causalidade e AbduçãoCausalidade e Abdução
Causalidade e Abdução
 
Fazer Ciência é Difícil!
Fazer Ciência é Difícil!Fazer Ciência é Difícil!
Fazer Ciência é Difícil!
 
Atividades Científica
Atividades CientíficaAtividades Científica
Atividades Científica
 
Escolhendo um Projeto de Pesquisa
Escolhendo um Projeto de PesquisaEscolhendo um Projeto de Pesquisa
Escolhendo um Projeto de Pesquisa
 
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
 

Introduction to Information Retrieval and Text Classification with Naive Bayes

  • 1. Introduction to Information Retrieval Ordenação e Recuperação de Dados Aula 11: Classificação de Texto e Naive Bayes Alexandre Duarte alexandre@di.ufpb.br 1
  • 2. Agenda ❶ Revisão ❷ Classificação de Texto ❸ Naive Bayes ❺ Avaliação 2
  • 3. Agenda ❶ Revisão ❷ Classificação de Texto ❸ Naive Bayes ❺ Avaliação 3
  • 5. Usando um heap mínimo para selecionar os top k documentos entre N  Usar um heap binário mínimo  Um heap binário mínimo é uma árvore binária na qual o valor de cada nó é menor que o valor de seus filhos.  Precisamos de O(N log k) operações para construir um heap contendo os k maiores valores entre os N documentos.  Essencialmente linear em N para um valor pequeno para k e grande para N 5
  • 8. Sistema de Buscas Completo 8
  • 9. Aula de Hoje  Classificação de texto: definição e relevância para recuperação da informação  Naive Bayes: classificador de textos básico  Avaliação de classificação de texto: o que sabemos que funciona e não funciona? 9
  • 10. Agenda ❶ Revisão ❷ Classificação de Texto ❸ Naive Bayes ❺ Avaliação 10
  • 11. Uma tarefa de classificação de texto: Filtro de Spam para E-mail From: ‘‘’’ <takworlld@hotmail.com> Subject: real estate is the only way... gem oalvgkay Anyone can buy real estate with no money down Stop paying rent TODAY ! There is no need to spend hundreds or even thousands for similar courses I am 22 years old and I have already purchased 6 properties using the methods outlined in this truly INCREDIBLE ebook. Change your life NOW ! ================================================= Click Below to order: http://www.wholesaledaily.com/sales/nmd.htm ================================================= Como você escreveria um programa para detectar e excluir automaticamente este tipo de mensagem? 11
  • 12. Definição formal de CT: Treinamento Dados:  Um espaço documental X  Os documentos são representados neste espaço – tipicamente, algum espaço com grande número de dimensões.  Um conjunto finito de classes C = {c1, c2, . . . , cJ}  As classes são definidas manualmente, de acordo com as necessidades da aplicação (ex., relevante vs. Não-relevante).  Um conjunto de treinamento D de documentos classificados com cada documento classificado <d, c> ∈ X × C Usando um método de aprendizagem ou algoritmo de aprendizagem, desejamos um classificador ϒ seja capaz de mapear documentos em classes: ϒ:X→C 12
  • 13. Definição formal de CT: Aplicação/Testes Dada: uma descrição d ∈ X de um documento Determinar: ϒ (d) ∈ C, que representa a classe mais apropriada para d 13
  • 15. Exemplos do uso de classificação em engenhos de busca  Identificação de linguagem (classes: Inglês vs. Português etc.)  Detecção automática de spam em documentos (spam vs. não-spam)  Detecção de conteúdo erótico (erótico vs. não-erótico)  Detecção de sentimento: em relação a um filme ou avaliação de um produto, por exemplo (positivo vs. negativo) 15
  • 16. Métodos de classificação: 1. Manual  Classificação manual era utilizada pelo Yahoo no início da Web  Extremamente preciso se feito por especialistas  Consistente quando o conjunto de documentos e o time são pequenos  Alcançar escala é difícil e caro.  → Precisamos de métodos automáticos de classificação. 16
  • 17. Métodos de classificação: 2. Baseado em Regras  Google Alerts era baseado em regras de classificação.  Existem ferramenta estilo IDEs para facilitar a escrita de regras complexas de forma eficiente (ex., Verity)  Geralmente: Combinações booleanas (Google Alerts)  Acurácia é muito alta se as regras são cuidadosamente refinadas ao longo do tempo por um especialista.  Construir e manter sistemas de classificação baseado em regras pode ser trabalho e muito caro. 17
  • 18. Métodos de classificação: 3. Estatístico/Probabilístico  Esta foi a nossa definição para o problema de classificação como um problema de aprendizagem  (i) Aprendizagem supervisionada da função de classificação ϒ e (ii) sua aplicação para a classificação de novos documentos  Veremos um dos métodos para fazer isso: Naive Bayes  Nada é grátis: requer dados de treinamento classificados manualmente  Mas essa classificação manual não precisa ser feita por especialistas. 18
  • 19. Agenda ❶ Revisão ❷ Classificação de Texto ❸ Naive Bayes ❺ Avaliação 19
  • 20. O Classificador Naive Bayes  O classificador Naive Bayes é um classificador probabilístico.  Computamos a probabilidade de um documento d ser da classe c como segue:  nd é o comprimento do documento (número de tokens)  P(tk |c) é a probabilidade condicional do termo tk ocorrer em um documento da classe c  P(tk |c) pode ser visto como uma medida de quanto a presença de tk contribui para determinar que c é a classe correta do documento  P(c) é a probabilidade anterior de c.  Se os termos de um documento não fornecem evidências o suficiente sobre uma classe ou outra, nós escolhemos o c com o maior P(c). 20
  • 21. Classe máxima a posteriori  Nosso objetivo com o Naive Bayes é encontrar a “melhor” classe para o documento.  A melhor classe é muito provavelmente a classe máxima a posteriori (MAP) cmap: 21
  • 22. Utilizando o log  Multiplicar um número muito grande de probabilidades pode resultar em um underflow de ponto flutuante.  Uma vez que log(xy) = log(x) + log(y), podemos somar os logs da probabilidades ao invés de multiplicar as probabilidades.  Uma vez que log é uma função monotônica, a classe com o maior score não muda.  O que realmente calculamos na prática é: 22
  • 23. Classificador Naive Bayes  Regra de classificação:  Interpretação simples:  Cada parâmetro condicional log é uma medida de quão bom indicador é a presença de tk para a classe c.  A probabilidade anterior log é uma medida da frequência relativa de c.  A soma da probabilidade anterior com os pesos dos termos é uma medida de quanta evidência temos de que um documento pertence a uma determinada classe.  Selecionamos a classe com maior evidência. 23
  • 24. Estimando parâmetros – parte 1  Estimar os parâmetros e dos dados de treinamento: Como?  Anterior:  Nc : número de documentos na classe c; N: número total de documentos  Probabilidades condicionais:  Tct é o número de tokens t nos documentos de treinamento da classe c (inclui múltiplas ocorrências) 24
  • 25. O problema com esta abordagem : Zeros P(China|d) ∝ P(China) ・ P(BEIJING|China) ・ P(AND|China) ・ P(TAIPEI|China) ・ P(JOIN|China) ・ P(WTO|China) Se WTO nunca ocorrer na classe China no conjunto de treinamento 25
  • 26. O problema com esta abordagem : Zeros (cont)  Se não há ocorrências de WTO nos documentos da classe China, teremos uma estimativa nula:  → Teremos P(China|d) = 0 para qualquer documento que contenha WTO!  Probabilidades nulas não podem ser condicionadas. 26
  • 27. Para evitar zeros: adicionar um suavizante  Antes:  Agora: adicionar um a cada contador para evitar zeros:  B é o número de palavras diferentes (neste caso, o tamanho do vocabulário) 27
  • 28. Exemplo  Estimar os parâmetros para o classificador Naive Bayes  Classificar o documento de teste 28
  • 29. Exemplo: Estimando os parâmetros Os denominadores são (8 + 6) e (3 + 6) porque os comprimentoes de textc e são 8 e 3, respectivamente, e porque a constante B é 6 uma vez que o vocabulário é formado por seis termos. 29
  • 30. Exemplo: Classificação Portanto, o classificador classifica o documento de teste como c = China. A razão para esta decisão é que a ocorrência de três indicadores positivos CHINESE em d5 pesam mais do que a ocorrência dos dois indicadores negativos JAPAN e TOKYO. 30
  • 31. Agenda ❶ Revisão ❷ Classificação de Texto ❸ Naive Bayes ❺ Avaliação 31
  • 32. Exemplo: A coleção de Reuters 32
  • 33. Um documento da Reuters 33
  • 34. Avaliando classificação  A avaliação precisa ser realizada usando dados de teste que sejam independentes dos dados de treinamento (conjuntos disjuntos).  É muito simples conseguir um resultado de testes em um conjunto que já foi utilizando durante o treinamento. (ex., é só memorizar o conjunto).  Métricas: Precisão, recall, F1, acurácia de classficação 34
  • 35. Precisão P e recall R P = TP / ( TP + FP) R = TP / ( TP + FN) 35
  • 36. Uma medida combinada: F  F1 nos permite balancear precisão e recall. 36
  • 37. Calculando a média: Micro vs. Macro  Temos uma média única (F1) para uma classe.  Queremos também uma medida única do desempenho agregado para todas as classes na coleção.  Macroaveraging  Calcular F1 para cada classe C  Calcule a média desses C números  Microaveraging  Calcular TP, FP, FN para cada classe C  Some esses C números (ex, todos os TPs para obter um TP agregado)  Calcule o F1 para os TP, FP, FN agregados 37