اذهب إلى المحتوى

Recommended Posts

  • 0
نشر

لم أتفهم المطلوب، لكن تفقدت المشروع لديك، وقد قمت بالمطلوب لا مشكلة ما عدا جزئية واحدة، وهو تحميل وتنظيف البيانات بتحميل الملف Books Recommendation System.csv، واختيار الأعمدة المطلوبة، وحذف الصفوف التي تحتوي على قيم فارغة بنجاح.

ثم المعالجة المسبقة للنصوص بإنشاء دالة preprocess تقوم بتحويل النص إلى أحرف صغيرة، وتقسيمه إلى tokens، وإزالة علامات الترقيم والكلمات الشائعة.

ثم قمت بإنشاء المتجهات بواسطة نموذج SentenceTransformer بنجاح لتحويل الأوصاف المُعالَجة إلى متجهات رقمية، مع عرض الكتب العشرة الموصى بها بشكل جيد (العنوان، الفئة، الوصف).

بعد ذلك أنشئت bar chart لعرض متوسط تقييمات أفضل 5 كتب موصى بها.

ما لم تقم به هو  في الخطوة الرابعة  حيث ُطلب منك استخدام مكتبة faiss لإنشاء فهرس للبحث الفعال عن التشابه، وأنت قمت  بالفعل بإنشاء فهرس faiss:

index = faiss.IndexFlatL2(embeddings.shape[1])
index.add(embeddings)

ولكنه لا يستخدم الفهرس للبحث عن الكتب المشابهة، بل يعتمد على مكتبة sklearn لحساب التشابه بواسطة cosine_similarity، كالتالي:

similarities = cosine_similarity(user_embedding, embeddings)[0]
top_10_indices = similarities.argsort()[-10:][::-1]

فالهدف من استخدام faiss هو السرعة والكفاءة في البحث عن أقرب الجيران، خاصة مع مجموعات البيانات الضخمة، بينما cosine_similarity من sklearn يقوم بمقارنة متجه المستخدم مع كل المتجهات الأخرى في مجموعة البيانات، وهو ما يصبح بطيئًا جدًا مع زيادة عدد الكتب.

عليك تعديل الكود إلى:

distances, top_10_indices = index.search(user_embedding, k)

top_10_indices = top_10_indices[0]

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...