O slideshow foi denunciado.

Minicurso: O que o twitter está pensando? Extraindo informações do twitter utilizando NLTK

952 visualizações

Publicada em

Material do minicurso apresentado na SEMINFO 2014

Publicada em: Tecnologia
  • Seja o primeiro a comentar

Minicurso: O que o twitter está pensando? Extraindo informações do twitter utilizando NLTK

  1. 1. O que o twitter está pensando? Extraindo informações do twitter utilizando NLTK Adolfo Guimarães SEMINFO 2014 adolfoguimaraes@gmail.com 11/09/2014 @guimaraesadolfo
  2. 2. Quem sou eu? • Adolfo Guimarães • Mestre em Ciência da Computação pela UFMG • Graduado em Ciência da Computação pela UFS • Docente na UFS e UNIT • Colaborador do grupo de pesquisa Pii (Processamento de Imagens e Inteligência-UFS e Integrante do Grupo de Pesquisa Interdisciplinar em Tecnologia da Informação e Comunicação da UNIT. • Contato: adolfoguimaraes@gmail.com www.twitter.com/guimaraesadolfo http://sites.google.com/site/adolfoguimaraes
  3. 3. Agenda • Motivação • Introdução a Mineração de Dados • Processamento de Linguagem Natural e NLTK: Natural Language Toolkit • Extraindo informações do twitter com NLTK
  4. 4. Dados x Informação
  5. 5. R C O R A
  6. 6. C A R R O
  7. 7. A internet em 1 minuto 278 mil tweets 2 milhões de buscas 2,4 milhões de posts 216 mil fotos 204 milhões de e-mails enviados
  8. 8. • Vídeo sobre BIG DATA do canal Nerdologia disponível em: https://www.youtube.com/watch? v=hEFFCKxYbKM
  9. 9. Como lidar com toda essa quantidade de dados?
  10. 10. Como extrair informação útil destes dados?
  11. 11. Mineração de Dados!!!
  12. 12. O que é Mineração de Dados?
  13. 13. “Mineração de Dados é análise de grandes conjuntos de dados a fim de encontrar relacionamentos inesperados e de resumir os dados de uma forma que eles sejam tanto úteis quanto compreensíveis ao dono dos dados”
  14. 14. “Mineração de dados é um campo interdisciplinar que junta técnicas de máquinas de conhecimentos, reconhecimento de padrões, estatísticas, banco de dados e visualização, para conseguir extrair informações de grandes bases de dados”
  15. 15. “Mineração de Dados é um passo no processo de descoberta de conhecimento que consiste na realização da análise dos dados e na aplicação de algoritmos de descoberta que, sob certas limitações computacionais, produzem um conjunto de padrões de certos dados”
  16. 16. O que é Mineração de Dados? • “Extrair ou 'minerar' conhecimento de uma grande quantidade de dados” (Kamber, 2001); • Também conhecido como KDD (Knowledge Discovery from Data); • Podemos classificar também a mineração de dados como um dos passos no processo de “descoberta do conhecimento”.
  17. 17. O que é Mineração de Dados? Dados Seleção Dados Escolhidos Pré-processamento Dados Pré-Processados Conhecimento Transformação Dados Transformados Padrões Mineração de Dados Avaliação
  18. 18. O que podemos extrair desta página?
  19. 19. Mineração de Dados • A mineração de dados pode ser vista de forma diferente a depender da área em que é aplicada.
  20. 20. Mineração de Dados • Para a comunidade de business intelligence Decision Making Data Presentation Visualization Techniques Data Mining Information Discovery Data Exploration Increasing potential" to support" business decisions Statistica Summary, Querying, and Reporting Business Analyst Data Preprocessing/Integration, Data Warehouses Data Sources End User Data Analyst Paper, Files, Web documents, Scientific experiments, Database Systems DBA
  21. 21. Mineração de Dados • Para a comunidade de aprendizado de máquina e estatística Dados Pré-Processamento Mineração de Dados Pós-Processamento Padrão / Informações / Conhecimento
  22. 22. Questões importantes • Ao desenvolver aplicações utilizando os conceitos de mineração de dados, devemos nos ater a algumas questões importantes: • Qual o tipo de conhecimento a ser minerado? • Qual o tipo dos dados a serem minerados? • Quais as técnicas a serem utilizadas? • Quais as aplicações que serão consideradas?
  23. 23. Desafios • Obter tais respostas não é uma tarefa simples, necessita de estudo e conhecimento sobre o ambiente no qual a mineração será aplicada; • Além disso, minerar dados hoje em dia gera uma série de desafios, como: • Lidar com diferentes tipos de dados e de alta dimensão; • Trabalhar com dados com ruídos e incompletos; • Implementar algoritmos eficientes e que permitam ser escalados.
  24. 24. Pré-processamento • Uma das fases mais importante no trabalho de mineração de dados é o pré-processamento de dados; • Essa tarefa tem como finalidade aumentar a qualidade dos dados extraídos; • A importância dessa tarefa aumenta com a mineração de textos da internet, onde, não existem padrões e quem gera os dados tem total liberdade de produzi-lo de diversas maneiras.
  25. 25. Pré-processamento • As fases de um pré-processamento consistem em: • Limpeza dos dados; • Integração dos dados; • Transformação dos dados; • Redução dos dados
  26. 26. Tarefas • A mineração de dados também pode ser classificada de acordo com as tarefas realizadas: • Classificação • Predição • Agrupamento • Associação
  27. 27. Um foco em classificação
  28. 28. Classificação • Os métodos de classificação trabalham com um conjunto de dados que possuem uma classificação (ou classe) conhecida; • A partir dos dados conhecidos, deve-se construir um modelo e a partir deste modelo classificar instâncias desconhecidas da base de dados; • O processo de classificação é dividido em duas fases: (1) Treinamento e (2) Teste.
  29. 29. Classificação • Exemplo: classificar um certo personagem como sendo da série Game of Thrones ou The Walking Dead.
  30. 30. Classificação: Treinamento Base de Treinamento Algoritmo de Classificação Classificador" (Modelo)
  31. 31. Classificação: Teste Base de Teste Classificador" (Modelo) Dados Classificados
  32. 32. Classificação: Avaliação Dados Reais Comparação Dados Classificados Avaliação do Algoritmo" de Classificação
  33. 33. Classificação: Técnicas • Existem várias técnicas de classificação: • Árvores de decisão • Classificação Bayesiana • Classificação baseada em regras • Redes Neurais • SVM • Regras por associação • Algoritmos Genéticos • Entre outros ….
  34. 34. Classificação Bayesiana • Essa técnica se baseia na idéia de que é possível determinar a probabilidade de um certo evento ocorrer, dada a probabilidade um evento passado; • Está entre os algoritmos mais usados para classificação dada a sua simplicidade e eficiência se comparado com técnicas mais complexas;
  35. 35. Classificação Bayesiana • Exemplo: • Característica: probabilidade de matar zumbis 0.8 0.3 0.9 0.7 0.2
  36. 36. NLTK e o Processamento de Linguagem Natural
  37. 37. Inteligência Artificial
  38. 38. Linguagem Natural
  39. 39. Compreender o que o computador diz Compreender o que os humanos dizem
  40. 40. Linguagem Natural • Linguagem Natural é uma área de Inteligência Artificial que lida com os problemas gerados pela geração e compreensão de linguagens humanas naturais. • Podemos dividir em dois processo: • Geração de Linguagem Natural • Processamento de Linguagem Natural
  41. 41. Linguagem Natural • Na geração de linguagem natural estamos preocupados em através de dados estruturados gerar informação próxima a linguagem humana. • No processamento de linguagem natural estamos preocupados em através de dados na linguagem humana extrair dados que possam ser processados por um computador.
  42. 42. Processamento de Linguagem Natural • No processamento de linguagem natural está preocupado em como a linguagem está estruturada; • Informações sobre a sintaxe, semântica, morfologia, estruturação das frases etc.
  43. 43. Vamos começar a trabalhar???
  44. 44. Ferramentas utilizadas • NITROUS.IO - ambiente de desenvolvimento na nuvem: http://www.nitrous.io • TWEEPY - api para extração de dados do TWITTER: http://github.com/tweepy/tweepy • NLTK (Natural Language Toolkit) - conjunto de ferramentas para trabalhar com linguagem natural: http://www.nltk.org
  45. 45. NLTK - Natural Language Toolkit
  46. 46. Criação do ambiente no Nitrous.io • Crie uma conta free no nitrous.io; • Crie uma box do tipo Python/Django; • Instale o Tweepy através do comando: • pip install tweepy • Instale o NLTK através do comando: • pip install nltk
  47. 47. Tweepy • Para utilizar a API de coleta de dados do twitter é preciso cadastrar um app no site de desenvolvedores do twitter: http://dev.twitter.com • Se não aparecer nenhuma opção para genrenciar seus app, procure por “Manger Your Apps” no rodapé do site; • Depois de cadastrar utilize API Key e o API Secrete para se autenticar quando utilizar a API; • Para o minicurso utilizei informações de um app que crie, no entanto, estarei desativando nos próximos dias.
  48. 48. NLTK • Instalação: • Disponível para Windows, Linux e Mac, as ferramentas são de fácil instalação e as instruções estão disponíveis em www.nltk.org/install.html ; • O NLTK possui um grande corpus de texto disponível para download. Existem textos em português, inglês e outros idiomas; • Para a instalação de qualquer pacote extra do NLTK utilize o comando nltk.download() dentro do interpretador python (para acessar basta digitar python na linha de comando) • As stopwords são um dos pacotes que precisar sem instalados.
  49. 49. Referências • Data Mining - Concepts and Techniques Jiawei Han and Micheline Kamber Second Edition • Natural Language Processing with Python Analyzing Text with the Natural Language Toolkit Steven Bird, Ewan Klein, and Edward Loper O’Reilly Media, 2009 Disponível em: www.nltk.org/book • Material da professora Gisele Pappa (DCC/UFMG)
  50. 50. Referências • Base de dados em inglês para análise de sentimento: • http://ai.stanford.edu/~amaas/data/sentiment/ • Referenciado pelo paper: http://cs.stanford.edu/ people/ang/?portfolio=learning-word-vectors-for-sentiment- analysis • Tutorial do exemplo de análise de sentimento apresentado: • http://www.sjwhitworth.com/sentiment-analysis-in-python- using-nltk/
  51. 51. Obrigado!!! • Se interessou pelo tema? Entra em contato: adolfoguimaraes@gmail.com ou me segue no twitter: @guimaraesadolfo ;)

×