[python] Bokeh를 사용하여 소셜 미디어 인기 키워드 시각화하기

Bokeh는 파이썬을 사용한 데이터 시각화 라이브러리로, 소셜 미디어에서 가장 인기 있는 키워드를 시각화하는 데에 유용하게 활용할 수 있습니다. 이번 블로그 포스트에서는 Bokeh를 사용하여 소셜 미디어의 인기 키워드를 시각화해보겠습니다.

필요한 라이브러리 설치하기

먼저 Bokeh를 설치하기 위해 아래의 명령어를 사용합니다:

pip install bokeh

데이터 수집하기

인기 키워드를 시각화하기 위해서는 먼저 해당 데이터를 수집해야 합니다. 여기에서는 Twitter API를 사용하여 트위터에서 키워드를 검색한 뒤, 해당 키워드의 인기도를 측정한 데이터를 사용하겠습니다.

Twitter API를 사용하기 위해서는 트위터 개발자 계정을 생성하고 API 키를 발급받아야 합니다. API 키를 얻은 뒤, 아래의 코드를 사용하여 데이터를 수집합니다:

import tweepy

# Twitter API 인증 정보 설정
consumer_key = 'YOUR_CONSUMER_KEY'
consumer_secret = 'YOUR_CONSUMER_SECRET'
access_token = 'YOUR_ACCESS_TOKEN'
access_token_secret = 'YOUR_ACCESS_TOKEN_SECRET'

# Tweepy 인증
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)

# API 인스턴스 생성
api = tweepy.API(auth)

# 키워드 검색
keyword = '인기 키워드'
tweets = api.search(q=keyword, count=100)

위의 코드에서 ‘YOUR_CONSUMER_KEY’, ‘YOUR_CONSUMER_SECRET’, ‘YOUR_ACCESS_TOKEN’, ‘YOUR_ACCESS_TOKEN_SECRET’를 본인의 API 키로 대체해야 합니다. 또한 ‘인기 키워드’ 대신 원하는 키워드로 검색하면 됩니다.

데이터 가공 및 시각화

가져온 트위터 데이터를 Bokeh를 사용하여 시각화하는 방법은 다양합니다. 여기에서는 해당 키워드가 얼마나 자주 등장하는지를 막대 그래프로 나타내는 예시를 보여드리겠습니다.

먼저, Bokeh의 필요한 모듈을 import합니다:

from bokeh.io import output_file, show
from bokeh.plotting import figure
from bokeh.models import HoverTool

그리고 데이터를 가공하여 필요한 형태로 변환합니다. 여기에서는 각 키워드의 등장 빈도를 계산하고, 이를 리스트로 저장합니다:

from collections import Counter

# 데이터 가공
keywords = [tweet.text.lower() for tweet in tweets] # 트위터 텍스트 추출 및 소문자 변환
keyword_counts = Counter(keywords) # 각 키워드의 등장 빈도 계산
top_keywords = keyword_counts.most_common(10) # 상위 10개 키워드 추출

이제 준비된 데이터를 기반으로 그래프를 생성합니다:

# 그래프 생성
graph_data = {'keywords': [k for k, _ in top_keywords], 'counts': [c for _, c in top_keywords]}

p = figure(x_range=graph_data['keywords'], plot_height=400, plot_width=800, title='인기 키워드',
           toolbar_location=None, tools='')
p.vbar(x='keywords', top='counts', width=0.9, source=graph_data)

p.xgrid.grid_line_color = None
p.y_range.start = 0

# 호버 툴 설정
hover = HoverTool(tooltips=[('키워드', '@keywords'), ('횟수', '@counts')])
p.add_tools(hover)

# 그래프 출력
output_file('keyword_visualization.html')
show(p)

위의 코드에서는 x_range 매개변수를 통해 x축의 범위를 지정하고, vbar 메소드를 사용하여 막대 그래프를 생성합니다. 그리고 그래프에 호버 툴을 추가하여 각 막대에 대한 정보를 표시합니다. 마지막으로 output_file 메소드를 사용하여 그래프를 HTML 파일로 출력하고, show 메소드를 사용하여 그래프를 표시합니다.

결론

위의 예시 코드를 참고하여 Bokeh를 사용하여 소셜 미디어의 인기 키워드를 시각화할 수 있습니다. Bokeh는 다양한 시각화 기능을 제공하므로, 원하는 형태의 그래프를 만들 수 있습니다. 또한, 이미지 뿐만 아니라 웹 페이지에 그래프를 출력할 수 있는 기능도 있습니다. Bokeh의 공식 문서를 참고하여 더 많은 정보를 얻을 수도 있습니다.