Classificadores Bayesianos - Stoa Social · O classificador Naive Bayes é classificador...

13
Escola Politécnica da Universidade de São Paulo Departamento de Engenharia de Computação e Sistemas Digitais - PCS PCS5708 Técnicas de Raciocínio Probabilístico em Inteligência Artificial Classificadores Bayesianos Aplicados a análise sintática da língua portuguesa Marcelo Li Koga Prof.: Paulo Cugnasca 28 de maio de 2011

Transcript of Classificadores Bayesianos - Stoa Social · O classificador Naive Bayes é classificador...

Page 1: Classificadores Bayesianos - Stoa Social · O classificador Naive Bayes é classificador probabilístico baseado no teorema de Bayes (Thomas Bayes) com uma premissa simples: ...

Escola Politécnica da Universidade de São Paulo Departamento de Engenharia de Computação e

Sistemas Digitais - PCS

PCS5708 – Técnicas de Raciocínio Probabilístico em Inteligência Artificial

Classificadores Bayesianos

Aplicados a análise sintática da língua portuguesa

Marcelo Li Koga

Prof.: Paulo Cugnasca

28 de maio de 2011

Page 2: Classificadores Bayesianos - Stoa Social · O classificador Naive Bayes é classificador probabilístico baseado no teorema de Bayes (Thomas Bayes) com uma premissa simples: ...

1

1 Introdução

A área de linguística computacional apresenta muitos desafios atualmente, pois a

análise de uma linguagem natural meio de uma máquina é uma tarefa bastante complexa.

Nesse contexto, o uso de técnicas de raciocínio probabilístico é de grande auxílio pois a

análise da linguagem traz muitas incertezas e é necessário saber lidar com elas. Múltiplas

classes gramaticais, ambiguidades e figuras de linguagem são exemplos de características

que geram essas incertezas.

O objetivo desse trabalho é investigar o uso de uma técnica probabilística – Naive Bayes

– aplicada a uma subtarefa da análise sintática da linguagem: a classificação de sujeito de

uma oração. É uma tarefa de classificação portanto, realizada em conjunto com uma

aprendizagem supervisionada.

O capítulo 2 descreve o problema de classificação em geral, 3 e 4 versam sobre o

classificador Naive Bayes e suas extensões respectivamente, cap. 5 apresenta alguns

resultados de experimentos práticos da tarefa e finalmente no cap. 6 as conclusões são

mostradas.

Page 3: Classificadores Bayesianos - Stoa Social · O classificador Naive Bayes é classificador probabilístico baseado no teorema de Bayes (Thomas Bayes) com uma premissa simples: ...

2

2 Classificação

O objetivo do problema de classificação é a previsão de categorias (também chamadas

de etiquetas) para os dados. Dado um conjunto de dados e de categorias definidas, a tarefa

do classificador é construir um modelo capaz de atribuir corretamente uma categoria a cada

dado.

O primeiro passo para construir um classificador é a definição de um conjunto de

treinamento. Este contém uma lista de exemplos (definidos por atributos) cada um com sua

respectiva classe. O conjunto de treinamento é então submetido a um algoritmo de

classificação e um modelo é construído (indução). Esse modelo pode ser de diversas formas

dependendo do algoritmo escolhido, como uma lista de regras, uma árvore de decisão, uma

fórmula matemática ou cálculo de probabilidades como no caso do Naive Bayes explicado

na próxima seção.

Em posse do modelo, o classificador pode então atribuir categorias a novos dados

nunca vistos antes (dedução). Para medir a qualidade do modelo construído, pode-se usar

um conjunto de teste, que deve ser independente do conjunto de treinamento, cujas

classificações também são conhecidas de modo que seja possível averiguar a taxa de acerto

do modelo proposto.

Vários são os algoritmos existentes para classificação e o que será apresentado na

seção a seguir é de um classificador probabilístico, o Naive Bayes.

Page 4: Classificadores Bayesianos - Stoa Social · O classificador Naive Bayes é classificador probabilístico baseado no teorema de Bayes (Thomas Bayes) com uma premissa simples: ...

3

3 Classificador Naive Bayes

O classificador Naive Bayes é classificador probabilístico baseado no teorema de Bayes

(Thomas Bayes) com uma premissa simples: todos os atributos são independentes entre si.

A Figura 1 ilustra o modelo. Ela indica que cada atributo Ai influencia a classe C, mas nenhum

exerce influência sobre o outro.

Figura 1 - Modelo Probabilístico Naive Bayes

Como classificador probabilístico, ele calcula as probabilidades de uma classe C, dados

os atributos A1, A2, A3,etc.

,...),,|( 321 AAACp

Aplicando o teorema de Bayes, a probabilidade seria assim calculada:

)...,,|(),|()|()( 223121 CAAApCAApCApCp

Mas com a premissa de independência de atributos, o cálculo é simplificado para:

)...|()|()|()( 321 CApCApCApCp i

i CApCp )|()(

Com a independência de atributos, o classificador Naive Bayes torna-se um método

simples e efetivo, tornando-o atrativo. Poucos são os parâmetros que precisam ser

estimados, pois apenas as probabilidades a priori de classe e as condicionais de cada

atributo dada a classe são necessários. São (k – 1) + n r k parâmetros, onde k é o número de

classes, r é o número de valores diferentes que cada atributo pode assumir e n é o número

de atributos.

Page 5: Classificadores Bayesianos - Stoa Social · O classificador Naive Bayes é classificador probabilístico baseado no teorema de Bayes (Thomas Bayes) com uma premissa simples: ...

4

Essa premissa de independência é muitas vezes irreal, mas diversos estudos[2][3]

mostram que na prática ela se torna pouco relevante, pois o classificador Naive Bayes

apresenta resultados comparáveis a muitos outros algoritmos mais complexos [4]. Muitas

vezes, apesar da dependência entre atributos existir, ela não influencia na classificação.

3.1 Aprendizagem

A estimativa das probabilidades é a tarefa da aprendizagem desde classificador. E é

uma tarefa simples: a probabilidade será a frequência relativa de cada classe

(probabilidades a priori) e cada atributo dada a classe (probabilidades condicionais) no

conjunto de treinamento. Por exemplo, se temos 100 exemplos no total, sendo 60 da classe

A e 40 da classe B, então:

4,0)(

6,0)(

Bclassep

Aclassep

Ainda, se desses 60 da classe A, metade tem atributo A1 = verdadeiro e metade A1 =

falso e na classe B, todos tem A1 = falso, então temos:

0)|(

5,0)|(

1

1

BverdadeiroAp

AverdadeiroAp

1)|(

5,0)|(

1

1

BfalsoAp

AfalsoAp

E assim por diante, todas as probabilidades são calculadas. Deve-se ter atenção com o

caso de não ocorrer certa manifestação de um atributo para determinada classe, caso que a

estimativa seria zero (como p(A1 = verdadeiro|B) no exemplo). Pois como a probabilidade é

calculada como um produtório de todas as probabilidades condicionais e a a priori, se

houver uma nula, todo o resultado será nulo. Por isso, devemos fazer uma correção de

modo que nenhuma estimativa fique em zero:

01,0)|(

5,0)|(

1

1

BverdadeiroAp

AverdadeiroAp

99,0)|(

5,0)|(

1

1

BfalsoAp

AfalsoAp

Isso tudo caso os atributos sejam discretos. Caso o atributo seja contínuo, não

contamos simplesmente a frequência, mas podemos aproximar a distribuição dos valores

para uma distribuição normal [1]. Portanto, calcula-se a média μ e o desvio-padrão σ² dos

Page 6: Classificadores Bayesianos - Stoa Social · O classificador Naive Bayes é classificador probabilístico baseado no teorema de Bayes (Thomas Bayes) com uma premissa simples: ...

5

dados do conjunto de treinamento e assume-se que o atributo se encaixa numa gaussiana

definida por esses 2 parâmetros. A probabilidade é calculada usando-se a função gaussiana:

2

2

2

)(

²2

1)|(

x

i eCAp

3.2 Decisão

Em posse do modelo probabilístico, o classificador pode então calcular as

probabilidades de cada classe para uma determinada entrada. Assim sendo, a decisão da

classe escolhida é a da hipótese que obtiver a maior probabilidade, regra chamada de

Maximum a Posteriori.

Page 7: Classificadores Bayesianos - Stoa Social · O classificador Naive Bayes é classificador probabilístico baseado no teorema de Bayes (Thomas Bayes) com uma premissa simples: ...

6

4 Extensões ao Naive Bayes

Este capítulo apresenta algumas técnicas que propõem algumas alterações ao Naive

Bayes visando principalmente amenizar sua maior deficiência, que é a premissa de

independência entre os atributos.

4.1 Random Naive Bayes

A ideia do Random Naive Bayes é contruir, ao invés de apenas um classificador,

diversos classificadores Naive Bayes. No entanto, eles não levarão em conta todos os

atributos disponíveis. Cada um será construído utilizando apenas uma quantidade m de

atributos aleatórios. Assim, se existe dependência entre alguns atributos ela tende a ser

minimizada pois nem todo classificador usa os atributos dependentes entre si e sim

subconjuntos que podem ser independentes.

Para se chegar a uma resposta final será necessário então combinar as respostas de

cada um dos classificadores. Um jeito é escolher a classe mais “votada”, e esses votos

podem ser ponderados pelas probabilidades das hipóteses.

4.2 AODE

O AODE (Averaged One-Dependence Estimators) adota outra abordagem para

minimizar a dependência dos atributos. Na realidade, ele estende a estrutura do Naive

Bayes, incluindo também a dependência de cada atributo com um outro atributo. A Figura 2

ilustra esse modelo. Note que ela mostra a influência de atributos entre si, diferentemente

da Figura 1 do Naive Bayes.

O AODE também constrói diversos modelos, mais precisamente n modelos, onde n é o

número de atributos. Em cada modelo, existe um atributo alvo Aalvo e as probabilidades

consideradas são as condicionais desse alvo. Por exemplo, consideraremos: p(C),

p(A1|Aalvo,C), p(A2|Aalvo,C), etc.

Page 8: Classificadores Bayesianos - Stoa Social · O classificador Naive Bayes é classificador probabilístico baseado no teorema de Bayes (Thomas Bayes) com uma premissa simples: ...

7

Figura 2 - Modelo probabilístico do AODE

Ou seja, o AODE calcula um nível de dependência e faz isso n vezes. A resposta final

será a composição da resposta de todos os classificadores, tal qual no Random Naive Bayes.

O AODE tenta melhorar a relação custo computacional / precisão do Naive Bayes e com

um pequeno aumento de computação enfraquece a hipótese de independência

apresentando maior precisão [5].

Page 9: Classificadores Bayesianos - Stoa Social · O classificador Naive Bayes é classificador probabilístico baseado no teorema de Bayes (Thomas Bayes) com uma premissa simples: ...

8

5 Classificador de Tipos de Sujeito

5.1 Descrição

O classificador desenhado nesse trabalho é um classificador de tipo de sujeito de

orações. Na língua portuguesa, uma oração pode ser classificada de 4 maneiras com relação

ao sujeito: sujeito explícito (SE), sujeito oculto (SO), sujeito indeterminado (SI) ou oração

sem sujeito (OSS).

O sujeito explícito é o caso mais comum, no qual o sujeito aparece na frase como em

“Marcelo caiu” – o sujeito é justamente “Marcelo”. Já o sujeito oculto é o caso que ele está

implícito na frase, e pode ser inferido pelo contexto ou frases anteriores (posteriores). Por

exemplo, na oração “Fui ali” o sujeito não está escrito, mas sabe-se que é “eu” pela flexão

do verbo. O sujeito indeterminado também ocorre quando ele não está explícito mas não

se pode inferir quem é o sujeito, como em “Roubaram meu carro” – não se sabe quem

roubou o carro. O último caso ocorre quando a oração não possui sujeito, caso de verbos

de fenômenos naturais ou verbo haver no sentido de existir, como em “Houve acidentes” ou

“Choveu ontem”. Então dizemos que essas orações são sem sujeito.

O objetivo é então construir um classificador capaz de deduzir o tipo de sujeito de

uma oração, como mostra a Tabela 1.

Tabela 1 - Exemplos classificador de sujeitos

Entrada Saída

Eu gosto de futebol. Sujeito Explícito

Fica ali. Sujeito Oculto

Precisa-se de vendedores. Sujeito Indeterminado

Venta muito aqui. Oração Sem Sujeito

Existem traidores aqui. Sujeito Explícito

5.2 Treinamento

Como explicado no capítulo 2 e 3, os classificadores atuam sobre um conjunto de

atributos. Precisa-se então definir quais são os atributos pois a entrada inicial são apenas

frases em linguagem natural. Decidiu-se extrair das frases alguns atributos morfológicos e

estruturais, a saber:

Pessoa do verbo (1ª, 2ª ou 3ª )

Page 10: Classificadores Bayesianos - Stoa Social · O classificador Naive Bayes é classificador probabilístico baseado no teorema de Bayes (Thomas Bayes) com uma premissa simples: ...

9

Número do verbo (singular ou plural)

Se verbo possui hífen + “se”

Se radical do verbo é “haver”

Se radical do verbo é “fazer”, “ser”, “estar”, “ir”, “vir” ou “passar” (i.e., é verbo

que pode indicar tempo?)

Classe gramatical da palavra anterior ao verbo

Ou seja, as frases de entrada precisam antes passar por um pré-processamento para

extração dos atributos, usando principalmente um analisador morfológico. Neste trabalho,

usou-se o analisador JJSpell1.

Certamente o processo de escolha desses atributos foi guiado pela experiência no uso

da língua, não foram escolhidos aleatoriamente. A pessoa e número do verbo são

importantes pois sujeito indeterminado só ocorre em 3ª pessoa, assim como uma das

formas deste sujeito é com o “-se”. Os atributos com radicais de verbos específicos são

principalmente para diferenciar as orações sem sujeito, que podem ocorrer com o verbo

haver no sentido de existir ou também com verbos indicando passagem de tempo. A classe

gramatical da palavra que antecede o verbo é outro atributo bastante importante pois se é

um substantivo ou pronome, a chance maior é de que seja o caso de suj. explícito ou caso

não exista palavra anterior (verbo é a primeira palavra), maior chance de sujeto oculto.

Outro critério para a escolha desses atributos é o fato de eles serem de fácil extração, pois

certamente existem outras características mais incisivas para inferência do sujeito, no

entanto, elas não são simples de serem detectadas por máquinas.

Definidos os atributos, textos jornalísticos do site Folha.com2 e o conto “A

Cartomante” de Machado de Assis foram usados como conjunto de treinamento, sendo que

143 orações foram classificadas manualmente para esse fim. A Tabela 2 mostra alguns

exemplos deste conjunto:

1 JJSpell - A Java wrapper for the Jspell morphologic analyser. Disponível em: http://code.google.com/p/jjspell/

(acesso em 28/05/2011) 2 Folha.com. Disponível em: http://www.folha.uol.com.br/ (acesso em 28/05/2011)

Page 11: Classificadores Bayesianos - Stoa Social · O classificador Naive Bayes é classificador probabilístico baseado no teorema de Bayes (Thomas Bayes) com uma premissa simples: ...

10

Tabela 2 - Exemplos do conjunto de treinamento

Oração Pessoa Núm. -se? Haver Tempo Anterior Classe

Os homens são assim 3ª Plural Não Não Não Subst SE

Não acreditam em nada 3ª Plural Não Não Não Conj SO

Confessei que sim 1ª Sing Não Não Não -- SO

5.3 Resultados

Foram usadas as implementações do software WEKA [6] para contruir-se os

classificadores. Para validá-los, utilizou-se a técnica de validação cruzada com 10

subconjuntos. Os valores das taxas de acerto podem ser verificados na Tabela 3.

Tabela 3 - Resultados

Naive Bayes Random AODE

Taxa de Acerto 83,33 % 79,9 % 80,5 %

Todas as três técnicas apresentaram resultados similares, com o Naive Bayes até um

pouco melhor. Isso se deve porque neste exemploos atributos não são muito dependentes

entre si.

A matriz de confusão para o Naive Bayes pode ser vista na Tabela 4. A linha do

Sujeito Indeterminado só possui zeros porque nenhum exemplo do conjunto de

treinamento apresentava essa classificação.

Tabela 4 - Matriz de confusão

Classificado Como Suj. Explícito Suj. Oculto Suj. Indeter Sem Sujeito

Suj. Explícito 86 9 0 0

Suj. Oculto 11 30 0 0

Su. Indeterminado 0 0 0 0

Sem Sujeito 2 1 0 4

Page 12: Classificadores Bayesianos - Stoa Social · O classificador Naive Bayes é classificador probabilístico baseado no teorema de Bayes (Thomas Bayes) com uma premissa simples: ...

11

6 Conclusões

Com a realização deste trabalho, conclui-se que o uso de técnicas probabilísticas é de

grande valia ao processamento de linguagem natural. O resultado alcançado com o Naive

Bayes, de 84%, é bastante relevante e pode ser usado como auxílio na análise sintática.

Além disso, mostra que a técnica do Naive Bayes é de fato efetiva e que a hipótese de

independência muitas vezes não influencia o resultado.

Espera-se que em trabalhos futuros possa-se ampliar o escopo da análise, classificando

não apenas o sujeito mas outros aspectos como a predicado, a própria morfologia ou até a

árvore sintática completa.

Page 13: Classificadores Bayesianos - Stoa Social · O classificador Naive Bayes é classificador probabilístico baseado no teorema de Bayes (Thomas Bayes) com uma premissa simples: ...

12

7 Referência Bibliográfica

1. Russel, S. e Norvig, P. Inteligência Artificial. Tradução da Segunda Edição. Cap. 14 e 20. Rio

de Janeiro, Elsevier (2004)

2. Zhang, H. The Optimality of Naive Bayes.

3. Rish, Irina. An empirical study of the naive Bayes classifier. IJCAI 2001 Workshop on

Empirical Methods in Artificial Intelligence (2001)

4. Langley, P.; Iba, W. e Thompson,K. An analysis of Bayesian classifiers. In: Proceedings AAAI-

94 Seattle, WA, AAAI Press and MIT Press (1992), pp. 223–228

5. Webb, G. I., J. Boughton, and Z. Wang. Not So Naive Bayes: Aggregating One-Dependence

Estimators. Machine Learning 58(1). Netherlands: Springer, pages 5-24 (2005)

6. WEKA – Data Mining with Open Source Machine Learning in Java.

www.cs.waikato.ac.nz/ml/weka/ (acesso em 28/05/2011)