Hisset. Seç. Dinle.
Moodify, bulunduğun ruh halini alır ve seni istediğin duyguya taşıyacak şarkıları önerir. Basit bir mantık, güçlü bir his.
Spotify'ın ses özelliklerini (valence, energy, danceability vb.) kullanan kural tabanlı bir filtreleme sistemidir. Kullanıcı iki seçim yapar:
- Şu anki ruh hali → Mutlu, Üzgün, Stresli, Sakin veya Enerjik
- Hedef duygu → Bu modda kalmak, enerji atmak, sakinleşmek...
Sistem bu seçime göre önceden sınıflandırılmış şarkıları popülerlik sırasıyla sunar. Her seferinde 5 şarkı önerir; "e" tuşuyla daha fazlasını görürsün.
Proje, ~81.000 şarkıyı valence (neşe) ve energy (enerji) eksenlerinde dört bölgeye ayırır:
| Bölge | Tanım |
|---|---|
| ↗ Yüksek Valence + Yüksek Energy | Enerjik & Mutlu (Parti, Dans) |
| ↖ Düşük Valence + Yüksek Energy | Agresif & Karanlık (Rock, Metal) |
| ↙ Düşük Valence + Düşük Energy | Sakin & Hüzünlü (Melankoli) |
| ↘ Yüksek Valence + Düşük Energy | Huzurlu & Pozitif (Chill, Akustik) |
Bu harita üzerinden 5 ana duygu ve 16 alt kategori tanımlanmıştır.
Mutlu → Bu Modda Kalmak / Daha da Enerjik Olmak / Sakinleşip Huzur Bulmak
Üzgün → Neşelenmek / Hüznünü Yaşamak / Rahatlamak / Güçlenmek
Stresli → Tamamen Gevşemek / Enerji Atmak / Odaklanarak Uzaklaşmak
Sakin → Bu Hali Korumak / Yavaşça Canlanmak / Nostalji Yaşamak
Enerjik → Zirveye Taşımak / Odaklanarak Kullanmak / Cool Down
- Python — Jupyter Notebook ortamında geliştirildi
- pandas — Veri okuma, temizleme ve filtreleme
- matplotlib & seaborn — Duygu haritası ve korelasyon görselleştirmeleri
- graphviz — Karar ağacı akış şeması
moodify/
├── moodify.ipynb # Ana notebook — veri analizi + öneri sistemi
└── dataset.csv # Spotify şarkı veri seti (~81.000 şarkı)
# Gerekli kütüphaneleri yükle
pip install pandas matplotlib seaborn graphviz
# Notebook'u aç
jupyter notebook moodify.ipynbSon hücreyi çalıştır, ruh halini seç ve müziğin seni taşısın.
Spotify ses özelliklerini içeren bir CSV dosyası kullanılmaktadır. Temizleme aşamasında tekrar eden track ID'ler, aynı isim-sanatçı çiftleri ve beyaz gürültü gibi alakasız içerikler çıkarıldı. Analizde kullanılan başlıca özellikler:
valence · energy · danceability · acousticness · instrumentalness · tempo · loudness · popularity
Bir mühendislik öğrencisinin müziğe duyduğu sevgiyle yapıldı 🎧