विषय - सूची[छिपाना][प्रदर्शन]
संचार क्षेत्र में टेक्स्ट और विजुअल के पक्ष में वॉयस कॉल को चरणबद्ध तरीके से समाप्त किया जा रहा है। फेसबुक पोल के मुताबिक, आधे से ज्यादा खरीदार ऐसी कंपनी से खरीदारी करना पसंद करते हैं जिससे वे बात कर सकें। चैटिंग संचार का नया सामाजिक रूप से स्वीकार्य तरीका बन गया है।
यह व्यवसायों को किसी भी समय और किसी भी स्थान से अपने ग्राहकों के साथ संवाद करने में सक्षम बनाता है। उपयोग में आसानी और कम प्रतीक्षा समय के कारण चैटबॉट कंपनियों और ग्राहकों के बीच तेजी से लोकप्रियता हासिल कर रहे हैं।
चैटबॉट्स, या स्वचालित वार्तालाप कार्यक्रम, ग्राहकों को टेक्स्ट-आधारित इंटरफ़ेस के माध्यम से सेवाओं तक पहुंचने के लिए अधिक अनुकूलित विधि प्रदान करते हैं। नवीनतम एआई-संचालित चैटबॉट एक विशिष्ट वातावरण में किसी व्यक्ति (या किसी अन्य बॉट, शुरुआत) द्वारा की गई क्वेरी (प्रश्न, आदेश, आदेश, आदि) को पहचान सकते हैं और उचित रूप से जवाब दे सकते हैं (उत्तर, कार्रवाई, आदि)।
इस पोस्ट में, हम जानेंगे कि चैटबॉट क्या हैं, उनके लाभ, उपयोग के मामले और अपना स्वयं का चैटबॉट कैसे बनाएं ध्यान लगा के पढ़ना या सीखना अन्य बातों के अलावा, पायथन में चैटबॉट।
आइये शुरुआत करते हैं|
तो, चैटबॉट क्या हैं?
चैटबॉट को अक्सर मानव-मशीन संपर्क के सबसे उन्नत और आशाजनक रूपों में से एक माना जाता है। ये डिजिटल सहायक लोगों और सेवाओं के बीच बातचीत को सुव्यवस्थित करके ग्राहक अनुभव को बेहतर बनाते हैं।
इसके साथ ही, वे व्यवसायों को दक्षता के लिए ग्राहक संपर्क प्रक्रिया को अनुकूलित करने के लिए नए विकल्प प्रदान करते हैं, जो पारंपरिक समर्थन खर्चों में कटौती कर सकते हैं।
संक्षेप में, यह एआई-आधारित सॉफ़्टवेयर है जो मनुष्यों के साथ उनकी प्राकृतिक भाषाओं में संवाद करने के लिए है। ये चैटबॉट अक्सर ऑडियो या लिखित तकनीकों के माध्यम से बातचीत करते हैं, और वे इंसानों की तरह इंसानों से जुड़ने के लिए आसानी से मानव भाषाओं की नकल कर सकते हैं।
चैटबॉट उपयोगकर्ताओं के साथ अपनी बातचीत से सीखते हैं, समय के साथ अधिक यथार्थवादी और कुशल बनते जाते हैं। वे व्यावसायिक गतिविधियों की एक विस्तृत श्रृंखला को संभाल सकते हैं, जैसे खर्च को अधिकृत करना, उपभोक्ताओं के साथ ऑनलाइन जुड़ना और लीड उत्पन्न करना।
पायथन के साथ अपना खुद का डीप लर्निंग चैटबॉट बनाना
के क्षेत्र में कई अलग-अलग प्रकार के चैटबॉट हैं यंत्र अधिगम और ए.आई. कुछ चैटबॉट आभासी सहायक होते हैं, जबकि अन्य केवल बातचीत करने के लिए होते हैं, जबकि अन्य ग्राहक सेवा एजेंट होते हैं।
आपने संभवतः व्यवसायों द्वारा पूछताछ का उत्तर देने के लिए नियुक्त किए गए कुछ लोगों को देखा होगा। हम अक्सर पूछे जाने वाले प्रश्नों का उत्तर देने के लिए इस ट्यूटोरियल में एक छोटा चैटबॉट बनाएंगे।
1. संकुल संस्थापित करना
हमारा पहला कदम निम्नलिखित पैकेजों को स्थापित करना है।
2. प्रशिक्षण डेटा
अब यह पता लगाने का समय आ गया है कि हमें अपने चैटबॉट को किस प्रकार की जानकारी देने की आवश्यकता होगी। हमें कोई बड़ा डेटासेट डाउनलोड करने की आवश्यकता नहीं है क्योंकि यह एक साधारण चैटबॉट है।
हम केवल उस जानकारी का उपयोग करेंगे जो हमने स्वयं बनाई है। पाठ को प्रभावी ढंग से आगे बढ़ाने के लिए, आपको नीचे देखे गए प्रारूप के समान एक .JSON फ़ाइल उत्पन्न करने की आवश्यकता होगी। मेरी फ़ाइल का नाम "intents.json" है।
JSON फ़ाइल का उपयोग संदेशों का एक सेट बनाने के लिए किया जाता है जिसे उपयोगकर्ता इनपुट कर सकता है और प्रासंगिक उत्तरों के एक सेट में मैप कर सकता है। फ़ाइल में प्रत्येक शब्दकोश में एक टैग होता है जो पहचानता है कि प्रत्येक संदेश किस समूह से संबंधित है।
हम इस जानकारी का उपयोग ए को प्रशिक्षित करने के लिए करेंगे तंत्रिका नेटवर्क हमारी फ़ाइल में टैग के रूप में शब्दों के वाक्यांश को वर्गीकृत करने के लिए।
फिर हम उन समूहों से प्रतिक्रिया ले सकते हैं और इसे उपयोगकर्ता को प्रदान कर सकते हैं। यदि आप इसे अतिरिक्त टैग, उत्तर और पैटर्न के साथ पेश करते हैं तो चैटबॉट बेहतर और अधिक जटिल होगा।
3. JSON डेटा लोड हो रहा है
हम अपना .json डेटा लोड करके और कुछ मॉड्यूल आयात करके शुरुआत करेंगे। अपनी.json फ़ाइल को उसी निर्देशिका में एकत्रित करें जिसमें आपकी पायथन लिपि. हमारा .json डेटा अब डेटा वेरिएबल में सहेजा जाएगा।
4. डेटा निष्कर्षण
अब हमारी JSON फ़ाइल से आवश्यक जानकारी निकालने का समय आ गया है। सभी पैटर्न, साथ ही वह वर्ग/टैग जिससे वे संबंधित हैं, आवश्यक हैं।
हमें अपने पैटर्न में सभी अद्वितीय शब्दों की एक सूची की भी आवश्यकता होगी (कारणों के बारे में हम बाद में बताएंगे), तो आइए इन मूल्यों पर नज़र रखने के लिए कुछ रिक्त सूचियाँ बनाएं।
अब हम अपने JSON डेटा के माध्यम से लूप करेंगे और हमें आवश्यक जानकारी पुनः प्राप्त करेंगे। उन्हें स्ट्रिंग के रूप में रखने के बजाय, हम प्रत्येक पैटर्न को शब्दों की सूची में बदलने के लिए nltk.word टोकननाइज़र का उपयोग करेंगे।
फिर, हमारी docs_x सूची में, हम प्रत्येक पैटर्न को उसके संबंधित टैग के साथ docs_y सूची में जोड़ देंगे।
5. शब्द स्टेमिंग
किसी शब्द का मूल ढूँढना स्टेमिंग कहलाता है। उदाहरण के लिए, "वह" शब्द का तना "वह" हो सकता है, जबकि "हो रहा है" शब्द का तना "होना" हो सकता है।
हम अपने मॉडल की शब्दावली को कम करने के लिए इस स्टेमिंग तकनीक का उपयोग करेंगे और यह पता लगाने की कोशिश करेंगे कि वाक्यों का सामान्य रूप से क्या अर्थ है। यह कोड बस उपजी शब्दों की एक अनूठी सूची तैयार करेगा जिसका उपयोग हमारी डेटा तैयारी के अगले चरण में किया जाएगा।
6. शब्दों का थैला
अब शब्दों के थैले के बारे में बोलने का समय आ गया है क्योंकि हमने अपना डेटा आयात कर लिया है और एक व्यवस्थित शब्दावली तैयार कर ली है। तंत्रिका जाल और मशीन लर्निंग एल्गोरिदम, जैसा कि हम सभी जानते हैं, को संख्यात्मक इनपुट की आवश्यकता होती है। इसलिए हमारी स्ट्रिंग सूची इसमें कटौती नहीं करेगी। हमें अपने वाक्यों में संख्याओं का प्रतिनिधित्व करने के लिए एक तंत्र की आवश्यकता है, जहां शब्दों का एक थैला आता है।
प्रत्येक वाक्यांश को हमारे मॉडल की शब्दावली में शब्दों की संख्या की लंबाई की एक सूची द्वारा दर्शाया जाएगा। हमारी शब्दावली में प्रत्येक शब्द को सूची में एक स्थान द्वारा दर्शाया जाएगा। यदि सूची में स्थिति 1 है, तो शब्द हमारे कथन में दिखाई देता है; यदि यह 0 है, तो शब्द हमारे वाक्य में प्रकट नहीं होता है।
हम इसे शब्दों का थैला कहते हैं क्योंकि हम उस क्रम को नहीं जानते हैं जिसमें शब्द वाक्यांश में आते हैं; हम बस इतना जानते हैं कि वे हमारे मॉडल की शब्दावली में मौजूद हैं।
अपने इनपुट को संरचित करने के अलावा, हमें अपने आउटपुट को भी प्रारूपित करना होगा ताकि तंत्रिका नेटवर्क इसे समझ सके। हम आउटपुट सूचियाँ बनाएंगे जो शब्दों के एक बैग के समान, हमारे डेटासेट में लेबल/टैग की संख्या की लंबाई के बराबर होंगी। सूची में प्रत्येक स्थान एक अद्वितीय लेबल/टैग का प्रतिनिधित्व करता है, और उनमें से किसी भी स्थान पर 1 इंगित करता है कि कौन सा लेबल/टैग दर्शाया जा रहा है।
अंत में, हम अपने प्रशिक्षण डेटा और आउटपुट को संग्रहीत करने के लिए NumPy सरणियों का उपयोग करेंगे।
7. मॉडल विकास
अब हम एक मॉडल का निर्माण और प्रशिक्षण शुरू करने के लिए तैयार हैं क्योंकि हमने अपना सारा डेटा प्रीप्रोसेस कर लिया है। हम अपने उद्देश्यों के लिए दो छिपी हुई परतों के साथ एक बहुत ही बुनियादी फ़ीड-फ़ॉरवर्ड न्यूरल नेटवर्क का उपयोग करेंगे।
हमारे नेटवर्क का उद्देश्य शब्दों के संग्रह को देखना और उन्हें एक वर्ग (JSON फ़ाइल से हमारे टैग में से एक) में निर्दिष्ट करना होगा। हम अपने मॉडल की वास्तुकला स्थापित करके शुरुआत करेंगे। ध्यान रखें कि बेहतर मॉडल बनाने के लिए आप कुछ संख्याओं के साथ खेल सकते हैं! मशीन लर्निंग यह अधिकतर परीक्षण और त्रुटि पर आधारित है।
8. मॉडल प्रशिक्षण एवं बचत
अब जब हमने इसे स्थापित कर लिया है तो अपने मॉडल को अपने डेटा पर प्रशिक्षित करने का समय आ गया है! हम अपने डेटा को मॉडल में फिट करके इसे हासिल करेंगे। हम जितने युग प्रदान करते हैं वह उतनी बार है जितनी बार मॉडल को प्रशिक्षण के दौरान समान डेटा के संपर्क में लाया जाएगा।
एक बार प्रशिक्षण पूरा करने के बाद हम मॉडल को फ़ाइल मॉडल में सहेज सकते हैं। tflearn एक स्क्रिप्ट है जिसका उपयोग अन्य स्क्रिप्ट में किया जा सकता है।
9. चैटबॉट का उपयोग करना
अब आप अपने बॉट से चैट करना शुरू कर सकते हैं।
चैटबॉट के लाभ
- चूँकि बॉट्स से वर्ष में 365 दिन, दिन के 24 घंटे, बिना वेतन के काम करने की अपेक्षा की जाती है, जिससे उपलब्धता और प्रतिक्रिया की गति में वृद्धि होती है।
- ये बॉट बड़े डेटा के तीन प्रमुख बनाम: वॉल्यूम, वेग और विविधता से निपटने के लिए एकदम सही उपकरण हैं।
- चैटबॉट ऐसे सॉफ़्टवेयर हैं जिनका उपयोग किसी कंपनी के उपभोक्ताओं के बारे में जानने और समझने के लिए किया जा सकता है।
- इसमें बेहतर शक्ति है कि शीर्ष लाभ के बाद इसकी रखरखाव लागत सस्ती है।
- चैटबॉट एप्लिकेशन डेटा बनाते हैं जिसे संरक्षित किया जा सकता है और विश्लेषण और पूर्वानुमान के लिए उपयोग किया जा सकता है।
उदाहरण
- ग्राहकों की जिज्ञासाओं का समाधान करना
- अक्सर पूछे जाने वाले प्रश्नों का उत्तर देना
- टीम का समर्थन करने के लिए ग्राहकों को नियुक्त करना
- ग्राहकों की प्रतिक्रिया एकत्रित करना
- नए प्रस्तावों की सिफ़ारिश करना
- संवादी वाणिज्य के साथ खरीदारी करें
- आईटी हेल्पडेस्क
- आवास की बुकिंग
- मनी ट्रांसफर
निष्कर्ष
चैटबॉट्स, अन्य एआई प्रौद्योगिकियों की तरह, मानव कौशल को बढ़ाने और मनुष्यों को सामरिक कार्यों के बजाय रणनीतिक पर अधिक समय बिताने की अनुमति देकर अधिक रचनात्मक और कल्पनाशील बनने के लिए उपयोग किया जाएगा।
व्यवसायों, कर्मचारियों और उपभोक्ताओं को निकट भविष्य में, जब एआई को विकास के साथ जोड़ा जाता है, तो तेज अनुशंसाओं और भविष्यवाणियों के साथ-साथ बातचीत के भीतर से हाई-डेफिनिशन वीडियो कॉन्फ्रेंसिंग तक आसान पहुंच जैसी बढ़ी हुई चैटबॉट सुविधाओं से लाभ होने की संभावना है। 5जी तकनीक.
इन और अन्य संभावनाओं की अभी भी जांच की जा रही है, लेकिन जैसे-जैसे इंटरनेट कनेक्टिविटी, एआई, एनएलपी और मशीन लर्निंग की प्रगति होगी, वे और अधिक प्रचलित हो जाएंगी।
च्वू
नमस्ते,
इस कार्यक्रम के लिए धन्यवाद।
मेरा एक सवाल है।
"bag_of_words" परिभाषित नहीं है। मैं इस त्रुटि को नहीं समझ सकता।
क्या आप मुझे बता सकते हैं कि मैं इस त्रुटि को कैसे हल कर सकता हूं ??
इस कार्यक्रम के लिए धन्यवाद !! आपका दिन शुभ हो
नीलकंठ
कृपया चैटबॉट अनुभाग का उपयोग करने से पहले एक फ़ंक्शन जोड़ें:
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
def bag_of_words (शब्दों, शब्द):
बैग = [0 के लिए _ रेंज में (लेन (शब्द))]
s_words = nltk.word_tokenize(s)
s_words = [s_words में शब्द के लिए s_words.stem(word.lower ())]
s_words में से के लिए:
के लिए मैं, डब्ल्यू गणना में (शब्द):
अगर डब्ल्यू == से:
बैग [i] = 1
वापसी numpy.array(बैग)
// यह निश्चित रूप से आपकी समस्या का समाधान करेगा। //
////////////////////////////////////////////// //////////////////////////
मैं पूरा कोड आपके साथ साझा कर रहा हूं, जिससे आपको इसकी स्पष्ट तस्वीर मिल जाएगी।
///////////////////////////////////////////// ///////
आयात nltk
nltk.stem.lancaster से आयात करें LancasterStemmer
स्टेमर = लैंकेस्टरस्टेमर ()
आयात सुन्न
आयात करें
आयात टेंसरफ़्लो
यादृच्छिक आयात करें
आयात json
आयात अचार
फ़ाइल के रूप में open("intents.json") के साथ:
डेटा = json.load (फ़ाइल)
प्रयास करें:
f के रूप में खुले ("डेटा। अचार", "आरबी") के साथ:
शब्द, लेबल, प्रशिक्षण, आउटपुट = अचार। लोड (एफ)
के सिवाय:
शब्द = []
लेबल = []
डॉक्स_एक्स = []
डॉक्स_वाई = []
डेटा में आशय के लिए ["इरादे"]:
आशय में पैटर्न के लिए ["पैटर्न"]:
wrds = nltk.word_tokenize (पैटर्न)
शब्द.विस्तार (wrds)
docs_x.append (WRDS)
docs_y.append (इरादा ["टैग"])
यदि आशय ["टैग"] लेबल में नहीं है:
लेबल.एपेंड (इरादा ["टैग"])
शब्द = [stemmer.stem(w.lower()) शब्दों में w के लिए यदि w != "?"]
शब्द = क्रमबद्ध (सूची (सेट (शब्द)))
लेबल = क्रमबद्ध (लेबल)
प्रशिक्षण = []
आउटपुट = []
out_empty = [0 _ के लिए रेंज में (लेन (लेबल))]
एक्स के लिए, एन्युमरेट में डॉक्टर (docs_x):
बैग = []
wrds = [stemmer.stem(w.lower()) doc में w के लिए]
शब्दों में डब्ल्यू के लिए:
अगर w wrds में:
बैग। संलग्न करें(1)
अन्य:
बैग। संलग्न करें(0)
आउटपुट_रो = आउट_खाली [:]
आउटपुट_रो [लेबल.इंडेक्स (डॉक्स_वाई [एक्स])] = 1
प्रशिक्षण। संलग्न करें (बैग)
आउटपुट.एपेंड (आउटपुट_रो)
प्रशिक्षण = numpy.array (प्रशिक्षण)
आउटपुट = numpy.array (आउटपुट)
f के रूप में खुले ("data.pickle", "wb") के साथ:
अचार। डंप ((शब्द, लेबल, प्रशिक्षण, आउटपुट), च)
tensorflow.reset_default_graph ()
नेट = tflearn.input_data (आकार = [कोई नहीं, लेन (प्रशिक्षण [0])])
नेट = tflearn.ful_connected (नेट, 8)
नेट = tflearn.ful_connected (नेट, 8)
नेट = tflearn.ful_connected (नेट, लेन (आउटपुट [0]), सक्रियण = "सॉफ्टमैक्स")
नेट = tflearn.regression (नेट)
मॉडल = tflearn.DNN (नेट)
प्रयास करें:
model.load ("model.tflearn")
के सिवाय:
मॉडल फिट (प्रशिक्षण, आउटपुट, n_epoch = 1500, बैच_साइज़ = 8, शो_मेट्रिक = ट्रू)
model.save ("model.tflearn")
def bag_of_words (शब्दों, शब्द):
बैग = [0 के लिए _ रेंज में (लेन (शब्द))]
s_words = nltk.word_tokenize(s)
s_words = [s_words में शब्द के लिए s_words.stem(word.lower ())]
s_words में से के लिए:
के लिए मैं, डब्ल्यू गणना में (शब्द):
अगर डब्ल्यू == से:
बैग [i] = 1
वापसी numpy.array(बैग)
डीईएफ़ चैट ():
प्रिंट ("बॉट के साथ बात करना शुरू करें (टाइप करने के लिए छोड़ें टाइप करें)!")
जबकि सच:
inp = इनपुट ("आप:")
अगर inp.lower() == "छोड़ो":
तोड़ना
परिणाम = मॉडल। भविष्यवाणी ([बैग_ऑफ_वर्ड्स (आईएनपी, शब्द)])
results_index = numpy.argmax (परिणाम)
टैग = लेबल [results_index]
डेटा में टीजी के लिए ["इरादे"]:
अगर टीजी ['टैग'] == टैग:
प्रतिक्रियाएं = टीजी ['प्रतिक्रियाएं']
प्रिंट (यादृच्छिक। पसंद (प्रतिक्रियाएं))
बात करना()
////////////////////////////////////////////////// ///////////////
शुक्रिया,
हैप्पी कोडिंग!
Lu
नमस्ते,
क्या आप मुझे पायथन में चैटबॉट बनाने की इच्छा के मामले में प्रक्रिया का एक विचार दे सकते हैं, लेकिन जानकारी एक्सेल में एक सर्वेक्षण से प्राप्त की जाती है। धन्यवाद!