대중의 지혜, 트위터 API v2 사용

9973 단어 postmanshowdevpython
Wisdom of the Crowds는 한 무리의 의견이나 추측을 평균적으로 하면 그들의 편견과 소음을 없애고 측정된 의견이나 정확한 답을 제시할 수 있다는 개념이다.이 개념과 새로운 트위터 API를 사용하면 우리가 약간의 경기를 이길 수 있습니까?

생각


이것은 매우 재미있는 개념이다. 최근 Thinking, Fast and Slow 에서 다시 한 번 읽은 것은 나로 하여금 간단한 프로젝트로 새로운 트위터 API를 시도하게 했다.작가는 특히 항아리 속의'물건'수량을 추측하는 도전을 지적했다. 모든 사람은 보통 틀렸지만, 이론적으로 평균 이 값들은 당신에게 성공적인 답안을 줄 것이다!
그렇다면 트위터에는 이런 이상한 경쟁이 있다. 새로운 트위터 API를 무기화해 상품을 받을 수 있는지 살펴보자.

트위터 API


트위터 API의 새 버전은 초기에 접근 중이며, 단점 수는 제한되어 있지만, 이미 재미있어 보인다.그것은 제한된 원시 권리보다 더 나쁘지 않습니까?
이 생각을 검증하기 위해서는 개발자 계정이 필요합니다. 할 수 있습니다.일단 비준을 받게 되면, 그들의 새 안내서에는 설정의 몇 가지 절차가 잘 소개되어 있는데, 이 절차들은 최초보다 훨씬 빠르다.나는 이미 계정이 하나 있는데, 얼마 지나지 않아 바로 키를 만드는 항목이 하나 생겼다.더 이상 오래 기다리지 않고 일회성 프로젝트에서 아이디어를 테스트하기 위해서다.
뭔가를 구축하기 전에 경기에 접근할 수 있는 트위터를 보고 추측해야 할 호출 원형을 만들어야 한다.이 문서link off는 우체부를 위해 미리 구축된 집합입니다. 바로 시작합시다!(+1은 API V2를 나타냅니다)

우체부 원형


우리는 이 경기를 우리의 목표로 선택할 것이다. 왜냐하면 그것은 이미 끝났기 때문이다. 우리는 답이 있기 때문이다.


iFixit 종료
@ifixit 종료

경품: 저희가 갤럭시 빈 한 쌍이 더 생겼어요. 저희가 보내드릴게요!네가 해야 할 일은 이 항아리 안에 콩이 얼마나 있는지 추측하는 것이다. 누가 가장 가까운 것을 알아맞히면 이긴다!우리는 내일(8월 12일) 시합에서 우승자를 발표할 것이다*경기는 전 세계적으로 공개된다
20:2020년 8월 11일 오후 14시
이십
102
그리고 읽지 않은 상태에서 달려들면 추문의 ID(URL에서)와 우리가 얻을 수 있는 모든 답장과 전송이 포함되기 때문에 추문을 필터할 수 있습니다.응답을 얻기 전에 불러오는 영패를 추가해야 합니다. 트위터 개발자 포털의 프로젝트 검증 페이지를 통해 생성할 수 있습니다.이것이 우리가 요청을 보내고 이런 것을 얻을 수 있다면;

좋아요. - 지금 대화 ID가 생겼어요. 단점으로 추측할 수 있어요!
대화 ID를 필터링하기 위해 흐름에 규칙을 추가하는 중류에서 시작...아무것도 없다잠깐만, 뭐야?
문서로 돌아가기...읊다, 읊조리다읊다, 읊조리다
그래서 이것은 그의 작업 원리가 아니다.

그래서 흐르는 미디어는 멋있지만,
1) 집배원에게 작용하지 않고,
2) 이것은 개울입니다...이것은 새로운 것이지 역사적인 것이 아니다...
문서에서 한 사건을 실시간으로 감시하기 위해 경기가 시작되면 평균치를 계산할 수 있지만 우리의 생각을 증명하기 위해서는 별 소용이 없다고 분명히 지적했다.하지만 나는 곧 미디어 단말기를 다시 방문할 것이다. - 재미있어 보인다.

최근 검색


정확한 단점은 우리가 필터 조건을 충족시키는 추문을 검색할 수 있다는 것이다. 최장 일주일이다.
왜 일주일이야?좋은 문제 - API가 초기 방문 단계에 있기 때문인 것 같습니다. 역사 추문은 그들의 추문에 있지만 우리는 오늘 사용할 수 없습니다.
주의: 시간 제한으로 인해 위의 경기에서 이 기능을 실행하는 응답을 다시 만들 수 없습니다.내가 처음 이 문장을 초안을 잡았을 때는 이미 일주일이 넘었다.오늘 몇 가지 핫이슈를 선택하면 그것의 유효성을 나타낼 것이다.다행히도 우리는 경기가 끝난 후 처음으로 달리기를 한 데이터가 있다.
일부 파라미터를 사용하여 최근 검색을 실행합니다.
  • query=conversationID:<id> - 필터링할 경쟁 트윗,
  • max_results=100 - 응답당 최대 트윗 수
  • tweet.fields=text - 트위터만 주는 텍스트

  • 우리는 데이터 부분이 있는 응답을 받았습니다. 이 데이터 부분은 대화 ID가 있는 추문을 포함하고 원 부분에 next_token 파라미터가 있습니다.우리는 다음 요청에서 그것을 매개 변수로 사용해서 다음 추문'페이지'를 얻을 수 있습니다.응답에 next_token 파라미터가 하나만 있으면 더 많은 페이지가 해석되어야 한다는 것을 알 수 있습니다!

    그러나 우리는 이렇게 할 수도 없고, 논리에 따라 에서 답을 찾을 수도 없다.그러나 이것은 우리가 요청을 일련의 유행하는 도구와 언어로 바꾸는 것을 확실히 허락한다.따라서 우리는 Python3 (그리고 우리는 자신의 요청을 싫어하지 않는다) 부분을 출력하여 단독 스크립트에 직접 복사할 수 있다.
    import requests
    
    url = "https://api.twitter.com/2/tweets/search/recent?max_results=100&tweet.fields=text&query=conversation_id:<id>"
    
    payload = {}
    headers = {
      'Authorization': '<Bearer Token>'
    }
    
    response = requests.request("GET", url, headers=headers, data = payload)
    
    print(response.text.encode('utf8'))
    

    페이지 나누기 및 해석


    이 예시를 바탕으로 우리는 추측을 하기 위해 페이지를 나누고 추문을 해석하는 논리를 추가해야 한다.귀속조를 통해 페이지를 처리하고 작은 정규 표현식을 통해 숫자를 필터링하여 우리는 이러한 결과를 얻었다.
    url = ENDPOINT + str(conv_id) + POSTFIX
    
        if next_token:
            url = ENDPOINT + str(conv_id) + POSTFIX + TOKEN_PREFIX + next_token
    
        response = requests.request("GET", url, headers=headers, data = payload)
    
        json = response.json()
    
        for tweetObj in json['data']:
            tweet = tweetObj["text"]
            # Regex - maybe not the most pythonic
            guess = re.findall(r'\b\d+\b', tweet)
    
            if guess:
                guesses += guess
    
        if 'next_token' in json['meta']:
            token = json['meta']['next_token']
            build_data(token)
        else:
            token = []
    

    지혜


    이것은 우리에게 206개의 추측 목록을 남겼고, 일부python 내장 프로그램은 이러한 추측에 대해 간단한 처리를 하였으며, jar에서 평균 820개의 bean을 제공하였다.
    정확히 100점이고 정답은 콩 720개.
    이 이론으로 하여금 의심과 잠시 후의 가시화에 이익을 얻게 하였는데, 나는 많은 무리에서 벗어난 추측을 발견하였다.어떤 사람들은 "1"을 입력하거나 값이 너무 커서 진정한 추측을 할 수 없다.아니면 그들은 이 항아리가 매우 크다고 생각한다.
    우리는 SciPy's 가위질 평균치를 사용하여 끝에서 약 10%의 값을 꺼낼 수 있다. 이것은 우리에게 콩 761개의 답을 주었다. - 더욱 가까운 추측!
    이 206개의 추측이 비교적 작은 견본이 있어서 나는 이것이 상당히 인상적이라고 생각한다.불행히도 누군가가 알아맞혔다.그러나 이 이론은 여전히 나의 최초의 추측 460보다 훨씬 가깝다.내가 본 다음 경기에서, 더 큰 견본으로 그것을 시도하면 매우 재미있을 것이다.
    전반적으로 트위터 API를 빠르게 소개하는 것은 매우 재미있어 보일 것이며, 나는 장래에 다시 방문할 것이다.너는 내가 파이썬과 관련된 게시물을 더 많이 읽을 수 있다!
    표지 사진은 Morning BrewUnsplash - 실제로 좋은 기사를 썼어요. - 등록here

    좋은 웹페이지 즐겨찾기