1) O documento discute classificação de texto e o algoritmo Naive Bayes.
2) Naive Bayes é um classificador probabilístico que calcula a probabilidade de um documento pertencer a uma classe baseado na contagem de palavras.
3) Parâmetros como probabilidades condicionais de palavras nas classes são estimados a partir de dados de treinamento e usados para classificar novos documentos.
Introdução à Analise de Dados - aula 3 - Agregação de Dados
Classficação de Texto e 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
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
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
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
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
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
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