قم بإنشاء تطبيق LUIS قابل للتحلل

هام

سيتم إيقاف LUIS في 1 أكتوبر 2025 وبدءا من 1 أبريل 2023، لن تتمكن من إنشاء موارد LUIS جديدة. نوصي بترحيل تطبيقات LUIS إلىفهم لغة المحادثة للاستفادة من دعم المنتج المستمر والقدرات متعددة اللغات.

في هذا البرنامج التعليمي، سوف تكون قادرًَا على إنشاء تطبيق LUIS للاتصالات يمكنه التنبؤ بأهداف المستخدم المختلفة. بنهاية البرنامج التعليمي، يجب أن يكون لدينا تطبيق اتصالات يمكنه التنبؤ بأهداف المستخدم بناءً على النص المقدم من المستخدمون.

سنتعامل مع السيناريوهات المختلفة للمستخدم (الأهداف) مثل:

  • التسجيل من أجل الحصول على خط اتصالات جديد
  • تحديث المستوى الحالي
  • دفع الفاتورة

في هذا البرنامج التعليمي ستتعلم:

  1. تصميم تطبيق LUIS
  2. إنشاء أهداف
  3. إضافة كيانات
  4. إضافة التصريحات
  5. تسمية أمثلة الكلام المنطوق
  6. تدريب التطبيق
  7. نشر التطبيق
  8. الحصول على توقعات من نقطة النهاية المنشورة

تصميم تطبيق LUIS

  1. تسجيل الدخول إلىمدخل LUIS

  2. إنشاء تطبيق جديد من خلال تحديد+New app.

    لقطة شاشة لشاشة إنشاء التطبيق.

  3. في النافذة التي تظهر، أدخل الاسم "Telecom Tutorial"، مع الاحتفاظ بالثقافة الافتراضية،اللغة الإنجليزية. الخانات الأخرى اختيارية، لا تقم بتعيينها. حدد ⁧⁩Done⁧⁩.

    لقطة شاشة لحقول إنشاء التطبيق LUIS.

أهداف المستخدم كأغراض

أول شيء ستراه في القسمBuildهو أهداف التطبيق. تمثلالأهدافالمهمة أو الإجراء الذي يريد المستخدم تنفيذه.

تخيل تطبيق LUIS للاتصالات، ما الذي يحتاجه المستخدم؟

من الممكن أن يحتاجوا على الأرجح لتنفيذ نوع من إجراءات المستخدم أو طلب المساعدة. من الممكن أن يرغب مستخدم آخر في تحديث المستوى أودفع فاتورة

المخطط الناتج كالآتي. لمزيد من المعلومات، انظرأفضل الممارسات حول تخطيط المخطط.

الهدف ⁩الغرض⁧
UserActions تحديد الإجراءات المتعلقة بالمستخدم
التعليمات أطلب المساعدة
UpdateTier تحديث مستوى حالي
PayBill دفع الفاتورة المستحقة الدفع
بلا تحديد ما إذا كان المستخدم يسأل عن شيء لم يتم تصميم التطبيق LUIS للإجابة عليه. يتم توفير هذا الهدف كجزء من إنشاء التطبيق ولا يمكن حذفه.

أنشئ هدفًا جديدًا

يتم استخدام الهدف لتصنيف عبارات المستخدم بناءً على هدف المستخدم، التي تحدد من نص اللغة الطبيعية.

من أجل تصنيف العبارات، يحتاج الهدف إلى أمثلة من عبارات المستخدم التي ينبغي تصنيفها مع هذا الهدف.

  1. قم بتحديدBuildمن قائمة التنقل العلوية، ثم حددIntents على الجانب الأيسر من الشاشة. حدد + إنشاء لإنشاء هدف جديد. أدخل اسم الهدف الجديد «UserAction»، ثم قم بتحديدDone

    من الممكن أن يكون UserAction واحدًا من العديد من الأهداف. على سبيل المثال، من الممكن أن يرغب بعض المستخدمين في التسجيل للحصول على سطر جديد، بينما قد يطلب آخرون استرداد المعلومات.

  2. أضف عدة أمثلة على الأهداف لهذا الغرض الذي تتوقع من المستخدم أن يطلبه:

    • مرحبا! أريد التسجيل للحصول على خط جديد
    • هل يمكنني التسجيل للحصول على خط جديد؟
    • مرحبًا، أريد خطًا جديدًا
    • نسيت رقم الخط الخاص بي!
    • أرغب في رقم خط جديدًا

    لقطة شاشة تعرض أمثلة على التعبيرات للهدف UserAction.

قيما يتعلق بالهدف PayBill، يمكن أن تكون بعض التعبيرات:

  • أريد أن أدفع فاتورتي
  • تسديد فاتورتي
  • فاتورة الدفع
  • أريد أن أغلق رصيدي الحالي
  • مرحبًا! أريد أن أدفع الفاتورة الحالية

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

هذه الكلمات القليلة هي لأغراض العرض فقط. يجب أن يحتوي التطبيق في العالم الحقيقي على الأقل 15-30 من الكلماتمختلفة الطول، مرتبة، ومتواترة، وصحيحة نحويًا، مع علامات الترقيم، وعدد الكلمات.

أنشئ الأهداف المتبقية

نفذ الخطوات المذكورة أعلاه لإضافة الأهداف الآتية للتطبيق:

«مساعدة»

  • «أنا بحاجة إلى مساعدة»
  • «أحتاج للمساعدة»
  • «من فضلك ساعدني»
  • «هل يمكن أن يدعمني شخص ما؟»
  • «أنا عالق، هل يمكنك مساعدتي»
  • «هل يمكنني الحصول على مساعدة؟»

"UpdateTier"

  • «أريد تحديث مستواي الخاص»
  • «تحديث مستواي الخاص»
  • «أريد التغيير إلى المستوى VIP»
  • «تغيير اشتراكي للمستوى القياسي»

أمثلة على التعبيرات في حالة عدم وجود هدف

يحتاج تطبيق العميل إلى معرفة ما إذا كانت العبارات غير مفيدة أو مناسبة للتطبيق. تُضاف حالة «عدم وجود» هدف إلى كل تطبيق كجزء من عملية الإنشاء لتحديد ما إذا كان يجب عدم الرد على العبارة من قبل تطبيق العميل.

إذا قام LUIS بإرجاع حالة «عدم وجود» هدف، فإنه يمكن لتطبيق العميل أن يسأل عما إذا كان المستخدم يريد إنهاء المحادثة أو إعطاء المزيد من التوجيهات لمواصلة المحادثة.

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

  1. حدد الأهداف من اللوحة اليسرى.

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

    • «ما موعد رحلتي؟»
    • «أحتاج لتغيير طلب البيتزا الخاص بي من فضلك»
    • «ما حالة الطقس لهذا اليوم؟»

إضافة كيانات

الكيان هو رمز أو عنصر ذي صلة بهدف المستخدم. تحدّد الكيانات البيانات التي يمكن استخراجها من العبارة وهي ضرورية ومهمة لإكمال الإجراء المطلوب للمستخدم.

  1. في قسم build، قم بتحديدEntities.

  2. لإضافة كيان جديد، قم بتحديد+Create

    في هذا المثال، سنقوم بإنشاء كيانين، «UpdateTierInfo» كنوع كيان تعلمه الجهاز، و«المستوى» على أنه نوع كيان قائمة. يتيح لك Luis أيضاً إنشاءأنواع مختلفة للكيانات.

  3. في النافذة التي تظهر، أدخل «UpdateTierInfo»، وقم بتحديد Machine learned من الأنواع المتوفرة. قم بتحديد مربعإضافة بنيةلتتمكن من إضافة بنية إلى هذا الكيان.

    تعرض لقطة الشاشة الكيان.

  4. حدد "Next".

  5. لإضافة عنصر فرعي تابع، حدد الرمز "+" وابدأ في إضافة التابع. بالنسبة إلى مثال كياننا، «UpdateTierInfo»، نحن بحاجة إلى ثلاثة أشياء:

    • OriginalTier
    • NewTier
    • PhoneNumber

    لقطة شاشة للكيانات الفرعية في التطبيق.

  6. حدد إنشاء بعد إضافة جميع الكيانات الفرعية.

    سننشئ كيانًا آخر باسم «المستوى»، ولكن هذه المرة سيكون كيان قائمة، وسيتضمن جميع المستويات التي قد نقدمها: المستوى القياسي، والطبقة المتميزة، ومستوى VIP.

  7. للقيام بذلك، انتقل إلى علامة التبويب الكيانات، واضغط على+create وحدد قائمة من الأنواع الموجودة في الشاشة التي تظهر.

  8. إضافة العناصر لقائمتك، ويمكنك اختياريًا إضافة مرادفات للتأكد من أن جميع حالات تلك الإشارة سيتم فهمها.

    لقطة شاشة لقائمة الكيان.

  9. عد الآن للكيان «UpdateTierInfo» وأضف كيان «المستوى» كميزة للكيانات «OriginalTier» و«newTier» التي أنشأناها سابقًا. يجب أن يبدو مثل هذا:

    لقطة شاشة لميزات الكيان.

    أضفنا المستوى على أنه ميزة لكل من «originalTier» و«newTier»، وأضفنا كيان «Phonenumber»، وهو نوع Regex. يمكن إنشاؤه بنفس الطريقة التي أنشأنا بها التعلم الآلي من Microsoft Azure وقائمة الكيان.

لقد نجحنا الآن في إنشاء الأهداف وإضافة أمثلة لألفاظ وإضافة كيانات. أنشأنا أربعة أهداف (بخلاف القصد «لا شيء»)، وثلاثة كيانات.

تسمية أمثلة الألفاظ

يتم إنشاء الكيان المستفاد من التعلم الآلي وتحتوي الكيانات الفرعية على ميزات. لإكمال تحسين عملية الاستخراج، يجب تسمية أمثلة الألفاظ مع الكيانات الفرعية.

توجد طريقتان لتسمية الألفاظ:

  1. باستخدام أداة التسمية

    1. لفتحلوحة الكيانات، قم بتحديد «@» الرمز في شريط الأدوات السياقي.
    2. حدد كل صف خاص بكل كيان في لوح الألوان، ثم استخدم مؤشر لوح الألوان لتحديد الكيان في كل مثال على اللفظ.
  2. تمييز النص من خلال سحب المؤشر. من خلال استخدام المؤشر، قم بتمييز النص الذي تريد تسميته. في الصورة الآتية، قمنا بتمييز «vip - tier» وتحديد كيان «NewTier».

    لقطة شاشة توضح طريقة تسمية الكلمات المنطوقة.

تدريب التطبيق

في الجانب العلوي الأيمن من موقع LUIS، حدد الزر "Train" .

قبل التدريب، تأكد من وجود تعبير واحد على الأقل خاص بكل هدف.

لقطة شاشة توضح التطبيق ولكن لتدريبه.

نشر التطبيق

من أجل الحصول على تنبؤ LUIS في روبوت الدردشة أو تطبيق العميل الآخر، تحتاج إلى نشر التطبيق إلى نقطة النهاية التنبؤ. للنشر، تحتاج لتدريب نفسك على جمع التطبيق.

  1. حدد نشر في شريط التنقل العلوي الأيمن.

    لقطة شاشة تعرض زر نشر التطبيق.

  2. حدد فتحة الإنتاج، ثم حدد تم.

    لقطة شاشة توضح محدد فتحة الإنتاج.

  3. حدد الوصول إلى عناوين URL لنقطة النهاية في الإخطار للانتقال إلى صفحة Azure Resources. لن تتمكن من رؤية عناوين URL إلا إذا كان لديك مورد تنبؤ مقترن بالتطبيق. يمكنك أيضًا الاطلاع على صفحةموارد Azureمن خلال النقر فوقإدارة.

    لقطة شاشة تعرض إخطار الوصول إلى نقطة النهاية.

توقع الهدف

  1. قم بتحديدإدارة في القائمة العلوية اليمنى، ثم حدد موارد Azure على اليسار.

  2. نسخعنوان URL لاستعلام المثال والصقه في علامة تبويب مستعرض ويب جديدة.

    سيكون عنوان URL لنقطة النهاية بالتنسيق الآتي.

    https://YOUR-CUSTOM-SUBDOMAIN.api.cognitive.microsoft.com/luis/prediction/v3.0/apps/YOUR-APP-ID/slots/production/predict?subscription-key=YOUR-KEY-ID&verbose=true&show-all-intents=true&log=true&query=YOUR\_QUERY\_HERE
    
  3. انتقل إلى نهاية عنوان URL في شريط العناوين واستبدلquery=معلمة السلسلة مع:

    «مرحباً! أبحث عن رقم جديد من فضلك.»

    يُمرراستعلامالنطق في URI. هذا الكلام ليس هو نفسه أي من الأمثلة المنطوقة، ويجب أن يكون اختبارًا جيدًا للتحقق مما إذا كانت LUIS تتوقع أن يكون هدف UserAction هو الهدف الأعلى لتسجيل النقاط.

    {
        "query": "hello! i am looking for a new number please",
        "prediction": 
        {
            "topIntent": "UserAction",
            "intents": 
            {
                "UserAction": {
                "score": 0.8607431},
                "Help":{
                "score": 0.031376917},
                "PayBill": {
                "score": 0.01989629},
                "None": {
                "score": 0.013738701},
                "UpdateTier": {
                "score": 0.012313577}
            },
        "entities": {}
        }
    }
    

تقوم بتحديد نتيجة JSON هدف التسجيل الأعلى كخاصية prediction.topIntent. جميع الدرجات بين 1 و0، على أن تكون النتيجة الأفضل أقرب إلى 1.

الخطوات التالية لتطبيق العميل

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

لا تقدم LUIS إجابات على أقوال المستخدم، ولكنها تحدد فقط نوع المعلومات التي يتم طلبها باللغة الطبيعية. يتم توفير متابعة للمحادثة من قِبل تطبيق العميل مثلAzure Bot.

تنظيف الموارد

عند عدم الحاجة، احذف تطبيق LUIS. للقيام بذلك، حدد تطبيقاتي من أعلى القائمة اليمنى. قم بتحديد علامة الحذف (...) على يسار اسم التطبيق في قائمة التطبيقات، وحدد Delete. في مربع الحوار المنبثقحذف التطبيق؟، قم بتحديدموافق.