مواصلاتي شعبي ۾ متن ۽ بصري جي حق ۾ وائس ڪالز کي ختم ڪيو پيو وڃي. فيس بڪ جي هڪ سروي موجب، اڌ کان وڌيڪ خريد ڪندڙ هڪ ڪمپني کان خريد ڪرڻ پسند ڪن ٿا جنهن سان اهي ڳالهائي سگهن ٿيون. چيٽنگ رابطي جو نئون سماجي طور قابل قبول طريقو بڻجي چڪو آهي.
اهو ڪاروبار کي قابل بنائي ٿو انهن جي گراهڪن سان ڪنهن به وقت ۽ ڪنهن به هنڌ کان. Chatbots تيزي سان ڪمپنين ۽ گراهڪن جي وچ ۾ مقبوليت حاصل ڪري رهيا آهن انهن جي استعمال ۾ آساني ۽ انتظار جو وقت گهٽجڻ سبب.
Chatbots، يا خودڪار گفتگو وارا پروگرام، صارفين کي ٽيڪسٽ بيسڊ انٽرفيس ذريعي خدمتن تائين رسائي حاصل ڪرڻ لاءِ وڌيڪ ڪسٽمائيز طريقو مهيا ڪن ٿا. جديد ترين AI-powered chatbots هڪ سوال (سوال، حڪم، آرڊر، وغيره) کي سڃاڻي سگهن ٿا هڪ شخص (يا ٻيو بوٽ، شروعات) طرفان ٺاهيل مخصوص ماحول ۾ ۽ مناسب جواب ڏئي سگھن ٿا (جواب، عمل، وغيره).
هن پوسٽ ۾، اسان اڳتي وڌنداسين چيٽ بوٽس ڇا آهن، انهن جا فائدا، ڪيس استعمال ڪريو، ۽ پنهنجو پاڻ ڪيئن ٺاهيو تمام گهڻي سکيا پٿون ۾ چيٽ بوٽ، ٻين شين جي وچ ۾.
اچو ته شروع ڪريون.
سو، چيٽ بوٽس ڇا آهن؟
هڪ چيٽ بٽ اڪثر ڪري حوالو ڏنو ويندو آهي انساني-مشين جي رابطي جي سڀ کان ترقي يافته ۽ ترقي يافته شڪلن مان. اهي ڊجيٽل اسسٽنٽ ماڻهن ۽ خدمتن جي وچ ۾ رابطي کي ترتيب ڏيڻ سان ڪسٽمر تجربو کي بهتر بڻائي ٿو.
انهي سان گڏ، اهي ڪاروبار مهيا ڪن ٿا نوان اختيارن سان ڪسٽمر رابطي جي عمل کي بهتر ڪرڻ لاء ڪارڪردگي لاء، جيڪي روايتي سپورٽ خرچن کي ڪٽي سگهن ٿيون.
مختصر ۾، اهو AI تي ٻڌل سافٽ ويئر آهي جنهن جو مقصد انسانن سان انهن جي قدرتي ٻولين ۾ گفتگو ڪرڻ آهي. اهي چيٽ بوٽس اڪثر ڪري آڊيو يا لکت واري ٽيڪنڪ ذريعي لهه وچڙ ۾ ايندا آهن، ۽ اهي آساني سان انساني ٻولين کي نقل ڪري سگهن ٿا ته جيئن انسانن سان انسانن وانگر ڳنڍجي.
Chatbots سکن ٿا انهن جي استعمال ڪندڙن سان رابطي مان، وقت سان گڏ وڌيڪ حقيقي ۽ ڪارائتو ٿيڻ. اهي ڪاروباري سرگرمين جي وسيع رينج کي سنڀالي سگهن ٿا، جهڙوڪ خرچن کي اختيار ڏيڻ، آن لائين صارفين سان مشغول ڪرڻ، ۽ ليڊز پيدا ڪرڻ.
python سان پنهنجو پاڻ کي ڊيپ لرننگ چيٽ بوٽ ٺاهيو
جي ميدان ۾ chatbots جا ڪيترائي مختلف قسم آهن مشين جي سکيا ۽ AI. ڪجهه چيٽ بوٽس مجازي اسسٽنٽ آهن، جڏهن ته ٻيا صرف ڳالهائڻ لاء آهن، جڏهن ته ٻيا ڪسٽمر سروس ايجنٽ آهن.
توهان شايد ڏٺو آهي ته انهن مان ڪجهه جن کي ڪاروبار طرفان ملازمن جي سوالن جا جواب ڏيڻ لاء. اسان هن سبق ۾ هڪ ننڍڙو چيٽ بوٽ ٺاهينداسين، اڪثر پڇيل سوالن جا جواب ڏيڻ لاءِ.
1. انسٽال ڪرڻ پيڪيجز
اسان جو پهريون قدم هيٺ ڏنل پيڪيجز کي انسٽال ڪرڻ آهي.
2. ٽريننگ ڊيٽا
ھاڻي اھو وقت آھي اھو معلوم ڪرڻ جو اسان کي ڪھڙي قسم جي معلومات جي ضرورت پوندي اسان جي چيٽ بوٽ کي. اسان کي ڪا وڏي ڊيٽا سيٽ ڊائون لوڊ ڪرڻ جي ضرورت ناهي ڇو ته هي هڪ سادي چيٽ بوٽ آهي.
اسان صرف ان معلومات کي استعمال ڪنداسين جيڪو اسان پاڻ ٺاهيو آهي. سبق سان گڏ مؤثر طريقي سان عمل ڪرڻ لاءِ، توهان کي هڪ .JSON فائل ٺاهڻ جي ضرورت پوندي ساڳي فارميٽ سان جيئن هيٺ ڏجي ٿي. منهنجي فائل جو نالو آهي "intents.json."
JSON فائل کي پيغامن جو هڪ سيٽ ٺاهڻ لاءِ استعمال ڪيو ويندو آهي جيڪو صارف ان پٽ ڪرڻ ۽ لاڳاپيل جوابن جي هڪ سيٽ ڏانهن نقشو ڪرڻ جو امڪان آهي. فائل ۾ هر لغت ۾ هڪ ٽيگ آهي جيڪو سڃاڻي ٿو ته هر پيغام جو تعلق ڪهڙي گروپ سان آهي.
اسان هن معلومات کي تربيت ڏيڻ لاء استعمال ڪنداسين نظرياتي نيٽورڪ لفظن جي هڪ جملي کي درجه بندي ڪرڻ لاءِ اسان جي فائل ۾ ٽيگ مان هڪ.
اسان صرف انهن گروپن مان هڪ جواب وٺي سگهون ٿا ۽ صارف کي مهيا ڪري سگهون ٿا. چيٽ بوٽ بهتر ۽ وڌيڪ پيچيده ٿي ويندو جيڪڏهن توهان ان کي اضافي ٽيگ، جوابن ۽ نمونن سان پيش ڪندا.
3. JSON ڊيٽا لوڊ ڪندي
اسان شروع ڪنداسين اسان جي .json ڊيٽا ۾ لوڊ ڪندي ۽ ڪجھ ماڊل درآمد ڪندي. گڏ ڪريو your.json فائل ساڳي ڊاريڪٽري ۾ توهان جي پٿون اسڪرپٽ. اسان جي .json ڊيٽا هاڻي ڊيٽا متغير ۾ محفوظ ڪئي ويندي.
4. ڊيٽا ڪڍڻ
ھاڻي اھو وقت آھي ان معلومات کي ڪڍڻ جو جيڪو اسان جي JSON فائل مان گھربل آھي. سڀئي نمونا، گڏوگڏ ڪلاس/ٽيگ جنهن سان اهي تعلق رکن ٿا، گهربل آهن.
اسان کي اسان جي نمونن ۾ سڀني منفرد اصطلاحن جي ھڪڙي فهرست جي ضرورت پوندي (جنھن سببن جي ڪري اسين بعد ۾ وضاحت ڪنداسين)، تنھنڪري اچو ته انھن قدرن تي نظر رکڻ لاءِ ڪجھ خالي لسٽون ٺاھيون.
ھاڻي اسان پنھنجي JSON ڊيٽا ذريعي لوپ ڪنداسين ۽ معلومات حاصل ڪنداسين جيڪا اسان کي گھربل آھي. بلڪه انهن کي اسٽرنگ طور رکڻ جي، اسان استعمال ڪنداسين nltk.word tokenizer هر نموني کي لفظن جي فهرست ۾ تبديل ڪرڻ لاءِ.
پوء، اسان جي docs_x لسٽ ۾، اسان هر نموني کي شامل ڪنداسين، ان سان لاڳاپيل ٽيگ سان گڏ، docs_y لسٽ ۾.
5. لفظ اسٽيمنگ
ڪنهن لفظ جي جڙ ڳولڻ کي اسٽيمنگ چئبو آهي. مثال طور، لفظ جو اسٽيم "thats" اسٽيم ٿي سگهي ٿو "اهو"، جڏهن ته لفظ "ٿي رهيو آهي" جو اسٽيم "ٿي سگهي ٿو."
اسان هن اسٽيمنگ ٽيڪنڪ کي استعمال ڪنداسين اسان جي ماڊل جي لفظن کي ڪٽڻ لاءِ ۽ اهو معلوم ڪرڻ جي ڪوشش ڪنداسين ته ڪهڙن جملن جو مطلب عام طور تي. هي ڪوڊ صرف ٺاهيل لفظن جي هڪ منفرد فهرست ٺاهيندو جيڪو اسان جي ڊيٽا جي تياري جي ايندڙ مرحلي ۾ استعمال ڪيو ويندو.
6. لفظن جو ٿلهو
اهو وقت آهي لفظن جي هڪ ٿلهي بابت ڳالهائڻ جو هاڻي ته اسان پنهنجو ڊيٽا درآمد ڪيو آهي ۽ هڪ اسٽيم ٿيل لفظ ٺاهيا آهن. قدرتي نيٽ ورڪ ۽ مشين لرننگ الگورتھم، جيئن اسان سڀ ڄاڻون ٿا، عددي ان پٽ جي ضرورت آھي. تنهنڪري اسان جي اسٽرنگ لسٽ ان کي ڪٽڻ وارو ناهي. اسان کي اسان جي جملن ۾ انگن جي نمائندگي ڪرڻ لاء هڪ ميکانيزم جي ضرورت آهي، جتي لفظن جو هڪ ٿلهو اچي ٿو.
هر جملي کي اسان جي ماڊل جي لغت ۾ اصطلاحن جي تعداد جي ڊگھائي جي فهرست سان پيش ڪيو ويندو. اسان جي لغت ۾ هر لفظ کي فهرست ۾ هڪ جڳهه جي نمائندگي ڪئي ويندي. جيڪڏهن لسٽ ۾ پوزيشن هڪ 1 آهي، لفظ اسان جي بيان ۾ ظاهر ٿئي ٿو؛ جيڪڏهن اهو هڪ 0 آهي، لفظ اسان جي جملي ۾ ظاهر نه ٿيندو.
اسان ان کي لفظن جو ٿلهو چئون ٿا ڇاڪاڻ ته اسان کي خبر ناهي ته جملي ۾ لفظ ڪهڙي ترتيب ۾ اچن ٿا. اسان سڀ ڄاڻون ٿا ته اهي اسان جي ماڊل جي لغت ۾ موجود آهن.
اسان جي ان پٽ کي ترتيب ڏيڻ کان علاوه، اسان کي لازمي طور تي اسان جي پيداوار کي فارميٽ ڪرڻ گهرجي ته جيئن نيورل نيٽورڪ ان کي سمجهي. اسان ٻاھرين لسٽون ٺاھينداسين جيڪي اسان جي ڊيٽا سيٽ ۾ ليبلز/ٽيگ جي تعداد جي ڊگھائي آھن، لفظن جي ھڪڙي ٿلهي وانگر. لسٽ ۾ هر جڳهه هڪ منفرد ليبل/ٽيگ جي نمائندگي ڪري ٿو، ۽ 1 انهن هنڌن مان ڪنهن به هنڌ مان ظاهر ٿئي ٿو ته ڪهڙي ليبل/ٽيگ جي نمائندگي ڪئي پئي وڃي.
آخرڪار، اسان استعمال ڪنداسين NumPy arrays اسان جي ٽريننگ ڊيٽا ۽ آئوٽ کي ذخيرو ڪرڻ لاء.
7. ماڊل ڊولپمينٽ
اسان هڪ ماڊل ٺاهڻ ۽ ٽريننگ شروع ڪرڻ لاءِ تيار آهيون هاڻي اسان پنهنجي سموري ڊيٽا کي اڳڀرائي ڪري چڪا آهيون. اسان اسان جي مقصدن لاءِ ٻن لڪيل تہن سان گڏ ھڪڙو بنيادي فيڊ فارورڊ نيورل نيٽ ورڪ استعمال ڪنداسين.
اسان جي نيٽ ورڪ جو مقصد لفظن جي مجموعن کي ڏسڻ ۽ انهن کي ڪلاس ۾ تفويض ڪرڻ هوندو (JSON فائل مان اسان جي ٽيگ مان هڪ). اسان پنهنجي ماڊل جي فن تعمير کي قائم ڪندي شروع ڪنداسين. ذهن ۾ رکو ته توهان ڪجهه نمبرن سان راند ڪري سگهو ٿا بهتر نموني سان گڏ اچي! مشين جي سکيا گهڻو ڪري آزمائشي ۽ غلطي تي ٻڌل آهي.
8. ماڊل ٽريننگ ۽ بچت
اهو وقت آهي اسان جي ماڊل کي اسان جي ڊيٽا تي تربيت ڏيڻ جو هاڻي اسان ان کي سيٽ ڪيو آهي! اسان هن کي حاصل ڪنداسين اسان جي ڊيٽا کي ماڊل کي ترتيب ڏيڻ سان. دورن جو تعداد جيڪو اسان مهيا ڪريون ٿا اهو تعداد آهي ته ماڊل ٽريننگ دوران ساڳئي ڊيٽا کي بي نقاب ڪيو ويندو.
اسان ماڊل کي فائل ماڊل ۾ محفوظ ڪري سگھون ٿا هڪ دفعو اسان ان کي ٽريننگ مڪمل ڪيو. tflearn هڪ اسڪرپٽ آهي جيڪا ٻين اسڪرپٽ ۾ استعمال ٿي سگهي ٿي.
9. هڪ چيٽ بوٽ استعمال ڪندي
ھاڻي توھان پنھنجي بوٽ سان چيٽنگ شروع ڪري سگھو ٿا.
Chatbot جا فائدا
- جيئن ته بوٽن کي سال ۾ 365 ڏينهن، 24 ڪلاڪ هڪ ڏينهن، بغير ادا ڪرڻ، دستيابي ۽ رد عمل جي رفتار وڌائڻ جي توقع آهي.
- اهي بوٽ وڏي ڊيٽا جي ٽن اهم بمقابلي کي منهن ڏيڻ لاء مڪمل اوزار آهن: حجم، رفتار، ۽ مختلف قسم.
- Chatbots سافٽ ويئر آھن جيڪي ھڪڙي ڪمپني جي صارفين جي باري ۾ سکڻ ۽ سمجھڻ لاء استعمال ڪري سگھجن ٿيون.
- ان ۾ اعليٰ طاقت آهي ته ان وٽ اعليٰ فائدن کان پوءِ سستو سار سنڀال جي قيمت آهي.
- Chatbot ايپليڪيشنون ڊيٽا ٺاهي ٿي جيڪا محفوظ ٿي سگهي ٿي ۽ تجزياتي ۽ اڳڪٿين لاءِ استعمال ٿي سگهي ٿي.
استعمال ڪيس
- ڪسٽمر جي سوالن کي حل ڪرڻ
- اڪثر پڇيا ويندڙ سوالن جا جواب ڏيڻ
- ٽيم جي حمايت لاء گراهڪن کي تفويض ڪرڻ
- ڪسٽمر راء گڏ ڪرڻ
- تجويز ڪيل نئين آڇون
- گفتگو واري واپار سان خريد ڪريو
- آئي ٽي مدد ڊيسڪ
- رهائش جي بکنگ
- رقم منتقلي
ٿڪل
چيٽ بوٽس، ٻين AI ٽيڪنالاجيز وانگر، انساني صلاحيتن کي وڌائڻ ۽ انسانن کي وڌيڪ تخليقي ۽ تخيلاتي ٿيڻ جي اجازت ڏيڻ لاءِ استعمال ڪيو ويندو انهن کي حڪمت عملي جي بجاءِ اسٽريٽجڪ ڪمن تي وڌيڪ وقت گذارڻ جي اجازت ڏيڻ.
ڪاروبار، ملازمن، ۽ صارفين کي بهتر ڪيل چيٽ بٽ خاصيتن مان فائدو حاصل ڪرڻ جو امڪان آهي جيئن ته تيز سفارشون ۽ اڳڪٿيون، انهي سان گڏ هڪ گفتگو جي اندر کان اعلي تعريف واري ويڊيو ڪانفرنس تائين آسان رسائي، ويجهي مستقبل ۾، جڏهن AI جي ترقي سان گڏ ڪيو ويندو. 5G ٽيڪنالاجي.
اهي ۽ ٻيا امڪان اڃا تائين تحقيق ڪري رهيا آهن، پر جيئن انٽرنيٽ ڪنيڪشن، AI، NLP، ۽ مشين سکيا جي ترقي، اهي وڌيڪ عام ٿي ويندا.
چئو
سلام،
هن پروگرام لاء توهان جي مهرباني.
مون کي هڪ سوال آهي.
"bag_of_words" جي وضاحت نه ڪئي وئي آهي. مان هن غلطي کي سمجهي نٿو سگهان.
ڇا توهان مون کي ٻڌائي سگهو ٿا ته آئون هن غلطي کي ڪيئن حل ڪري سگهان ٿو؟
هن پروگرام لاء توهان جي مهرباني !! ڀلو ڏينهن ماڻيو
مهمود
مھرباني ڪري chatbot سيڪشن کي استعمال ڪرڻ کان پھريان ھڪ فنڪشن شامل ڪريو:
/////////////////////////////////////// ///////////////////////
def bag_of_words(s, words):
بيگ = [0 لاءِ _ حد ۾ (لين (لفظ))]
s_words = nltk.word_tokenize(s)
s_words = [stemmer.stem(word.lower()) s_words ۾ لفظ لاءِ]
s_words ۾ se for:
i لاءِ، w inumerate (لفظن):
جيڪڏهن w == se:
ٿيلهو [i] = 1
واپسي numpy.array(بيگ)
// اهو ضرور توهان جو مسئلو حل ڪندو. //
/////////////////////////////////////// /////////////////////
مان توهان سان مڪمل ڪوڊ شيئر ڪري رهيو آهيان، تنهنڪري توهان کي ان جي واضح تصوير ملندي.
/////////////////////////////////////// ///////
اين ايل ٽي درآمد ڪيو
nltk.stem.lancaster کان درآمد LancasterStemmer
اسٽيمر = لنڪاسٽر اسٽيمر ()
numpy درآمد ڪريو
tflearn درآمد ڪريو
tensorflow درآمد ڪريو
بي ترتيب درآمد
جونسن درآمد ڪريو
اچار درآمد ڪريو
کليل ("intents.json") سان فائل طور:
ڊيٽا = json.load(فائل)
ڪوشش ڪر:
کليل سان (“data.pickle”، “rb”) جيئن f:
لفظ، نشان، تربيت، output = pickle.load(f)
کانسواءِ:
لفظ = []
ليبل = []
docs_x = []
docs_y = []
ڊيٽا ۾ ارادي لاءِ [“ارادا”]:
ارادي ۾ نمونن لاءِ["نمونين"]:
wrds = nltk.word_tokenize(نمون)
words.extend(wrds)
docs_x.append(wrds)
docs_y.append( ارادو[“ٽيگ”])
جيڪڏهن ارادو [“ٽيگ”] ليبل ۾ نه آهي:
labels.append( ارادو[“ٽيگ”])
لفظن = [stemmer.stem(w.lower()) w لاءِ لفظن ۾ جيڪڏھن w != “؟”]
لفظ = ترتيب ڏنل (فهرست (سيٽ (لفظ)))
ليبل = ترتيب ڏنل (ليبل)
تربيت = []
پيداوار = []
ٻاهر_خالي = [0 لاءِ _ رينج ۾ (لين (ليبل))]
x لاءِ، ڳڻپ ۾ دستاويز (docs_x):
ٿيلهو = []
wrds = [stemmer.stem(w.lower()) for w in doc]
لفظن ۾ w لاء:
جيڪڏهن wrds ۾:
ٿلهو، ضميمو (1)
ٻيو:
ٿلهو، ضميمو (0)
output_row = ٻاھر_خالي[:]
output_row[labels.index(docs_y[x])] = 1
Training.append(Bag)
output.append(output_row)
تربيت = numpy.array (تربيت)
output = numpy.array (آئوٽ پُٽ)
کليل سان (“data.pickle”، “wb”) جيئن f:
pickle.dump((لفظ، ليبل، ٽريننگ، آئوٽ پٽ)، f)
tensorflow.reset_default_graph()
net = tflearn.input_data(شڪل=[ڪو به نه، لين(ٽريننگ[0])])
net = tflearn.fully_connected (net, 8)
net = tflearn.fully_connected (net, 8)
net = tflearn.fully_connected(net, len(output[0]), activation="softmax")
net = tflearn.regression (net)
ماڊل = tflearn.DNN (net)
ڪوشش ڪر:
model.load(“model.tflearn”)
کانسواءِ:
model.fit(ٽريننگ، آئوٽ پٽ، n_epoch=1500, batch_size=8, show_metric=True)
model.save(“model.tflearn”)
def bag_of_words(s, words):
بيگ = [0 لاءِ _ حد ۾ (لين (لفظ))]
s_words = nltk.word_tokenize(s)
s_words = [stemmer.stem(word.lower()) s_words ۾ لفظ لاءِ]
s_words ۾ se for:
i لاءِ، w inumerate (لفظن):
جيڪڏهن w == se:
ٿيلهو [i] = 1
واپسي numpy.array(بيگ)
def chat():
پرنٽ ("بوٽ سان ڳالهائڻ شروع ڪريو (روڪ ڪرڻ لاءِ ٽائپ ڪريو)!")
جڏهن ته سچو:
inp = ان پٽ ("توهان:")
جيڪڏهن inp.lower() == "ڇڏيو":
ٽوڙڻ
نتيجا = نمونو. اڳڪٿي ([bag_of_words(inp, words)])
results_index = numpy.argmax(نتيجا)
ٽيگ = ليبل[نتيجو_انڊيڪس]
ڊيٽا ۾ tg لاءِ [“ارادن”]:
جيڪڏهن tg['tag'] == ٽيگ:
جواب = tg['جواب']
پرنٽ(random.choice(جواب))
چيٽ()
/////////////////////////////////////// ////////////
توهان جي مهرباني،
خوش ڪوڊنگ!
Lu
سلام،
ڇا توھان مون کي ھڪڙو خيال ڏئي سگھوٿا عمل ڪرڻ جي صورت ۾ پٿون ۾ چيٽ بٽ ٺاھڻ چاھيو، پر معلومات حاصل ڪئي وئي آھي ھڪڙي سروي مان حاصل ڪئي وئي ايڪسل ۾. تنهنجي مهرباني!