Análise de Redes Sociais com Python

2.388 visualizações

Publicada em

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.

Publicada em: Software

Análise de Redes Sociais com Python

  1. 1. Análise de Redes Sociais com Python Women Who Code
  2. 2. Women Who Code
  3. 3. @AnaPaulaGomess
  4. 4. Análise de Redes Sociais com Python Women Who Code
  5. 5. Análise de Redes Sociais com Python Women Who Code
  6. 6. Análise de Redes Sociais com Python Women Who Code
  7. 7. um slide sério • Dados • Coleta, formatos e estratégias • Extração de conhecimento • Técnicas
  8. 8. Dados
  9. 9. redes sociais que tem APIs
  10. 10. algumas fontes de dados
  11. 11. Estratégias
  12. 12. estratégias Apps Streaming
  13. 13. estratégias Crawler
  14. 14. streaming Tweets públicos Limite de requisições 1% dos tweets disponíveis
  15. 15. streaming from TwitterAPI import TwitterAPI!
  16. 16. streaming Aplicação no Twitter Dev 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!
  17. 17. streaming
  18. 18. streaming Aplicação no Twitter Dev 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"]! Parâmetros }! ! stream = twitter_api.request('statuses/filter', filters)! ! for item in stream.get_iterator():! ! print item! Resposta
  19. 19. streaming - another way import urllib2 as urllib!
  20. 20. 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!
  21. 21. formatos KML Texto CSV JSON RSS XML RDF
  22. 22. JSON
  23. 23. import simplejson as json!
  24. 24. voltando ao streaming Aplicação no Twitter Dev 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"]! Parâmetros }! ! stream = twitter_api.request('statuses/filter', filters)! ! for item in stream.get_iterator():! ! print item! Resposta
  25. 25. voltando ao streaming
  26. 26. streaming - mais um import requests
  27. 27. streaming - mais um import 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')
  28. 28. Agora eu tenho os dados que preciso. #ComoLidar ?
  29. 29. Mineração de Dados
  30. 30. mineração de dados numpy matplotlib NLTK IPython scipy networkX pandas
  31. 31. matplotlibnumpypandas
  32. 32. networkX
  33. 33. networkX grafos Maria João vértices: entidades arestas: relacionamento amigos
  34. 34. networkX grafos aresta vértice vértice
  35. 35. networkX import networkx as nx!
  36. 36. networkX import networkx as nx! ! G = nx.Graph()! ! G.add_node("Maria")! G.add_node("Joao")! ! G.add_edge("Maria","Joao")!
  37. 37. networkX nx.write_gml(G, 'minha_rede.gml')!
  38. 38. visualização
  39. 39. visualização
  40. 40. minha pesquisa
  41. 41. Você é o seu check-in: entendendo o comportamento de turistas e residentes usando dados do Foursquare
  42. 42. dados Abril de 2012 Twitter / Foursquare Rio de Janeiro Tóquio Londres Nova Iorque
  43. 43. modelagem local[horário] local[horário] vértices: locais arestas: movimentação deslocamento
  44. 44. modelagem Maracanã[18] Lapa[23] vértices: locais arestas: movimentação
  45. 45. grafo
  46. 46. uns gráficos pra deixar um ar científico um oferecimento de pandas e matplotlib
  47. 47. descobertas Padrão cultural varia entre turistas e residentes Correlação entre as categorias Os mesmos locais apresentam comportamentos diferentes Pontos estratégicos
  48. 48. e isso serve pra quê mesmo? sistemas de recomendação planejamento urbano análise de mercado
  49. 49. ajuda!
  50. 50. livros de referência
  51. 51. grupos de apoio
  52. 52. Obrigada! :) apgomes88@gmail.com
  53. 53. 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
  54. 54. 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 :)

×