classificacao de texto projeto spam filter ivan gesteira costa filho centro de informatica ufpe
TRANSCRIPT
Classificacao de TextoProjeto 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
“Se o desonesto soubesse a vantagem de ser honesto, ele seria honesto ao menos por desonestidade.”
Sócrates
Doc original
desonesto / soubesse /vantagem / honesto /seria / honesto /menos/desonestidade/socrates
honesto 2desonesto 1soubesse 1vantagem 1seria 1menos 1desonestidade 1socrates 1
Visão LógicaRepresentação
Doc : www.filosofia.com Doc : www.filosofia.comDoc : www.filosofia.com
Operações sobre o texto
Fases Análise léxica
Elimina dígitos, pontuação, etc Eliminação de stopwords
Artigos, pronomes, etc Operação de stemming
Redução da palavra ao seu radical …
Operações sobre o textoAná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 textoEliminaçã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 palavrasRedes 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
quiloquilométricasquilométricosquilômetroquilômetrosquilosquímicaquímicasquímicoquímicosquimioterapiaquimioterápicos
=>
quil quilométrquilométrquilômetrquilômetrquilquímicquímicquímicquímicquimioterapquimioterá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
“Se o desonesto soubesse a vantagem de ser honesto, ele seria honesto ao menos por desonestidade.”
Sócrates
Doc original
desonesto / soubesse /vantagem / honesto /seria / honesto /menos/desonestidade/socrates
honesto 2desonesto 1soubesse 1vantagem 1seria 1menos 1desonestidade 1socrates 1
Operações de TextoRepresentação
Doc : www.filosofia.com Doc : www.filosofia.comDoc : www.filosofia.com
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
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
TF:
IDF:
Modelo Espaço Vetorial Cálculo dos Pesos com TF-IDF
Nni
idfi= log
Inverso da freqüência do termonos documentos da base
freqi,j
maxl freql,j
tfi,j=Freqüência (normalizada) do termo no documento
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