Twitter tweetleri puanlara mı dönüştürüyorsunuz?


14

Datamine twitter için R kullanarak biraz araştırma yapıyordum, ancak sorum için gerçekten bir cevap veya iyi bir öğretici bulamadım.

Belirli bir zaman aralığı içinde belirli bir hashtag ile twitter üzerinden tweet çekmek ve bu tweetler QGIS veya ArcMap bir harita üzerinde yerini çizmek ilgileniyorum.

Tweetler için coğrafi konumların bağlı olabileceğini biliyorum, ancak bu bilgiyi ilk etapta nasıl ayıklayabilirim?


Bu yardımcı olabilir: mike.teczno.com/notes/streaming-data-from-twitter.html Her şeyi okumadığımı itiraf ediyorum, ancak her tweet'in nasıl alınacağını gösteriyorlar.
ianbroad

1
Twitter'ın API'sından koordinatları çıkarmanız gerektiğinden "r", "qgis" ve "arcgis" ürün etiketlerini kaybedebileceğiniz anlaşılıyor . Bu bilgileri
Stephen Lead

401 kodu çalıştırırken hata geliyor.
shikhar

Yanıtlar:


22

Bir kelime filtresi kullanarak tweetler için koordinatları almak için tamamen Python kullanarak bir yol buldum. Pek çok insan tweet'leriyle yer içeriyor gibi görünmüyor.

Bu sizin de peşinde olduğunuz şey olmayabilir, çünkü bu canlı akış verisidir. Benzersiz bir filtre kelimesi koyarak ve o kelimeyi Twitter hesabınızdan tweetleyerek test edebilirsiniz. Tweet'inizin neredeyse anında Python'da göründüğünü göreceksiniz. Bu büyük bir olay için kullanmak oldukça güzel olurdu.

Tweepy yüklemeniz gerekecek .

pip install tweepy

Ve bir Twitter API Anahtarı edinin .

Ardından bu komut dosyasını şablon olarak kullanabilirsiniz:

import json
from tweepy import Stream
from tweepy import OAuthHandler
from tweepy.streaming import StreamListener

#Enter Twitter API Key information
consumer_key = ''
consumer_secret = ''
access_token = ''
access_secret = ''

file = open("C:\\Output.csv", "w")
file.write("X,Y\n")

data_list = []
count = 0

class listener(StreamListener):

    def on_data(self, data):
        global count

        #How many tweets you want to find, could change to time based
        if count <= 2000:
            json_data = json.loads(data)

            coords = json_data["coordinates"]
            if coords is not None:
               print coords["coordinates"]
               lon = coords["coordinates"][0]
               lat = coords["coordinates"][1]

               data_list.append(json_data)

               file.write(str(lon) + ",")
               file.write(str(lat) + "\n")

               count += 1
            return True
        else:
            file.close()
            return False

    def on_error(self, status):
        print status

auth = OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_secret)
twitterStream = Stream(auth, listener())
#What you want to search for here
twitterStream.filter(track=["Halloween"])

Twitter'dan da bu dokümanlara göz atın , filtreye neler koyabileceğinizi gösterir.

Filtreyi birkaç dakika boyunca "Cadılar Bayramı" olarak koymanın sonucu:

resim açıklamasını buraya girin

Ve cehennem için, işte Cadılar Bayramı'ndan bahseden ilk 2000 tweet!

http://i.stack.imgur.com/bwdoP.png resim açıklamasını buraya girin

Mutlu Cadılar Bayramı!


Eski tweet'leri bir şekilde taramama izin verirse, aradığım şey% 100 olurdu. Bununla oynayacağım ve neler yapabileceğimi göreceğim. Çok teşekkür ederim!
Bradley_Jay

@Bradley_Jay Sorun değil. Aşağıdakilere göre, Twitter gerçekten eski tweet'leri sunmuyor. stackoverflow.com/questions/1662151/…
ianbroad

Ayrıca 'track' yerine sınırlayıcı bir kutu ile de filtreleyebilirsiniz, ör. Locations = [- 180, -90,180,90]
Matt 23
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.