กำลังแปลงทวีตของ Twitter เป็นจุดหรือไม่


14

ฉันได้ทำการวิจัยเกี่ยวกับการใช้ R เพื่อ datamine twitter แต่ฉันไม่พบคำตอบหรือแบบฝึกหัดที่ดีสำหรับคำถามของฉัน

ฉันสนใจดึงทวีตจากทวิตเตอร์ด้วยแฮชแท็กภายในกรอบเวลาที่กำหนดและวางแผนตำแหน่งของทวีตเหล่านั้นบนแผนที่ใน QGIS หรือ ArcMap

ฉันรู้ว่าทวีตสามารถมีตำแหน่งทางภูมิศาสตร์เชื่อมโยงกับพวกเขา แต่ฉันจะดึงข้อมูลนี้ได้อย่างไรในตอนแรก?


สิ่งนี้อาจช่วยได้: mike.teczno.com/notes/streaming-data-from-twitter.htmlฉันยอมรับว่าฉันไม่ได้อ่านทั้งหมด แต่ปรากฏว่าพวกเขาแสดงวิธีรับตำแหน่งทวีตแต่ละแห่ง
ianbroad

1
ดูเหมือนว่าคุณจะสูญเสียแท็กผลิตภัณฑ์ "r", "qgis" และ "arcgis" เนื่องจากคุณเพียงแค่ต้องดึงพิกัดจาก API ของ Twitter เมื่อคุณมีข้อมูลนั้นคุณจะต้องเพิ่มคะแนนให้กับผลิตภัณฑ์ใด ๆ โดยใช้ฟังก์ชั่นมาตรฐานของมัน
Stephen Lead

ข้อผิดพลาด 401 กำลังเกิดขึ้นในการเรียกใช้รหัส
shikhar

คำตอบ:


22

ฉันพบวิธีการที่ใช้ Python ล้วนๆเพื่อรับพิกัดสำหรับทวีตโดยใช้ตัวกรองคำ ดูเหมือนว่าหลายคนจะไม่ได้รวมตำแหน่งไว้ในทวีตของพวกเขา

นี่อาจไม่ใช่สิ่งที่คุณต้องการหลังจากนั้นเพราะนี่เป็นข้อมูลสตรีมมิงแบบสด คุณสามารถทดสอบได้โดยใส่คำกรองที่ไม่ซ้ำกันแล้วทวีตคำนั้นจากบัญชี Twitter ของคุณ คุณจะเห็นทวีตของคุณปรากฏขึ้นใน Python เกือบจะในทันที นี่จะค่อนข้างเจ๋งที่จะใช้สำหรับงานใหญ่

คุณจะต้องติดตั้งTweepy

pip install tweepy

และได้รับการทวิตเตอร์คีย์ API

จากนั้นคุณสามารถใช้สคริปต์นี้เป็นเทมเพลต:

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 เช่นกันมันแสดงให้เห็นว่าคุณสามารถใส่อะไรลงไปในตัวกรองได้บ้าง

นี่คือผลลัพธ์ของการวางตัวกรองเป็น "ฮัลโลวีน" สองสามนาที:

ป้อนคำอธิบายรูปภาพที่นี่

และสำหรับนรกของมันนี่คือทวีต 2000 เรื่องแรกที่พูดถึง Halloween!

http://i.stack.imgur.com/bwdoP.png ป้อนคำอธิบายรูปภาพที่นี่

สุขสันต์วันฮาโลวีน!


นี่จะเป็น 100% สิ่งที่ฉันกำลังมองหาถ้ามันจะให้ฉันหวีผ่านทวีตเก่าเช่นกัน ฉันจะเล่นกับสิ่งนี้และดูว่าฉันจะเกิดอะไรขึ้น ขอบคุณมาก!
Bradley_Jay

@Bradley_Jay ไม่มีปัญหา ตามที่กล่าวไว้ Twitter ไม่ได้ทำให้ทวีตเก่า ๆ พร้อมใช้งาน stackoverflow.com/questions/1662151/…
ianbroad

นอกจากนี้คุณยังสามารถกรองด้วยกล่องขอบแทน 'แทร็ก' เช่นตำแหน่ง = [- 180, -90,180,90]
แมตต์
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.