Classificacao de Texto
Projeto Spam Filter
Ivan Gesteira Costa Filho
Centro de Informatica
UFPE
Spam-Filter
 Aprendizagem de maquina para fazer um
filtro de Spam.
 Tarefa: dado um email classificar como
spam ou nao-spam
Spam-Filter
 Como distinguir spam de nao spam?
Categorizacao de Texto
 Criar uma base de dados

Recolher emails e classificar-los como Spam ou
Nao-Spam.
 Criar uma representacao vetorial do texto

Tecnicas de processamento de texto (a seguir)
 Usar metodos de classificacao

Arvores de inducao, Aprendizagem Bayesiana,
…
Preparação dos documentos
 Operações sobre o texto

objetivo: criar a visão lógica do documento
 Criação da representação do documento

Utilizando algum modelo de RI
Doc original
Visão Lógica
Doc : www.filosofia.com
Doc : www.filosofia.com
“Se o desonesto soubesse a
vantagem de ser honesto,
ele seria honesto ao menos
por desonestidade.”
desonesto / soubesse /
vantagem / honesto /
seria / honesto /
menos/desonestidade/
socrates
Sócrates
Representação
Doc : www.filosofia.com
honesto
2
desonesto
1
soubesse
1
vantagem
1
seria
1
menos
1
desonestidade
1
socrates
1
Operações sobre o texto
 Fases

Análise léxica


Eliminação de stopwords


Artigos, pronomes, etc
Operação de stemming


Elimina dígitos, pontuação, etc
Redução da palavra ao seu radical
…
Operações sobre o texto
Análise léxica
 Entrada

O texto original

uma cadeia de caracteres
 Objetivo


Converter o texto original em uma lista de palavras
Identificando as palavras e frequencia que ocorrem no
texto
 Procedimento padrão


Utilizar espaços como sendo separadores de palavras
Tratar pontuação, hífens, dígitos, letras maiúsculas e
acentos.

Cada caso pode requerer tratamentos diferenciados
Operações sobre o texto
Eliminação de stopwords
 Algumas palavras não são bons
discriminadores


Palavras muito freqüentas na base de documentos
Palavras sem semântica associada

artigos, preposições, conjunções, alguns advérbios e
adjetivos
 Aqui também há exceções a considerar

Em domínios específicos, podemos precisar
manter algumas dessas palavras

Redes de computadores
Operações sobre o texto
Stemming
 Problema

variação de uma mesma palavra aparece nos
documentos relevantes

Ex., plural, gerúndio, verbos flexionados, aumentativo...
 Objetivo dessa operação:

Substituir a palavra por seu radical (stem)


Porção da palavra que resta após a remoção de prefixos e
sufixos
Possibilitar casamento parcial entre variações de uma
mesma palavra

Ex.: engenheiro, engenheira, engenharia, …
Exemplo Stemming
word
stem
quilo
quilométricas
quilométricos
quilômetro
quilômetros
quilos
química
químicas
químico
químicos
quimioterapia
quimioterápicos
quil
quilométr
quilométr
quilômetr
quilômetr
quil
químic
químic
químic
químic
quimioterap
quimioteráp
=>
Representação do Documento
 Dado um conjunto de documentos e palavras
presentes.

Cada documento (dj) é representado por termos da base
associados a pesos


d1 = k1 (w1), k2 (w2),..., kn (wn)
Peso


Importância da palavra para descrever o documento
Quando o termo não aparece no documento, o peso associado é
zero
 Cada modelo de recuperação define pesos de uma
maneira diferente
Representação de Documento
Cálculo dos Pesos
 Peso = freqüência de ocorrência do termo
no documento
Doc original
Operações de Texto
Doc : www.filosofia.com
Doc : www.filosofia.com
“Se o desonesto soubesse a
vantagem de ser honesto,
ele seria honesto ao menos
por desonestidade.”
desonesto / soubesse /
vantagem / honesto /
seria / honesto /
menos/desonestidade/
socrates
Sócrates
Representação
Doc : www.filosofia.com
honesto
2
desonesto
1
soubesse
1
vantagem
1
seria
1
menos
1
desonestidade
1
socrates
1
Modelo Espaço Vetorial
Cálculo dos Pesos
 Método TF-IDF leva em consideração:

Freqüência do termo no documento



Term Frequency (TF)
Quanto maior, mais relevante é o termo para descrever o
documento
Inverso da freqüência do termo entre os documentos
da coleção

Inverse Document Frequency (IDF)
 Termo que aparece em muitos documentos não é útil para
distinguir relevância

Peso associado ao termo tenta balancear esses dois
fatores
Modelo Espaço Vetorial
Cálculo dos Pesos com TF-IDF





dj: documento; ki:termo
freqi,j: freqüência do termo ki no documento dj
ni: número de documentos que contêm termo ki
N: número total de documentos da base
maxl freql,j : a freqüência do termo mais freqüente no
documento
freqi,j
TF: tfi,j=
maxl freql,j
IDF:
idfi= log N
ni
Freqüência (normalizada)
do termo no documento
Inverso da freqüência do termo
nos documentos da base
Modelo Espaço Vetorial
Cálculo dos Pesos com TF-IDF
wi,j = tfi,j x idfi
Processamento de Texto e
Representação
 Criar uma base de dados com + de 200 emails

pelo menos 100 spans.
 Criar um parser em Java para criar representação de
documentos

Para fazer stop-word e stemming ver …

http://www.cin.ufpe.br/~igcf/si/BrazilianStemmer.java
 Criar arquivo no formato Weka


Palavras são atributos
Vetor com TF-IDF são os exemplos
Classificação
 Usar os metodos do Weka

Árvore de Inducao (J48) e Bayesiano Ingenuo
 Realizar Validação-Cruzada 10-fold
 Arvores de indução


explorar efeitos de algoritmos de poda na
acurácia
Análise das regras geradas
 Comparar resultado Naive x Árvores de
Indução
Projeto
 Entregar relatório e (bases de dados) com



Representação dos documentos.
Descrição da base de dados
Experimentos Realizados



Comparação da acurácia Naive X J48
Efeito de técnicas de poda no J48
Interpretação das Regras obtidas
 Prazo 14/06 antes da meia noite
 Apresentação 15/06
Download

aula-classificacao-texto - Centro de Informática da UFPE