chatbot للصحة العقلية
التحديثات (2024)
- المشكلات الثابتة المتعلقة بنصوص Python التي لا تعمل بسبب إصدارات وطرق المكتبة القديمة
- المتطلبات المضافة. txt لسهولة تثبيت التبعيات
قبل تشغيل البرامج النصية ، تأكد من تثبيت إصدار Python <= 3.8 (ويفضل أن يكون Python 3.8 ؛ مطلوبًا لتثبيت بعض المكتبات مثل TensorFlow).
تم تنفيذ هذا المشروع لمشروع بحثي تحت قيادة أستاذ في جامعتي مع مجموعة بيانات ذاتية النقر. مجموعة البيانات التي استخدمناها سرية ؛ وبالتالي ، لقد استخدمت مجموعة بيانات Kaggle عينة. قررت أن أجعل البرامج النصية مفتوحة المصدر لإجراء مجموعة من الدردشة المختلفة من الصفر في بيثون منذ أن ناضلت مع هذه الموارد أثناء بحثي.
الدافع وراء هذا المشروع
في عام 2017 ، ذكرت المسح الوطني للصحة العقلية أن واحدًا من بين كل سبعة أشخاص في الهند يعانون من اضطرابات عقلية ، بما في ذلك الاكتئاب والقلق. جعل الوعي المتزايد بالصحة العقلية مصدر قلق رئيسي للتنمية. احتاج ما يقرب من 150 مليون شخص في الهند إلى تدخلات ، حيث واجهت الطبقة المنخفضة والمتوسطة عبئًا أكثر من الأشخاص الذين يتلقونها. هذا المشروع هو محاولة لجعل الصحة العقلية أكثر سهولة. يمكن أن يستكمل هذا العامل المحادثة مع الأطباء لجعله أكثر فاعلية ومثمرة.
تصنيفات chatbots
يمكن تصنيف chatbots على أساس سمات مختلفة -

كان بحثي يرتبط بنهج التصميم ، وهي قائم على القواعد ، القائمة على الاسترجاع ، والقائمة على القائمة.
- chatbots المستندة إلى القواعد: يستخدم chatbot المستند إلى القواعد رسم خرائط أو نمط بسيط يعتمد على القواعد لتحديد الاستجابات من مجموعات من الاستجابات المحددة مسبقًا. لا تنتج هذه الأنظمة أي نص جديد ؛ بدلاً من ذلك ، يختارون إجابة من قائمة محددة مسبقًا.
- chatbots المستندة إلى الاسترجاع: يستخدم chatbot القائم على الاسترجاع مجموعات التعلم الآلي كإجراء استدلال للتقييم. على غرار chatbots القائمة على القواعد ، فإنها لا تولد نصوص جديدة.
- chatbots المستندة إلى التوليد: لا تعتمد النماذج التوليدية على الاستجابات المحددة مسبقًا. يتوصلون إلى ردود جديدة من الصفر. عادةً ما تستخدم تقنيات الترجمة الآلية في النماذج التوليدية ، ولكن بدلاً من الترجمة من لغة إلى أخرى ، "نترجم" من المدخلات إلى الإخراج (الاستجابة). يتم استخدام النماذج التوليدية للإبداع لأنها تتعلم من الصفر.
نظرة عامة على الروبوتات المدربة
تم التقاط مجموعة البيانات من الأسئلة الشائعة حول الصحة العقلية. تتكون مجموعة البيانات هذه من 98 أسئلة وأجوبة حول الصحة العقلية. يتكون من 3 أعمدة - أسئلة وأسئلة وأجوبة.
لاحظ أنه لتدريب chatbot الاسترجاع ، تم تحويل ملف CSV يدويًا إلى ملف JSON . نظرًا لأن هذه ليست مجموعة البيانات الأصلية المستخدمة في البحث (قراءة مقدمة) ، فقد استخدمت فقط 20 صفًا لتدريب النموذج.
يتكون المستودع من ثلاثة أجهزة دفتر للأنواع الثلاثة من chatbots.
بالنسبة للقواعد المستندة إلى القواعد ، تم استخدام TF-IDF مع Tokenizer من NLTK من أجل معالجة البيانات. تم اختبار البيانات المعالجة مقابل النتيجة المتوقعة وتم استخدام تشابه جيب التمام للتقييم.
من أجل الاسترجاع ، تم تدريب العديد من نماذج التعلم الآلي والتعلم العميق ،
- الفانيليا rnn
- LSTM
- BI - LSTM
- جرو
- يتم تدريب نماذج استرجاع CNN على ملفات JSON. بالنسبة لجميع النماذج المذكورة أعلاه ، تم استخدام التنظيم ، واستنادًا إلى دقة التدريب والتحقق من الصحة والخسارة ، تم الاحتفاظ بأفضل نموذج للمقارنات النهائية. وقد لوحظ أن بنية CNN أعطت أفضل النتائج . يتكون النموذج من 3 طبقات - الشبكة العصبية التلافيفية (CNN) + طبقة التضمين + وطبقة متصلة بالكامل.
بالنسبة إلى chatbots المستندة إلى التداول ، تم استخدام NLP منذ أن تمكن NLP من chatbots من تعلم وتقليد أنماط وأنماط المحادثة البشرية . يمنحك الشعور بأنك تتحدث إلى إنسان ، وليس روبوتًا. يقوم بتخطيط إدخال المستخدم إلى نية ، بهدف تصنيف الرسالة للاستجابة المحتملة المحددة مسبقًا.
- تم تدريب نموذج ترميز التشفير على ملف CSV. Decoder Endoder هو نموذج SEQ2Seq ، ويسمى أيضًا نموذج التشفير والرائد يستخدم الذاكرة على المدى القصير لتوليد النص من مجموعة التدريب.
- ماذا يفعل نموذج SEQ2Seq أو Decoder-DecoDer بكلمات بسيطة؟ إنه يتنبأ بكلمة معروضة في إدخال المستخدم ، ثم يتم التنبؤ بكل كلمة من الكلمات التالية باستخدام احتمال حدوث تلك الكلمة.
JSON مقابل CSV
خلال هذا المشروع ، كان الالتباس الأكبر الذي كان لدي هو السبب في أن chatbot استخدم ملف JSON بدلاً من CSV للنموذج القائم على الاسترجاع. لقد أدرجت بعض النقاط التي تجعل المقارنة بين نوعي الملفات -
- تقوم JSON بتخزين البيانات بطريقة هرمية ، والتي هي أفضل بالنسبة إلى chatbot المستندة إلى الاسترجاع ، بالنظر إلى أن chatbot سيتطلب علامات وسياقات.
- يتم تدريب chatbot المستندة إلى الاسترجاع على تقديم أفضل استجابة بناءً على مجموعة من الإجابات المحددة مسبقًا. هذه الاستجابات المحددة مسبقًا محدودة في العدد. يجب توفير العلامة لرسم الخرائط للإدخال إلى الإخراج. بعبارة ببساطة ، يتم تحديد الإدخال الذي قدمه المستخدم (السياق) بواسطة العلامة المقدمة. بناءً على أفضل علامة متوقعة ، يتم عرض المستخدم على أحد الاستجابات المحددة مسبقًا . وبالتالي ، فإن تخزين هذا النوع من البيانات في ملف JSON أسهل بسبب الانضغاط والهيكل الهرمي.
- تم استخدام ملف CSV لتخزين بيانات chatbot التداول. لا يتطلب chatbot التوليد علامات لعمل تنبؤات . من الأسهل تخزين هذه البيانات في ملف CSV نظرًا لأننا بحاجة فقط إلى عمودين - نص الإدخال ونص الإخراج. ستكون إضافة البيانات أو حذفها أسهل في هذه الحالة مقارنةً بملف JSON.
الأهداف المستقبلية
أرغب في البحث في إمكانيات chatbot المستندة إلى الأهمية. لا يمكن أن يلتقط نموذج الترميز المشفر الحالي جميع التبعيات في طبقة وحدة فك الترميز بسبب الطبيعة المدمجة لـ LSTM. يمكن إضافة طبقات الانتباه بعد طبقات LSTM لفك تشفير كل مخرج ديناميكيًا.