2024년 10월 23일 수요일
Home »
Streamlit을 이용한 실시간 트렌드 분석 도구만들기
» Streamlit을 이용한 실시간 트렌드 분석 도구만들기
Streamlit을 이용한 실시간 트렌드 분석 도구만들기
By 가나톡ganaTOK10월 23, 2024
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의 간단한 인터페이스 덕분에 데이터 과학자뿐만 아니라 일반 사용자도 쉽게 활용할 수 있는 웹 애플리케이션을 완성할 수 있습니다.