가사를 데이터 분석한다면!?

가사의 주제를 사람이 아니라 기계가 나눠보기

2021.04.22 | 조회 4.18K |
2
|

팀 뮤직데이터

매주 FLO의 음악데이터를 읽어드립니다.

보통 음악을 분류 할 때 여러분은 어떤 기준으로 구분하시나요? 

장르, 아티스트, 프로듀서 혹은 기획사, 작곡가/작사가 등 여러가지 기준이 있을 겁니다. 이것에 따른 분류는 도메인 전문가들에게 맡기고, 저희는 데이터를 다루니, 뮤직데이터의 한 갈래인 가사로 분류해보는 건 어떨까요?

 

가사를 분석해서 노래 분류를 굳이?

'뜬금없이 왜 가사로 분류하려 하지?' 궁금하실 것 같습니다.

가사가 우리에게 주는 의미에 대해서 생각해봤습니다. 사람들은 때때로 가사를 통해서 위로 받고 싶어하고, 용기를 얻고 싶어하고, 신나는 마음을 더하고 싶어 합니다. 듣는 이의 마음 상태를 공감해주는 것. 그것이 가사의 주요 역할이 아닐까요? 실제로 앨범의 소개글보다는 가사를 읽기가 더 쉽지요. 그래서 장르나 아티스트와 같이 이미 알려져있는 정보보다 가사를 기반으로 곡을 구분하는 것이 청취자로 하여금 더 와닿는 분류가 되지 않을까 생각했습니다. 

또 장르보다 좀 더 이해가 쉬운 세부 분류가 가능 할 것 같았습니다.  가령 같은 사랑 노래도 사랑 고백, 사랑 위로, 사랑 설렘 등으로 세분화되서 나뉘어질 수 있겠죠.

여러분도 잘 아시는 넷플릭스도 영상 콘텐츠를 분류할 때 장르 기반이 아닌, ‘강력한 여성 리드가 있는 시리즈’ 와 같이 내용을 기반으로 콘텐츠를 더 세밀하게 나눈다고 합니다. (https://bit.ly/3dWVONp) 적재적소에 사람들이 원하는 콘텐츠를 잘 보여주기 위함이죠. 이를 위해 넷플릭스는 콘텐츠 내용을 바탕으로 태깅을 붙이는 '태거'를 별도로 채용할 정도라고 합니다.

넷플릭스 케이스 처럼 가사가 영화 시나리오처럼 길지는 않지만, 전달하고자 하는 스토리나 분위기가 담겨 있어, 가사 기반 곡 분류가 가능하지 않을까요? 그러나 가사를 일일이 사람 손으로 구분하기란 쉽지 않은 일인 것 같습니다. 그래서 컴퓨터의 힘을 빌려 보았습니다.

 

가사의 주된 키워드들은 역시 "사랑"

먼저 지난 2020년 1월부터 2021년 1월까지 플로에서 청취된 곡 탑 500위 아티스트들이 보유한 약 4,000개의 곡의 데이터를 가지고 워드 클라우드를 그려서 어떤 키워드가 주로 등장하는지 살펴 보았습니다.

워드클라우드는 문서의(가사) 키워드(명사, 동사, 형용사), 개념 등을 직관적으로 파악할 수 있도록 핵심 단어를 시각적으로 돋보이게 나타내는 방법 중 하나입니다. 워드클라우드 표현시 키워드의 등장수가 높아질수록 워드클라우드에서 해당 키워드의 사이즈가 크게 표현이 됩니다.

아래는 워드클라우드를 시행한 결과 입니다.

2020년 1월 ~ 2021년 1월까지 FLO의 청취 탑 500위 국내 아티스트들이 보유한 약 4,000개의 곡의 가사 대상
2020년 1월 ~ 2021년 1월까지 FLO의 청취 탑 500위 국내 아티스트들이 보유한 약 4,000개의 곡의 가사 대상

아무래도 가사에 사랑이 노래가 많다 보니 사랑과 관련된 단어들이 눈에 띄게 보입니다. 또, 하루, 순간, 시간과 같은 주제도 많이 보입니다. 그러나 해석할 여지가 조금 적어보이지요.

뭉쳐진 단어들을 보니 사랑 이외에 어떤 주제가 가사 속에 숨겨져 있을지 슬슬 궁금합니다.

 

텍스트 데이터 전처리는 시작의 80%..

데이터 전처리란 음식을 만들기 전에 식재료를 손질하는 자료와 같습니다. 다행히, 가사에는 오탈자가 포함될 확률은 극히 적었는데 의외의 난관이 있었습니다. 인기 아이돌의 노래나 따라 부르기 좋은 댄스곡의 가사가 정말 전처리 하기 힘들었습니다.

  • 마법 주문 같은 가사들(짐살라빔, rocka rocka rocka..) : 가장 고민되는 부분이었으나, 결국 한 곡에만 등장하는 주문(?)들은 제외하기로 결정
  • 동요, CCM 등 가사의 특징과 목적이 두드러지는 장르는 제외
  • 감탄사(yeah, yo..) 제거
  • 명사, 형용사, 동사의 키워드만 추출
  • 한 음절은 제외 : 본 분석은 가사를 주제의 의미를 파악해보기로 하였으므로 제외하였습니다.

 

전처리된 가사를 토픽모델링(LDA)으로 분류해보기

다음으로 전처리 된 가사들을 가지고 토픽모델링(LDA)을 활용하여 여러 토픽으로 분류해봤습니다.(LDA에 대해 더 자세히 알고 싶으시다면 ratsgo's blog 글을 추천드립니다) LDA에 노래 가사 키워드와 보고싶은 토픽의 개수를 선정해서 넣어주면, 결과 값으로 해당 개수의 토픽과 각 토픽에 해당되는 단어들을 보여줍니다. 저희는 최대한 상세히 보기 위해 총 50개의 토픽으로 나누었고 다음과 같이 무시무시한 결과 화면을 얻었습니다. 

모델이 내보내준 결과값은 토픽별 단어들만 보여줍니다. 각 그룹을 어떻게 해석할지는 연구자의 몫이 됩니다.<br>기계와 함께 하는 일이란, 데이터 전처리도 사람이 해서 넣어주는데,<br>결과만 이렇게 던져주면서 해석도 사람이 하랍니다. 데이터 분석 일이란 늘 이런 식입니다.
모델이 내보내준 결과값은 토픽별 단어들만 보여줍니다. 각 그룹을 어떻게 해석할지는 연구자의 몫이 됩니다.
기계와 함께 하는 일이란, 데이터 전처리도 사람이 해서 넣어주는데,
결과만 이렇게 던져주면서 해석도 사람이 하랍니다. 데이터 분석 일이란 늘 이런 식입니다.

 

분류 결과의 해석 : 잘된 예

위의 토픽별 단어들을그냥 읽는 것이 상당히 어려운 부분이라 보기 쉽게 워드 클라우드로 다시 만들어보았습니다. 대략 저희가 생각하기에 곡을 잘 분류해서 묶어주었다고 생각하는 주제들은 다음과 같습니다.

사실 모델이 보여준 결과 값은 각 토픽 별 단어들만 보여주기 때문에, 연구자가 각 토픽 별 단어를 보고 토픽 별 이름을(위에 보여지는 <사랑고백>, <이별>,<자유롭게 날아>) 작명해줘야 합니다. 분류는 알고리즘이 해줘도 결과를 보고 해석은 사람이 몫이기에, 음악에 대한 이해도가 깊은 분이 토픽명을 잘 지으실 수 있을 것 같습니다.

그럼 이번에는 토픽 별 어떤 곡들이 있는지 한 번 살펴볼까요?
<사랑 고백>과 <자유롭게 날아> 토픽에 해당하는 곡 리스트를 몇 가지만 뽑아 봤습니다.

topic2와 topic24의 경우 해당하는 곡과 가사의 내용이 위와 같습니다.
topic2와 topic24의 경우 해당하는 곡과 가사의 내용이 위와 같습니다.

토픽 별 주제와 해당 주제의 곡 리스트들이 썩 잘 어울리는 것 같습니다. <사랑 고백>의 경우 댄스 음악, 힙합, 팝,어쿠스틱, 발라드 장르의 달달한 사랑 고백 곡이 확인할 수 있고, <자유롭게 날아>는 자유롭기를 갈망하는 주제의 힙합, 발라드, 인디, 락 장르의 곡을 확인할 수 있었습니다.

위 토픽을 보시고 '기계가 좀 하네?' 라고 생각하시는 분들도 있으실지 모르겠습니다만, 기계도 잘 분류하지 못한 주제들도 있습니다. 

 

분류 결과의 해석 : 아리송한 예

토픽 그룹에 대해 작명을 하다가 포기한 케이스들입니다. 

모델은 이런 결과를 보여주면서 우리에게 그 어떤 설명도 해주지 않습니다. 사실 장르를 같이 살펴보아도 당장 뾰족한 해석이 되지는 않더라고요.
모델은 이런 결과를 보여주면서 우리에게 그 어떤 설명도 해주지 않습니다. 사실 장르를 같이 살펴보아도 당장 뾰족한 해석이 되지는 않더라고요.

위 분류결과를 보고 든 생각은, "이걸 어쩌지.." 였습니다. 

어떤 분들은 위 주제 중 몇 개 보시고 '이건 00 같은데?' 라고 한 주제를 떠오르실 수 있겠지만, 저희 팀과 모델의 한계를 명확히 느꼈습니다. 

잘 분류된 주제 속에서도 갈 길을 잃은 곡들이 하나씩 보입니다. 위 케이스 외에도 토픽별로 "니가 왜 거기서 나와?" 같은 곡들이 여럿 존재합니다. 기계가 사람의 손이 타는 일을 덜 수는 있다고 생각하면서도, 어느정도 사람의 도움을 필요로 한다는 것을 다시 한 번 생각해 보는 시간이었습니다. 아마도, 가사 외의 다른 텍스트 데이터(앨범 소개글 등), 곡에 대해 정의된 풍부한 장르, 사용자 반응 데이터(댓글 등)와 결합을 하면서 다시 분류하는 방법이 필요하지 싶습니다. 

 

첫번째 가사 분석을 마무리하며 

아직 이 단계에서는 토픽이나 토픽별 곡들이 완벽히 분류가 되지 않지만, 부분적으로 잘 분류된 토픽과 곡들을 활용한다면 주제에 맞는 플레이리스트 선정이 가능할 것 같습니다. 또, 앞서 토픽별 곡 리스트업에서 보신 것처럼 다양한 장르를 하나의 주제로 묶어 추천하는 일도 가능해 보이기도 합니다. 가령, 슬픈 사랑 노래 중에서도 "이별을 예감한다"라는 상세 주제로 댄스, 일레트로닉, 트로트 등 다양한 장르의 곡을 리스트업 해 볼 수 있죠.

토픽모델링 결과가 완벽하지 않아도 위 과정 속에서 가사로 노래 분류의 기준이 될 수 있는 것이 흥미로웠습니다. 또, 기존 분류방식 보다 가사로 곡을 분류하게 되면 어떤 점이 좋을지 생각해 보게된 의미있는 시간이었습니다. 무엇보다, 뮤직데이터 영역에는 분석해봄직한 다양한 텍스트 데이터들이 많이 있고, 도전할 과제가 많다는 이야기를 전달드리고 싶었습니다. 자, 오늘은 여기까지! 끝까지 읽어주심에 감사드리며, 위 글 내용이 좋으셨다면, 혹은 여기까지는 분석해보았으면 좋겠다는 생각이 떠올리신다면 댓글을 꼭 부탁드립니다! ✧ ☆ ٩(`・ω・´)و

 

작업 후기 및 다음편 예고

1. 네이버에서 2016년에 과거 가사를 분석한 결과가 있습니다. 안타깝게도 상세 자료를 찾기가 어려웠는데, 주로 명사를 기준으로 다뤘습니다. (http://www.m-i.kr/news/articleView.html?idxno=276639) 형용사나 동사까지 아우르는 분석을 해봐야겠다는 생각을 하게 된 계기 중 하나입니다. 2. 해외 사례로는, 가사를 해석한 글(songmeanings.com)을 가지고 곡 주제를 분류한 연구(Music Subject Classification Based on Lyrics and User Interpretations)도 있습니다. 가사의 시적인 특성 때문에 가사 본문 보다 가사 해석이 곡의 의미와 아티스트의 의도를 더 잘 드러내는 데 도움이 될 수 있다는 결론이 흥미롭습니다. 3. 차주에 찾아드릴 글은 아직 미정입니다!! 새로운 곡을 찾아듣는 고객에 대한 추정을 하는 글을 먼저 전달드릴지, 다른 내용을 간략하게 다룰지 의논 중입니다. 언제든 궁금한 내용이나 더 알아보고 싶은 주제에 대해서 의견을 남겨주시면 큰 힘이 됩니다.

 

  • 팀 뮤직데이터는 음악 스트리밍 플랫폼(FLO)에서 발생하는 데이터의 질감을 공부하며 발행하는 뉴스레터입니다. 기술적인 how to 보다 데이터를 충분히 관찰하는 작업을 우선시 합니다.
  • 데이터의 해석은 발행일 당시의 의견으로 글을 읽는 시기에 따라 관점이 달라질 수 있습니다. 새로운 해석과 분석 주제가 있다면 댓글 부탁드립니다.
  • 팀 뮤직데이터의 자료 해석은 서비스와 회사의 입장을 반영하지 않습니다.

 

다가올 뉴스레터가 궁금하신가요?

지금 구독해서 새로운 레터를 받아보세요

✉️

이번 뉴스레터 어떠셨나요?

팀 뮤직데이터 님에게 ☕️ 커피와 ✉️ 쪽지를 보내보세요!

댓글 2개

의견을 남겨주세요

확인
  • 이지수

    0
    about 3 years 전

    막연하게 생각했던 것들을 데이터를 통해서 이렇게 나름의 분석을 행하니 고개가 절로 끄덕여지는 것들도 있네요~ 전처리 작업하시느라 정말 힘드셨겠어요ㅠㅠ 덕분에 흥미로운 데이터 결과값을 보기도하고, 글 재밌게 잘 읽었습니다!

    ㄴ 답글 (1)

© 2024 팀 뮤직데이터

매주 FLO의 음악데이터를 읽어드립니다.

뉴스레터 문의 : dreamus.musicdata@gmail.com

자주 묻는 질문 오류 및 기능 관련 제보

서비스 이용 문의admin@team.maily.so

메일리 (대표자: 이한결) | 사업자번호: 717-47-00705 | 서울 서초구 강남대로53길 8, 8층 11-7호

이용약관 | 개인정보처리방침 | 정기결제 이용약관