Você está na página 1de 39

Classificação Textual

com Naive Bayes

Mineração de Dados
Prof. Renê Veloso
rene.veloso@unimontes.br
Classificação Textual
Qual é o assunto ?

Essa Pale Lager, de origem belga e produzida no Brasil


(a unidade que consumi) está na média. Com espuma de aparência
inicial média e cremosa, coloração branca e reduzida longevidade,
apresenta boa formação de colarinho.
Seu corpo é borbulhante e de densidade rala, de tonalidade
amarelo-claro.
O aroma é clássico: pão branco e forte lúpulo. Seu sabor inicial é
levemente doce e amargo, apresentando moderado amargor no
final, de curta duração. Seu paladar é composto de um corpo leve,
de textura aguada, forte carbonatação e um final chalky, sendo esse
seu único diferencial passível de comentários.
Seu final é bem limpo e o amargor é balanceado – no entanto, não
foge muito da média das Pale Lager.
Classificação Textual
... removendo stop-words e palavras pouco frequentes...
http://en.wiktionary.org/wiki/Wiktionary:Frequency_lists/Portuguese_wordlist

Essa Pale Lager, de origem belga e produzida no Brasil


(a unidade que consumi) está na média. Com espuma de aparência
inicial média e cremosa, coloração branca e reduzida longevidade,
apresenta boa formação de colarinho.
Seu corpo é borbulhante e de densidade rala, de tonalidade
amarelo-claro.
O aroma é clássico: pão branco e forte lúpulo. Seu sabor inicial é
levemente doce e amargo, apresentando moderado amargor no
final, de curta duração. Seu paladar é composto de um corpo leve,
de textura aguada, forte carbonatação e um final chalky, sendo esse
seu único diferencial passível de comentários.
Seu final é bem limpo e o amargor é balanceado – no entanto, não
foge muito da média das Pale Lager.
Modelos de Documentos
● Representação do tipo bag of words
– Sabe-se quais palavras estão no documento (e quantas
vezes cada uma ocorre)
– A ordem não importa
– Vetores de características
● Dado um vocabulário V, contendo |V| tipos de palavras, então
o vetor de características possui dimensão d=|V|

V = {azul, vermelho, cachorro, gato, biscoito, maça}

|V| = d = 6
Modelos de Documentos

Dado um vocabulário V, contendo |V| tipos de palavras, então o vetor de
características possui dimensão d=|V|

V = {azul, vermelho, cachorro, gato, biscoito, maça}



Modelo de Bernoulli: um documento é representado por um vetor com elementos
binários levando o valor 1 se a palavra aparece no documento e 0 caso contrário.

Modelo Multinomial: um documento é representado por valores inteiros que são
as frequências das palavras no documento.

Exemplo: para o documento “o cachorro azul comeu um biscoito azul”
– Bernoulli:

– Multinomial:
Modelo de Bernoulli
● Considere um documento D cuja classe é
dada por C
– Classificamos D com a mais alta probabilidade
a posteriori P(C | D)

P(wt | C) é a probabilidade de cada palavra wt ocorrer no documento


de classe C
Modelo de Bernoulli
1. Defina o vocabulário V
2. Realize as seguintes contagens no conjunto de
treinamento:
1.N: o número total de documentos N
2.Nk: o número de documentos rotulados com a classe C=k (para
todas as classes)
3.nk(wt ): o número de documentos de classe C=k contendo a
palavra wt (para cada classe e para cada palavra no vocabulário)
3. Estime a probabilidade P(wt | C=k)
4. Estime a probabilidade P(C=k)
Modelo de Bernoulli
● Exemplo
– Documentos sobre esporte (S) e informática (I)
– Considerando um conjunto de 11 documentos
– Vocabulário:

– Cada documento é representado por um vetor binário de tamanho 8


Modelo de Bernoulli
– Dados de treinamento:
Modelo de Bernoulli
– Classifique os dois documentos:
Modelo de Bernoulli
● Solução:
O número total de documento no conjunto de treinamento:

Probabilidades a priori:

Contagem de palavras:
Modelo de Bernoulli
● Solução:
Probabilidades estimadas:
Modelo de Bernoulli
● Solução:
Classificamos os dois vetores:

Classificado como ESPORTE


Modelo de Bernoulli
● Solução:
Classificamos os dois vetores:

Classificado como INFORMATICA


Modelo de Bernoulli
● Solução:
Valores pequenos!!!
Classificamos os dois vetores: Perigo de
arredondamento
para zero !

Classificado como INFORMATICA


Underflow
● Multiplicar várias probabilidades muito pequenas
pode resultar em “floating point underflow”

● Uma vez que log(xy) = log(x)+log(y)

podemos somar os logaritmos das


probabilidades ao invés de multiplicar
probabilidades.
Underflow
Problemas: Underflow e
frequência zero
Como selecionar os melhores
termos?
● Termos = características
– Selecionamos os melhores K termos/características !

● Vantagens?
– Reduz a dimensão dos dados
– Torna o treinamento mais rápido
– Melhora o desempenho (acurácia) removendo ruídos
● Ruídos aumentam o erro de classificação
– Evita overfitting
● Isto é, melhora a generalização !
Como selecionar os
melhores termos?
● “Feature Selection”

A(t,c) = utilidade de cada termo t do vocabulário em relação à classe c.


Como selecionar os
melhores termos?
● Método: Mutual Information
– Forma de computar A(t,c)
– Mede quanta informação a presença ou
ausência de um determinado termo contribui
para a classificação correta.

U é uma variável aleatória que leva os valores et = 1 (o documento possui o termo t)


e et = 0 (o documento não possui o termo t)
C é uma variável aletória que leva os valores ec = 1 (o documento está na clase c)
e ec = 0 (o documento não está na classe c)
Como selecionar os
melhores termos?
● Pode ser simplicada para:

Onde os N's são contagens dos documentos que têm os valores de et e ec indicados pelos
números 0 e 1 em cada um.

Por exemplo, N10 é o número de documentos que contêm t (et = 1) e não estão em c (ec = 0).
N1. = N10 + N11 é o número de documentos que contêm t (et = 1).
N.1 = N01 + N11 é o número de documentos que estão em c (ec = 1).
N é o total de documentos, isto é, N = N00 + N01 + N10 + N11
Como selecionar os
melhores termos?
● Exemplo:
– Considere a classe poultry e a palavra export.
– A contagem do número de documentos com as
4 possíveis combinações de valores são:
Como selecionar os
melhores termos?
● Exemplo:
– Considere a classe poultry e a palavra export.
– Plugando os termos na equação:
Como selecionar os
melhores termos?
● Mutual Information (MI)
– Mede quanta informação um termo contém sobre a classe.
– Se a distribuição de um termo é a mesma na classe e na
coleção como um todo, então I(U;C) = 0
– MI alcança seu valor máximo se o termo é um indicador
perfeito para a classe.
● Isto é: se o termo está presente em um documento se e somente
se o documento está na classe.

● Há outros métodos como o , baseado em


frequência, em ganho de informação, etc...
Exemplo
Exemplo
Exercícios
1) Aplique o Modelo de Bernoulli considerando a
tabela abaixo, sendo que P(c) = 3/4 e P(~c) = 1/4.

2) Pesquise sobre o Modelo Multinomial e aplique-o


à tabela acima.
Exercícios
3) Quando é mais indicado usar Bernoulli e
quando é mais indicado usar o modelo
Multinomial ?
4) Quais os benefícios de usar um método de
seleção de características?
5) Considere as seguintes frequências para a
classe coffee para os quatro termos
seguintes: Selecione os dois melhores termos
usando MI.
Trabalho Prático
● Classificação de postagens em listas de
discussão
– Corpus consistindo de 20 diferentes grupos:
Trabalho Prático
● Classificação de postagens em listas de
discussão
– Corpus consistindo de 20 diferentes grupos.
– A tarefa é construir um classificador que
determine a qual grupo um determinado post
veio.
– Por exemplo:
Pertence ao grupo:
rec.motorcycles
Trabalho Prático
● Classificação de postagens em listas de discussão
– Corpus consistindo de 20 diferentes grupos.
– A tarefa é construir um classificador que determine a
qual grupo um determinado post veio.
– Dados disponíveis em:
http://qwone.com/~jason/20Newsgroups/
● 20news-bydate.tar.gz
http://qwone.com/~jason/20Newsgroups/20news-bydate.tar.gz
– 18846 documentos... divididos em TREINO e TESTE

– O QUE FAZER?
Trabalho Prático
● Por exemplo, queremos classificar o post:

Quais palavras ajudariam na classificação ???


Trabalho Prático
● Se eliminarmos as 200 palavras mais
frequentes da língua inglesa, teremos:
Trabalho Prático
● Um vocabulário está disponível ao final da
página:
http://qwone.com/~jason/20Newsgroups/

● Duas listas com stop-words acompanham o


e-mail enviado com estes slides.
– Uma contendo 25 termos e outra com 174
termos.
Trabalho Prático
● Pede-se:
– Escolha dois temas de postagens
– Faça a limpeza de todos os arquivos, removendo
pontuações, stop-words e palavras-chave como
“from”, “subject”, etc.
● Pode-se remover palavras pouco frequentes, por exemplo,
que ocorrem menos de 3 vezes...
– Implemente os modelos de Bernoulli e Multinomial
● Junto ao e-mail está uma base de dados menor para testes
da implementação.
Trabalho Prático
● Em seguida:
– Verifique qual modelo é melhor: Bernoulli ou
Multinomial

Maior porcentagem de acertos.
– Para o melhor método, há guanhos se:
● Não remover as stop-words ?

Utilizar a lista com 25 stop-words ?
● Utilizar a lista com 100 stop-words ?
● Utilizar a lista com 174 stop-words ?
– Há ganhos com a diminuição do vocabulário?
● Utilize Feature selection: MI
Trabalho Prático
● Grupos
– No máximo de 2 alunos
– Valor: 25 pontos
– Data de apresentação ao professor: último dia
de aula !
● Em qualquer linguagem de programação

Você também pode gostar