파이썬 AI 학교 챌린지 #52: 마음을 읽어요! ‘나만의 AI 감정 DJ’ 만들기

안녕하세요! 가족과 함께하는 스마트 라이프입니다. 어제 파이봇에게 새로운 지식을 가르쳐주느라 바쁘셨죠? 오늘은 AI가 여러분의 기분을 살피고, 마음을 달래줄 음악을 골라주는 ‘감정 DJ’로 변신시켜 볼 거예요. 파이썬이 어떻게 사람의 감정을 이해하는지 그 비밀을 파헤쳐 봐요!

파이썬 AI 학교 챌린지 #52: 마음을 읽어요! ‘나만의 AI 감정 DJ’ 만들기

1. 단어 속에 숨은 감정 찾기

사람은 “슬퍼”, “우울해” 같은 단어만 들어도 상대방의 기분을 알 수 있죠? AI도 마찬가지예요. 사용자가 입력한 긴 문장 속에서 미리 정해둔 ‘감정 키워드’를 찾아내면 된답니다. 예를 들어 “오늘 시험을 망쳐서 너무 슬퍼”라는 문장에서 ‘슬퍼’라는 단어를 찾아내면 AI는 “아, 이 친구는 지금 위로가 필요하구나!”라고 판단하게 돼요.

2. 감정 DJ의 필수 주문

마음을 읽는 DJ가 되기 위해 필요한 주문들을 배워봐요.

  • mood_data = {}: 감정과 그에 어울리는 추천곡 리스트를 담은 사전이에요.
  • any(word in sentence): 문장 속에 우리가 찾는 감정 단어가 하나라도 있는지 확인해요.
  • random.choice(): 추천곡 리스트 중 하나를 운명처럼 골라 들려줘요.

3. 실전 연습: 내 마음을 아는 AI DJ 코딩하기

import random
import time

# 1. 감정별 추천곡 지식 베이스
emotion_playlist = {
    "기쁨": ["아이유 - 내 손을 잡아", "방탄소년단 - Dynamite", "볼빨간사춘기 - 여행"],
    "슬픔": ["박효신 - 눈의 꽃", "이무진 - 비와 당신", "정승환 - 너였다면"],
    "화남": ["이매진 드래곤스 - Believer", "싸이 - 예술이야", "노라조 - 사이다"],
    "평온": ["악뮤 - 어떻게 이별까지 사랑하겠어", "폴킴 - 모든 날 모든 순간", "잔나비 - 주저하는 연인들을 위해"]
}

print("🎧 안녕하세요! 당신의 마음을 읽는 'AI 감정 DJ'입니다.")

# 2. 대화 시작
while True:
    user_text = input("\n지금 기분이 어떠신가요? 마음을 들려주세요 (종료: 끝) : ")
    
    if user_text == "끝":
        print("🎧 DJ: 당신의 내일은 오늘보다 더 행복할 거예요. 안녕!")
        break

    # 3. 감정 분석 마법 (키워드 매칭)
    detected_mood = ""
    
    if any(word in user_text for word in ["기뻐", "행복", "신나", "즐거"]):
        detected_mood = "기쁨"
    elif any(word in user_text for word in ["슬퍼", "우울", "눈물", "힘들어"]):
        detected_mood = "슬픔"
    elif any(word in user_text for word in ["화나", "짜증", "미워", "답답"]):
        detected_mood = "화남"
    else:
        detected_mood = "평온"

    # 4. 음악 추천 연출
    print(f"🎧 DJ: 당신의 마음에서 '{detected_mood}'(이)가 느껴지네요.")
    time.sleep(1)
    song = random.choice(emotion_playlist[detected_mood])
    print(f"🎵 추천 곡: {song}")
    print("이 노래가 당신의 마음에 작은 힘이 되길 바라요!")
파이썬 AI 학교 챌린지 #52: 마음을 읽어요! ‘나만의 AI 감정 DJ’ 만들기

4. 더 감성적인 AI로 업그레이드!

우리 DJ 친구에게 더 따뜻한 기능을 추가해볼까요?

  • 진짜 노래 들려주기: 42탄 영어 읽기 비서에서 배운 것처럼, 유튜브 링크를 열어주거나 노래 제목을 읽어주게 해보세요.
  • 무드등 연동: 33탄 무드등 기능을 합쳐서 슬픈 기분일 때는 보라색, 기쁠 때는 노란색으로 배경색을 바꿔보세요.
  • 일기 쓰기 권유: “기분이 안 좋을 때는 일기를 써보는 건 어떨까요?”라며 37탄 영문 일기 도우미를 추천해 주게 해보세요.

5. 가족과 함께하는 ‘우리 집 마음 테라피’

아이와 함께 가족들이 평소에 자주 쓰는 감정 표현들을 키워드 리스트에 추가해 보세요. “나는 배고플 때 화가 나!”라고 하면 ‘배고파’를 ‘화남’ 카테고리에 넣는 식이죠. 아이가 직접 any() 함수의 작동 방식을 보며 ‘컴퓨터가 문장에서 정보를 추출하는 법’을 배우게 해주세요. 특히 저희가 준비 중인 EduPad 프로젝트에서 아이들이 공부하다 지칠 때 기분을 위로하고 다시 힘을 내게 돕는 ‘정서 케어 엔진’의 기초로 활용하기에 정말 훌륭한 예제입니다.

마치며: 마음을 나누는 코딩!

챌린지의 52번째 미션 완료! 오늘은 텍스트 분석을 통해 사용자의 감정을 유추하고 반응하는 ‘감성 지능’의 기초를 배웠습니다. 내일 오전 9시에는 AI가 내 사진을 보고 누군지 알아맞히는 ‘누구일까요? AI 얼굴 인식 퀴즈’ 마법으로 돌아오겠습니다!