Mineração de dados em rede social Twitter

920 views
Skip to first unread message

Adriano Resende

unread,
Apr 25, 2014, 3:35:48 PM4/25/14
to python...@googlegroups.com
Fala pessoal,

Eu tenho um trabalho pra fazer, tudo sobre mineração de dados em redes sociais e eu tenho que mostrar uma demonstração, existem alguma aplicação pronta para isso?

Ou posso fazer um pequeno exemplo simples, uma aplicação que coletam os dados no Twitter e mostra as informações, tipo quantidades de palavras ou frases coletados em uma semana ou um dia e quantidades de tweets que tem relacionamento dessas palavras ou frases.

Por exemplo: Com a frase “Copa do Mundo“ foram coletados 1340 palavras de um dia e teve 560 tweets sobre a Dilma relacionado da Copa do Mundo.

Foda que eu não mexo python há muito tempo, não sei por onde começar pra construir uma aplicação simples assim, existem alguns tutoriais que vocês conhecem?

Não sei se deu pra explicar direito mas é isso.

Então é isso!
Até mais!


Ademir Francisco da Silva

unread,
Apr 28, 2014, 11:09:01 AM4/28/14
to python...@googlegroups.com
É sem saber Python fica difícil, não acha ... :-D

Comece decidindo se vai desenvolver em Desk ou em Web ...

1[],


Ademir

PS .: Uma aplicação ser simples é diretamente proporcional ao conhecimento da linguagem/ferramenta de que a desenvolve.
--
--
------------------------------------
Grupo Python-Brasil
http://www.python.org.br/wiki/AntesDePerguntar
 
<*> Para visitar o site do grupo na web, acesse:
http://groups.google.com/group/python-brasil
 
<*> Para sair deste grupo, envie um e-mail para:
python-brasi...@googlegroups.com

---
Você recebeu essa mensagem porque está inscrito no grupo quot;Python Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para python-brasi...@googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.


-- 
Ademir Francisco da Silva
Skype  ...: Ademir_Francisco_da_Silva

Douglas Camata

unread,
Apr 28, 2014, 11:20:33 AM4/28/14
to python...@googlegroups.com
Uma dica universal: use o nltk para o processamento de linguagem natural.
Douglas Camata
Graduando em Ciência da Computação (UENF)

Skype: douglas_camata
-----------------------------------
Linux User #509211

Lucas Magnum

unread,
Apr 28, 2014, 11:28:25 AM4/28/14
to python...@googlegroups.com
Tem o Livro "Mineração de dados da Web Social" [1], o autor ensina exatamente o que você procura.

Acredito que seja interessante você da uma olhada.

[]'s

Lucas Magnum.

Leonam Silva

unread,
Apr 28, 2014, 11:31:09 AM4/28/14
to python...@googlegroups.com
Se nao tiver problemas com ingles eis o link do livro
Leonam Gama da Silva
Graduando Ciência da Computação
Programador Jr
#
Linux User
000311944
       
   

Bruno Barros

unread,
Apr 28, 2014, 11:32:51 AM4/28/14
to python...@googlegroups.com

Lembrando se o livro for útil pense rm comprá-lo.

Abs

Bruno

Abelardo Vieira Mota

unread,
Apr 29, 2014, 7:08:41 AM4/29/14
to python...@googlegroups.com
Há essa palestra, onde o autor do livro Mining the Social Web apresenta como coletar dados de algumas redes sociais, dentre elas o Twitter.(a parte sobre Twitter começa mais ou menos aos 35 minutos)
O IPython notebook com exemplos do livro sobre o Twitter encontram-se aqui.

Vitória Vasconcelos

unread,
Apr 30, 2014, 10:00:04 AM4/30/14
to python...@googlegroups.com
Os códigos do livro Mining the Social Web estão no GitHub  :)

Este também é um exemplo baseado nos tutoriais do apresentados nele
https://github.com/vitoriavasconcelos/twitter-mining-sketches/blob/master/src/Twitter/search.py

O nltk book

Em sexta-feira, 25 de abril de 2014 16h35min48s UTC-3, Adriano Resende escreveu:

Fant Asma

unread,
Jun 22, 2014, 5:04:50 PM6/22/14
to python...@googlegroups.com

Eu criei um repositório para quem quiser colaborar com o projetinho.

https://github.com/danilovazb/st4wa

Vídeo do uso: https://www.youtube.com/watch?v=sHaehWE6osY

Então, estava em casa sem ter muito o que fazer eu resolvi criar um script em python para enviar notificações de hashtags ou palavras selecionadas por mim no twitter para meu whatsapp em forma de mensagem, algo meio inútil mas serve para você monitorar o que estão falando e implementar isso a outros recursos, ai vai da criatividade e da necessidade de vocês.

Primeiro vamos começar registrando uma conta no whatsapp para usarmos.

Vou usar um tutorial que acho que já postei aqui para vocês, ele fica nesse site: http://hacktracking.blogspot.com.br/2013/02/yowsup-cli-send-whatsapp-messages-from.html

Vamos usar o yowsup para comunicação com o whatsapp.

Primeiro temos que instalar ele caso você não o tenha ou não sabe utilizar.

 

# apt-get install python python-dateutil python-argparse
# wget https://github.com/tgalal/yowsup/archive/master.zip
# unzip master.zip
# cd yowsup-master/src
# cp config.example yowsup-cli.config

 

As linhas acima irão instalar pacotes necessários do python para utilizar o yowsup, baixa-lo do github, desempacotar ele, entrar na pasta e criar um arquivo de configuração, basicamente é isso.

O arquivo de configuração que iremos criar deve conter as seguintes linhas.

cc=34             #Codigo do pais, no caso BRasil 55
phone=34123456789 #Seu telefone com codigo pais, ddd e telefone
id=               #Nunca usei o.O
password=         #Senha gerada pelo whatsapp

Certo, agora vamos registrar um numero no whatsapp para pegar a senha.

Lembrando que o nosso arquivo de configuração já deve estar preenchido, vou postar um aqui como exemplo:

cc=55
phone=5511947458234
id=
password=

Agora vamos dar permissão para leitura do yowsup e executa-lo.

# chmod +x yowsup-cli
# ./yowsup-cli --requestcode sms --config yowsup-cli.config

Certo, agora é um trabalho de paciência, esperar o código chegar por SMS, por isso, tenha esse número em um chip com um celular, você vai precisar esperar o SMS chegar com o código para ativação.

Assim que der ENTER no comando de requisição do código vai aparecer as mensagens abaixo:

status: sent
retry_after: 3605
length: 6
method: sms

Beleza, digamos que já enviei, esperei e chegou o código no meu celular, agora vamos ativar e pegar a senha, digamos que o código que chegou foi 123-456

Agora digitamos:

./yowsup-cli --register 123-456 --config yowsup-cli.config

Se o código estiver correto, vai aparecer uma mensagem parecida com a abaixo:

status: ok
kind: free
pw: S1nBGCvZhb6TBQrbm2sQCfSLkXM=
price: 0,89
price_expiration: 1362803446
currency: EUR
cost: 0.89
expiration: 1391344106
login: 5511947458234
type: new

Agora vamos destacar o que nos interessa, que é o “pw” e o “login”.

Edite novamente o arquivo de configuração e adicione o conteúdo do “pw” em password ficando igual o abaixo.

cc=55
phone=5511947458234
id=
password=S1nBGCvZhb6TBQrbm2sQCfSLkXM=

Salve e feche, faça um teste para ver se está tudo OK, substitua o numero 34111222333 pelo seu numero do whatsapp(de preferencia um que já esteja no seu celular registrado e funcionando), não se esqueça de colocar o código do pais, ddd e o numero.

./yowsup-cli --send 34111222333 "Test message" --wait --config yowsup-cli.config

Pronto, chegou a mensagem?!?! Agora vamos para a próxima parte.

Vamos instalar o necessário para usar o Tweepy para fazer um stream do twitter e mandar o resultado para o Whatsapp.

Como uso debian e sou preguiçoso em compilar as coisas, fiz da maneira mais fácil:

# apt-get install python-tweepy

Pronto, instalado :D

Vamos agora ao código, entre na pasta do yowsup, no meu caso:

# cd /home/danilo/yowsup/src/

Dentro desta pasta que iremos criar o script.

Eu vou postar o código abaixo para monitorar e vou tentar explicar o que cada linha faz, pq eu sou péssimo em python, estou prendendo agora, caso eu escreva merda aqui, por favor, me corrijam para que outros não tenham uma informação zuada.

Antes de mais nada, você vai precisar saber como registrar sua aplicação no twitter, eu vou usar o vídeo no qual eu “aprendi” a usar o tweepy para mostrar a vocês como registrar, olhem abaixo:

Bom, após vocês terem entendido como criar sua aplicação no twitter e até mesmo visto como faz o streaming eu vou postar o código aqui que fiz, é bem simples mas bacaninha.

Tentei explicar bem no código, mas qualquer dúvidas, me mandem mensagem.

Ou podem ver aqui >> https://gist.github.com/danilovazb/68eea966faae1f2f2172

#!/usr/bin/env python

# S.T.4.W.A – StreamTwitter4WhatsApp
# Autor: Danilo
# Dt: 13/06/2014

# Import das libs que vamos utilizar
import tweepy
import json
import re
import os
import base64
######################################################

# Configuração da aplicação no dev.twitter.com
consumer_key = ”
consumer_secret = ”
access_token_key = ”
access_token_secret = ”
######################################################

# Import das libs para usar yowsup
from Yowsup.connectionmanager import YowsupConnectionManager
from Examples.EchoClient import WhatsappEchoClient

# Configuração do yowsup para envio
password = “” #Password dada ao registrar o numero pelo yowsup.
password = base64.b64decode(bytes(password.encode(‘utf-8′))) #Codificacao do Password para envio aos servidores do whatsApp.
username = ” #Numero de telefone para o inicio de secao
keepAlive= False #Conexao persistente com o servidor.
######################################################

# Faz a autenticação com a conta no twitter através dos tokens que gerou
auth1 = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth1.set_access_token(access_token_key, access_token_secret)
######################################################

# Cria a classe para fazer o stream do twitter
class StreamListener(tweepy.StreamListener):

# Pega o conteúdo do twitter, já em texto “puro”
def on_status(self, tweet):
print ‘Ran on_status’
# Pega os erros ocorridos
def on_error(self, status_code):
print ‘Error: ‘ + repr(status_code)
return False
# Pega data como vem do twitter em json
def on_data(self, data):
# Aqui eu usei o json para parsear o conteúdo vindo do twitter.
decoded = json.loads(data)

# Abaixo é um print do que quero ver do arquivo em json que vem.
# ———————————————————–
# re.findall(r”#(\w+)”, s) – essa parte do código que pode ser encontrada
# quase no fim do print me faz a separação de todas as hastags que contem no texto
# que vem do twitter, existe no json as hastags, mas não consegui separar, fiz assim.
# a linha “s = decoded['text'].encode(‘ascii’, ‘ignore’)” pega o conteúdo do texto e joga na variavel s
s = decoded['text'].encode(‘ascii’, ‘ignore’)
print decoded['user']['screen_name'],”|”,decoded['user']['location'],”|”,decoded['user']['verified'],”|”,decoded['user']['followers_count'],”|”,decoded['user']['friends_count'],”|”,decoded['user']['favourites_count'],”|”,decoded['user']['statuses_count'],”|”,decoded['user']['created_at'],”|”,decoded['created_at'].encode(‘ascii’,’ignore’),”|”,decoded['user']['lang'],”|”,re.findall(r”#(\w+)”, s),”|”,decoded['text'].encode(‘ascii’, ‘ignore’)

####################################################################################################

# Aqui é o seguinte, eu tinha feito o envio atravez da “API” do yowsup mesmo
# mas achei que ficou lento, para testar, basta tirar os comentários e ajustar
# as configurações lá em cima

#message = decoded['text'].encode(‘ascii’, ‘ignore’)
#wa = WhatsappEchoClient(“5511966577543″, message, keepAlive)
#wa.login(username, password)
####################################################################################################

# Achei mais simples e rápido usar uma chamada na linha de comando com a mensagem.
os.system(“python yowsup-cli -c chip3.config -s 5511966577543 ‘@%s: %s’” % (decoded['user']['screen_name'],decoded['text'].encode(‘ascii’, ‘ignore’)))

l = StreamListener()
streamer = tweepy.Stream(auth=auth1, listener=l)
# Termos, palavras, hashtags utilizadas para a monitoração, são elas que estou monitorando e jogando no whatsapp.
setTerms = ['#OpMundial2014', '#OpHackingCup', 'anonymous','#naovaitercopa','Word Cup']
streamer.filter(track = setTerms)

FONTE:

http://hacktracking.blogspot.com.br/2013/02/yowsup-cli-send-whatsapp-messages-from.html

http://sentdex.com/sentiment-analysisbig-data-and-python-tutorials-algorithmic-trading/how-to-use-the-twitter-api-1-1-to-stream-tweets-in-python/

Reply all
Reply to author
Forward
0 new messages