جدول المحتويات:

المساعد الصوتي المنشط - الحد الأقصى: 10 خطوات
المساعد الصوتي المنشط - الحد الأقصى: 10 خطوات

فيديو: المساعد الصوتي المنشط - الحد الأقصى: 10 خطوات

فيديو: المساعد الصوتي المنشط - الحد الأقصى: 10 خطوات
فيديو: 10 نصائح لضمان حدوث الحمل مع المنشطات |د. ريهام الشال 2024, يوليو
Anonim
المساعد الصوتي المنشط - MAX
المساعد الصوتي المنشط - MAX

مرحبًا في هذا Instructable ، سأتحدث عن كيفية إنشاء روبوت دردشة MAX (أسمي نفسي !!!)

مع بعض التنفيذ ، يمكنك جعل chatbot هذا متحكمًا في الصوت أو باستخدام برامج مختلفة ، يمكنك جعله مساعدًا صوتيًا. أنا هنا لن أتحدث عن ذلك لأن كل شخص يمكنه حقًا إجراء هذا التنفيذ بسهولة.

لذا يرجى من الجميع دعمني …….

أول تعليمات لي !!!!!!!

الشعور بالتوتر بشأن ما سيحدث ……………….

الخطوة الأولى: التعرف على المسابقة

معرفة عن المسابقة
معرفة عن المسابقة
التعرف على المسابقة
التعرف على المسابقة

مرحبا المهندسين والمصممين ……..

أنا نفسي طالب في علوم الكمبيوتر أحب ممارسة الألعاب ودائمًا ما ألهمني استخدام أجهزة الكمبيوتر. أتحدث باختصار ، أحب أن أعرف كيف تعمل كل هذه الأشياء الموجودة حاليًا. !!!) للبحث عن الأشياء وتعلمها.

لذا ذات يوم أتيت أمام شاشة Instructables. لقد أذهلتني حقًا من خلال مشاريع مختلفة مع مجموعة متنوعة من الأفكار في مختلف الجوانب ، ثم من ذلك اليوم أواصل مسيرتي معها ، لقد استمتعتني صفحة المسابقة حقًا بكل من الجوائز والمشاريع التي تم تقديمها من قبل مختلف الأشخاص من جميع أنحاء العالم. العالمية.

VOICE ACTIVATED CHALLENGE هو أول منصة لي فيما يتعلق بكتابة Instructable.

لقد استمتعت بالجوائز كثيرًا (نعم !!! كثير جدًا ……..).

كما أرغب في مشاركة معرفتي في مجال أجهزة الكمبيوتر وتقنياتها للآخرين حول كيفية عمل الأشياء المختلفة بالفعل.

في هذا Instructable ، أوضح لك كيفية إنشاء مساعدك الصوتي المنشط.

نظرًا لأنه أول Instructable خاص بي ، فقد يكون هناك الكثير من الأخطاء (على الرغم من أنني أعتقد أن كل هذه الأخطاء قد تم إصلاحها) ، فاغفر لذلك.

وبالتالي…

لنبدأ الرحلة …………………

الخطوة الثانية: أين عرفت عن الأشياء؟

أين عرفت عن الأشياء؟
أين عرفت عن الأشياء؟
أين عرفت عن الأشياء؟
أين عرفت عن الأشياء؟
أين عرفت عن الأشياء؟
أين عرفت عن الأشياء؟

سيكون هذا سؤالًا رئيسيًا أعتقد أن معظم عقولك قد تمر ………

لدي شغف كبير بالذكاء الاصطناعي [AI] من دراستي ، ومن ذلك قمت بالبحث كثيرًا عن الموارد للدراسة وتطوير نموذج بمفردي.

في البداية كان الأمر صعبًا للغاية (حالة حقيقية) حيث فهمت أنه كان موضوعًا شاسعًا للغاية وليس من السهل التعامل معه على الإطلاق.

تشمل الكتب التي تم البحث عنها ما يلي:

  1. الذكاء الاصطناعي نهج حديث
  2. الذكاء الاصطناعي في إصدار الحادي والعشرين من القرن الثاني عشر
  3. تعلم عميق

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

ثم وجدت اهتمامًا بذلك ، فطوال الإجازة بعد المدرسة بدأت أتعلم عنها بعمق أكبر.

في ذلك الوقت ، تعلمت أيضًا العديد من لغات البرمجة (C ++ ، C ، Python ، Java….) ، وهو أمر مثير جدًا للاهتمام.

عند قراءة المزيد حول هذا الموضوع ، فهمت شيئًا واحدًا مهمًا …………………..

لغات البرمجة هي الأساس لكل عملية تعلم الآلة

التعلم الآلي هو عملية تطبيق الذكاء الاصطناعي

مع فهم كبير للغات البرمجة والأشياء المختلفة التي يمكن القيام بها بالاعتماد على المبرمج لجعل الكمبيوتر يقوم بأي شيء من أجلنا.

لذلك قررت إنشاء قاعدة جيدة للغات التي جعلتني أفهم المفاهيم الواردة في الكتاب الذي ذكرته بالفعل

أنت أيضًا يمكنك فعل ذلك ……

هناك العديد من مواقع الويب الموجودة على الويب لتعليم لغات البرمجة بحرية

حتى تتمكن من تصفح الإنترنت لفهم المزيد عنها إذا كنت ترغب في ………

الخطوة 3: لنبدأ

قبل أن أبدأ في كتابة Instructable ، فكرت في كتابة شيء يمكن فهمه من خلال:

  1. الأشخاص الذين لديهم خبرة في البرمجة
  2. الأشخاص الذين ليس لديهم أي خلفية عن الترميز

لذلك أعتقد أنني فعلت الشيء دون أي أخطاء (آمل).

لذلك قررت إنشاء روبوت دردشة يمكنه التحدث إلى المستخدم والرد وفقًا لحديثنا.

لا يستطيع البرنامج (مجموعة التعليمات) التفكير بمفرده. يحتوي على قاعدة بيانات (مكان يتم فيه تخزين البيانات) للحقائق والقواعد ، والتي يتم البحث عنها في وقت التحدث لتقديم أفضل استجابة ممكنة تتعلق بالمستخدم.

إنه يعمل من خلال عملية المطابقة اعتمادًا على الأشياء التي تم إدخالها ، فقط في حالات نادرة يتم مطابقة الجملة بأكملها بجملة كاملة.

الخطوة 4: كيف تعمل في الواقع؟

الخطوة 1:

يكتشف MAX ما إذا كان المستخدم قد أعطى أي إدخال فارغ. إذا قدم المستخدم مدخلات بهذه الطريقة ، فإنه يأخذ الحقيقة من قاعدة البيانات الثابتة للرد.

أه آسف ……

نسيت أن أقول ،

قاعدة البيانات الثابتة: المكان الذي يتم فيه تخزين الاستجابات المضمنة. ردود مثل:

1. عندما لا يفهم MAX ما يتحدث عنه المستخدم.

2. عندما يعيد المستخدم نفسه.

3. لبيانات التحية.

4. عندما لا يكتب المستخدم أي شيء ويواصل الضغط على Enter.

الكلمة الرئيسية: كلمات لها معنى خاص.

الخطوة 2:

هناك بعض الاستجابات المضمنة التي يمكن لـ MAX التعرف عليها بسهولة وبسهولة. يجد وجود أي من هذه الجملة بعد تحديد مدخلات المستخدمين ويتذكر الكلمة الأساسية المرتبطة.

الخطوه 3:

إذا لم يتم العثور على جملة مضمنة حتى بعد تجزئة الجملة المحددة ، فإن MAX يبحث عن الكلمة الأساسية المحددة لتعريف السياق. إذا لم يتم العثور على سياق ، فإن الهدف التالي هو جعل المستخدم يتحدث عن الموضوع بشكل أكثر تعمقًا وبطريقة محددة.

الخطوة الرابعة:

من قاعدة البيانات الثابتة التي تحدثنا عنها بالفعل ، ستلتقط الاستجابة التي تعتمد على ما تحدث عنه المستخدم.

الخطوة الخامسة:

هناك أي حاجة لتغيير الكلمات التي ستفعلها بنفسها (مثل تحويل MY إلى YOUR ، إلخ …)

الخطوة 5: دعنا نبرمج …………

أنا أستخدم Turbo C IDE 3.0 لأن هذا هو IDE [بيئة التطوير المتكاملة]

قبل الترميز ، دعونا نرى بنية نموذج ملف البيانات.

يتعرف MAX على كلمات رئيسية معينة.

إذا تم العثور على هذه الكلمات الأساسية في الإدخال الذي قدمه المستخدم ، فسيتم اختيار الاستجابة المقابلة من ملف البيانات ويتم اختيارها وعرضها على الشاشة.

يتم فصل الكلمة الأساسية في ملف البيانات عن الردود بواسطة الرمز @ KWD @.

الرمز المميز هو أصغر جزء من كل جوانب البرمجة.

يشير هذا الرمز المميز إلى أن السطر التالي عبارة عن كلمة رئيسية وليست ردًا.

@ KWD @ مرحبا

مرحبا كيف حالك

مرحبا عزيزتي !

أنا بخير

كيف كان عملك؟

كم عمرك؟

@ KWD @

انا سوف

سوف تفعل ذلك. أنا أؤمن بذلك أيضًا …

هل ستكون قادرًا على القيام بذلك؟

هل ستثق بي؟

@ KWD @

نعم

هل أنت متأكد ؟

كيف يمكنك أن تكون متأكدا لهذه الدرجة ؟

@ KWD @

لا

يبدو أنك متشائم للغاية.

لا تقل لا أبدا…

لا تستصعب شئ أبدا

لا تكن وقحًا أبدًا

لا تكن مخطئا أبدا !!!!

لا أقول أنني لا أستطيع القيام بذلك

لا تكن متفائلا أبدا

@ KWD @

الحاسوب

أعرف كيف أعمل على الكمبيوتر.

أنت تستخدم حاليًا جهاز كمبيوتر. حق ؟

على سبيل المثال ، "مرحبًا" ، من القاموس أعلاه ، سيعطي MAX أحد الردود التالية:

مرحبًا ، كيف حالك عزيزي!

أنا بخير

كيف كان عملك؟

كم عمرك؟

الخطوة 6: الحصص

بمجرد أن يتضح هذا الشيء ، دعونا الآن نحدد هياكل البيانات التي سنستخدمها.

نقوم بإنشاء فئتين:

progstr - يستخدم هذا لتخزين المعلومات المتعلقة بإدخال المستخدم.

Resp - يستخدم هذا لتخزين المعلومات حول الردود المختلفة

فئة progstr {

عام:

مستخدم char [MAX_USER_INPUT] ؛

كلمة شار [30]؛

مفتاح int.

مفتاح int

int nullip ؛

// البناء

progstr () {keyno = -1 ، nullip = 0 ؛ keyfound = 0 ؛

}

} ip؛

فئة الاحترام

{

int tot_resp؛

int last_resp؛

رد محارف [MAX_RESP_NO] [MAX_RESP_LEN] ؛

كلمة شار [MAX_KWD_LEN] ،

عام:

// البناء

Resp ()

{

tot_resp = 0 ؛

last_resp = -1 ؛

}

int getcount ()

{

إرجاع last_resp ؛

}

كلمة إضافة باطلة (حرف str [MAX_KWD_LEN])

{

strcpy (كلمة ، str) ؛

}

char * getword ()

{

عودة كلمة

}

عنوان باطل (حرف حرف [MAX_RESP_LEN])

{

strcpy (الردود [++ last_resp] ، str) ؛

}

// تم تحديده لاحقًا

display_resp باطلة (عدد int) ؛

quit_display_resp باطلة (عدد int) ؛

};

بالنظر إلى الدرجة الأولى ،

يتم استخدام userip لمصفوفة الأحرف لتخزين الجملة التي يوفرها المستخدم.

يتم استخدام كلمة رئيسية مصفوفة أخرى لتخزين الكلمة الأساسية ، إن وجدت ، الموجودة في هذا الإدخال. إذا تم العثور على كلمة رئيسية ، فإننا نجعل الأمر int keyfound إلى 1 آخر ، ويبقى 0 ، حيث يتم تهيئته إلى 0 في المنشئ.

keyno يخزن رقم المفتاح المقابل للكلمة الرئيسية المقابلة.

يشير nullip إلى ما إذا كان المستخدم قد أعطى أي مدخلات Null ، أي أنه يقوم فقط بالضغط على enter دون القيام بأي شيء آخر.

الآن دعونا نأتي إلى الفصل الثاني ، Resp.

يشير عضو البيانات الأول ، tot_resp ، إلى عدد الردود الإجمالية لكلمة رئيسية معينة.

يتم تخزين الردود بالفعل في الردود [MAX_RESP_NO] [MAX_RESP_LEN] ويتم تخزين الكلمة الأساسية المقابلة في كلمة المصفوفة.

المُنشئ: يُستخدم هذا لتهيئة العدد الإجمالي للردود إلى 0. لماذا تتم تهيئة last_resp إلى -1 سيكون واضحًا عندما تنظر إلى الوظيفة add_resp.

int getcount ():

تُستخدم هذه الوظيفة للحصول على عدد الردود الموجودة لكلمة رئيسية معينة.

كلمة إضافة باطلة (حرف str [MAX_KWD_LEN]):

يستخدم هذا لإضافة كلمة أساسية.

char * getword ():

تُستخدم لإرجاع الكلمة الأساسية لكائن معين من فئة resp.

عنوان باطل (…):

يستخدم هذا لإضافة استجابة مقابلة لكلمة رئيسية معينة.

display_resp باطلة (int):

يستخدم هذا لعرض الاستجابة للمستخدم المقابلة لرقم فهرس معين للردود. (في الواقع يفعل أكثر من ذلك!).

quit_display_resp باطل (int):

الفرق بين هذه الوظيفة والوظيفة المذكورة أعلاه هو أنها تستخدم في النهاية عندما يغادر المستخدم. لذلك ، فإنه لا يعيد المطالبة إلى المستخدم.

الخطوة 7: الوظائف

initialize_global () باطل

{

strcpy (wordin [0]، "ARE") ؛

strcpy (wordout [0]، "AM") ؛

strcpy (wordin [1]، "AM") ؛

strcpy (wordout [1] ، "ARE") ؛

strcpy (wordin [2]، "WERE") ؛

strcpy (wordout [2] ، "WAS") ؛

strcpy (wordin [3]، "WAS") ؛

strcpy (wordout [3]، "WERE") ؛

strcpy (wordin [4] ، "أنت") ؛

strcpy (wordout [4] ، "ME") ؛

strcpy (wordin [5]، "I") ؛

strcpy (wordout [5] ، "أنت") ؛

strcpy (wordin [6]، "YOUR") ؛

strcpy (wordout [6] ، "MY") ؛

strcpy (wordin [7]، "MY") ؛

strcpy (wordout [7]، "YOUR") ؛

strcpy (wordin [8]، "أنا") ؛

strcpy (wordout [8]، "YOU'VE") ؛

strcpy (wordin [9]، "YOU'VE") ؛

strcpy (wordout [9]، "أنا") ؛

strcpy (wordin [10]، "أنا") ؛

strcpy (wordout [10] ، "أنت") ؛

strcpy (wordin [11]، "YOU'RE") ؛

strcpy (wordout [11] ، "أنا") ؛

strcpy (wordin [12]، "ME") ؛

strcpy (wordout [12] ، "أنت") ؛

strcpy (wordin [13] ، "أنت") ؛

strcpy (wordout [13] ، "ME") ؛

}

دعونا الآن نكتب وظيفة لعرض الاستجابات للمستخدم. يتم استخدام أول عبارة if في الحلقة for لارتكاب خطأ كتابي متعمد لجعلها تبدو أكثر إنسانية مثل ؛-). يتم اختيار حرف واحد بشكل عشوائي لكتابة الخطأ. يتم النظر بشكل منفصل في الحالات الخاصة مثل New Line و Backspace. (فكر لماذا؟). الآن أقدم شيئًا جديدًا. شخصية خاصة - *. يمثل Char * كل النص الذي تم العثور عليه بعد الكلمة الأساسية المحددة وقبل إحدى علامات الترقيم التالية.

على سبيل المثال ، ضع في اعتبارك إدخال المستخدم

AMIT> هل يمكنني الذهاب إلى الداخل غدًا؟

MAX> ماذا لو لم تذهب إلى الداخل غدًا؟

لا يتم تخزين الجزء الذي تحته خط في القاموس ، ولكنه مأخوذ من إدخال المستخدم. في الملف MAX. Dat ، نقوم بتخزين هذه المعلومات بصيغة

هل استطيع

ماذا لو لم تفعل *

تطلب نجمة (*) من البرنامج نسخ كل ما يتم كتابته بعد الكلمة الأساسية (هنا CAN I) في إدخال المستخدم ، كما هو. آمل أن تكون وظيفة * ككلمة رئيسية خاصة الآن واضحة. لذا ، دعونا ننظر في قضية أكثر تعقيدًا.

AMIT> هل يمكنني الذهاب للتسوق؟

MAX> ماذا لو لم تذهب للتسوق؟

يجب أن نقوم ببعض التحول أيضًا. عندما نفكر في التحول ، يتم تقسيم الجملة إلى الأقسام الثلاثة التالية:

  • نص قبل نقل الكلمة. (هنا ، اذهب للتسوق مع)
  • الكلمة المنقولة. (هنا ، الخاص بك ، بدلا من بلدي)
  • نص بعد تبديل الكلمات الرئيسية. (ها انا ؟)

الخطوة 8: يمكن معالجة القضايا عن طريق ………

الخطوة 9: البحث عن كلمة رئيسية في مدخلات المستخدم

MAX_KEY يشير إلى عدد الكلمات الأساسية في ملف DAT.

نحن هنا نبحث ببساطة عما إذا كانت الكلمة الأساسية موجودة في مدخلات المستخدم.

الخطوة 10: الخاتمة

هذا كل شئ ………

كنت قد فعلت ذلك !!!!!!!

أعتقد أن الجميع فهم الأشياء بوضوح ……

موصى به: