يحتوي هذا المستودع على تطبيق ويب يتكامل مع نظام توصية الموسيقى ، والذي يستفيد من مجموعة بيانات من 3415 ملفًا صوتيًا ، كل منهما ثلاثين ثانية دائمة ، باستخدام تطبيق Hashing حساس للمواقع (LSH) لتحديد التشابه الإيقاعي ، كجزء من المهمة الأساسية لتحليلات البيانات الكبيرة (DS2004).
يمثل مجال استرجاع معلومات الموسيقى تحديًا بسبب الطرق المختلفة التي يمكن بها تمثيل الصوت ، مما يجعل من الصعب تحديد الميزات التي يجب تحديدها في الاستعلامات. لتبسيط هذه المشكلة ، يركز تنفيذنا على وجه التحديد على إيقاع الأغاني كميزة الاستعلام الوحيدة. بينما استكشفت الأبحاث السابقة الاستعلام عن الموسيقى القائمة على الإيقاع ، فإن الأساليب الحالية تعاني من عدم الكفاءة ، لأنها تتطلب الاستعلام عن بنية البيانات بأكملها لمطابقة إيقاعات الأغاني. للتغلب على هذا القيد ، نقترح استخدام التجزئة الحساسة للمنطقة (LSH) ، وهي تقنية تحدد بكفاءة عناصر مماثلة داخل مجموعات بيانات كبيرة دون الحاجة إلى عمليات بحث شاملة.
التجزئة الحساسة للمناطق (LSH) هي تقنية معتمدة على نطاق واسع لتقريب عمليات البحث عن أقرباء. يحدد بكفاءة عناصر مماثلة داخل مجموعات البيانات الكبيرة عن طريق تعيينها إلى مساحة أقل الأبعاد. ومع ذلك ، تقليديًا ، توظف التجزئة الحساسة للمناطق (LSH) طريقة مختلفة تسمى Minhash (أو مخطط التجزئة الحساسة للمنطقة المستقلة Min-Wise) لتقدير التشابه المحدد. يستخدم Minhash عادة في استخراج البيانات واسترجاع المعلومات. على الرغم من أن Minhash فعال بشكل عام في تقدير التشابه المحدد ، إلا أنه يحتوي على بعض القيود التي قد تعيق فعاليتها في تطبيقات محددة.
لمعالجة هذه القيود ، اخترنا تنفيذ نهج LSH باستخدام تقنية فعالة أخرى تسمى أقرب جيران تقريبي (ANN). هذه التقنية مناسبة تمامًا للعثور على أقرب جيران تقريبي في مجموعات البيانات الكبيرة. من خلال استخدام أقرب جيران تقريبي (ANN) بدلاً من Minhash ، فإننا نهدف إلى تعزيز فعالية وأداء تنفيذ التجزئة الحساسة للمنطقة (LSH) في مشروعنا.
يقدم أقرب جيران تقريبي (ANN) حلاً أكثر تنوعًا للتجزئة الحساسة للمنطقة (LSH) حيث يمكن أن يقارب أقرب الجيران لمقاييس المسافة المختلفة. في المقابل ، تم تصميم Minhash خصيصًا لتشابه Jaccard. يتيح هذا التطبيق الأوسع نطاقًا مقاربتنا لتوفير تقديرات أكثر دقة لأقرب الجيران مقارنةً بمينهاش ، خاصة عند التعامل مع مجموعات البيانات عالية الأبعاد التي تتطلب عمليات تفتيش التشابه بناءً على مقاييس مسافة مختلفة مثل المسافة الإقليدية أو تشابه جيب التمام.
فيما يتعلق بالتعقيد الزمني ، يقوم كل من أقرب الجيران التقريبيين (ANN) و Minhash بتنفيذ جدول التجزئة مع التجزئة الحساسة للمناطق (LSH) ، مما يؤدي إلى تعقيد الوقت O (1) لاسترجاعها في كلتا الحالتين. ومع ذلك ، فإن تركيزنا يكمن أكثر على كفاءة الذاكرة ، حيث يتفوق نهج الجيران الأقرب التقريبي (ANN) على Minhash. يعد هذا الجانب حاسمًا بشكل خاص لتنفيذنا نظرًا لأن مجموعة بيانات الصوت التي استخدمناها كبيرة جدًا ، حيث تزن 3.3 GIB.
لذلك ، من خلال استخدام أقرب جيران تقريبي (ANN) بدلاً من Minhash ، نحقق دقة محسنة في تقدير أقرب الجيران مع الحفاظ على وقت استرجاع فعال وكفاءة أفضل للذاكرة ، وضمان الأداء الأمثل لتنفيذنا مع بيانات بيانات الصوت الكبيرة.
Music Recommendation Based on Rhythmic Similarity Using Locality-Sensitive Hashing (LSH).ipynb تحتوي على تنفيذ تطبيق التجزئة الحساسة للمنطقة (LSH) لتدريب وتقييم نظام توصية الموسيقى على مجموعة بيانات الصوت.app.py - رمز المصدر لتطبيق الويب (Flask) الذي يرافق نظام توصية الموسيقى.templates - تحتوي على رموز المصدر لصفحات الويب ، وهي index.html و predict.html ، والتي يتم تقديمها بواسطة تطبيق الويب (Flask).static - يحتوي على جميع الرموز والعناصر المرئية المستخدمة في تطبيق الويب (Flask).staticfiles - دليل حيث يتم تخزين ملفات الصوت التي تم تحميلها بواسطة المستخدمين على تطبيق الويب (قارورة).features.pkl pkl-ملف كائن يحتوي على ميزات معاملات cepstral mel-frequency (MFCC) لجميع ملفات الصوت المستخدمة للتدريب.music.ann ملف MEMORDER (MMAP) يحتوي على كائن LIGHINDEX لنظام توصية الموسيقى باستخدام أقرب جيران تقريبي (ANN). app.py والوصول إلى الرابط المحدد إلى منفذ المضيف./predict ، ستتلقى أفضل وأسوأ توصيات ملف الصوت الذي تم تحميله.pied_piper_download.csv في الدليل الحالي ، والذي سيتضمن شرائح صوتية مماثلة تم تحديدها من ملف الصوت المحمّل. هذا المشروع موجود بفضل الأشخاص غير العاديين الذين ساهموا في ذلك.