emotion-chatbot / src /recommender.py
kootaeng2
Initial commit with final, clean project files
e850536
# recommender.py
class Recommender:
"""
감정과 μ‚¬μš©μž 선택에 따라 μ½˜ν…μΈ λ₯Ό μΆ”μ²œν•˜λŠ” ν΄λž˜μŠ€μž…λ‹ˆλ‹€.
"""
def __init__(self):
self.recommendation_db = {
'기쁨': {
'수용': ["μ˜ν™”: μ›”ν„°μ˜ 상상은 ν˜„μ‹€μ΄ λœλ‹€", "μŒμ•…: Pharrell Williams - Happy", "μ±…: μ°½λ¬Έ λ„˜μ–΄ λ„λ§μΉœ 100μ„Έ 노인"],
'μ „ν™˜': ["μ˜ν™”: 쇼생크 νƒˆμΆœ", "μŒμ•…: 이루마 - River Flows In You"]
},
'행볡': {
'수용': ["μ˜ν™”: λΉ„κΈ΄ μ–΄κ²ŒμΈ", "μŒμ•…: μΏ¨ - All for You", "μ±…: κΎΈλ»¬μ”¨μ˜ 행볡여행"],
'μ „ν™˜': ["μ˜ν™”: 포레슀트 κ²€ν”„", "μŒμ•…: 토이 - 쒋은 μ‚¬λžŒ"]
},
'λΆˆμ•ˆ': {
'수용': ["μ˜ν™”: μΈμ‚¬μ΄λ“œ 아웃", "μŒμ•…: μœ„λ‘œκ°€ λ˜λŠ” 연주곑 ν”Œλ ˆμ΄λ¦¬μŠ€νŠΈ", "μ±…: 미움받을 용기"],
'μ „ν™˜': ["μ˜ν™”: κ·Ήν•œμ§μ—…", "μŒμ•…: Maroon 5 - Moves Like Jagger"]
},
'λΆ„λ…Έ': {
'수용': ["μ˜ν™”: μ‘΄ μœ…", "μŒμ•…: λžŒμŠˆνƒ€μΈ - Du Hast"],
'μ „ν™˜': ["μ˜ν™”: 리틀 포레슀트", "μŒμ•…: 노라 쑴슀 - Don't Know Why"]
},
'μŠ¬ν””': {
'수용': ["μ˜ν™”: 이터널 선샀인", "μŒμ•…: λ°•νš¨μ‹  - 눈의 꽃", "μ±…: 1λ¦¬ν„°μ˜ 눈물"],
'μ „ν™˜': ["μ˜ν™”: μ›”-E", "μŒμ•…: 거뢁이 - λΉ„ν–‰κΈ°"]
},
'μƒμ²˜': {
'수용': ["μ˜ν™”: 캐슀트 어웨이", "μŒμ•…: 김광석 - μ„œλ₯Έ μ¦ˆμŒμ—", "μ±…: μ£½κ³  μ‹Άμ§€λ§Œ λ–‘λ³Άμ΄λŠ” λ¨Ήκ³  μ‹Άμ–΄"],
'μ „ν™˜': ["μ˜ν™”: κΈ€λŸ¬λΈŒ (승패λ₯Ό λ– λ‚œ μ•Όκ΅¬μ˜ μˆœμˆ˜ν•œ μ—΄μ •κ³Ό 감동을 λŠκ»΄λ³΄μ„Έμš”)", "μŒμ•…: μ˜₯상달빛 - μˆ˜κ³ ν–ˆμ–΄, μ˜€λŠ˜λ„"]
},
'λ†€λžŒ': {
'수용': ["μ˜ν™”: μ‹μŠ€ μ„ΌμŠ€", "μŒμ•…: λ°•μ§„μ˜ - μ–΄λ¨Έλ‹˜μ΄ λˆ„κ΅¬λ‹ˆ"],
'μ „ν™˜': ["μŒμ•…: Bach - Air on G String", "μ±…: κ³ μš”ν• μˆ˜λ‘ λ°μ•„μ§€λŠ” 것듀"]
},
'쀑립': {
'수용': ["μ˜ν™”: νŒ¨ν„°μŠ¨", "μŒμ•…: μž”μž”ν•œ Lo-fi ν”Œλ ˆμ΄λ¦¬μŠ€νŠΈ", "μ±…: λ³΄ν†΅μ˜ 쑴재"],
'μ „ν™˜': ["μ˜ν™”: μŠ€νŒŒμ΄λ”λ§¨: 뉴 μœ λ‹ˆλ²„μŠ€", "μŒμ•…: Queen - Don't Stop Me Now"]
},
}
def recommend(self, emotion: str, choice: str) -> list:
return self.recommendation_db.get(emotion, {}).get(choice, ["πŸ˜₯ μ•„μ‰½μ§€λ§Œ, 아직 μ€€λΉ„λœ μΆ”μ²œμ΄ μ—†μ–΄μš”."])