-
المساهمات
18935 -
تاريخ الانضمام
-
تاريخ آخر زيارة
-
عدد الأيام التي تصدر بها
448
نوع المحتوى
ريادة الأعمال
البرمجة
التصميم
DevOps
التسويق والمبيعات
العمل الحر
البرامج والتطبيقات
آخر التحديثات
قصص نجاح
أسئلة وأجوبة
كتب
دورات
كل منشورات العضو Mustafa Suleiman
-
الحل صحيح بناءًا على ما هو مطلوب منك لا مشكلة، وللتحسين ليس أكثر، فلم تقم بتطبيق نفس دالة preprocess على user_input قبل توليد التضمين له. وذلك كممارسة جيدة، فعلى الرغم من أنّ نماذج SentenceTransformer تتعامل جيدًا مع النصوص الخام، إلا أنه من لجيد تطبيق نفس خطوات المعالجة المسبقة التي طبقتها على بيانات التدريب وهي أوصاف الكتب على بيانات الاستعلام لضمان الاتساق، خاصة لو المعالجة المسبقة تزيل معلومات مهمة يعتمد عليها النموذج، عامًة التأثير ليس كبيرًا لأن all-MiniLM-L6-v2 قوي.
-
إذن هناك مشكلة في الأساسيات وهي اللغة البرمجية جافاسكريبت، أنت بحاجة إلى العودة إليها ودراستها من جديد، فما ذكرته يعني أنك تخطيت تلك المرحلة وتوجهت مباشرًة لتعلم React والتقنيات الأخرى القائمة على جافاسكريبت، ولن تتمكن من الوصول بعيدًا بدون أساس قوي في اللغة البرمجية نفسها. ويجب تنفيذ مشاريع متدرجة الصعوبة من خلال جافاسكريبت بعد مراجعة الأساسيات، وستجد على اليوتيوب الكثير من المشاريع، ابحث عن مشاريع جافاسكريبت للمبتدئين. وعند التطبيق لا تقع في محاولة كتابة التطبيق دفعة واحدة حيث سيؤدي ذلك إلى شلل في التفكير لديك، يجب تقسيم المشروع إلى أجزاء صغيرة ثم العمل على حلها. ويجب التفكير والتخطيط أولاً قبل كتابة الكود فتلك هي الخطوة الأخيرة، قم بتنفيذ Pseudocode للمشروع ثم تحويله إلى كود.
-
صلاحية الوصول للملف غير صحيحة أرجو عند مشاركة الرابط إختيار anyone with the link
-
في البداية ليس المطلوب منك سوى تنفيذ المنطق بشكل صحيح، بغض النظر عن جودة الكود أو إتباع الممارسات الصحيحة، أي أهم هدف هو أن تتعلم ترجمة وصف المشكلة إلى خطوات منطقية واضحة ثم إلى كود يعمل بشكل سليم. واسمح لنفسك أن تكتب كود أطول أو أبطأ ما دمت تتعلم، فالتجربة والخطأ أفضل طريقة لترسيخ ما تعلمته، واحرص في كل مسألة على أن تسأل نفسك هل غطيت كل الحالات المطلوبة؟ قبل أن تقلق بشأن السرعة. بعد الوصول لمستوى متوسط ابدء في تعلم كيف يتم كتابة كود جيد وما هي أفضل الممارسات وكيف يتم تحسين الأداء، ولا تنتظر حتى تتقن كل شيء، فمن الجيد بعد كل حل أن تحسب تعقيد الزمن O() والذاكرة ولو تقديريًا، ويكفي أن تبدأ بالتمييز بين خوارزمية خطية O(n) وخوارزمية تربيعية O(n²) والخوارزميات التي تعتمد على log n.
- 3 اجابة
-
- 1
-
-
أرجو توفير صورة للمشكلة، وإليك تفصيل لكيفية التعديل:
-
الدورة ليس لها علاقة بالتوثيق، فهي متاحة لك مدى الحياة، وتستطيع تعديل الاسم.
- 4 اجابة
-
- 1
-
-
سيتوجب عليك ذلك، أرجو التوجه إلى الرابط التالي: https://accounts.hsoub.com/settings/identity وستجد تفصيل في الفيديو التالي لكيفية توثيق الهوية الخاصة بك، حيث ستملئ البيانات باسمك وتاريخ الميلاد وبعدها ترفع صورة الهوية أو شهادة الميلاد.
-
لا يتوفر ذلك حاليًا، في الوقت الحالي تستطيع الإعتماد على موسوعة حسوب كمرجع للغات والمكتبات المختلفة: https://wiki.hsoub.com/ كذلك يوجد مقالات وشروحات لمختلف لغات مجال البرمجة: https://academy.hsoub.com/programming/ وفي حال أردت ملخص للغة أو إطار معين أو مكتبة تستطيع البحث عن cheat sheet ثم اسم اللغة مثلاُ وليكن js إذا ستبحث عن cheat sheet for js وستجد ملخصات مثل التالي: https://htmlcheatsheet.com/js/ http://cheatsheets.shecodes.io/javascript
- 3 اجابة
-
- 1
-
-
ما تريده ليس خفض الشفافية، بل ما في الصورة يتم عبر تغيير خلفية المحرر عبر إضافة Background والتي تعمل على تغيير الخلفية وبالتبعية تقوم بخفض الشفافية لكي تظهر الخلفية، كالتالي: وها هو ربط الإضافة: https://marketplace.visualstudio.com/items?itemName=Katsute.code-background بعد التثبيت ستجد أسفل اليمين أيقونة باسم Background قد ظهرت اضغط عليها ثم اختر window ثم اختر file ثم اختر الصورة التي تريد وضعها من حاسوبك، وسيظهر لك نافذة منبثقة اضغط منها على زر install and reload وستجد أنّ الخلفية قد ظهرت.
-
لم توضح ما الذي قمت بإنهائه في الدورة، هل قمت بإنهاء كامل الدورة؟ أم PHP ووردبريس فقط؟ عامًة المهارات المطلوبة في الوظيفة، تتطلب دراسة دورة تطوير واجهات المستخدم أو على الأقل دراسة المسار الأول منها في حال لم تكن مشترك بها، فهو مجاني لك، ثم دراسة المسار الأول من دورة جافاسكريبت للتعمق باللغة أكثر. وفي حال لم تكن مشترك بدورة تطوير واجهات المستخدم، ستحتاج إلى التعمق في تطوير واجهات المستخدم من خلال HTML, CSS, JS وبوتستراب، ويوجد على اليوتيوب مصادر جيدة. بالنسبة لدورة PHP ستحتاج إلى دراسة المسارات التالية بالدورة: أساسيات لغة PHP تطوير قوالب ووردبريس تطوير قالب ووردبريس أخباري تطوير متجر إلكتروني في ووردبريس عبر ووكومرس بعد ذلك ستحتاج إلى التعمق قليلاً في لغة SQL وستجد على اليوتيوب مصادر جيدة كذلك، وسبب عدم التعمق بها بالدورة هو الإعتماد على لارافل لإدارة قواعد البيانات. بعد ذلك ستحتاج إلى تعلم كيفية نشر المشاريع على الاستضافات ورفع أكثر من مشروع لتعتاد على الأمر.
- 4 اجابة
-
- 1
-
-
في react لا نقوم بكتابة مسار الصورة كما في HTML فلا تنسى أننا نكتب كود بداخل ملف بصيغة JSX، وليس html. بالتالي يجب استيراد الصورة أولاً بالملف App.jsx: import bg from './bg.jpg' ثم استخدامها كالتالي: <img src={bg} alt="" />
-
كلاس في scikit-learn لتطبيق تحويلات مختلفة على أعمدة مختلفة من البيانات في نفس الوقت، أي كل التحويلات في مكان واحد، وستتجنب مشكلة تسرب البيانات. كالتالي: from sklearn.compose import ColumnTransformer numeric_features = df.select_dtypes(include=['number']).columns.tolist() text_features = df.select_dtypes(include=['object']).columns.tolist() preprocessor = ColumnTransformer( transformers=[ ('num', KNNImputer(n_neighbors=5), numeric_features), ('text', 'passthrough', text_features) # الأعمدة النصية تمر كما هي ]) df_transformed = preprocessor.fit_transform(df) feature_names = numeric_features + text_features df_final = pd.DataFrame(df_transformed, columns=feature_names)
- 8 اجابة
-
- 1
-
-
الطريقة الأفضل هي استخدام ColumnTransformer من مكتبة sklearn. لكن لا مشكلة فيما ذكرته الطريقة سليمة، ستقوم بفصل مجموعة البيانات إلى قسمين جزء يحتوي على الأعمدة الرقمية فقط التي بها قيم مفقودة وتريد معالجتها، وجزء يحتوي على الأعمدة النصية التي ليس بها قيم مفقودة ولن تحتاج إلى imputation أي معالجة. ثم معالجة القيم المفقودة من خلال تطبيق أحد النماذج IterativeImputer, KNNImputer, SimpleImputer على الجزء الرقمي فقط لملء القيم المفقودة. حيث SimpleImputer بسيط وسريع، جيد للبداية من خلال استراتيجيات mean, median, most_frequent, constant، وKNNImputer يعتمد على القيم المجاورة، وهو أدق ولكن أبطأ، بينما IterativeImputer يستخدم نماذج أخرى لتقدير القيم المفقودة، وهو الأقوى والأكثر استهلاكًا للوقت. وبعد معالجة القيم المفقودة في الأعمدة الرقمية، تقوم بإعادة دمجها مع الأعمدة النصية الأصلية لتحصل على مجموعة بيانات كاملة وجاهزة للخطوات التالية، كتحويل الأعمدة النصية إلى رقمية بواسطة One-Hot Encoding أو Label Encoding في حال ستقوم ببناء نموذج تعلم آلة. وعند تحويل المصفوفة الناتجة من الـ imputer إلى DataFrame مرة أخرى، تأكد من استخدام index=df.index أو index=df_numerical.index للحفاظ على ترتيب الصفوف الصحيح عند الدمج لاحقًا.
- 8 اجابة
-
- 1
-
-
لم يتم التوضيح هل تريدين مشروع مفتوح المصدر جاهز مثلاً للإطلاع عليه؟ أم تريدين فكرة مشروع؟ في حال الأول، فلا يوجد مشروع جاهز مفتوح المصدر لذلك، ستحتاجين إلى تنفيذه بنفسك، وكنقطة إنطلاق ألقي نظرة على بيئة التطوير ARCore لأندرويد أو ARKit لـ iOS. وبأبسط طريقة كبداية ستحتاجين إلى OpenCV لمعالجة الفيديو بجانب ArUco markers لتحديد المواقع، التتبع، أو معايرة الكاميرا. وبالطبع يجب تعلم أساسيات Computer Vision ودراسة Camera Calibration، وبعد ذلك قومي بتجربة تقنية SLAM من خلال مكتبة OpenCV، أو من خلال وحدة VisualSLAM من مكتبة pyslam، والأمر بحاجة إلى بحث ودراسة.
-
هل المقصود عند الإشتراك في الدورة؟ تستطيع إذن وضع سؤال أسفل الدرس في حال السؤال متعلق به وسيتم مساعدتك في الحال وتوضيح الأمر لك. أما لو تقصد سؤال عام خارج الدورة، فتستطيع وضعه هنا في قسم أسئلة البرمجة في التصنيف المناسب له، وتفصيل ما تريده وسيتم مساعدتك بالطبع، وبإمكانك إرفاق ملفات المشروع.
- 5 اجابة
-
- 1
-
-
الأسئلة الإختبارية لا يتم الإجابة عليها بشكل مباشر، لكن للتوضيح المطلوب منك هو أن تقومي بكتابة كود بايثون لتنفيذ مجموعة من العمليات على هياكل البيانات من نوع قائمة List و مجموعة Set. وبخصوص القوائم ستحتاجين إلى إنشاء قائمة باسم fruits تحتوي على العناصر "Apple", "Banana", "Cherry", "Apple"، ثم طباعة اطبع القائمة وطولها أيضًا. ثم كتابة كود للوصول إلى العنصر الثاني في قائمة fruits وطباعته، وإلى العنصر الأخير في القائمة باستخدام الفهرسة السالبة وطباعة العنصر، ثم الوصول إلى أول عنصرين في القائمة باستخدام مفهوم الـ slicing واطبعيهما. ثم تعديل القوائم بتغيير قيمة العنصر الثاني في قائمة fruits ليصبح "Blueberry"، وأضيفي العنصر "Orange" إلى نهاية القائمة باستخدام دالة append()، ثم أدرجي العنصر "Mango" في بداية القائمة عند الفهرس 0 باستخدام دالة insert(). ثم احذفي العنصر "Cherry" من القائمة باستخدام دالة remove()، ثم احذفي العنصر الأخير من القائمة باستخدام دالة pop(). بعد ذلك استخدمي دوال القوائم، أولاً دالة count() لمعرفة عدد مرات ظهور العنصر "Apple" في قائمة fruits، ثم رتبي عناصر قائمة fruits أبجديًا باستخدام دالة sort()، ثم اعكسي ترتيب عناصر قائمة fruits باستخدام دالة reverse(). ثم تطبيق مفهوم List Comprehension لإنشاء قائمة جديدة باسم long_fruits تحتوي فقط على الفواكه من قائمة fruits التي يزيد عدد أحرف اسمها عن 5 أحرف. والجزء الثاني في التمرين هو إنشاء المجموعات حيث عليكِ إنشاء مجموعة باسم colors تحتوي على العناصر "Red", "Blue", "Green", "Red"، واطبعي المجموعة وطولها. ثم تحققي هل العنصر "Blue" موجود ضمن مجموعة colors واطبعي نتيجة التحقق True أو False، ثم استخدمي حلقة تكرار للمرور على جميع عناصر مجموعة colors وطباعة كل عنصر. بعد ذلك أضيفي العنصر "Yellow" إلى مجموعة colors باستخدام دالة add()، واحذف العنصر "Green" من المجموعة باستخدام دالة remove(). وحاول حذف العنصر "Purple"(وهو غير موجود في المجموعة باستخدام دالة discard()، ثم اشرحي الفرق بين دالة remove() ودالة discard() عند محاولة حذف عنصر غير موجود. ثم التطبيق على دوال المجموعات، من خلال إنشاء مجموعة أخرى باسم new_colors تحتوي على العناصر "Blue", "Purple", "Orange". واستخدم دالة union() لدمج عناصر المجموعتين colors و new_colors واطبعي المجموعة الناتجة، ثم دالة difference() لإيجاد العناصر الموجودة في مجموعة colors وليست موجودة في new_colors، واطبعي المجموعة الناتجة. ثم دالة symmetric_difference() لإيجاد العناصر الموجودة في إحدى المجموعتين ولكن ليس في كلتيهما، واطبعي المجموعة الناتجة. ثم دالة intersection() لإيجاد العناصر المشتركة بين المجموعتين colors و new_colors، واطبعي المجموعة الناتجة. المجموعات set في بايثون
-
الدورة ستوفر لك كل ما تحتاجه في البداية، لكن دورة جافاسكريبت دورة ضخمة، وبها الكثير من التقنيات المتعلقة بجافاسكريبت، فمنها ما هو خاص بـ Front-End ومنها ما هو متعلق بـ Back-End ومنها ما هو خاص بتطوير تطبيقات الهاتف، وبها أيضًا شرح لتقنيات تطوير برامج سطح المكتب. فتعلم كل ما بالدورة ليس عملي وذلك ليس المطلوب في سوق العمل، والدورة متاحة لك مدى الحياة تستطيع العودة إليها ودراسة ما تبقى منها بعد اكتساب خبرة في تخصص معين فلا مشكلة في ذلك. لذا يجب تحديد التخصص الذي تنوي دراسته قبل دراسة الدورة، وفي حال لم تقرر بعد، إذن أنصحك بتخصص Full-Stack وبه ستتعلم كل من الواجهة الأمامية Front-End والخلفية Back-End. أي تحتاج إلى دراسة المسارات التالية: أساسيات لغة JavaScript أساسيات React.js أساسيات Node.js تطبيق دردشة يشبه WhatsApp إنشاء تطبيق أسئلة وأجوبة باستخدام Next.js أساسيات TypeScript تطبيق تعلم اللغات باستخدام Next.js وتقنيات الذكاء الاصطناعي تطبيق حجز مناسبات باستخدام GraphQL تطبيقات الويب التقدمية PWA
- 6 اجابة
-
- 1
-
-
فكرة عمل مثل تلك الأدوات هي التعلم من الأنماط عن طريق جميع البيانات من مصادر متعددة سواء سجلات النظام، حركة الشبكة أو الملفات، ثم تبدأ بتحليلها لتتعلم السلوك الطبيعي للنظام لكي تتمكن من تحديد أي سلوك يخرج عن النمط المعتاد، وفي مرحلة التحليل ستجد اعتماد بنسبة 80 إلى 90% على خوارزميات تعلم الآلة Isolation Forest, One-Class SVM, Autoencoders. وكذلك التحليل السلوكي من خلال التحليل تتبع سلوك البرامج والعمليات، فهم تسلسل الأحداث والأوامر، ثم إنشاء بصمات للسلوك الخبيث، ومعالجة اللغة الطبيعية NLP بتحليل رسائل البريد الإلكتروني للكشف عن التصيد، فهم محتوى الملفات النصية والوثائق وتحليل أكواد البرمجيات الخبيثة. ثم الإعتماد على الشبكات العصبية Random Forest, Deep Neural Networks بنسبة 70 إلى 85% في تحديد نوع وخطورة التهديد أي تصنيف التهديد، وكذلك التنبؤ بالهجمات المستقبلية عن طريق خوارزميات LSTM, Time Series Analysis. والأفضل في ذلك المجال هي أداة Wazuh لكونها شاملة SIEM + XDR + Compliance وسهلة الاستخدام ووظيفتها الكشف والتنبيه، وبجانبها يوجد أداة Suricata لتحليل حركة الشبكة وهي متوافقة مع Wazuh. ويوجد TheHive و Cortex ويستخدمان معًا لتحليل البرمجيات الخبيثة وأتمتة الاستجابة، والتحليل العميق، لكن كلاهما أدوات متقدمة وليست مناسبة للاستخدام البسيط.
-
كل شخص له ظروفه، لكن بشكل عام فترة 7 شهور لإتمام نصف الكورس مدة كبيرة وليس من الجيد إطالة مدة تعلم أساسيات بايثون أو أي لغة كل تلك المدة، من المفترض تحديد إطار زمني لا تتخطيه وعليكِ الإلتزام به وتحديد وقت يومي للدراسة على الأقل ساعتان في حال ليس لديكِ وقت فراغ أكثر من ذلك. المدة المناسبة تختلف من شخص لآخر، لكن فترة 3 أشهر كافية على أقصى تقدير، وبعدها تنتقلين إلى تعلم التقنيات الخاصة باللغة حسب التخصص الذي تريدينه، وفي حال واجهتي ظروف خاصة فلا تنقطعي بالكلية بل حاولي القيام بتمارين أو مشروع بسيط بشكل أسبوعي على الأقل لتجنب فقد ما تعلمتيه، ففي بداية التعلم الاستمرار مهم جدًا لتثبيت وتوطيد ما تم تعلمه. ولمعرفة نسبة الفقد لديكِ، ستحتاجين إلى إعادة التمارين والمشاريع التي جاءت بالدروس بمفردك كمراجعة، ولا تنزعجي من ذلك فالمراجعة أمر أساسي لابد منه سواء انقطعتي أم لا، حاولي قدر الإمكان استرجاع ما استوعبتيه من خلال التطبيق العملي وبالطبع بإمكانك الرجوع للدروس بعد المحاولة وليس قبلها لتنشيط ذهنك، وذلك سيتم خلال أيام قليلة لتنشيط الذاكرة. في حال تواجهين صعوبة في أغلب التطبيقات العملية بنسبة كبيرة أي في 50% من التمرين، فالأفضل إذن إعادة الدراسة من البداية. وبالطبع لو لديكِ مُلخصات أو ملاحظات قمتي بكتابتها، فذلك من شأنه تسريع عملية تنشيط الذاكرة، ولا تبحثي عن مصادر جديدة حاليًا، فقط الدروس بالدورة.
-
الدورة ممنهجة بشكل مُتدرج، ففي البداية يتم شرح أساسيات لغات الويب HTML, CSS, JS بدون التعمق بها، أي ما يكفي لإنشاء موقع شخصي بسيط في النهاية بعد دراسة ما سبق، ثم التوسع لاحقًا في المسارات التالية من خلال مشاريع عملية كاملة متدرجة التعقيد، فأول مشروع هو بناء واجهة مستخدم تشبه موقع YouTube، ثم مسار بناء صفحات هبوط والذي سنقوم به بتطوير 5 مشاريع. ويلي ذلك مسارات أخرى بمشاريع مختلفة، يتم من خلالها توضيح كيف يتم تطوير واجهة المستخدم من خلال واجهات مستخدم مختلفة التعقيد. وفي الواقع العملي لا يتم الإعتماد فقط على CSS، بل هناك أُطر عمل لتسريع عملية التطوير وتنظيمها سواء عن طريق بوتستراب أو Tailwind، والأخير أصبح الإطار الرسمي لتطوير واجهات المستخدم حاليًا. عامًة في أي دورة من أي مصدر لا تكتفي بما يتم شرحه بها، ستجد تفصيل هنا:
-
يوجد PyTorch (torchvision.models) و TensorFlow (tf.keras.applications) فكلاهما إطاري العمل الرئيسيين للتعلم العميق ويأتيان مع مجموعة من النماذج المُدربة مسبقًا لمهام تصنيف الصور مثل ResNet، VGG، Inception، MobileNet، EfficientNet، Vision Transformer (ViT)، Swin Transformer. أيضًا كشف الكائنات من خلال Faster R-CNN، RetinaNet، SSD، ويوجد مكتبات جاهزة تعتمد عليها وهي Detectron2. كذلك التجزئة الدلالية Semantic Segmentation عن طريق FCN، DeepLabv3، U-Net. أيضًا يتوفر نماذج Hugging Face Transformers for Vision ومنها Vision Transformer (ViT)، DeiT، BEiT، Swin Transformer لتصنيف الصور. ونماذج DETR، YOLOS لكشف الكائنات باستخدام معماريات الترانسفورمر. ونماذج CLIP، DINO، DINOv2 للتعلم الذاتي الموجه ، والتصنيف بدون أمثلة، ومطابقة الصور بالنصوص، وللعلم نموذج DINOv2 قوي بشكل خاص لاستخراج الميزات من الصور.
-
الكثير من المنصات تقوم بذلك، مثلاً استضافة Netlify تقوم بمنح كل مشروع نطاق فرعي خاص به في حال لا تمتلك أنت دومين، والدومين الرئيسي للاستضافة هو netlify.app. وهناك أمور يجب توضيحها فالنطاق أو الـ Domain هو النطاق الرئيسي الذي تشتريه من أحد مزودي الخدمة مثل Name Cheap، وليكن shreef.com وعند التسجيل تحصل على سجل DNS أو DNS Record مجانًا في حال Name Cheap، والتكلفة 10 إلى 15 دولار في السنة للدومين الواحد. ويوجد مزودي خدمة آخرين مثل: Cloudflare Amazon Route 53 Google Cloud DNS DigitalOcean DNS ما تحتاجه هو سجل DNS واحد فقط لجميع النطاقات الفرعية، وذلك بسبب رمز * أو الـ Wildcard أي بدلاً من إضافة التالي: ahmed > 123.45.67.89 sara > 123.45.67.89 ali > 123.45.67.89 fatima > 123.45.67.89 ... 1000 سجل لـ 1000 مستخدم ستضيف سجل واحد فقط: * > 123.45.67.89 وذلك في إعدادات حسابك في لوحة التحكم على Name Cheap وغيره، ستحد خيار باسم Manage DNS وبه يوجد Add لإضافة سجل جديد، ولاحظ الـ IP السابق استبدله بعنوان IP خادم الاستضافة. والسجل يجب أن يكون من نوع A أي عند الإضافة ستجد type اختر A ثم في الـ Name أضف * وفي الـ Value قم بإضافة عنوان الـ IP الخاص بالاستضافة. وبذلك السجل يخدم ملايين المستخدمين.
- 6 اجابة
-
- 1
-
-
ذلك مشروع نهائي كإختبار لك، المطلوب به تطوير نظام توصية كتب لمكتبة رقمية، لتحسين تجربة المستخدم من خلال اقتراح كتب تناسب اهتماماته بناءً على بيانات معينة، والبيانات تشمل: عناوين الكتب. أنواع الكتب (التصنيفات مثل رواية، خيال علمي، تاريخ، وخلافه). ملخصات الكتب. تقييمات الكتب. وبعد البحث عن مجموعة بيانات مناسبة أي Dataset، عليك معالجة النصوص من خلال مكتبات مثل NLTK أو spaCy، والنظام يجب أن يستخدم تقنيات الذكاء الاصطناعي، وبالأخص المحولات Transformers، لتحليل النصوص وإنشاء توصيات دقيقة بناءًا على تفضيلات المستخدم، ويتوفر Sentence Transformers من Hugging Face. بالتالي عليك فهم تفضيلات المستخدم، حيث تستقبل مدخلات من المستخدم، كنوع الكتب المفضل لديه أو وصف لما يبحث عنه، واعتمادًا على تلك المدخلات، ستقترح كتبًا مناسبة. أيضًا معالجة النصوص بتحليل ملخصات الكتب مثلاً، وذلك باستخدام تقنيات معالجة اللغة الطبيعية NLP، وستحولها إلى Text Embeddings، وهي تمثيلات رقمية للنصوص يمكن للكمبيوتر فهمها. ثم إنشاء نظام التوصية من خلال استخدام التضمينات النصية لقياس التشابه بين تفضيلات المستخدم وبين الكتب في قاعدة البيانات، ولديك أدوات مثل FAISS أو Annoy للبحث بسرعة عن الكتب الأكثر تشابهًا. وتفقد مكتبة scikit-learn لتجربة مقاييس تشابه إضافية مثل Cosine Similarity أو لتطبيق تقنيات التجميع Clustering.
-
الأفضل إنشاء دالة شاملة لتحليل القيم المفقودة: def analyze_missing_values(df): missing_df = pd.DataFrame({ 'Column': df.columns, 'Missing_Count': df.isna().sum().values, 'Missing_Percentage': (df.isna().sum().values / len(df) * 100).round(2), 'Data_Type': df.dtypes.values }) ثم الترتيب حسب عدد القيم المفقودة: missing_df = missing_df.sort_values('Missing_Count', ascending=False) ثم عرض الملخص: print(f"Total columns: {len(df.columns)}") print(f"Columns with no missing values: {len(missing_df[missing_df['Missing_Count'] == 0])}") print(f"Columns with missing values: {len(missing_df[missing_df['Missing_Count'] > 0])}") print("\n" + "="*60) ثم عرض جميع النتائج: with pd.option_context('display.max_rows', None, 'display.max_columns', None): print(missing_df.to_string(index=False)) return missing_df ولا تنسى استدعاء الدالة: missing_analysis = analyze_missing_values(data_train)
- 11 اجابة
-
- 1
-