Classficação de Texto e Naive Bayes

Post on 01-Jul-2015

2.419 views 3 download

Transcript of Classficação de Texto e Naive Bayes

Introduction to Information Retrieval

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

Alexandre Duartealexandre@di.ufpb.br

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: ‘‘’’ <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?

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