Classificacao de Texto Projeto Spam Filter Ivan Gesteira Costa Filho Centro de Informatica UFPE.
Transcript of Classificacao de Texto Projeto Spam Filter Ivan Gesteira Costa Filho Centro de Informatica UFPE.
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