Streamlit을 이용한 실시간 트렌드 분석 도구만들기
Streamlit을 이용해 구글 트렌드와 같은 실시간 트렌드 분석 도구를 만들 수 있습니다. Python의 **Google Trends API(pytrends)**를 사용해 데이터를 가져오고, Streamlit을 통해 실시간으로 대시보드를 구성해 원하는 시간대에 특정 키워드의 트렌드를 추적할 수 있습니다.
프로젝트 개요
- 사용자가 조사하고자 하는 키워드를 입력합니다.
- 특정 시간대에 Google Trends 데이터를 자동으로 조회합니다.
- 결과를 그래프로 시각화하고, 트렌드가 어떻게 변화하는지 실시간으로 확인합니다.
1. 프로젝트 구조
bash
trend_project/
│
├── app.py # 메인 애플리케이션 파일
├── requirements.txt # 필요한 라이브러리 목록
└── README.md # 프로젝트 설명 파일
2. 코드 예제 (app.py)
python
import streamlit as st
from pytrends.request import TrendReq
import pandas as pd
import matplotlib.pyplot as plt
# Streamlit 앱 제목 설정
st.title("실시간 Google 트렌드 분석")
# pytrends 객체 생성
pytrends = TrendReq(hl='en-US', tz=360)
# 키워드 입력받기
keywords = st.text_input("조사할 키워드를 입력하세요 (쉼표로 구분)", "Python, Data Science")
# 시간대 선택
timeframe = st.selectbox("조사할 시간 범위",
["now 1-H", "now 4-H", "now 7-d", "today 1-m", "today 12-m"])
if keywords:
# 키워드 리스트로 변환
keyword_list = [kw.strip() for kw in keywords.split(",")]
# 트렌드 데이터 요청
pytrends.build_payload(keyword_list, cat=0, timeframe=timeframe, geo='', gprop='')
# 데이터프레임 생성
data = pytrends.interest_over_time()
if not data.empty:
st.subheader("트렌드 데이터")
st.write(data)
# 그래프 시각화
st.subheader("트렌드 변화 그래프")
plt.figure(figsize=(10, 5))
for keyword in keyword_list:
plt.plot(data.index, data[keyword], label=keyword)
plt.legend()
plt.title("Google 트렌드 변화")
plt.xlabel("시간")
plt.ylabel("인기 점수")
st.pyplot(plt.gcf())
else:
st.write("해당 키워드에 대한 데이터가 없습니다.")
3. 실행방법
-
필수 라이브러리 설치:
bashpip install streamlit pytrends matplotlib pandas
-
앱 실행:
bashstreamlit run app.py
4. 주요 기능 설명
- pytrends 라이브러리: Google Trends API에 연결해 데이터를 가져옵니다.
- 실시간 키워드 분석: 선택한 시간 범위에 따라 트렌드 데이터를 확인할 수 있습니다.
- 인터랙티브 그래프: 각 키워드의 트렌드 변화를 그래프로 시각화합니다.
5. 확장 아이디어
- 자동화된 주기적 업데이트: 일정 시간마다 트렌드 데이터를 자동으로 갱신하도록 스케줄링.
- CSV로 데이터 저장: 수집한 트렌드 데이터를 파일로 저장해 향후 분석에 활용.
- 다중 언어 지원: 다양한 지역과 언어의 트렌드 데이터를 비교 분석.
이 프로젝트를 통해 실시간 트렌드 분석 도구를 쉽게 만들 수 있습니다. Streamlit의 간단한 인터페이스 덕분에 데이터 과학자뿐만 아니라 일반 사용자도 쉽게 활용할 수 있는 웹 애플리케이션을 완성할 수 있습니다.
댓글 쓰기