Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python으로 트위터 감정 분석하기: API 등록부터 실전 코드까지

Python으로 트위터 감정 분석하기: API 등록부터 실전 코드까지

트위터 감정 분석이란?

이 글에서는 Python을 활용해 트위터(Twitter) 데이터의 감정 분석(Sentiment Analysis)을 수행하는 방법을 단계별로 알아봅니다. 트위터 OAuth API 등록부터 필요한 라이브러리 설치, 그리고 실제 감정 분석 스크립트 작성까지 전 과정을 함께 다룹니다.

API(Application Programming Interface, 응용 프로그래밍 인터페이스)는 외부에서 특정 서버(여기서는 트위터)의 내부 기능에 접근할 수 있도록 열어주는 통로 역할을 합니다.

사전 준비 사항

감정 분석을 시작하기 전에 다음 두 가지가 준비되어 있어야 합니다.

  • 개설된 트위터 계정
  • 계정에 인증(verified)된 전화번호

1단계: 트위터 개발자 앱 생성 및 API 키 발급

먼저 트위터 웹사이트에 접속한 뒤 '새 앱 만들기(Create a new app)' 아이콘을 클릭합니다. 앱 이름 등 필요한 정보를 입력하고 개발자 이용약관에 동의한 후 '생성(Create)' 버튼을 누르면 앱이 생성됩니다.

앱이 생성되면 상단 메뉴에서 Keys(키) 탭으로 이동합니다. 이곳에서 OAuth 인증에 필요한 세부 정보와 각종 토큰 값을 확인할 수 있습니다.

2단계: 필요한 라이브러리 설치

감정 분석에 필요한 의존성 모듈들을 설치합니다.

# 1. tweepy 모듈 설치
>>> pip install tweepy

# 2. textblob 모듈 설치
>>> pip install textblob

TextBlob이란?

TextBlob은 감정 분석에 널리 사용되는 Python 라이브러리로, 텍스트의 감정을 -1부터 1 사이의 값으로 계산해주는 내장 메서드를 제공합니다.

"token.sentiment.polarity"

3단계: 감정 분석 스크립트 작성하기

① API 인증 정보 설정

앞서 발급받은 트위터 앱의 인증 키들을 코드에 입력합니다.

# 트위터 앱 인증 정보
consumer_key = 'xxxxx'
consumer_secret = 'xxxx'
access_key = 'xxxx'
access_secret = 'xxxx'

② 인증 변수 생성

발급받은 키를 바탕으로 인증을 진행합니다. 이를 위해 인증 변수(auth)를 생성합니다.

auth = tweepy.OAuthHandler(consumer_key, consumer_secret)

③ 액세스 토큰 설정

인증 변수를 이용해 액세스 토큰을 설정합니다.

auth.set_access_token(access_token, access_token_secret)

④ API 객체 생성

실제 작업을 수행할 API 변수를 생성합니다.

api = tweepy.API(auth)

⑤ 공개 트윗 검색 및 감정 분석

search 메서드를 사용해 공개 트윗을 가져온 뒤 리스트 형태로 저장하고, 각 트윗에 대해 감정 분석을 수행합니다.

public_tweet = api.search('Tutorialspoint')
for tweet in public_tweet:
    print(tweet.text)
    analysis = TextBlob(tweet.text)
    print(analysis)

분석 결과 해석: 극성(Polarity)과 주관성(Subjectivity)

실행 결과에서는 크게 두 가지 지표를 확인할 수 있습니다.

  • 극성(Polarity): 텍스트가 얼마나 긍정적인지 또는 부정적인지를 측정합니다. -1에 가까울수록 부정적이며, 1에 가까울수록 긍정적입니다.
  • 주관성(Subjectivity): 텍스트가 객관적인 사실보다 주관적인 의견에 얼마나 치우쳐 있는지를 나타냅니다.

결론

이처럼 Python과 TextBlob을 활용해 감정 분석기를 구축하면, 방대한 SNS 데이터 속에서 사람들의 감정과 반응을 효과적으로 추출하고 이해할 수 있습니다. 이러한 기술은 브랜드 평판 모니터링, 여론 분석, 마케팅 전략 수립 등 다양한 분야로 확장하여 활용할 수 있습니다.