Loading…

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

Like this presentation? Why not share!

Filtro de SPAM

on

  • 767 views

Apresentação de um filtro de SPAM voltado a fóruns e blogs, implementado em PHP.

Apresentação de um filtro de SPAM voltado a fóruns e blogs, implementado em PHP.

Apresentada no Latinoware 2010

Statistics

Views

Total Views
767
Views on SlideShare
751
Embed Views
16

Actions

Likes
0
Downloads
6
Comments
0

1 Embed 16

http://coderwall.com 16

Accessibility

Upload Details

Uploaded via as OpenOffice

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Filtro de SPAM Filtro de SPAM Presentation Transcript

  • Apresentando uma Solução Livre e Distribuída Para Classificação de SPAM Cauan Cabral
  • Apresentação rápida...
    • Campograndense, 23 anos;
    • Acadêmico do último semestre em Ciência da Computação / UFMS;
    • Trabalho com PHP há pouco mais de 5 anos;
    • Participo do PHPMS, PHPBC, diversas listas e grupos de discussão;
  • O que vem por aí...
    • SPAM ainda é um problema?
    • Quais as soluções existentes?
    • Por que mais uma?
    • Como funciona um filtro de SPAM?
    • Apresentando o projeto!
    • O que esperar dele?
  • Começando pra valer SPAM ainda é um problema?
  • SPAM ainda é um problema? Infelizmente, SIM!
  • SPAM é um problema Estima-se que aproximadamente 95% do conteúdo na internet se trata de SPAM.
  • Só lembrando... SPAM é todo tipo de conteúdo não solicitado
  • SPAM é um problema
    • Todos os dias horas de trabalho são gastos limpando caixa de e-mail, comentários em blogs e portais, postagens em fóruns etc;
    • O envio de SPAM consome banda, processamento e armazenamento. Isso custo caro;
  • Soluções existentes
    • Existem várias soluções no mercado para tentar diminuir esses custos;
    • PROBLEMA : a maioria é voltado para SPAM em e-mails, não em portais, blogs e fóruns;
    • Mas existem soluções para estes casos também:
      • CAPTCHA
  • O'RLY?
  • Soluções existentes
    • CAPTCHA's deveriam barrar bots, não pessoas;
    • Mais soluções...
      • AKISMET® e similares:
        • Excelente alternativa, muito eficiente na maioria dos casos, mas tem limitações...
  • AKISMET® e similares
    • É Open-Source ? NÃO
    • Pode instalar junto a sua aplicação ? NÃO
    • Pode usar em página pessoal ? DEPENDE
    • Pode usar na página da empresa? PAGANDO
  • Por que mais uma então?
    • Suprir as lacunas deixadas pelas outras soluções
    • Atender melhor cenários como:
      • Grande portal com alta interatividade com os internautas precisa moderar as mensagens. A ligação de rede entre o datacenter do portal e do webservice do classificador é um gargalo;
      • Sou expert em inteligência artificial e gostaria de corrigir problemas no classificador, tornando-o mais eficiente;
      • A política do governo não permite adoção de software proprietário.
  • Mas como funciona um filtro?
    • Existem várias formas de implementar um filtro (lista negra, lista branca, lista de regras, probabilidade, inteligência artificial etc);
    • Como é feito na prática: Naïve Bayes
    • O que é isso?
      • Um algorítimo de aprendizado de máquina baseado em um teorema probabilístico (???)
      • A partir de exemplos, ele “aprende” a classificar algum conteúdo, gerando um modelo matemático para isso.
  • Exemplo prático retângulo círculo
  • Exemplo prático retângulo círculo Verde 4 lados 4 pontas Altura 2 cm Azul turquesa 0 lados ∞ pontas Altura 2 cm
  • Exemplo prático ???
  • Exemplo prático Tem mais característica de círculo que de retângulo Verde 0 lados ∞ pontas Altura 2 cm
  • Apresentando o projeto
    • Nome: Filtro de Spam (não batizado ainda)
    • Características:
      • Software livre – licença MIT
      • Possui dois algorítimos de aprendizado de máquina implementados: Naïve Bayes e PA
      • Implementado em PHP
      • Pode ser instalado em servidores de hospedagem padrão
      • Aprendizagem distribuída
        • Diferentes instalações podem sincronizar suas bases de conhecimento
  • Apresentando o projeto
    • Mais sobre a implementação...
      • Algorítimos implementados em PHP 5
      • Webservice implementado com CakePHP 1.3
      • Testado com banco de dados MySQL 5.1
      • Código disponível via Github (endereço depois)
      • Webservice baseado na arquitetura REST, permitindo fácil interação com qualquer linguagem de programação
  • Fluxo padrão de um comentário...
  • Apresentando o projeto
    • Dois webservice
      • Classificação
        • Avalia mensagens ( check )
        • Corrigi classificação ( is-ham e is-spam )
      • Sincronização
        • Solicita atualização ( request-update )
        • Envia novos dados ( push-update)
  • Exemplo de uso com CakePHP
  • Qual a resposta da chamada? {"class":1,"p":2.268811433715e+19}
  • Apresentando o projeto...
    • De onde vem o “distribuído” no nome?
      • A base do classificador é seu conjunto de exemplos;
      • Diferentes conjuntos podem manter-se sincronizados;
  • Como é armazenar o classificador?
  • Persistência através de serialização
  • Como é a base de conhecimento?
    • Os exemplos são o “conhecimento”
    • Cada exemplo precisa ser pré-processado
    • Armazena-se os exemplos já com o pré-processamento
    • Dados são mantidos serializados
  • Como ocorre a sincronização
    • Um host deve ter o endereço para o outro
    • Autenticação
    • Cada entrada possui um UUID e timestamp de criação
    • As duas informações permite a troca de dados diferentes entre as duas partes
  • O que esperar...
    • Lançamento da versão final deve ocorrer até Dezembro
    • Lançamento de plugin para Wordpress em breve
    • Plugin para consumir o webservice em CakePHP também será liberado em breve
    • A eficiência depende do treinamento feito com o algorítimo
    • Quanto mais usuários, maior a eficiência...
    • Outros plugins e bibliotecas devem ser lançadas conforme interesse da comunidade
  • Me interessei...
    • Em usar:
      • Aguarde o lançamento da versão final
      • Acompanhe o repositório no GitHub – documentação está lá
    • Em contribuir:
      • Faça um fork do repositório
      • Qualquer dúvida entre em contato
    • Em contribuir, mas não programo:
      • Entre em contato, ideias são sempre bem vindas.
    • O Open-Source agradece!
  • Contato...
    • Email: [email_address]
    • Blog: http://cauancabral.net
    • Github: http://github.com/CauanCabral
    • Gtalk: [email_address]
    • Twitter: @CauanCabral
    • IRC @ Freenode: CauanCabral
    • http://linkedin.com/in/cauancabral