Classficação de Texto e Naive Bayes

37
Aula 11: Classificação de Texto e Naive Bayes Alexandre Duarte [email protected] 1 Ordenação e Recuperação de Dados

Transcript of Classficação de Texto e Naive Bayes

Page 1: Classficação de Texto e Naive Bayes

Introduction to Information Retrieval

Aula 11: Classificação de Texto e Naive Bayes

Alexandre [email protected]

11111

Ordenação e Recuperação de Dados

Page 2: Classficação de Texto e Naive Bayes

Agenda

❶ Revisão

❷ Classificação de Texto

❸ Naive Bayes

❺ Avaliação

2

Page 3: Classficação de Texto e Naive Bayes

Agenda

❶ Revisão

❷ Classificação de Texto

❸ Naive Bayes

❺ Avaliação

3

Page 4: Classficação de Texto e Naive Bayes

4

Olhar vs clicar

4

Page 5: Classficação de Texto e Naive Bayes

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

Page 6: Classficação de Texto e Naive Bayes

6

Heap binário mínimo

Page 7: Classficação de Texto e Naive Bayes

7

Índice Estratificado

Page 8: Classficação de Texto e Naive Bayes

8

Sistema de Buscas Completo

Page 9: Classficação de Texto e Naive Bayes

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?

Page 10: Classficação de Texto e Naive Bayes

Agenda

❶ Revisão

❷ Classificação de Texto

❸ Naive Bayes

❺ Avaliação

10

Page 11: Classficação de Texto e Naive Bayes

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?

Page 12: Classficação de Texto e Naive Bayes

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

Page 13: Classficação de Texto e Naive Bayes

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

Page 14: Classficação de Texto e Naive Bayes

14

Classificação em Tópicos

14

Page 15: Classficação de Texto e Naive Bayes

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)

Page 16: Classficação de Texto e Naive Bayes

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.

Page 17: Classficação de Texto e Naive Bayes

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.

Page 18: Classficação de Texto e Naive Bayes

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.

Page 19: Classficação de Texto e Naive Bayes

Agenda

❶ Revisão

❷ Classificação de Texto

❸ Naive Bayes

❺ Avaliação

19

Page 20: Classficação de Texto e Naive Bayes

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).

Page 21: Classficação de Texto e Naive Bayes

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:

Page 22: Classficação de Texto e Naive Bayes

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 é:

Page 23: Classficação de Texto e Naive Bayes

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.

Page 24: Classficação de Texto e Naive Bayes

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)

Page 25: Classficação de Texto e Naive Bayes

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

Page 26: Classficação de Texto e Naive Bayes

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.

Page 27: Classficação de Texto e Naive Bayes

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)

Page 28: Classficação de Texto e Naive Bayes

28

Exemplo

28

Estimar os parâmetros para o classificador Naive Bayes

Classificar o documento de teste

Page 29: Classficação de Texto e Naive Bayes

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.

Page 30: Classficação de Texto e Naive Bayes

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.

Page 31: Classficação de Texto e Naive Bayes

Agenda

❶ Revisão

❷ Classificação de Texto

❸ Naive Bayes

❺ Avaliação

31

Page 32: Classficação de Texto e Naive Bayes

32

Exemplo: A coleção de Reuters

32

Page 33: Classficação de Texto e Naive Bayes

33

Um documento da Reuters

33

Page 34: Classficação de Texto e Naive Bayes

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

Page 35: Classficação de Texto e Naive Bayes

35

Precisão P e recall R

35

P = TP / ( TP + FP)

R = TP / ( TP + FN)

Page 36: Classficação de Texto e Naive Bayes

36

Uma medida combinada: F

36

F1 nos permite balancear precisão e recall.

Page 37: Classficação de Texto e Naive Bayes

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