Repositori ini berisi aplikasi web yang terintegrasi dengan sistem rekomendasi musik, yang memanfaatkan dataset 3.415 file audio, masing-masing berlangsung tiga puluh detik, memanfaatkan implementasi hashing-sensitif (LSH) untuk menentukan kesamaan ritmis, sebagai bagian dari penugasan untuk analitik data besar (DS2).
Bidang pengambilan informasi musik menghadirkan tantangan karena berbagai cara audio dapat diwakili, sehingga sulit untuk menentukan fitur mana yang harus diprioritaskan dalam kueri. Untuk menyederhanakan masalah ini, implementasi kami berfokus secara khusus pada ritme lagu sebagai fitur satu -satunya. Sementara penelitian sebelumnya telah mengeksplorasi permintaan musik berbasis ritme, metode saat ini menderita inefisiensi, karena mereka mengharuskan meminta seluruh struktur data agar sesuai dengan ritme lagu. Untuk mengatasi keterbatasan ini, kami mengusulkan pemanfaatan hashing sensitif lokalitas (LSH), sebuah teknik yang secara efisien mengidentifikasi item serupa dalam set data besar tanpa memerlukan pencarian lengkap.
Locality-sensitive hashing (LSH) adalah teknik yang diadopsi secara luas untuk mendekati pencarian tetangga terdekat. Ini secara efisien mengidentifikasi item serupa dalam dataset besar dengan memetakannya ke ruang dimensi yang lebih rendah. Namun, secara tradisional, hashing sensitif lokalitas (LSH) menggunakan metode yang berbeda yang disebut MinHash (atau skema hashing yang sensitif terhadap permutasi minimal-minim) untuk memperkirakan kesamaan yang ditetapkan. Minhash umumnya digunakan dalam penambangan data dan pengambilan informasi. Sementara Minhash umumnya efektif dalam memperkirakan kesamaan yang ditetapkan, ia memiliki batasan tertentu yang dapat menghambat keefektifannya dalam aplikasi tertentu.
Untuk mengatasi keterbatasan ini, kami telah memilih untuk mengimplementasikan pendekatan LSH menggunakan teknik efisien lain yang disebut perkiraan tetangga terdekat (ANN). Teknik ini sangat cocok untuk menemukan perkiraan tetangga terdekat dalam set data besar. Dengan memanfaatkan perkiraan tetangga terdekat (JST) alih-alih Minhash, kami bertujuan untuk meningkatkan efektivitas dan kinerja implementasi hashing sensitif-lokalitas (LSH) dalam proyek kami.
Perkiraan Neighbors terdekat (ANN) menawarkan solusi yang lebih fleksibel untuk hashing sensitif lokalitas (LSH) karena dapat mendekati tetangga terdekat untuk berbagai metrik jarak. Sebaliknya, Minhash dirancang khusus untuk kesamaan Jaccard. Penerapan yang lebih luas ini memungkinkan pendekatan kami untuk memberikan perkiraan yang lebih akurat dari tetangga terdekat dibandingkan dengan Minhash, terutama ketika berurusan dengan kumpulan data dimensi tinggi yang memerlukan pencarian kesamaan berdasarkan berbagai metrik jarak seperti jarak Euclidean atau kesamaan kosinus.
Mengenai kompleksitas waktu, perkiraan tetangga terdekat (JST) dan pendekatan Minhash pada akhirnya menerapkan tabel hash dengan hashing sensitif lokalitas (LSH), menghasilkan kompleksitas waktu O (1) untuk pengambilan dalam kedua kasus. Namun, fokus kami lebih terletak pada efisiensi memori, di mana pendekatan dekat tetangga terdekat (JST) mengungguli Minhash. Aspek ini sangat penting untuk implementasi kami karena dataset audio yang kami gunakan cukup besar, dengan berat 3,3 Gib.
Oleh karena itu, dengan menggunakan perkiraan tetangga terdekat (JST) alih -alih Minhash, kami mencapai akurasi yang lebih baik dalam memperkirakan tetangga terdekat sambil mempertahankan waktu pengambilan yang efisien dan efisiensi memori yang lebih baik, memastikan kinerja optimal untuk implementasi kami dengan dataset audio yang cukup besar.
Music Recommendation Based on Rhythmic Similarity Using Locality-Sensitive Hashing (LSH).ipynb -berisi implementasi implementasi hashing-hashing-sensitif lokal kami untuk melatih dan mengevaluasi sistem rekomendasi musik pada dataset audio.app.py - Kode sumber untuk aplikasi web (flask) yang menyertai sistem rekomendasi musik.templates - Berisi kode sumber untuk halaman web, yaitu index.html dan predict.html , yang diterjemahkan oleh aplikasi web (flask).static - berisi semua ikon dan elemen visual yang digunakan oleh aplikasi web (Flask).staticfiles - Direktori di mana file audio diunggah oleh pengguna pada aplikasi web (flask) disimpan.features.pkl -File objek yang berisi fitur Cepstral Coefficients (MFCC) Mel-frekuensi dari semua file audio yang digunakan untuk pelatihan.music.ann -File yang dipetakan memori (MMAP) yang berisi objek gangguan untuk sistem rekomendasi musik yang menggunakan perkiraan tetangga terdekat (Ann). app.py dan akses tautan yang diberikan ke port host./predict , Anda akan menerima rekomendasi terbaik dan terburuk untuk file audio yang diunggah.pied_piper_download.csv akan disimpan di direktori saat ini, yang akan mencakup segmen audio serupa yang diidentifikasi dari file audio yang diunggah. Proyek ini ada berkat orang -orang luar biasa yang berkontribusi padanya.