한국어 학습자를 위한 노래 추천 시스템
한국어 학습자를 위한 노래 추천 시스템
한국어 학습자를 위한 노래 추천 시스템
TOPIK 어휘를 기준으로 K-POP 가사의 난이도를 계산하고, 학습자 수준과 선호 장르에 맞는 곡을 추천하는 시스템을 만들었다. 레이블이 없는 환경이어서 별도의 난이도 예측 모델을 학습하기보다, 가사에서 추출할 수 있는 정보로 설명 가능한 점수 체계를 먼저 설계했다.
문제 설정
한국어 학습자가 노래를 학습 자료로 활용하려면, 좋아하는 장르뿐 아니라 현재 어휘 수준에 맞는 가사를 고를 수 있어야 한다. 이 프로젝트는 다음 두 질문에 답하는 것을 목표로 했다.
- 가사에 등장하는 어휘를 바탕으로 곡의 한국어 난이도를 어떻게 계산할 수 있는가?
- 난이도와 음악적 특성을 함께 고려해 어떤 곡을 추천할 수 있는가?
가사 난이도 산정
TOPIK 급수별 어휘 목록을 기준으로 가사에서 매칭되는 어간을 추출했다. 형태소 분석에는 MeCab과 Komoran을 함께 사용했고, 매칭된 TOPIK 급수의 합을 매칭 어간 수로 나눈 점수를 난이도 지표로 사용했다.
1
difficulty_level = Σ(TOPIK 급수) / 매칭 어간 수
계산된 연속 점수는 IQR 기준으로 나누어 초급·중급·고급 수준으로 분류했다. 이 방식은 어떤 단어가 난이도에 영향을 주었는지 확인할 수 있어, 레이블이 없는 상황에서도 결과를 설명하기 쉬웠다.
추천 방식
추천에는 Spotify 음악 특성과 가사에서 얻은 파생 변수를 사용했다. 후보 특성 중 energy, english_ratio, korean_ratio, dps를 PCA로 선택한 뒤, 사용자 조건과 곡 간 코사인 유사도를 계산해 추천 순위를 만들었다.
energy: 곡의 에너지 특성english_ratio: 영어 가사 비율korean_ratio: 한국어 가사 비율dps: 가사 밀도 관련 지표
이렇게 하면 학습자 수준에 맞는 난이도를 우선 반영하면서도, 장르와 음악적 분위기가 유사한 곡을 함께 제안할 수 있다.
맡은 역할
- 난이도 점수 산정 알고리즘 설계 및 구현
- 가사 전처리와 형태소 분석 파이프라인 구성
- PCA 기반 추천 특성 선택
- 결과 발표
사용 기술
MeCab, Komoran, TOPIK 어휘 데이터, Spotify 특성, PCA, 코사인 유사도
This post is licensed under CC BY 4.0 by the author.