트위터 트윗을 포인트로 변환 하시겠습니까?


14

트위터를 datamine하기 위해 R을 사용하는 것에 대한 연구를 해왔지만 실제로 내 질문에 대한 답변이나 적절한 자습서를 찾지 못했습니다.

특정 기간 내에 특정 해시 태그로 트위터에서 트윗을 가져 와서 해당 트윗의 위치를 ​​QGIS 또는 ArcMap 의지도에 표시하는 데 관심이 있습니다.

트윗에 지리적 위치를 지정할 수 있지만이 정보를 처음에 추출하려면 어떻게해야합니까?


이 정보가 도움이 될 수 있습니다. mike.teczno.com/notes/streaming-data-from-twitter.html 모든 내용을 읽지 않았 음을 인정하지만 각 트윗 위치를 얻는 방법을 보여줍니다.
ianbroad

1
트위터의 API에서 좌표 를 추출하면되기 때문에 제품 태그 "r", "qgis"및 "arcgis"를 잃을 수있는 것 같습니다 . 정보가 확보되면 표준 기능을 사용하여 제품에 포인트를 추가 할 수 있습니다.
Stephen Lead

코드를 실행하는 중 401 오류가 발생했습니다.
shikhar

답변:


22

단어 필터를 사용하여 트윗에 대한 좌표를 얻기 위해 순수하게 Python을 사용하는 방법을 찾았습니다. 많은 사람들이 트윗과 함께 위치를 포함하는 것 같지 않습니다.

이것은 라이브 스트리밍 데이터이기 때문에 당신이 쫓아 온 것이 아닐 수도 있습니다. 고유 한 필터 단어를 넣은 다음 Twitter 계정에서 해당 단어를 트윗하여 테스트 할 수 있습니다. 당신은 짹짹이 파이썬에서 거의 즉시 나타나는 것을 볼 수 있습니다. 이것은 거대한 이벤트에 사용하기에 매우 시원합니다.

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"])

트위터에서도이 문서 를 확인하십시오 . 필터에 넣을 수있는 것을 보여줍니다.

다음은 몇 분 동안 필터를 "Halloween"으로 설정 한 결과입니다.

여기에 이미지 설명을 입력하십시오

그리고 지옥을 위해 여기에 할로윈을 언급 한 최초의 2000 트윗이 있습니다!

http://i.stack.imgur.com/bwdoP.png 여기에 이미지 설명을 입력하십시오

해피 할로윈!


어떻게 든 오래된 트윗을 통해 빗질 할 수 있다면 이것은 내가 찾던 100 % 일 것입니다. 나는 이것을 가지고 놀면서 내가 할 수있는 것을 볼 것입니다. 대단히 감사합니다!
Bradley_Jay

@Bradley_Jay 문제 없습니다. 다음에 따르면 트위터는 이전 트윗을 사용할 수있는 것은 아닙니다. stackoverflow.com/questions/1662151/…
ianbroad

'track'대신 경계 상자로 필터링 할 수도 있습니다. 예 : location = [-180, -90,180,90]
Matt
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.