Spaces:
Sleeping
Sleeping
File size: 8,041 Bytes
a0f7bb0 3da1cdb a0f7bb0 3da1cdb a0f7bb0 3da1cdb a0f7bb0 3da1cdb a0f7bb0 3da1cdb a0f7bb0 3da1cdb a0f7bb0 3da1cdb a0f7bb0 3da1cdb a0f7bb0 3da1cdb a0f7bb0 3da1cdb a0f7bb0 3da1cdb a0f7bb0 3da1cdb a0f7bb0 3da1cdb a0f7bb0 3da1cdb a0f7bb0 3da1cdb a0f7bb0 3da1cdb a0f7bb0 3da1cdb a0f7bb0 3da1cdb a0f7bb0 3da1cdb a0f7bb0 3da1cdb a0f7bb0 3da1cdb a0f7bb0 3da1cdb a0f7bb0 3da1cdb a0f7bb0 3da1cdb a0f7bb0 3da1cdb 654a143 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 |
import gradio as gr
import re
import datetime
import calendar
import requests
import json
from datetime import datetime
# ================== 컨셉 분석 모듈 ==================
class ConceptAnalyzer:
def __init__(self):
self.monthly_data = {
"1월": {
"special_days": ["미니멀 챌린지", "새해 리셋", "건강한 습관 만들기", "갓생 챌린지", "21일 습관 만들기"],
"trends": ["미니멀", "자기계발", "플래너", "정리정돈", "갓생살기", "건강한 루틴", "새해 결심", "미라클 모닝", "홈트", "독서"],
"colors": ["#FF6B6B", "#4ECDC4", "#45B7D1"],
"mood": "희망적이고 새로운 시작",
"female_appeal": ["미니멀", "자기계발", "셀프케어", "건강한 습관", "갓생"]
},
"2월": {
"special_days": ["갈렌타인데이", "셀프러브", "사랑의 달", "자기사랑 챌린지", "따뜻한 마음 나누기"],
"trends": ["셀프러브", "갈렌타인", "로맨스", "따뜻한 감성", "자기사랑", "친구사랑", "감성 카페", "겨울 데이트", "따뜻한 차", "아늑한 집콕"],
"colors": ["#FF69B4", "#FFB6C1", "#DC143C"],
"mood": "로맨틱하고 감성적",
"female_appeal": ["셀프러브", "우정", "로맨스", "자기사랑", "갈렌타인"]
},
"3월": {
"special_days": ["여성의 날", "봄의 시작", "새학기", "벚꽃 예보", "봄맞이 준비"],
"trends": ["봄맞이", "벚꽃 시즌", "봄 패션", "새출발", "봄 정리", "꽃구경", "봄 여행", "라이프스타일 변화", "새 시작", "봄 데이트"],
"colors": ["#FFB6C1", "#98FB98", "#87CEEB"],
"mood": "설렘가득하고 활기찬",
"female_appeal": ["봄 패션", "꽃구경", "새출발", "라이프스타일", "봄맞이"]
},
"4월": {
"special_days": ["벚꽃 시즌", "봄나들이", "피크닉", "야외 활동", "봄 여행"],
"trends": ["벚꽃축제", "봄피크닉", "아웃도어", "꽃놀이", "야외 운동", "캠핑", "등산", "자전거", "봄 축제", "꽃구경"],
"colors": ["#98FB98", "#F0E68C", "#DDA0DD"],
"mood": "생기발랄하고 즐거운",
"female_appeal": ["벚꽃놀이", "피크닉", "봄여행", "야외활동", "꽃구경"]
},
"5월": {
"special_days": ["로즈데이", "감사의 달", "어버이날", "가정의 달", "스승의 날"],
"trends": ["감사", "나들이", "로즈데이", "봄여행", "가족사랑", "효도", "감사표현", "선물", "힐링", "여행"],
"colors": ["#32CD32", "#FFB6C1", "#87CEEB"],
"mood": "따뜻하고 감사한",
"female_appeal": ["로즈데이", "감사표현", "힐링", "가족사랑", "선물"]
},
"6월": {
"special_days": ["키스데이", "여름 준비", "쿨링", "결혼 시즌", "초여름"],
"trends": ["여름준비", "쿨링", "바캉스준비", "여름패션", "다이어트", "여름 화장품", "시원한 음료", "여름 레시피", "휴가 계획", "웨딩"],
"colors": ["#00CED1", "#FFD700", "#FF6347"],
"mood": "시원하고 활동적인",
"female_appeal": ["여름준비", "쿨링케어", "바캉스", "다이어트", "여름패션"]
},
"7월": {
"special_days": ["실버데이", "여름휴가", "바캉스", "휴가철", "여름 축제"],
"trends": ["여름휴가", "바캉스", "휴가패션", "여행", "해변", "수영장", "페스티벌", "여름 액티비티", "서핑", "다이빙"],
"colors": ["#00BFFF", "#FFD700", "#FF6347"],
"mood": "역동적이고 자유로운",
"female_appeal": ["바캉스", "여행", "휴가패션", "여름축제", "해변"]
},
"8월": {
"special_days": ["여름 마무리", "휴가", "여름 추억", "페스티벌", "야외 파티"],
"trends": ["여름휴가", "바다여행", "축제", "여름추억", "페스티벌", "야외 파티", "캠핑", "글램핑", "워터파크", "여름 간식"],
"colors": ["#00BFFF", "#FF6347", "#FFD700"],
"mood": "열정적이고 추억가득한",
"female_appeal": ["여름추억", "힐링", "여행", "페스티벌", "야외활동"]
},
"9월": {
"special_days": ["포토데이", "뮤직데이", "가을시작", "독서의 계절", "문화생활"],
"trends": ["가을패션", "독서", "문화생활", "감성", "카페", "전시회", "공연", "예술", "취미", "자기계발"],
"colors": ["#FF8C00", "#DC143C", "#B8860B"],
"mood": "감성적이고 성숙한",
"female_appeal": ["가을패션", "카페", "독서", "문화생활", "취미"]
},
"10월": {
"special_days": ["와인데이", "커피데이", "독서의 달", "할로윈", "가을 여행"],
"trends": ["가을단풍", "독서", "카페문화", "와인", "할로윈", "단풍구경", "등산", "가을 여행", "코스모스", "감성 사진"],
"colors": ["#FF8C00", "#DC143C", "#B8860B"],
"mood": "감성적이고 여유로운",
"female_appeal": ["단풍구경", "카페", "와인", "가을여행", "할로윈"]
},
"11월": {
"special_days": ["무비데이", "오렌지데이", "연말준비", "빼빼로데이", "추수감사"],
"trends": ["빼빼로데이", "연말준비", "겨울패션", "따뜻함", "영화", "독서", "겨울 준비", "연말 모임", "따뜻한 차", "홈파티"],
"colors": ["#8B4513", "#A0522D", "#CD853F"],
"mood": "포근하고 준비하는",
"female_appeal": ["빼빼로데이", "겨울패션", "연말모임", "영화감상", "홈파티"]
},
"12월": {
"special_days": ["허그데이", "연말파티", "송년", "크리스마스", "연말 결산"],
"trends": ["크리스마스", "연말파티", "선물", "송년회", "연말 결산", "한 해 마무리", "감사", "새해 계획", "겨울 데이트", "홈파티"],
"colors": ["#DC143C", "#228B22", "#FFD700"],
"mood": "축제같고 따뜻한",
"female_appeal": ["크리스마스", "연말모임", "선물", "한해마무리", "감사"]
}
}
def extract_month_from_period(self, period_text):
if not period_text or period_text.strip() == "":
return None
date_patterns = [
r'(\d{4})\.(\d{1,2})\.(\d{1,2})',
r'(\d{1,2})\.(\d{1,2})',
r'(\d{1,2})월',
]
for pattern in date_patterns:
matches = re.findall(pattern, period_text)
if matches:
if len(matches[0]) == 3:
month = int(matches[0][1])
elif len(matches[0]) == 2:
month = int(matches[0][0])
else:
month = int(matches[0])
if 1 <= month <= 12:
return f"{month}월"
return None
def analyze_concepts(self, month):
data = self.monthly_data.get(month, {})
concepts = []
# 10개의 다양한 컨셉 생성
special_days = data.get("special_days", [])
trends = data.get("trends", [])
female_appeal = data.get("female_appeal", [])
for i in range(min(10, len |