온쉼표는 음악의 한마디를 쉬는 온쉼표라는 단어에서 착안하여,
'온전히 쉰다' 라는 뜻을 담고 있는 가사 기반 음악 추천 서비스입니다.
사용자가 챗봇과 대화하면서 전달하는 감정 일기를 분석하여,
그 날 그 순간 사용자의 감정과 가장 적합한 가사를 가진 음악을 추천합니다.
✔ 감정 일기로 노래 추천
사용자가 그 날의 감정과 감정 일기를 작성하면
분석하여 사용자의 감정과 어울리는 가사의 노래를 추천
✔ 간단한 감정 입력으로 노래 추천
감정 일기를 작성하지 않고, 사용자의 감정만 간단히 입력하여
감정에 어울리는 노래를 추천
✔ 일기 조회/삭제 기능
일기 조회 : 사용자가 원하는 날짜의 일기 조회 기능
일기 삭제 : 현재까지의 모든 일기 데이터 삭제 기능
✔ 온쉼표 차트
지난 한 달간 사용자가 가장 만족한 곡 3곡을 조회할 수 있는 기능
- 작성된 코드를 이용하여 텍스트 감정 분석 후 음악 추천
- 메인 감정과 일기 감정이 서로 ±1 카테고리 범위 내에 존재 or 일기 감정만 분석 가능
⇒ 일기감정 좌표에서 가장 가까운 음악 추천 - 인접하지 않거나 메인 감정만 분석 가능
⇒ 메인 감정 카테고리와 같은 음악 랜덤 추천 - 두 감정 모두 분석 불가능
⇒ 감정어가 5개 이하인 음악 랜덤 추천
- 메인 감정과 일기 감정이 서로 ±1 카테고리 범위 내에 존재 or 일기 감정만 분석 가능
<main. py>
- chatDB(result) : 곡 추천 후 만족한 곡까지 DB에 저장하는 함수
- diarymusic() : 곡 추천 함수
- feedback() : 피드백까지 받게 되면 DB에 피드백과 열람 동의 여부를 저장하는 함수
- feelmusic() : 간단 곡 추천 함수
- diarysearch1() : 일기 월별 열람 함수
- diarysearch2() : 일기 일별 열람 함수
- diaryremove() : 일기 삭제 함수
- monthly() : 온쉼표 차트 함수, 지난 달 사용자들이 추천받은 뒤 선택한 만족한 곡 중 상위 3곡을 보여주는 함수
<mrp.py>
- emotionAnalysis(diary) : 사용자 감정 분석 함수
- SelectCategory(x, y) : 좌표를 통해 감정 카테고리 판단하는 함수
- resultCheck(feelX, feelY, diaryX, diaryY) : 감정 분석 결과를 통해 음악 추천 방식을 결정하는 함수
- musicRecommend(diaryX, diaryY) : 사용자 감정에 가장 근접한 음악 추천 함수
- randomMusic(cateNum) : 랜덤 음악 추천 함수
<lyrics_analysis.py>
- LyricsEmotion(ly) : 가사의 감정값을 분석하는 함수
- SelectCategory(x, y) : 좌표를 통해 카테고리를 결정하는 함수
<lyrics_crawl.py>
- 지니뮤직에서 가사를 크롤링해주는 코드
- 문창배 외 3.(한국산업정보학회). 『음악추천을 위한 분위기 태그 분석』
- 신기원 외3.(한국지능정보시스템학회). 『감정 온톨로지를 활용한 가사 기반의 음악 감정 추출』





