classficação de texto e naive bayes
TRANSCRIPT
Introduction to Information Retrieval
Aula 11: Classificação de Texto e Naive Bayes
Alexandre [email protected]
11111
Ordenação e Recuperação de Dados
Agenda
❶ Revisão
❷ Classificação de Texto
❸ Naive Bayes
❺ Avaliação
2
Agenda
❶ Revisão
❷ Classificação de Texto
❸ Naive Bayes
❺ Avaliação
3
4
Olhar vs clicar
4
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
6
Heap binário mínimo
7
Índice Estratificado
8
Sistema de Buscas Completo
9
Aula de Hoje
9
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?
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
11
From: ‘‘’’ <[email protected]>
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?
12
Definição formal de CT: Treinamento
12
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
13
Definição formal de CT: Aplicação/Testes
13
Dada: uma descrição d ∈ X de um documento
Determinar:
ϒ (d) ∈ C,
que representa a classe mais apropriada para d
14
Classificação em Tópicos
14
15
Exemplos do uso de classificação em engenhos de busca
15
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)
16
Métodos de classificação: 1. Manual
16
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.
17
Métodos de classificação: 2. Baseado em Regras
17
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.
18
Métodos de classificação: 3. Estatístico/Probabilístico
18
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.
Agenda
❶ Revisão
❷ Classificação de Texto
❸ Naive Bayes
❺ Avaliação
19
20
O Classificador Naive Bayes
20
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).
21
Classe máxima a posteriori
21
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:
22
Utilizando o log
22
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 é:
23
Classificador Naive Bayes
23
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.
24
Estimando parâmetros – parte 1
24
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)
25
O problema com esta abordagem : Zeros
25
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
26
O problema com esta abordagem : Zeros (cont)
26
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.
27
Para evitar zeros: adicionar um suavizante
27
Antes:
Agora: adicionar um a cada contador para evitar zeros:
B é o número de palavras diferentes (neste caso, o tamanho do vocabulário)
28
Exemplo
28
Estimar os parâmetros para o classificador Naive Bayes
Classificar o documento de teste
29
Exemplo: Estimando os parâmetros
29
Os denominadores são (8 + 6) e (3 + 6) porque os comprimentoesde textc e são 8 e 3, respectivamente, e porque a constante Bé 6 uma vez que o vocabulário é formado por seis termos.
30
Exemplo: Classificação
30
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.
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
34
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
35
Precisão P e recall R
35
P = TP / ( TP + FP)
R = TP / ( TP + FN)
36
Uma medida combinada: F
36
F1 nos permite balancear precisão e recall.
37
Calculando a média: Micro vs. Macro
37
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