botframework
प्राकृतिक भाषा प्रसंस्करण जोड़ना
खोज…
परिचय
बॉट फ्रेमवर्क का समर्थन करता है Recognizers
। जब भी उपयोगकर्ता बॉट को कोई संदेश भेजता है, तो उसे पहचानने के लिए एक पहचानकर्ता का उपयोग किया जाता है। इसलिए आप उपयोगकर्ता इनपुट के आधार पर इंटेंट को पहचानने के लिए अपने बॉट को डिज़ाइन कर सकते हैं। बॉट के लिए प्राकृतिक भाषा की समझ को जोड़ने के लिए पहचानकर्ता का उपयोग LUIS एपीआई के साथ किया जा सकता है।
वाक्य - विन्यास
var पहचानकर्ता = नया बिल्डर। LUISRecognizer ('आपका मॉडल का URL');
var intents = new build.I.IentDialog ({पहचानकर्ता: [पहचानकर्ता]});
प्रारंभ करना और LUISRecognizer जोड़ना
एक बार जब आप परिचय में प्रदान किए गए मूल टेम्पलेट के साथ एक नई परियोजना के साथ हैं, तो आपको एक LUISRecognogn जैसे जोड़ने में सक्षम होना चाहिए -
var model = '' // Your LUIS Endpoint link comes here
var recognizer = new builder.LuisRecognizer(model);
अब, recognizer
एक LUISRecognizer है और आपके परिभाषित LUIS मॉडल के आधार पर इंटेंट उत्तीर्ण कर सकता है। आप recognizer
को अपने इरादों से जोड़ सकते हैं
var intents = new builder.IntentDialog({recognizers: [recognizer]});
आपका बॉट अब LUIS से इंटेंट को संभालने में सक्षम है। LUIS पर किसी भी नामित इरादे का पता IntentDialog
वर्ग की matches
संपत्ति का उपयोग करके लगाया जा सकता है। कहते हैं तो, कोई लक्ष्य नामित hi
बॉट पर आमादा पहचान करने के लिए लुइस मॉडल में परिभाषित किया गया है,
intents.matches('hi', function(session) {
session.send("Hey :-)");
});
इरादों के साथ एक LUIS मॉडल को परिभाषित करना
एक LUIS मॉडल बनाने के लिए कम प्रोग्रामिंग अनुभव की आवश्यकता नहीं है। हालांकि, आपको 2 महत्वपूर्ण शब्दों से परिचित होने की आवश्यकता है जो बड़े पैमाने पर उपयोग किए जाएंगे।
- इरादे - ये हैं कि आप उन कार्यों की पहचान करते हैं, जिन्हें उपयोगकर्ता द्वारा किसी चीज़ में टाइप किए जाने पर निष्पादित करने की आवश्यकता होती है। जैसे -
Hi
नाम का एक आशय एक ऐसे फंक्शन की पहचान करेगा जिसे उपयोगकर्ता को "Hi" भेजने पर निष्पादित करने की आवश्यकता होती है। आपके कार्यक्रम / मॉडल में विशिष्ट रूप से नाम दिए गए हैं। - एंटिटीज - ये एक स्टेटमेंट में संज्ञाओं की पहचान करते हैं। जैसे - "1:00 pm के लिए अलार्म सेट करें", यहाँ
1:00 pm
एक इकाई है जिसे अलार्म सेट करने के लिए चैट-बॉट द्वारा मान्यता प्राप्त करने की आवश्यकता है।
नोट: वेबसाइट के चित्र मेरे परिवर्तन के रूप में सामने नहीं दिए गए हैं, लेकिन मूल अवधारणा समान है।
एक नया मॉडल बनाने के लिए, LUIS.ai पर जाएं और अपने Microsoft खाते के साथ एप्लिकेशन निर्माण पृष्ठ पर जाएं। जहां एक रिक्त परियोजना बनाई जा सकती है।
परिभाषित करने की मंशा:
उद्देश्य पर परिभाषित किया जा सकता Intents
टैब। वे पहचानते हैं कि उपयोगकर्ता को किसी भी चीज़ में प्रवेश करने पर आपको किस फ़ंक्शन की आवश्यकता है।
सभी एप्लिकेशन का डिफ़ॉल्ट रूप से None
इरादा None
होता है, जो तब सक्रिय होता है जब उपयोगकर्ता इनपुट किसी अन्य इरादे से मेल नहीं खाता।
एक इरादे को परिभाषित करने के लिए,
- उस फ़ंक्शन के लिए प्रासंगिक एक विशिष्ट नाम दें जिसे आप प्रदर्शन करना चाहते हैं।
- एक बार नामकरण पूरा हो जाने के बाद, आपको इरादे में
utterances
जोड़ना चाहिए। उपयोग वह है जो आप उपयोगकर्ता को भेजना चाहते हैं ताकि आप जिस इरादे से परिभाषित कर रहे हैं उसे सक्रिय कर सकें। LUIS कोintents
औरutterances
सही तरीके से जोड़ने के लिए यथासंभव विभिन्नutterances
को खिलाने का प्रयास करें। - ट्रेन
Train and Test
टैब परTrain and Test
बटन पर क्लिक करके अपने LUIS मॉडल कोTrain
करें। प्रशिक्षण के बाद एप्लिकेशन को नीचे पैनल में परीक्षण किया जा सकता है। - अंत में
Publish App
टैब में अपना ऐपPublish App
। अब आपको एक समापन बिंदु URL प्राप्त करना चाहिए जिसे आपके बॉट कोड मेंLUISRecognizer
को परिभाषित करते समय डालना चाहिए।
एलयूआईएस मॉडल में एंट्री जोड़ना
एक इकाई वह सूचना है जिसे आपका बॉट किसी विशेष कथन से एक इरादे के अनुरूप निकालता है।
जैसे- लेट My name is John Doe
इज My name is John Doe
एक introduction
नामक इरादे से संबंधित है। अपने बॉट को John Doe
को वाक्य से समझने और निकालने के लिए, आपको एक इकाई को परिभाषित करने की आवश्यकता है जो ऐसा करती है। आप अपनी इच्छा के अनुसार इकाई का नाम दे सकते हैं, लेकिन इसे अर्क से संबंधित चीज़ के रूप में नाम देना सबसे अच्छा है। हमारे उदाहरण में, हम अपनी इकाई का name
कह सकते हैं।
अलग-अलग चीजों को निकालने के लिए, विभिन्न इरादों के बीच संस्थाओं का फिर से उपयोग किया जा सकता है। तो सबसे अच्छा सिद्धांत एक इकाई बनाना होगा जो केवल प्रकार के डेटा को निकालता है और विभिन्न इरादों में इसका उपयोग करता है। इसलिए, हमारी उपरोक्त उदाहरण में, कहते हैं कि Book a flight on Emirates
आशय के अंतर्गत आता है booking
, तो एक ही इकाई, name
, उड़ान नाम निकालने के लिए इस्तेमाल किया जा सकता emirates
।
परिभाषित करने वाली संस्थाओं पर जाने से पहले आपको दो बातों को ध्यान में रखना होगा -
- इरादे में प्रति व्यक्ति अद्वितीय होना चाहिए। एक इकाई का एक ही उच्चारण में दो बार उपयोग नहीं किया जा सकता है।
- LUIS केस असंवेदनशील है। इसका तात्पर्य है कि निकाय निष्कर्षण के माध्यम से निकाली गई और प्राप्त की गई सभी वस्तुएं लोअर-केस में होंगी। इसलिए संस्थाओं के माध्यम से केस-संवेदी डेटा निकालना शायद एक बुरा विचार है।
पूर्व निर्मित इकाइयां जोड़ना
पूर्व निर्मित इकाइयां हैं, जैसा कि नाम से पता चलता है, पूर्व-निर्मित अर्थात वे पहले से ही एक विशेष प्रकार के डेटा को निकालने के लिए कॉन्फ़िगर किए गए हैं जिस इरादे से उन्हें जोड़ा गया है। एक उदाहरण इकाई number
हो सकती है जो उस आशय से संख्या निकालती है जिसे इसे सौंपा गया है। संख्या या तो 10
या ten
तरह संख्यात्मक या वर्णमाला में हो सकती है।
सभी पूर्व-निर्मित संस्थाओं की पूरी सूची के लिए, आप [पूर्व निर्मित संस्थाओं की सूची] [1] पर जा सकते हैं।
पूर्व-निर्मित संस्थाओं को जोड़ने के लिए,
-
entities
टैब पर जाएं। -
Add pre-built entities
क्लिक करें और उस इकाई का चयन करें जिसे आप मॉडल और हिट सेव में जोड़ना चाहते हैं।
कस्टम एंटिटीज जोड़ना कस्टम एंटिटीज 4 प्रकार के होते हैं,
- सरल : एक साधारण इकाई किसी विशेष डेटा को निकालती है, ऊपर दिए गए उदाहरणों में
name
एक साधारण इकाई है। - पदानुक्रमित : बच्चों की संस्थाओं (उप-प्रकार) के साथ एक मूल इकाई जो माता-पिता पर निर्भर होती है।
- समग्र : 2 या अधिक संस्थाओं का समूह एक साथ स्वतंत्र।
- सूची : एक इकाई जो किसी दिए गए सूची से केवल शब्दों को पहचानती है।
सरल संस्थाओं को परिभाषित करना
-
entities
टैब पर जाएं। -
Add Custom Entities
पर क्लिक करें - अपनी इकाई का नाम, आवश्यक इकाई प्रकार जांचें और
Save
हिटSave
।
उपरोक्त प्रकारों में से केवल एक को Entity Type
को बदलकर अन्य सभी प्रकार की संस्थाओं को एक ही तरीके से जोड़ा जा सकता है। पदानुक्रमित और समग्र इकाई प्रकारों में, आपको बच्चों को मूल इकाई नाम के साथ नाम भी देना होगा। सूची संस्थाओं को परिभाषित करना बाकी की तुलना में थोड़ा अलग है।
सूची प्रविष्टियों को परिभाषित करना
List Entity
रूप में वें Entity Type
डालकर एक List Entity
बनाने के लिए उपरोक्त चरणों का पालन करने के बाद, आपको उस इकाई के विवरण पृष्ठ पर निर्देशित किया जाएगा जिसे आपने अभी परिभाषित किया है।
- एक विहित मूल्य को परिभाषित करें। यह एक मानक मान है जो उपयोगकर्ता द्वारा किसी भी पर्यायवाची में टाइप करने पर बॉट को प्राप्त होगा।
- विहित मूल्य के पर्यायवाची शब्द को परिभाषित कीजिए। वे इकाई द्वारा सामना किए जाने पर विहित मूल्य में परिवर्तित हो जाएंगे।
आप फॉर्म की JSON ऑब्जेक्ट्स की एक सरणी का उपयोग करके पूरी सूची आयात कर सकते हैं:
[
{
"canonicalForm": "Hey",
"list": [
"Howdy",
"Hi"
]
},
.
.
.
]
एक इरादे के साथ एक इकाई जोड़ना
Pre-built
और list
संस्थाओं में पहले से ही परिभाषित मूल्यों का एक समूह होता है, जिन्हें सभी उक्तियों से निकाला जा सकता है, हालाँकि, मूल्यों को लेने के लिए Simple
, Hierarchical
और Composite
उच्चारणों को प्रशिक्षित करने की आवश्यकता होती है।
इसके द्वारा किया जा सकता है
-
intents
टैब पर जाएं और उस इरादे को चुनें जिसे आप इकाई को जोड़ना चाहते हैं। - एक डमी मूल्य के साथ एक उच्चारण जोड़ें जिसे आप निकालना चाहते हैं। कहते हैं, आप एक विलोम के रूप में
My name is John Doe
जोड़ सकते हैं। - उन शब्दों पर माउस को क्लिक करें और खींचें जिन्हें आप चाहते हैं कि निकाय निकाले। आपको उपरोक्त उदाहरण में
john doe
को उजागर करने की आवश्यकता होगी। - एक ड्रॉप-डाउन आपके प्रोजेक्ट में उपलब्ध सभी संस्थाओं की सूची के साथ खुलेगा। जैसा आप फिट देखते हैं, उसी का चयन करें।
Name
उपरोक्त उदाहरण में चयनित इकाई होगा। - हर बार अलग-अलग डमी मूल्यों के साथ अधिक उच्चारण जोड़ें और उन सभी संभावित संरचनाओं के बारे में सोचें जिनके बारे में आप सोच सकते हैं।
- अपने LUIS मॉडल को प्रशिक्षित और प्रकाशित करें।