مواصلات کے شعبے میں ٹیکسٹ اور ویژول کے حق میں وائس کالز کو مرحلہ وار ختم کیا جا رہا ہے۔ فیس بک کے ایک سروے کے مطابق، نصف سے زیادہ خریدار ایسی کمپنی سے خریدنے کو ترجیح دیتے ہیں جس سے وہ بات کر سکیں۔ چیٹنگ مواصلات کا نیا سماجی طور پر قابل قبول طریقہ بن گیا ہے۔
یہ کاروباروں کو کسی بھی وقت اور کسی بھی مقام سے اپنے گاہکوں کے ساتھ بات چیت کرنے کے قابل بناتا ہے۔ چیٹ بوٹس اپنے استعمال میں آسانی اور کم انتظار کے اوقات کی وجہ سے کمپنیوں اور صارفین میں تیزی سے مقبولیت حاصل کر رہے ہیں۔
چیٹ بوٹس، یا خودکار بات چیت کے پروگرام، کلائنٹس کو ٹیکسٹ بیسڈ انٹرفیس کے ذریعے خدمات تک رسائی حاصل کرنے کے لیے زیادہ حسب ضرورت طریقہ فراہم کرتے ہیں۔ جدید ترین AI سے چلنے والے چیٹ بوٹس ایک مخصوص ماحول میں کسی شخص (یا کسی دوسرے بوٹ، آغاز) کے ذریعے کیے گئے استفسار (سوال، کمانڈ، آرڈر وغیرہ) کو پہچان سکتے ہیں اور مناسب طریقے سے جواب دے سکتے ہیں (جواب، عمل، وغیرہ)۔
اس پوسٹ میں، ہم اس بات پر جائیں گے کہ چیٹ بوٹس کیا ہیں، ان کے فوائد، استعمال کے کیسز، اور اپنے بنانے کا طریقہ گہری سیکھنے دیگر چیزوں کے علاوہ ازگر میں چیٹ بوٹ۔
چلیں شروع کرتے ہیں۔۔
تو، چیٹ بوٹس کیا ہیں؟
چیٹ بوٹ کو اکثر انسانی مشین کے تعامل کی سب سے جدید اور امید افزا شکلوں میں سے ایک کہا جاتا ہے۔ یہ ڈیجیٹل اسسٹنٹس لوگوں اور خدمات کے درمیان تعامل کو ہموار کرکے کسٹمر کے تجربے کو بہتر بناتے ہیں۔
اس کے ساتھ ساتھ، وہ کاروبار کو نئے اختیارات فراہم کرتے ہیں تاکہ صارفین کے رابطے کے عمل کو کارکردگی کے لیے بہتر بنایا جا سکے، جو روایتی امدادی اخراجات کو کم کر سکتا ہے۔
مختصراً، یہ AI پر مبنی سافٹ ویئر ہے جس کا مقصد انسانوں کے ساتھ ان کی قدرتی زبانوں میں بات چیت کرنا ہے۔ یہ چیٹ بوٹس اکثر آڈیو یا تحریری تکنیک کے ذریعے بات چیت کرتے ہیں، اور وہ انسانوں کے ساتھ انسانوں کے ساتھ جڑنے کے لیے آسانی سے انسانی زبانوں کی نقل کر سکتے ہیں۔
چیٹ بوٹس صارفین کے ساتھ اپنے تعاملات سے سیکھتے ہیں، وقت کے ساتھ ساتھ زیادہ حقیقت پسندانہ اور کارآمد ہوتے ہیں۔ وہ کاروباری سرگرمیوں کی ایک وسیع رینج کو سنبھال سکتے ہیں، جیسے کہ اخراجات کی اجازت دینا، آن لائن صارفین کے ساتھ مشغول ہونا، اور لیڈز پیدا کرنا۔
ازگر کے ساتھ اپنا ڈیپ لرننگ چیٹ بوٹ بنانا
کے میدان میں چیٹ بوٹس کی بہت سی الگ الگ قسمیں ہیں۔ مشین لرننگ اور 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" stem کا stem "that" ہو سکتا ہے جبکہ لفظ "happening" کا اسٹیم "happen" ہو سکتا ہے۔
ہم اس اسٹیمنگ تکنیک کا استعمال اپنے ماڈل کی ذخیرہ الفاظ کو کم کرنے کے لیے کریں گے اور یہ جاننے کی کوشش کریں گے کہ عام طور پر کیا جملے مراد لیتے ہیں۔ یہ کوڈ سادہ الفاظ کی ایک منفرد فہرست تیار کرے گا جو ہمارے ڈیٹا کی تیاری کے اگلے مرحلے میں استعمال ہوں گے۔
6. الفاظ کا تھیلا
یہ الفاظ کے تھیلے کے بارے میں بات کرنے کا وقت ہے جب کہ ہم نے اپنا ڈیٹا درآمد کر لیا ہے اور ایک اسٹیمڈ ذخیرہ الفاظ تیار کیے ہیں۔ نیند نیٹ ورک اور مشین لرننگ الگورتھم، جیسا کہ ہم سب جانتے ہیں، عددی ان پٹ کی ضرورت ہوتی ہے۔ تو ہماری سٹرنگ لسٹ اسے کاٹنے والی نہیں ہے۔ ہمیں اپنے جملے میں اعداد کی نمائندگی کرنے کے لیے ایک طریقہ کار کی ضرورت ہے، جہاں سے الفاظ کا ایک بیگ آتا ہے۔
ہر فقرے کی نمائندگی ہمارے ماڈل کے الفاظ میں اصطلاحات کی تعداد کی لمبائی کی فہرست کے ذریعے کی جائے گی۔ ہماری لغت میں ہر لفظ کو فہرست میں ایک جگہ سے ظاہر کیا جائے گا۔ اگر فہرست میں پوزیشن 1 ہے، تو یہ لفظ ہمارے بیان میں ظاہر ہوتا ہے۔ اگر یہ 0 ہے تو یہ لفظ ہمارے جملے میں ظاہر نہیں ہوتا ہے۔
ہم اسے الفاظ کا تھیلا کہتے ہیں کیونکہ ہم نہیں جانتے کہ جملے میں الفاظ کس ترتیب میں ظاہر ہوتے ہیں۔ ہم صرف اتنا جانتے ہیں کہ وہ ہمارے ماڈل کے الفاظ میں موجود ہیں۔
اپنے ان پٹ کی ساخت کے علاوہ، ہمیں اپنے آؤٹ پٹ کو بھی فارمیٹ کرنا چاہیے تاکہ نیورل نیٹ ورک اسے سمجھ سکے۔ ہم آؤٹ پٹ لسٹیں بنائیں گے جو کہ ہمارے ڈیٹاسیٹ میں لیبلز/ٹیگز کی تعداد کی لمبائی ہے، جو کہ الفاظ کے تھیلے کی طرح ہے۔ فہرست میں ہر جگہ ایک منفرد لیبل/ٹیگ کی نمائندگی کرتی ہے، اور ان میں سے کسی ایک جگہ کا 1 اشارہ کرتا ہے کہ کون سا لیبل/ٹیگ نمائندگی کر رہا ہے۔
آخر میں، ہم اپنے تربیتی ڈیٹا اور آؤٹ پٹ کو ذخیرہ کرنے کے لیے NumPy arrays کا استعمال کریں گے۔
7. ماڈل ڈویلپمنٹ
ہم اب ایک ماڈل کی تعمیر اور تربیت شروع کرنے کے لیے تیار ہیں جب کہ ہم نے اپنے تمام ڈیٹا کو پہلے سے تیار کر لیا ہے۔ ہم اپنے مقاصد کے لیے دو پوشیدہ پرتوں کے ساتھ ایک بہت ہی بنیادی فیڈ فارورڈ نیورل نیٹ ورک کا استعمال کریں گے۔
ہمارے نیٹ ورک کا مقصد الفاظ کے مجموعے کو دیکھنا اور انہیں ایک کلاس (JSON فائل سے ہمارے ٹیگز میں سے ایک) کو تفویض کرنا ہوگا۔ ہم اپنے ماڈل کے فن تعمیر کو قائم کرکے شروع کریں گے۔ ذہن میں رکھیں کہ آپ ایک بہتر ماڈل کے ساتھ آنے کے لیے کچھ نمبروں کے ساتھ کھیل سکتے ہیں! مشین سیکھنے زیادہ تر آزمائش اور غلطی پر مبنی ہے۔
8. ماڈل ٹریننگ اور بچت
اب وقت آگیا ہے کہ ہم اپنے ماڈل کو اپنے ڈیٹا پر تربیت دیں جب کہ ہم اسے ترتیب دے چکے ہیں! ہم اپنے ڈیٹا کو ماڈل میں فٹ کر کے یہ حاصل کریں گے۔ ہم فراہم کردہ عہدوں کی تعداد یہ ہے کہ تربیت کے دوران ماڈل کو ایک ہی ڈیٹا کے سامنے آنے کی تعداد کتنی بار ہوگی۔
جب ہم اس کی تربیت مکمل کر لیتے ہیں تو ہم اسے فائل ماڈل میں محفوظ کر سکتے ہیں۔ tflearn ایک اسکرپٹ ہے جسے دوسرے اسکرپٹ میں استعمال کیا جاسکتا ہے۔
9. چیٹ بوٹ استعمال کرنا
اب آپ اپنے بوٹ کے ساتھ چیٹنگ شروع کر سکتے ہیں۔
چیٹ بوٹ کے فوائد
- جیسا کہ بوٹس سے توقع کی جاتی ہے کہ وہ سال میں 365 دن، دن کے 24 گھنٹے، بغیر تنخواہ کے، دستیابی اور ردعمل کی رفتار میں اضافہ کریں۔
- یہ بوٹس بڑے ڈیٹا کے تین کلیدی بمقابلہ سے نمٹنے کے لیے بہترین ٹولز ہیں: حجم، رفتار اور مختلف۔
- چیٹ بوٹس ایک ایسا سافٹ ویئر ہے جو کمپنی کے صارفین کے بارے میں جاننے اور سمجھنے کے لیے استعمال کیا جا سکتا ہے۔
- اس میں اعلیٰ طاقت ہے کہ اعلیٰ فوائد کے بعد اس کی دیکھ بھال کی سستی لاگت ہے۔
- چیٹ بوٹ ایپلی کیشنز ڈیٹا تخلیق کرتی ہیں جو تجزیات اور پیشین گوئیوں کے لیے محفوظ اور استعمال کی جا سکتی ہیں۔
یوز کیس
- کسٹمر کے سوالات کو حل کرنا
- اکثر پوچھے گئے سوالات کا جواب دینا
- سپورٹ ٹیم کے لیے گاہکوں کو تفویض کرنا
- گاہک کی رائے جمع کرنا
- نئی پیشکشیں تجویز کرنا
- بات چیت کی تجارت کے ساتھ خریداری کریں۔
- IT ہیلپ ڈیسک
- رہائش کی بکنگ
- رقم کی منتقلی
نتیجہ
چیٹ بوٹس، دیگر AI ٹیکنالوجیز کی طرح، انسانی مہارتوں کو بڑھانے اور انسانوں کو زیادہ تخلیقی اور تخیلاتی بننے کے لیے آزاد کرنے کے لیے استعمال کیے جائیں گے تاکہ وہ حکمت عملی کے کاموں کے بجائے اسٹریٹجک پر زیادہ وقت گزار سکیں۔
کاروباروں، ملازمین اور صارفین کو چیٹ بوٹ کی بہتر خصوصیات سے فائدہ اٹھانے کا امکان ہے جیسے کہ تیز تر سفارشات اور پیشین گوئیاں، ساتھ ہی بات چیت کے اندر سے ہائی ڈیفینیشن ویڈیو کانفرنسنگ تک آسان رسائی، مستقبل قریب میں، جب AI کو ترقی کے ساتھ جوڑ دیا جائے گا۔ 5G ٹیکنالوجی۔
ان اور دیگر امکانات کی ابھی بھی چھان بین کی جا رہی ہے، لیکن جیسے جیسے انٹرنیٹ کنیکٹیویٹی، AI، NLP، اور مشین لرننگ میں پیشرفت ہوتی جائے گی، یہ مزید پھیلتے جائیں گے۔
چو
ہیلو،
اس پروگرام کے لیے آپ کا شکریہ۔
میرا ایک سوال ہے.
"bag_of_words" کی وضاحت نہیں کی گئی ہے۔ میں اس غلطی کو نہیں سمجھ سکتا۔
کیا آپ مجھے بتا سکتے ہیں کہ میں اس غلطی کو کیسے حل کرسکتا ہوں؟
اس پروگرام کے لیے آپ کا شکریہ!! آپ کا دن اچھا گزرے۔
جے
براہ کرم چیٹ بوٹ سیکشن استعمال کرنے سے پہلے ایک فنکشن شامل کریں:
////////////////////////////////////////// /////////////////////////
def bag_of_words(الفاظ، الفاظ):
بیگ = [0 کے لیے _ رینج میں (لین (الفاظ))]
s_words = nltk.word_tokenize(s)
s_words = [stemmer.stem(word.lower()) s_words میں لفظ کے لیے]
s_words میں se for:
i کے لیے، w enumerate (الفاظ میں):
اگر w == se:
بیگ [i] = 1
واپسی numpy.array(بیگ)
// یہ یقینی طور پر آپ کا مسئلہ حل کرے گا۔ //
////////////////////////////////////////////////////// //////////////////////////
میں آپ کے ساتھ مکمل کوڈ شیئر کر رہا ہوں، تاکہ آپ کو اس کی واضح تصویر ملے۔
////////////////////////////////////////// ////////
درآمد nltk
nltk.stem.lancaster درآمد LancasterStemmer سے
سٹیمر = لنکاسٹر سٹیمر ()
numpy درآمد کریں۔
tflearn درآمد کریں۔
ٹینسر فلو درآمد کریں۔
بے ترتیب درآمد
درآمد json
اچار درآمد کریں
فائل کے طور پر اوپن ("intents.json") کے ساتھ:
ڈیٹا = json.load(فائل)
کوشش کریں:
اوپن ("data.pickle"، "rb") کے ساتھ بطور f:
الفاظ، لیبل، تربیت، آؤٹ پٹ = 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 کے لیے if w != “?”]
الفاظ = ترتیب شدہ (فہرست (سیٹ (الفاظ)))
لیبلز = ترتیب شدہ (لیبل)
تربیت = []
آؤٹ پٹ = []
باہر_خالی = [0 کے لیے _ رینج میں (لین(لیبلز))]
x کے لیے، enumerate میں doc (docs_x):
بیگ = []
wrds = [stemmer.stem(w.lower()) w for doc میں]
الفاظ میں w کے لیے:
اگر wrds میں:
bag.append(1)
اور:
bag.append(0)
output_row = out_empty[:]
output_row[labels.index(docs_y[x])] = 1
training.append(بیگ)
output.append(output_row)
تربیت = numpy.array (تربیت)
آؤٹ پٹ = numpy.array (آؤٹ پٹ)
اوپن("data.pickle"، "wb") کے ساتھ بطور f:
pickle.dump((الفاظ، لیبل، تربیت، آؤٹ پٹ)، f)
tensorflow.reset_default_graph()
net = tflearn.input_data(شکل=[کوئی نہیں، لین(ٹریننگ[0])])
نیٹ = tflearn.fully_connected(net, 8)
نیٹ = tflearn.fully_connected(net, 8)
نیٹ = tflearn.fully_connected(net, len(output[0]), ایکٹیویشن="softmax")
نیٹ = 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(الفاظ، الفاظ):
بیگ = [0 کے لیے _ رینج میں (لین (الفاظ))]
s_words = nltk.word_tokenize(s)
s_words = [stemmer.stem(word.lower()) s_words میں لفظ کے لیے]
s_words میں se for:
i کے لیے، w enumerate (الفاظ میں):
اگر w == se:
بیگ [i] = 1
واپسی numpy.array(بیگ)
ڈیف چیٹ():
پرنٹ ("بوٹ کے ساتھ بات کرنا شروع کریں (روکنے کے لیے چھوڑیں ٹائپ کریں)!")
جبکہ سچ:
inp = ان پٹ ("آپ:")
اگر inp.lower() == "چھوڑ دو":
توڑ
نتائج = ماڈل۔پیش گوئی([bag_of_words(inp، الفاظ)])
نتائج_انڈیکس = numpy.argmax(نتائج)
ٹیگ = لیبل[نتائج_انڈیکس]
ڈیٹا میں tg کے لیے["ارادے"]:
اگر tg['tag'] == ٹیگ:
ردعمل = tg['جوابات']
پرنٹ(random.choice(جوابات))
بات چیت ()
////////////////////////////////////////////////////// // ///////////////
شکریہ،
مبارک کوڈنگ!
Lu
ہیلو،
کیا آپ مجھے python میں چیٹ بوٹ بنانے کی خواہش کی صورت میں انجام دینے کے عمل کا اندازہ دے سکتے ہیں، لیکن معلومات ایکسل میں ایک سروے سے حاصل کی گئی ہیں۔ شکریہ!