Twitter 데이터 마이닝: Python을 사용한 빅 데이터 분석 가이드
게시 됨: 2022-03-11빅 데이터 는 어디에나 있습니다. 기간. 오늘날과 같은 시대에 성공적인 비즈니스를 운영하는 과정에서 좋든 싫든 간에 부딪힐 가능성이 높습니다.
시대를 따라잡으려는 사업가이든 다음 프로젝트를 찾고 있는 코딩 천재이든 이 튜토리얼은 빅 데이터가 무엇인지에 대한 간략한 개요를 제공합니다. 자신에게 어떻게 적용되는지, Twitter API와 Python을 통해 빠르게 시작할 수 있는 방법을 배우게 됩니다.
빅 데이터란 무엇입니까?
빅 데이터는 말 그대로 많은 양의 데이터입니다. 단일 데이터 포인트만으로는 많은 통찰력을 얻을 수 없습니다. 그러나 복잡한 수학적 모델 및 강력한 컴퓨팅 성능과 결합된 테라바이트의 데이터는 인간이 생산할 수 없는 통찰력을 생성할 수 있습니다. 빅데이터 애널리틱스가 비즈니스에 제공하는 가치는 무형이며 매일 인간의 능력을 능가합니다.
빅데이터 분석의 첫 번째 단계는 데이터 자체를 수집하는 것입니다. 이를 "데이터 마이닝"이라고 합니다. 데이터는 어디서나 올 수 있습니다. 대부분의 기업은 기가바이트의 사용자, 제품 및 위치 데이터를 처리합니다. 이 자습서에서는 데이터 마이닝 기술을 사용하여 생각하는 것보다 더 유용할 수 있는 Twitter 데이터를 수집하는 방법을 탐색할 것입니다.
예를 들어 Facebook을 운영 중이고 Messenger 데이터를 사용하여 청중에게 더 잘 광고할 수 있는 방법에 대한 통찰력을 제공하려고 한다고 가정해 보겠습니다. 메신저의 월간 활성 사용자는 12억 명입니다. 이 경우 빅데이터는 사용자 간의 대화입니다. 각 사용자의 대화를 개별적으로 읽으면 그들이 무엇을 좋아하는지 파악하고 그에 따라 제품을 추천할 수 있습니다. 자연어 처리 (NLP)로 알려진 기계 학습 기술을 사용하면 전체 프로세스를 자동화하고 기계에 맡기면서 대규모로 이를 수행할 수 있습니다.
이것은 기계 학습 및 빅 데이터 분석이 회사에 가치를 추가할 수 있는 방법에 대한 수많은 예 중 하나일 뿐입니다.
왜 트위터 데이터인가?
트위터는 데이터의 금광입니다. 다른 소셜 플랫폼과 달리 거의 모든 사용자의 트윗은 완전히 공개되고 풀 수 있습니다. 분석을 실행할 많은 양의 데이터를 얻으려는 경우 이는 큰 장점입니다. 트위터 데이터도 꽤 구체적입니다. Twitter의 API를 사용하면 지난 20분 이내에 특정 주제에 대한 모든 트윗을 가져오거나 특정 사용자의 리트윗되지 않은 트윗을 가져오는 것과 같은 복잡한 쿼리를 수행할 수 있습니다.
이것을 간단히 적용하면 일반 대중에게 귀사가 어떻게 받아들여지는지 분석할 수 있습니다. 귀하의 회사(또는 원하는 용어)를 언급하는 마지막 2,000개의 트윗을 수집하고 이에 대한 감정 분석 알고리즘을 실행할 수 있습니다.
공간 데이터라고 하는 특정 위치에 구체적으로 거주하는 사용자를 타겟팅할 수도 있습니다. 이것의 또 다른 응용 프로그램은 귀하의 회사가 가장 많이 언급된 전 세계 지역을 매핑하는 것일 수 있습니다.
보시다시피 Twitter 데이터는 일반 대중의 통찰력과 그들이 주제를 받는 방식에 대한 큰 문이 될 수 있습니다. 이는 개방성과 Twitter API의 관대한 속도 제한과 결합되어 강력한 결과를 생성할 수 있습니다.
도구 개요
이 예제에서는 Python 2.7을 사용할 것입니다. 이상적으로는 이 코드를 작성할 IDE가 있어야 합니다. 저는 PyCharm - Community Edition을 사용할 것입니다.
Twitter API에 연결하기 위해 Tweepy라는 Python 라이브러리를 사용할 것입니다. 이 라이브러리는 잠시 후에 설치할 것입니다.
시작하기
트위터 개발자 계정
Twitter의 API를 사용하려면 Twitter 앱 사이트에서 개발자 계정을 만들어야 합니다.
- https://apps.twitter.com/에서 로그인하거나 Twitter 계정을 만드십시오.
- 새 앱 만들기(오른쪽 상단에 있는 버튼)
- 고유한 이름, 웹사이트 이름(자리 표시자 웹사이트가 없는 경우 자리 표시자 웹사이트 사용) 및 프로젝트 설명으로 앱 생성 페이지를 채우십시오. 이용약관에 동의하고 다음 페이지로 넘어갑니다.
- 프로젝트가 생성되면 "키 및 액세스 토큰" 탭을 클릭합니다. 이제 소비자 암호와 소비자 키를 볼 수 있습니다.
- 한 쌍의 액세스 토큰도 필요합니다. 아래로 스크롤하여 해당 토큰을 요청하십시오. 페이지가 새로 고쳐지고 이제 액세스 토큰과 액세스 토큰 암호가 있어야 합니다.
나중에 이 모든 것이 필요하므로 이 탭을 열어 두십시오.
트위피 설치하기
Tweepy는 Twitter API에 액세스하기 위해 훌륭하게 지원되는 도구입니다. Python 2.6, 2.7, 3.3, 3.4, 3.5 및 3.6을 지원합니다. Tweepy를 설치하는 몇 가지 다른 방법이 있습니다. 가장 쉬운 방법은 pip
를 사용하는 것입니다.
핍 사용
터미널에 pip install tweepy
를 입력하기만 하면 됩니다.
GitHub 사용
Tweepy의 GitHub 리포지토리에서 지침을 따를 수 있습니다. 기본 단계는 다음과 같습니다.
git clone https://github.com/tweepy/tweepy.git cd tweepy python setup.py install
여기에서 모든 설치 문제를 해결할 수도 있습니다.
인증 중
이제 필요한 도구가 준비되었으므로 코딩을 시작할 수 있습니다! 오늘 빌드할 각 애플리케이션의 기준선은 Tweepy를 사용하여 함수를 호출할 수 있는 API 객체를 생성하는 것을 요구합니다. 그러나 API 객체를 생성하려면 먼저 개발자 정보로 자신을 인증해야 합니다.
먼저 Tweepy를 가져와서 자체 인증 정보를 추가해 보겠습니다.
import tweepy consumer_key = "wXXXXXXXXXXXXXXXXXXXXXXX1" consumer_secret = "qXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXh" access_token = "9XXXXXXXX-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXi" access_token_secret = "kXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXT"
이제 API 객체를 생성할 차례입니다.
# Creating the authentication object auth = tweepy.OAuthHandler(consumer_key, consumer_secret) # Setting your access token and secret auth.set_access_token(access_token, access_token_secret) # Creating the API object while passing in auth information api = tweepy.API(auth)
이것은 우리가 구축하는 모든 애플리케이션의 기초가 될 것이므로 삭제하지 않도록 하십시오.
예 1: 타임라인
이 예에서는 Twitter 피드에서 가장 최근 트윗 10개를 가져옵니다. API 객체의 home_timeline()
함수를 사용하여 이를 수행합니다. 그런 다음 결과를 변수에 저장하고 반복하여 결과를 인쇄할 수 있습니다.
# Using the API object to get tweets from your timeline, and storing it in a variable called public_tweets public_tweets = api.home_timeline() # foreach through all tweets pulled for tweet in public_tweets: # printing the text stored inside the tweet object print tweet.text
결과는 트윗 자체에 대한 URL이 뒤에 오는 임의의 트윗 묶음처럼 보일 것입니다.

트윗에 대한 링크를 따라가면 종종 트윗 자체로 이동합니다. 첫 번째 트윗의 링크를 따라가면 다음과 같은 결과를 얻을 수 있습니다.
PyCharm과 같은 IDE가 아닌 터미널을 통해 이것을 실행하는 경우 트윗의 텍스트를 인쇄하려고 할 때 일부 형식 문제가 발생할 수 있습니다.
결과 뒤에 있는 JSON
위의 예에서, 우리는 tweet.text
를 사용하여 각 트윗의 텍스트를 출력했습니다. 각 트윗 개체의 특정 속성을 참조하려면 Twitter API에서 반환된 JSON을 살펴봐야 합니다.
Twitter API에서 받은 결과는 JSON 형식이며 상당한 양의 정보가 첨부되어 있습니다. 단순화를 위해 이 튜토리얼은 주로 각 트윗의 "텍스트" 속성과 트위터(트윗을 만든 사용자)에 대한 정보에 중점을 둡니다. 위 샘플의 경우 여기에서 반환된 전체 JSON 개체를 볼 수 있습니다.
다음은 트윗이 제공해야 하는 몇 가지 속성에 대한 간략한 설명입니다.
트윗이 생성된 날짜를 찾으려면 print tweet.created_at
으로 쿼리합니다.
또한 각 트윗 개체에는 트위터에 대한 정보가 포함되어 있음을 알 수 있습니다.
트위터의 "이름" 및 "위치" 속성을 얻으려면 print tweet.user.screen_name
및 print tweet.user.location
을 실행할 수 있습니다.
이러한 속성은 애플리케이션이 공간 데이터에 의존하는 경우 매우 유용할 수 있습니다.
예 2: 특정 사용자의 트윗
이 예에서는 선택한 사용자의 최신 트윗 20개를 간단히 가져옵니다.
먼저 Tweepy 문서를 검토하여 그러한 기능이 있는지 확인합니다. 약간의 조사를 통해 우리는 user_timeline()
함수가 우리가 찾고 있는 것임을 알게 되었습니다.
user_timeline()
함수에는 사용할 수 있는 몇 가지 유용한 매개변수, 특히 id
(사용자의 ID)와 count
(풀하려는 트윗의 양)가 있음을 알 수 있습니다. Twitter의 속도 제한으로 인해 쿼리당 제한된 수의 트윗만 가져올 수 있습니다.
트위터 계정 @NyTimes에서 최근 트윗 20개를 가져와 보겠습니다.
우리는 우리가 가져오려는 트윗의 양(개수)과 가져오려는 사용자(이름)를 저장하는 변수를 만들 수 있습니다. 그런 다음 이 두 매개변수를 사용하여 user_timeline 함수를 호출할 수 있습니다. 아래는 업데이트된 코드입니다(코드 상단에 인증 및 API 객체 생성을 유지했어야 함).
# Creating the API object while passing in auth information api = tweepy.API(auth) # The Twitter user who we want to get tweets from name = "nytimes" # Number of tweets to pull tweetCount = 20 # Calling the user_timeline function with our parameters results = api.user_timeline(id=name, count=tweetCount) # foreach through all tweets pulled for tweet in results: # printing the text stored inside the tweet object print tweet.text
결과는 다음과 같아야 합니다.
이 데이터 유형의 인기 있는 응용 프로그램은 다음과 같습니다.
- 특정 사용자에 대한 분석 실행 및 그들이 세계와 상호 작용하는 방식
- 트위터 인플루언서 찾기 및 팔로어 트렌드 및 상호 작용 분석
- 사용자 팔로워의 변화 모니터링
예 3: 키워드를 사용하여 트윗 찾기
마지막 예를 하나 보겠습니다. 키워드가 포함된 가장 최근 트윗을 가져옵니다. 이것은 트위터 세계에서 구체적으로 언급된 주제를 모니터링하거나 귀하의 비즈니스가 어떻게 언급되는지 확인하려는 경우 매우 유용할 수 있습니다. Twitter에서 Toptal을 언급하는 방법을 보고 싶다고 가정해 보겠습니다.
Tweepy 문서를 살펴본 후 search()
함수는 우리의 목표를 달성하는 데 가장 좋은 도구인 것 같습니다.
여기서 가장 중요한 매개변수는 q
입니다. 쿼리 매개변수는 우리가 찾고 있는 키워드입니다.
또한 언어 매개변수를 설정하여 원치 않는 언어의 트윗을 받지 않도록 할 수 있습니다. 영어("en") 트윗만 반환합시다.
이제 변경하려는 변경 사항을 반영하도록 코드를 수정할 수 있습니다. 먼저 매개변수(쿼리 및 언어)를 저장할 변수를 만든 다음 API 개체를 통해 함수를 호출합니다. 루프에서 트윗을 만든 사용자의 화면 이름도 인쇄해 보겠습니다.
# Creating the API object while passing in auth information api = tweepy.API(auth) # The search term you want to find query = "Toptal" # Language code (follows ISO 639-1 standards) language = "en" # Calling the user_timeline function with our parameters results = api.search(q=query, lang=language) # foreach through all tweets pulled for tweet in results: # printing the text stored inside the tweet object print tweet.user.screen_name,"Tweeted:",tweet.text
결과는 다음과 같아야 합니다.
다음은 이 정보를 사용할 수 있는 몇 가지 실용적인 방법입니다.
- 귀하의 회사가 전 세계에서 가장 많이 언급되는 위치에 대한 공간 그래프 만들기
- 트윗에 대한 감정 분석을 실행하여 회사에 대한 전반적인 의견이 긍정적인지 부정적인지 확인
- 회사 또는 제품에 대해 트윗하는 가장 인기 있는 사용자의 소셜 그래프 만들기
향후 기사에서 이러한 주제 중 일부를 다룰 수 있습니다.
결론
Twitter의 API는 데이터 마이닝 애플리케이션에 매우 유용하며 여론에 대한 방대한 통찰력을 제공할 수 있습니다. Twitter API 및 빅 데이터 분석에 더 관심이 있는 경우 Twitter API, Tweepy 및 Twitter의 속도 제한 지침에 대해 자세히 읽어보시기 바랍니다.
우리는 액세스 및 풀링의 기본 사항만 다루었습니다. Twitter의 API는 사람의 마음만으로는 파악하기에는 너무 복잡한 사람, 추세 및 소셜 그래프와 관련된 매우 복잡한 빅 데이터 문제에 활용될 수 있습니다.