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

Kais Hasan

الأعضاء
  • المساهمات

    2593
  • تاريخ الانضمام

  • تاريخ آخر زيارة

  • عدد الأيام التي تصدر بها

    26

كل منشورات العضو Kais Hasan

  1. مرحبًا، هي عبارة عن اختبار أصغر جزء ممكن من الكود، مثلًا اختبار تابع ما، أو خاصية جزئية ما. طبعًا تقوم باختبار جميع هذه الأجزاء الموجودة في الكود. بالطبع يتم ذلك عن طريق الكود نفسه بحيث تقوم بكتابة كود يقوم بإنشاء بيانات تستعملها في عملية اختبار الكود. تحياتي.
  2. مرحبًا، من فضلك قومي بمشاركة لقطات شاشة توضح الكود المكتوب و الخطأ الظاهر حتى يمكننا مساعدتك. تحياتي.
  3. هناك قسم للتعليقات أسفل كل درس، يمكنك وضع السؤال في التعليقات. تحياتي.
  4. و عليكم السلام، الهدف منها هو الحصول على العنصر التالي. مثلًا في حال كنت تستعمل generator. مثال على ذلك: def odd_numbers(start, end): for i in range(start, end): if i % 2 == 1: yield i odd_generator = odd_numbers(0, 100) print(next(odd_generator)) # 1 print(next(odd_generator)) # 3 بشكل عام أي غرض يدعى iterator يمكننا تطبيق هذا عليه. هذا التابع لن تحتاج إلى استعماله في البرامج العادية، بشكل عام من الممكن أن تضطر إلى استعماله في حال كنت تريد كتابة صنف خاص بك يدعم فكرة ال iterator.. و هو شيء متقدم نوعًا ما. تحياتي.
  5. و عليكم السلام، في حال كانت جميع الأعمدة لا تحوي على رأس header فيمكنك القيام بذلك بسهولة بالشكل التالي: pd.read_csv("path/to/file.csv", names=["Column_1", "Column_2", "Column_3", "Column_4"]) أما في حال كان هناك بعض الأعمدة لا تحوي على رأس و بعضها الآخر يحوي، فهذه مشكلة كبيرة في الملف ذاته، يمكنك حلها عن طريق قراءة الملف و أخذ أسماء الأعمدة كلها، و استبدال الفارغ منها، و لكن ينصح بالقيام بذلك بشكل يدوي، فالمشكلة هي في الملف نفسه و يجب إصلاحها فيه، كما أن اصلاحها فيه أسهل بكثير من كتابة كود للقيام بذلك. تحياتي.
  6. مرحبًا، من فضلك قومي بإرفاق سؤالك في التعليقات أسفل الدرس، قسم الأسئلة العامة لا يجب طرح أسئلة الدورات فيه، فهكذا لن نعرف تمامًا ما الذي ترغبين القيام به. أيضًا عند طرح سؤالك في التعليقات أسفل الدرس من فضلك أرفقي ملفات المشروع على شكل ملف مضغوط حتى يمكننا رؤية الكود كله و معرفة الخطأ. تحياتي.
  7. مرحبًا، في حال كان هذا السؤال متعلق بأحد الدروس في الدورات فمن الأفضل إضافة سؤالك في التعليقات أسفل الدرس. تحياتي.
  8. بشكل عام عدد الأعمدة لا يكون كبير، و من الأسهل القيام به بشكل يدوي بدل كتابة كود للقيام بذلك، فهو لن يعتمد على أي منطق برمجي، فقط تغيير أسماء. أي ببساطة افتح الملفات و قم بتغيير الأسماء فيها قبل قراءتها في الكود. تحياتي.
  9. و عليكم السلام، بشكل عام هذا يختلف بين مشروع و آخر. و لكن من الممكن وضع بعض الخطوات العامة كما يلي: بعد تحديد فكرة المشروع طبعًا، يمكننا اعتبار المشروع أنه حل لمشكلة، فهذه هي مشاريع ال AI مثلًا حل مشكلة التعرف على محتوى صورة. لذلك يجب البحث عن الأعمال السابقة التي قامت بمحاولة حل هذه المشكلة، هذا يشمل قراءة بعض المقالات، و في مستوى متقدم أكثر قراءة أوراق بحثية كثيرة. في المشاريع المعقدة قد تستمر هذه الخطوة لأشهر! هذه الخطوة ستحدد كل ما سنقوم به في الخطوات التالية. بعد نهاية الخطوة السابقة نكون قد أصبح لدينا فكرة عن التقنيات التي يمكن استعمالها، سواء لمعالجة البيانات أو لبناء النموذج و تدريبه. لذلك علينا تحديد البيانات التي سنقوم بالتدريب عليها، قد يكون لدينا بيانات خاصة بنا في المشروع أو في حال عدم وجودها فمن خلال الخطوة 1 سنكون اطلعنا على أشهر مجموعات البيانات و يمكننا الاختيار بينها. معالجة البيانات، و هي خطوة مهمة جدًا، فالكثير من البيانات تحتاج بعض عمليات المعالجة قبل تدريب النموذج عليها، مثل تغيير حجمها أو تحويلها إلى صور رمادية و غيرها الكثير من الأمور. بناء النموذج، و هنا أيضًا نكون نعرف ما هو النموذج فقد تم تحديده في الخطوة 1. و لكن قد يكون علينا تجريب عدد طبقات مختلف في كل مرة أو غيرها من الأمور التي يمكن تغييرها في النموذج، لذلك دائمًا نضع الخيارات التي يجب تجريبها، و نقوم بالبدء بأبسطها فهو سيكون أسرع خيار و بالتالي سنحصل على معلومات عما نحتاجه بشكل أسرع. بعد الانتهاء من الخطوة 4 يجب القيام بتدريب النموذج، هذه العملية تأخذ وقتًا طويلًا جدًا حسب حجم البيانات و النموذج و العتاد المستعمل في عملية التدريب. تقييم النموذج. طبعًا هذه العمليات تكرارية، أي بعد الانتهاء من الخطوة 6 و معرفة مدى جودة النموذج، سنضطر غالبًا إلى القيام ببعض التعديلات لحل بعض المشاكل، نعود إلى الخطوة 4 بشكل عام فأغلب التعديلات تكون على النموذج و لكن في بعض الأحيان قد نضطر إلى العودة حتى الخطوة 1 ! و لكن هذا نادر جدًا طالما أننا قمنا بإعطاء الخطوة 1 الوقت الكافي. تحياتي.
  10. مرحبًا، BeautifulSoup تقوم بجلب صفحة ويب و تسهل الوصول إلى العناصر الموجودة فيها لجلب مختلف البيانات منها. بالتالي هي فعليًا تتعامل مع نسخة ثابتة من الموقع و الهدف منها بشكل أساسي جلب البيانات. أما Selenium فيمكننا من محاكاة عملية الدخول إلى أي موقع و القيام بمختلف العمليات ضمنه، أي بشكل عام الهدف منه هو أتمتة بعض العمليات. مثلًا لنفترض هناك موقع تريد أن تسجل دخول إليه كل فترة معينة و القيام ببعض العمليات ضمنه (مثلًا شراء غرض ما). يمكن أتمتة هذا الشيء بواسطة Selenium. تحياتي.
  11. هذا يعتمد على الاستعمال نفسه. في حال كنت تريد تدريب نموذج واحد فقط على كلا الملفين فيجب دمجهما. و هذا هو الاستعمال الشائع. في حال كان لديك استعمال آخر يمكنك ذكره حتى يمكنني إعطاءك جواب دقيق. تحياتي.
  12. مرحبًا، حتى يمكنك الحصول على بيانات من عدة مصادر (هنا ملفين مثلًا) فيجب أن تكون البيانات لها نفس الخصائص في كل المصادر أو تقوم بأخذ المشترك بينها حتى تتجنب الحصول على أعمدة فارغة كثيرة. في حالتك هذه و بإطلاع سريع على الملفين يبدو أن الملفين لهما نفس الأعمدة و لكن مع اختلاف بتسمية العمود بشكل بسيط، لذلك تكون الخطوة الأولى هي تحميل كل ملف على حدى و توحيد الأسماء، مثال بسيط هناك عمود اسمه ST slope في أحد الملفات و لكن في الملف الآخر اسمه Slope of ST، بالتالي وضوحًا يجب تعديل أحدهما إلى الآخر أو تعديل كليهما إلى اسم مشترك آخر. و هذا ينطبق على بقية الأعمدة، أما في حال وجود أعمدة غير مشتركة فيجب حذفها. أمر آخر يجب القيام به هو توحيد شكل القيم و نمطها، مثلًا في أحد الملفات كان يتم وضع قيم نصية للدلالة على أن الشخص معه مرض أم لا، بينما في الملف الآخر يتم وضع 0 أو 1، بالتالي عليك تحويل القيم النصية إلى 0 و 1 أيضًا. بعد القيام بهذه العمليات و بافتراض أنك قمت بذلك باستعمال Pandas و أصبح لديك غرضين DataFrame يمثلان البيانات و لكن مع أعمدة متوافقة في الاسم و النوع، يمكنك استعمال الدالة concat لدمجهما. تحياتي.
  13. مرحبًا، مصطلح "أصعب" غير دقيق. فهناك صعوبات خاصة بكل بيانات و لا يوجد ما هو أصعب بشكل عام. مشاكل البيانات الطبية بشكل أساسي هي قلتها، فمن الصعب بشكل عام الحصول عليها بسبب الخصوصية الخاصة بالمرضى. كما أن العمل في هذا المجال حساس جدًا، فالتعامل يكون مع حياة الانسان و هو أمر يجعل من الصعب الوثوق بآلة ليس من الواضح تمامًا بعد كيف تعمل و كيف تتعلم ما تتعلمه. و لذلك بشكل عام يتم استعمال الأدوات التي يتم تطويرها في هذا المجال كمساعدة للطبيب نفسه الذي هو من يقوم بالقرارات النهائية. صعوبة أخرى هي حاجتك لوجود طبيب يعطيك بعض المعلومات عن طبيعة البيانات و ما الذي يجب التركيز عليه و ما إلى هنالك، من غير المجدي فقط تطبيق نموذج عام للصور بدون أي تعديل، ولو أنه سيعطي نتائج جيدة في كثير من الأحيان و لكن كما سبق و ذكرت يجب أن يكون هناك معرفة لما يقوم به النموذج و هذا يتطلب معرفة بالبيانات و طبيعتها لا يمكن الحصول عليها إلا من خلال وجود طبيب في فريق العمل. تحياتي.
  14. مرحبًا، نسيان التعليمات البرمجية و غيرها من التفاصيل التي يمكن البحث عنها على غوغل بسهولة كبيرة هو أمر عادي، ليس عليك حفظ هذه التفاصيل و يمكنك في كل مرة البحث عنها، مع الخبرة ستصبح بديهية لديك و قد تحفظها. أما في حال كان المقصود الأفكار فالأفكار لا تنسى، طالما أنك فهمت الفكرة لا يمكن أن تنساها، بالتالي نسيان فكرة ما غالبًا يدل على عدم فهمها بشكل كامل، و حينها يمكنك السؤال عنها في أسف الدرس الخاص بها. أي بشكل عام الأفكار لا تنسى ففهمك لأي فكرة يجعلك قادرًا على استعمالها عندما يلزم الأمر، و لكن قد يأتي موقف يجب استعمالها فيها و لا تعرف ذلك، هذا أيضُا عادي فالربط بين المواقف و الأفكار المختلفة التي لديك يحتاج إلى تدريب و خبرة. في حال كان الجواب ليس كافيًا يمكنك ذكر مثال لتوضيح ما تنساه حتى يمكنني تخصيص الجواب بشكل أفضل. تحياتي.
  15. مرحبًا، هذه ليست نفس المشكلة و إنما هي شيء له علاقة بأسماء الملفات يجب القيام به في جافا و إلا ستحدث مشاكل. كما تلاحظ في البداية يتم القيام بترجمة الملف عن طريق javac لإنشاء الصنف و الذي هو هنا Upp (لاحظ أنه أنشأ ملف إضافي اسمه Upp.class) و من ثم يتم محاولة تنفيذ الكود عن طريق java و لكن اسم الملف مختلف عن اسم الصنف الذي كتبته و هذا ما لا يجب القيام به في جافا. تحياتي.
  16. مرحبًا، لقد حللنا المشكلة، كان هناك عدة نسخ من java و هذا يبدو أنه سبب المشاكل، إزالة تثبيت كافة النسخ و إزالة تثبيت الإضافة من ثم إعادة تثبيت أحدث نسخة java و إعادة تثبيت الإضافة حل المشكلة. حاليًا دائمًا يكفي أن تقوم بتنفيذ الكود كما أظهرت لك، نقر باليمين على الملف و اختيار run code. تحياتي.
  17. any desk هو برنامج يمكنني من استعمال جهازك بشكل تفاعلي، بحيث يمكنك رؤية ما أقوم به. في حال لم يكن لديك قم بتنزيله من هنا: https://anydesk.com/en/downloads/windows بعد تنزيله سيظهر لك عنوان مؤلف من أرقام، قم بنسخه و لصقه هنا. تحياتي.
  18. من فضلك أرفق الكود الخاص بك على any desk، فهذا أسرع من التعليقات هنا. تحياتي.
  19. هذا غريب جدًا! هل يمكنك تنفيذ نفس هذه التعليمات و لكن في سطر الأوامر cmd، أي خارج vscode. كما أنني أريد لقطة شاشة لما ظهر عند تشغيل الكود باستعمال ctrl+F5. تحياتي.
  20. ماذا كان الخرج من تنفيذ الخطوات؟ لم ترفق لقطة شاشة له. كما أنه يجب تنفيذ java -version و ليس فقط java. تحياتي.
  21. يبدو أنك تقوم بتشغيل الملف بشكل خاطئ، لقد قمت بتجربة الأمر لدي و عمل بشكل صحيح. أعود للتذكير أنه يجب إغلاق ال vscode و إعادة تشغيله بعد ذلك نقوم بالضغط على ctrl+F5 ليتم تشغيل الكود. في حال لم ينجح الأمر من فضلك قم بفتح سطر الأوامر في vscode عن طريق الضغط على Terminal و اكتب java -version و أرفق لقطة شاشة للنتيجة. تحياتي.
  22. نعم، حاليًا يجب عليك إغلاق vscode من ثم إعادة تشغيله. و حاول تشغيل الكود. تحياتي.
  23. يبدو أنك قمت بهذه الخطوة بشكل مسبق. في هذه الحالة يكفي القيام بالخطوة الأولى التي ذكرتها الخاصة بإضافة ال vscode ثم أعد التنفيذ. تحياتي.
  24. مرحبًا، لقد ذكرت في تعليقي السابق أنه عليك اختيار x64 installer. تحياتي.
  25. في هذه الحالة عليك إعداد ال vscode حتى يصبح بإمكانك تشغيل أكواد الجافا عليه. في البداية عليك تنزيل الإضافة التالية في vscode: https://marketplace.visualstudio.com/items?itemName=vscjava.vscode-java-pack ثم عليك تنزيل أدوات التطوير الخاصة بجافا من الرابط التالي: https://www.oracle.com/java/technologies/downloads/?er=221886#jdk22-windows قم بتنزيل الخيار x64 installer من ثم قم بتثبيته بعد انتهاء التنزيل. قد يتطلب هذا إعادة تشغيل الجهاز (سيذكر البرنامج ذلك في حال كان مطلوبًا). بعد القيام بهذه الخطوات أعد المحاولة. تحياتي.
×
×
  • أضف...