[python] 파이썬을 활용한 음악 데이터 분석

음악은 우리 생활의 중요한 요소 중 하나이며, 많은 사람들이 음악을 즐기는 동안 데이터 분석도 적용하여 음악을 더욱 흥미롭게 만들 수 있습니다. 이번 블로그 포스트에서는 파이썬을 사용하여 음악 데이터를 분석하는 방법에 대해 알아보겠습니다.

1. 음악 데이터 수집

음악 데이터를 분석하기 위해서는 먼저 해당 음악에 대한 데이터를 수집해야 합니다. 파이썬을 활용하면 웹 스크래핑을 통해 음악 플랫폼에서 음악 제목, 가수, 앨범 정보 등을 수집할 수 있습니다. BeautifulSoup 라이브러리를 사용하면 웹 페이지의 HTML을 파싱하여 원하는 데이터를 추출할 수 있습니다.

from bs4 import BeautifulSoup
import requests

# 음악 제목과 가수를 수집하는 예제
url = 'https://music-platform.com'
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')

music_titles = soup.find_all('h3', class_='music-title')
music_artists = soup.find_all('p', class_='music-artist')

for i in range(len(music_titles)):
    print(f"Title: {music_titles[i].text}, Artist: {music_artists[i].text}")

2. 음악 데이터 분석

음악 데이터를 수집한 후에는 해당 데이터를 분석하여 흥미로운 정보를 추출할 수 있습니다. 파이썬에는 다양한 라이브러리가 있어 음악 데이터를 분석하는 데 유용하게 활용할 수 있습니다. 예를 들어, librosa 라이브러리는 음악 신호 처리 및 분석에 사용되며, matplotlib 라이브러리는 음악 데이터를 시각화하는 데 유용합니다.

import librosa
import matplotlib.pyplot as plt

# 음악 파일 불러오기
audio_path = 'music.wav'
audio, sr = librosa.load(audio_path)

# 음악 파형 시각화
plt.figure(figsize=(14, 5))
librosa.display.waveplot(audio, sr=sr)
plt.xlabel('Time')
plt.ylabel('Amplitude')
plt.title('Waveform of Music')
plt.show()

3. 음악 추천 시스템

음악 데이터 분석을 활용하여 음악 추천 시스템을 개발할 수도 있습니다. 음악 데이터의 속성과 사용자의 선호도를 분석하여 유사한 음악을 추천하는 것이 가능합니다. 이를 위해 pandasscikit-learn 등의 라이브러리를 사용할 수 있습니다.

import pandas as pd
from sklearn.metrics.pairwise import cosine_similarity

# 음악 데이터 로드
music_data = pd.read_csv('music_data.csv')

# 음악 속성에 대한 유사도 계산
similarity_matrix = cosine_similarity(music_data)

# 음악 추천
target_music = 'Love Song'
target_index = music_data[music_data['Title'] == target_music].index[0]
similar_music = list(enumerate(similarity_matrix[target_index]))
similar_music = sorted(similar_music, key=lambda x: x[1], reverse=True)

# 상위 5개 유사 음악 출력
for i, similarity in similar_music[1:6]:
    print(music_data.iloc[i]['Title'], music_data.iloc[i]['Artist'])

이처럼 파이썬을 사용하여 음악 데이터를 수집하고 분석하는 방법을 살펴보았습니다. 음악 데이터를 분석하면 음악 산업에서 유용한 정보를 얻을 수 있으며, 이를 활용하여 음악 추천 시스템과 같은 응용 프로그램을 개발할 수도 있습니다.

참고 자료