Análise de Redes Sociais com Python

Post on 05-Jun-2015

1.436 views 7 download

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

Análise de Redes Sociais com Python

Women Who Code

Women Who Code

Análise de Redes Sociais com Python

Women Who Code

Análise de Redes Sociais com Python

Women Who Code

Análise de Redes Sociais com Python

Women Who Code

um slide sério

• Dados

• Coleta, formatos e estratégias

• Extração de conhecimento

• Técnicas

Dados

Estratégias

estratégias

AppsStreaming

estratégias

Crawler

streaming

Tweets públicos

Limite de requisições

1% dos tweets disponíveis

streaming

from TwitterAPI import TwitterAPI!

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

streaming

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

streaming - another way

import urllib2 as urllib!

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!

formatos

JSON

RSS

XML

KML

CSVTexto

RDF

JSON

import simplejson as json!

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

voltando ao streaming

streaming - mais um

import requests

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')

Agora eu tenho os dados que preciso. #ComoLidar ?

Mineração de Dados

networkX

networkX

Maria João

vértices: entidades

arestas: relacionamento

amigos

grafos

networkX

vértice vértice

aresta

grafos

networkX

import networkx as nx!

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

networkX

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

visualização

minha pesquisa

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

residentes usando dados do Foursquare

dados

Abril de 2012

Twitter / Foursquare Rio de Janeiro

TóquioLondres

Nova Iorque

modelagem

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

vértices: locais

arestas: movimentação

deslocamento

modelagem

Maracanã[18] Lapa[23]

vértices: locais

arestas: movimentação

grafo

uns gráficos pra deixar um ar científico

um oferecimento de pandas e matplotlib

descobertas

Padrão cultural varia entre turistas e residentes

Correlação entre as categorias

Os mesmos locais apresentam comportamentos diferentes

Pontos estratégicos

e isso serve pra quê mesmo?

sistemas de recomendação

planejamento urbano

análise de mercado

livros de referência

apgomes88@gmail.com

Obrigada! :)

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

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 :)