Análise de Redes Sociais com Python

58
Análise de Redes Sociais com Python Women Who Code

description

Milhões de pessoas no mundo usam redes sociais para conectar-se com amigos e compartilhar fotos, localização e outros dados. Esses dados compõem vestígios do que as pessoas fazem e podem fornecer informações valiosas sobre como se comportam. O Python é uma linguagem de programação de sintaxe simples mas muito poderosa. Nesta palestra será apresentada uma visão de como coletar e analisar dados de redes sociais, como Twitter, com Python.

Transcript of Análise de Redes Sociais com Python

Page 1: Análise de Redes Sociais com Python

Análise de Redes Sociais com Python

Women Who Code

Page 2: Análise de Redes Sociais com Python

Women Who Code

Page 4: Análise de Redes Sociais com Python
Page 5: Análise de Redes Sociais com Python

Análise de Redes Sociais com Python

Women Who Code

Page 6: Análise de Redes Sociais com Python

Análise de Redes Sociais com Python

Women Who Code

Page 7: Análise de Redes Sociais com Python

Análise de Redes Sociais com Python

Women Who Code

Page 8: Análise de Redes Sociais com Python

um slide sério

• Dados

• Coleta, formatos e estratégias

• Extração de conhecimento

• Técnicas

Page 9: Análise de Redes Sociais com Python

Dados

Page 10: Análise de Redes Sociais com Python
Page 13: Análise de Redes Sociais com Python

Estratégias

Page 14: Análise de Redes Sociais com Python

estratégias

AppsStreaming

Page 15: Análise de Redes Sociais com Python

estratégias

Crawler

Page 16: Análise de Redes Sociais com Python

streaming

Tweets públicos

Limite de requisições

1% dos tweets disponíveis

Page 17: Análise de Redes Sociais com Python

streaming

from TwitterAPI import TwitterAPI!

Page 18: Análise de Redes Sociais com Python

streaming

from TwitterAPI import TwitterAPI!!twitter_api = TwitterAPI(consumer_key='cPRnaEpnPEO2fqzg5mFr11w', !! consumer_secret='PaHdWBa8yzYoUDT1S5Mm43YilQWPT6zfFT121WnzoVA', !! access_token_key='50638811-j4wYVSgidkLVbJO1qvLAD35vph21kd5bECQcd52Un4l',!! access_token_secret='JhEnszLTFpmDf1B04lseZwDH6s2l3Si45AnbLnZJ5Hl3jhR')!!filters = {! "track": ["just completed","runkeeper"]!}!!stream = twitter_api.request('statuses/filter', filters)!!for item in stream.get_iterator():!! print item!

Aplicação no Twitter Dev

Page 19: Análise de Redes Sociais com Python

streaming

Page 20: Análise de Redes Sociais com Python

streaming

from TwitterAPI import TwitterAPI!!twitter_api = TwitterAPI(consumer_key='cPRnaEpnPEO2fqzg5mFr11w', !! consumer_secret='PaHdWBa8yzYoUDT1S5Mm43YilQWPT6zfFT121WnzoVA', !! access_token_key='50638811-j4wYVSgidkLVbJO1qvLAD35vph21kd5bECQcd52Un4l',!! access_token_secret='JhEnszLTFpmDf1B04lseZwDH6s2l3Si45AnbLnZJ5Hl3jhR')!!filters = {! "track": ["just completed","runkeeper"]!}!!stream = twitter_api.request('statuses/filter', filters)!!for item in stream.get_iterator():!! print item!

Aplicação no Twitter Dev

Parâmetros

Resposta

Page 21: Análise de Redes Sociais com Python

streaming - another way

import urllib2 as urllib!

Page 22: Análise de Redes Sociais com Python

streaming - another way

def twitterreq(url, method, parameters):! req = oauth.Request.from_consumer_and_token(oauth_consumer,! token=oauth_token,! http_method=http_method,! http_url=url, ! parameters=parameters)!! req.sign_request(signature_method_hmac_sha1, oauth_consumer, oauth_token)!! headers = req.to_header()!! if http_method == "POST":! encoded_post_data = req.to_postdata()! else:! encoded_post_data = None! url = req.to_url()!! opener = urllib.OpenerDirector()! opener.add_handler(http_handler)! opener.add_handler(https_handler)!! response = opener.open(url, encoded_post_data)!! return response!

Page 23: Análise de Redes Sociais com Python

formatos

JSON

RSS

XML

KML

CSVTexto

RDF

Page 24: Análise de Redes Sociais com Python

JSON

Page 26: Análise de Redes Sociais com Python

import simplejson as json!

Page 27: Análise de Redes Sociais com Python

voltando ao streaming

from TwitterAPI import TwitterAPI!!twitter_api = TwitterAPI(consumer_key='cPRnaEpnPEO2fqzg5mFr11w', !! consumer_secret='PaHdWBa8yzYoUDT1S5Mm43YilQWPT6zfFT121WnzoVA', !! access_token_key='50638811-j4wYVSgidkLVbJO1qvLAD35vph21kd5bECQcd52Un4l',!! access_token_secret='JhEnszLTFpmDf1B04lseZwDH6s2l3Si45AnbLnZJ5Hl3jhR')!!filters = {! "track": ["just completed","runkeeper"]!}!!stream = twitter_api.request('statuses/filter', filters)!!for item in stream.get_iterator():!! print item!

Aplicação no Twitter Dev

Parâmetros

Resposta

Page 28: Análise de Redes Sociais com Python

voltando ao streaming

Page 29: Análise de Redes Sociais com Python

streaming - mais um

import requests

Page 30: Análise de Redes Sociais com Python

streaming - mais umimport requests!import time!import hashlib!import simplejson as json!!PUBLIC_KEY = '2124cb975af929a3d80d511bc07daxxc69'!PRIVATE_KEY = '19d2d72ced9cdfcadcf1347626acfbaqwe120fc7bad'!!ts = int(time.time())!!m = hashlib.md5(str(ts)+PRIVATE_KEY+PUBLIC_KEY).hexdigest()!!arquivo = open('personagens.json', 'a')!!for n in range(0,1500,100):!! params = {'apikey': PUBLIC_KEY,'ts': ts, 'hash': m, 'limit': 100, 'offset': n}!! r = requests.get('http://gateway.marvel.com/v1/public/characters', params=params)!! for j in json.loads(r.text)['data']['results']:!! ! temp = json.dumps(j)!! ! arquivo.write(temp + '\n')

Page 31: Análise de Redes Sociais com Python

Agora eu tenho os dados que preciso. #ComoLidar ?

Page 32: Análise de Redes Sociais com Python

Mineração de Dados

Page 35: Análise de Redes Sociais com Python

networkX

Page 36: Análise de Redes Sociais com Python

networkX

Maria João

vértices: entidades

arestas: relacionamento

amigos

grafos

Page 37: Análise de Redes Sociais com Python

networkX

vértice vértice

aresta

grafos

Page 38: Análise de Redes Sociais com Python

networkX

import networkx as nx!

Page 39: Análise de Redes Sociais com Python

networkXimport networkx as nx!!G = nx.Graph()!!G.add_node("Maria")!G.add_node("Joao")!!G.add_edge("Maria","Joao")!

Page 40: Análise de Redes Sociais com Python

networkX

nx.write_gml(G, 'minha_rede.gml')!

Page 41: Análise de Redes Sociais com Python

visualização

Page 43: Análise de Redes Sociais com Python

minha pesquisa

Page 44: Análise de Redes Sociais com Python

Você é o seu check-in: entendendo o comportamento de turistas e

residentes usando dados do Foursquare

Page 45: Análise de Redes Sociais com Python

dados

Abril de 2012

Twitter / Foursquare Rio de Janeiro

TóquioLondres

Nova Iorque

Page 46: Análise de Redes Sociais com Python

modelagem

local[horário] local[horário]

vértices: locais

arestas: movimentação

deslocamento

Page 47: Análise de Redes Sociais com Python

modelagem

Maracanã[18] Lapa[23]

vértices: locais

arestas: movimentação

Page 48: Análise de Redes Sociais com Python

grafo

Page 49: Análise de Redes Sociais com Python

uns gráficos pra deixar um ar científico

um oferecimento de pandas e matplotlib

Page 50: Análise de Redes Sociais com Python

descobertas

Padrão cultural varia entre turistas e residentes

Correlação entre as categorias

Os mesmos locais apresentam comportamentos diferentes

Pontos estratégicos

Page 51: Análise de Redes Sociais com Python

e isso serve pra quê mesmo?

sistemas de recomendação

planejamento urbano

análise de mercado

Page 52: Análise de Redes Sociais com Python
Page 54: Análise de Redes Sociais com Python

livros de referência

Page 57: Análise de Redes Sociais com Python

todo mundo aqui ajudou:

https://www.womenwhocode.com/

http://www.corbisimages.com/stock-photo/rights-managed/42-58516442/the-excavation-of-the-terracotta-sculptures-in?popup=1

https://www.python.org/static/community_logos/python-logo-master-v3-TM.png

http://www.bandeirantes820.com.br/site/wp-content/uploads/2014/05/redes-sociais-inundaweb.jpg

http://images.hngn.com/data/images/full/26065/petition-asks-u-s-government-to-classify-feminism-as-terrorist-group.jpg

http://www.corbisimages.com/stock-photo/rights-managed/42-60482740/dice-box-and-cubes?popup=1

http://www.tecnomania.com.br/ :)

http://www.corbisimages.com/stock-photo/rights-managed/42-60482740/dice-box-and-cubes?popup=1

Page 58: Análise de Redes Sociais com Python

todo mundo aqui ajudou:

https://github.com/geduldig/TwitterAPI

http://www.corbis.com

http://www.cytoscape.org/

http://gephi.github.io/

https://networkx.github.io/examples.html

!

E as demais que esqueci de referenciar :)