O documento apresenta uma palestra sobre extração de informações do Twitter utilizando a biblioteca NLTK. Resume os principais conceitos de mineração de dados e processamento de linguagem natural e demonstra como classificar tweets usando técnicas como classificação Bayesiana no NLTK.
Plano de ensino - Princípios de Sistemas da Informação
Minicurso: O que o twitter está pensando? Extraindo informações do twitter utilizando NLTK
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. 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. 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
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. “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. “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. 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. 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
20. Mineração de Dados
• A mineração de dados pode ser vista de forma
diferente a depender da área em que é aplicada.
21. 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
22. 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
23. 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?
24. 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.
25. 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.
26. 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
27. Tarefas
• A mineração de dados também pode ser
classificada de acordo com as tarefas realizadas:
• Classificação
• Predição
• Agrupamento
• Associação
29. 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.
30. Classificação
• Exemplo: classificar um certo personagem como
sendo da série Game of Thrones ou The Walking
Dead.
37. 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 ….
38. 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;
43. Compreender o que o computador diz
Compreender o que os humanos dizem
44. 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
45. 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.
46. 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.
48. 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
50. 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
51. 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.
52. 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.
53. 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)
54. 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/
55. Obrigado!!!
• Se interessou pelo tema? Entra em contato:
adolfoguimaraes@gmail.com ou me segue no
twitter: @guimaraesadolfo ;)