د مخابراتو په سکتور کې د متن او لیدونو په ګټه غږیز زنګونه مرحله کیږي. د فیسبوک د نظرپوښتنې له مخې، له نیمایي څخه ډیر پیرودونکي د داسې شرکت څخه پیرود غوره کوي چې دوی ورسره خبرې کولی شي. چیٹنگ د اړیکو نوی ټولنیز منل شوی موډل ګرځیدلی.
دا سوداګرۍ ته وړتیا ورکوي چې د خپلو پیرودونکو سره په هر وخت او هر ځای کې اړیکه ونیسي. Chatbots په زیاتیدونکي توګه د شرکتونو او پیرودونکو ترمنځ د دوی د کارولو اسانتیا او د انتظار وخت کمولو له امله شهرت ترلاسه کوي.
Chatbots، یا د خبرو اترو اتوماتیک پروګرامونه، پیرودونکو ته د متن پر بنسټ د انٹرفیس له لارې خدماتو ته د لاسرسي لپاره یو ډیر دودیز میتود چمتو کوي. د AI لخوا پرمخ وړل شوي نوي چیټ بوټونه کولی شي په ځانګړي چاپیریال کې د یو شخص (یا بل بوټ ، پیل) لخوا رامینځته شوې پوښتنه (پوښتنه ، قومانده ، امر او نور) پیژني او مناسب ځواب ورکړي (ځواب ، عمل او نور).
پدې پوسټ کې ، موږ به وګورو چې چیټ بوټ څه دي ، د دوی ګټې ، د کارولو قضیې ، او څنګه خپل ځان جوړ کړئ ژوره زده کړه chatbot په Python کې، د نورو شیانو په منځ کې.
راځه چي پیل یی کړو.
نو، چیټ بوټ څه دي؟
چیټ بوټ په مکرر ډول د انسان - ماشین متقابل عمل یو له خورا پرمختللی او ژمنو ډولونو څخه شمیرل کیږي. دا ډیجیټل معاونین د خلکو او خدماتو ترمینځ متقابل عمل تنظیم کولو سره د پیرودونکو تجربه ښه کوي.
په ورته وخت کې ، دوی سوداګرۍ ته نوي اختیارونه چمتو کوي ترڅو د پیرودونکي اړیکې پروسې د موثریت لپاره مطلوب کړي ، کوم چې کولی شي د دودیز ملاتړ لګښتونه کم کړي.
په لنډه توګه، دا د AI پر بنسټ سافټویر دی چې د انسانانو سره د دوی په طبیعي ژبو کې د خبرو اترو لپاره دی. دا چیټ بوټونه اکثرا د آډیو یا لیکلو تخنیکونو له لارې متقابل عمل کوي ، او دوی کولی شي په اسانۍ سره د انسان ژبې تقلید وکړي ترڅو د انسان په څیر له انسانانو سره وصل شي.
Chatbots د کاروونکو سره د دوی د متقابل عمل څخه زده کوي، د وخت په تیریدو سره ډیر حقیقي او اغیزمن کیږي. دوی کولی شي د سوداګریزو فعالیتونو پراخه لړۍ اداره کړي، لکه د لګښتونو اجازه ورکول، آنلاین مصرف کونکو سره ښکیلتیا، او د لیډونو تولید کول.
د python سره ستاسو د ژورې زده کړې چټ بوټ رامینځته کول
په ساحه کې د چیټ بوټونو ډیری بیلابیل ډولونه شتون لري ماشین زده کړه او AI. ځینې چیټ بوټونه مجازی معاونین دي، پداسې حال کې چې نور یوازې د خبرو اترو لپاره شتون لري، پداسې حال کې چې نور د پیرودونکو خدماتو اجنټان دي.
تاسو شاید ځینې هغه کسان لیدلي وي چې د پوښتنو ځوابولو لپاره د سوداګرۍ لخوا ګمارل شوي. موږ به په دې ټیوټوریل کې یو کوچنی چیټ بوټ جوړ کړو ترڅو په مکرر ډول غوښتل شوي پوښتنو ته ځواب ووایو.
1. د کڅوړو نصب کول
زموږ لومړی ګام د لاندې کڅوړو نصب کول دي.
2. د روزنې ډاټا
اوس دا وخت دی چې معلومه کړو چې کوم ډول معلومات چې موږ به خپل چیټ بوټ ته ورکړو. موږ اړتیا نلرو چې کوم لوی ډیټاسیټونه ډاونلوډ کړو ځکه چې دا یو ساده چیټ بوټ دی.
موږ به یوازې هغه معلومات وکاروو چې موږ پخپله جوړ کړي دي. د لوست سره په اغیزمنه توګه تعقیبولو لپاره، تاسو اړتیا لرئ چې د JSON فایل په ورته بڼه سره جوړ کړئ لکه څنګه چې لاندې لیدل شوي. زما فایل نوم دی "intents.json."
د JSON فایل د پیغامونو سیټ رامینځته کولو لپاره کارول کیږي چې کارونکي احتمال لري د اړونده ځوابونو سیټ ته دننه کړي او نقشه یې کړي. په فایل کې هر لغت یو ټاګ لري چې دا پیژني چې هر پیغام د کومې ډلې پورې اړه لري.
موږ به دا معلومات د روزنې لپاره وکاروو نوریال شبکه زموږ په فایل کې د یوې ټاګ په توګه د کلمو یوه جمله طبقه بندي کول.
بیا موږ کولی شو یوازې د دې ډلو څخه ځواب واخلو او کارونکي ته یې چمتو کړو. چیټ بوټ به ښه او ډیر پیچلي وي که تاسو دا د اضافي ټاګونو ، ځوابونو او نمونو سره وړاندیز کړئ.
3. د JSON ډیټا بارول
موږ به په خپل .json ډیټا کې بارولو او ځینې ماډلونو واردولو سره پیل وکړو. د your.json فایل په ورته لارښود کې راټول کړئ ستاسو په څیر د پایتون سکریپټ. زموږ .json ډاټا به اوس د ډیټا متغیر کې خوندي شي.
4. د معلوماتو استخراج
اوس دا وخت دی چې هغه معلومات راوباسئ چې موږ ورته زموږ د JSON فایل څخه اړتیا لرو. ټول نمونې، او همدارنګه هغه ټولګي/ټاګ چې دوی پورې تړاو لري، اړین دي.
موږ به زموږ په نمونو کې د ټولو ځانګړو شرایطو لیست ته هم اړتیا ولرو (د دلیلونو لپاره چې موږ به یې وروسته تشریح کړو)، نو راځئ چې د دې ارزښتونو د تعقیب لپاره ځینې خالي لیستونه جوړ کړو.
اوس به موږ د خپل JSON ډیټا له لارې لوپ کړو او هغه معلومات بیرته ترلاسه کړو چې موږ ورته اړتیا لرو. د دې پرځای چې د تارونو په توګه یې ولرئ، موږ به nltk.word tokenizer وکاروو ترڅو هره نمونه د کلمو لیست ته واړوو.
بیا، زموږ د docs_x لیست کې، موږ به هره نمونه، د هغې تړلې ټګ سره، د docs_y لیست ته اضافه کړو.
5. د کلمو ډډ کول
د یوې کلمې ریښې موندل د ډډ په توګه پیژندل کیږي. د مثال په توګه، د کلمې ډډ ډډ کیدای شي "هغه" وي، پداسې حال کې چې د "پیښیږي" کلمې ډډ کیدای شي "پیښ شي."
موږ به د دې سټیمینګ تخنیک څخه کار واخلو ترڅو زموږ د ماډل لغتونه کم کړو او هڅه وکړو چې معلومه کړو چې کوم جملې په عمومي ډول معنی لري. دا کوډ به په ساده ډول د ډډ شوي کلمو یو ځانګړی لیست رامینځته کړي چې زموږ د معلوماتو چمتو کولو راتلونکي مرحله کې به وکارول شي.
6. د کلمو کڅوړه
اوس د دې وخت دی چې د کلمو د یوې کڅوړې په اړه وغږیږو چې موږ خپل معلومات وارد کړي او ډډ شوي لغتونه یې رامینځته کړي. نوریال شبکې او د ماشین زده کړې الګوریتمونه، لکه څنګه چې موږ ټول پوهیږو، شمیرې ان پټ ته اړتیا لري. نو زموږ د تار لیست به دا پرې نه کړي. موږ یو میکانیزم ته اړتیا لرو چې زموږ په جملو کې د شمیرو استازیتوب وکړي، دا هغه ځای دی چې د کلمو کڅوړه راځي.
هره جمله به زموږ د ماډل په لغت کې د اصطلاحاتو د شمیر د اوږدوالي لیست لخوا نمایش شي. زموږ په لغتونو کې هره کلمه به په لیست کې د ځای لخوا نمایش کیږي. که په لیست کې موقعیت 1 وي، کلمه زموږ په بیان کې ښکاري؛ که دا 0 وي، کلمه زموږ په جمله کې نه ښکاري.
موږ دې ته د کلمو کڅوړه وایو ځکه چې موږ په هغه ترتیب نه پوهیږو چې کلمې په جمله کې څرګندیږي. موږ ټول پوهیږو چې دوی زموږ د ماډل په لغت کې شتون لري.
زموږ د آخذې د جوړښت سربیره، موږ باید خپل محصول هم فارمیټ کړو ترڅو عصبي شبکه پدې پوه شي. موږ به د محصول لیستونه جوړ کړو چې زموږ په ډیټاسیټ کې د لیبلونو / ټاګونو اوږدوالی وي ، د کلمو کڅوړې ته ورته. په لیست کې هر ځای د یو ځانګړي لیبل/ټاګ استازیتوب کوي، او په دې ځایونو کې یو 1 ښیي چې کوم لیبل/ټاګ استازیتوب کیږي.
په نهایت کې ، موږ به زموږ د روزنې ډیټا او محصول ذخیره کولو لپاره NumPy صفونه وکاروو.
7. د ماډل پراختیا
موږ چمتو یو چې اوس د ماډل جوړول او روزنه پیل کړو چې موږ خپل ټول معلومات دمخه پروسس کړي دي. موږ به د خپلو اهدافو لپاره د دوه پټو پرتونو سره خورا لومړني فیډ فارورډ عصبي شبکه وکاروو.
زموږ د شبکې هدف به دا وي چې د کلمو ټولګه وګورو او ټولګي ته یې وټاکو (زموږ د JSON فایل څخه یو له ټاګونو څخه). موږ به د خپل ماډل معمارۍ په جوړولو سره پیل وکړو. په یاد ولرئ چې تاسو کولی شئ د ځینې شمیرو سره لوبې وکړئ ترڅو د غوره ماډل سره راشي! ماشین زده کړه اکثرا د محاکمې او تېروتنې پر بنسټ والړ دی.
8. د ماډل روزنه او خوندي کول
اوس وخت دی چې زموږ ماډل زموږ په ډیټا کې وروزل شي چې موږ یې تنظیم کړی دی! موږ به دا موډل ته زموږ د معلوماتو په سمبالولو سره ترلاسه کړو. د وختونو شمیر چې موږ یې چمتو کوو هغه شمیره ده چې ماډل به د روزنې پرمهال ورته ډیټا سره مخ شي.
موږ کولی شو موډل د فایل ماډل ته خوندي کړو کله چې موږ روزنه پای ته ورسوو. tflearn یو سکریپټ دی چې په نورو سکریپټونو کې کارول کیدی شي.
9. د چیټ بوټ کارول
اوس تاسو کولی شئ د خپل بوټ سره چیټ پیل کړئ.
د Chatbot ګټې
- لکه څنګه چې بوټونه تمه کیږي په کال کې 365 ورځې کار وکړي ، په ورځ کې 24 ساعته ، پرته له تادیې ، شتون او د عکس العمل سرعت ډیر کړي.
- دا بوټونه د لوی ډیټا درې کلیدي Vs سره د مبارزې لپاره مناسب وسیلې دي: حجم ، سرعت ، او ډول.
- چیټ بوټس سافټویر دی چې د شرکت مصرف کونکو په اړه زده کولو او پوهیدو لپاره کارول کیدی شي.
- دا غوره ځواک لري چې دا د لوړ ګټو درلودو وروسته د ساتنې ارزانه لګښت لري.
- د چیټ بوټ غوښتنلیکونه هغه معلومات رامینځته کوي چې ممکن د تحلیلونو او وړاندوینو لپاره وساتل شي او وکارول شي.
د کارونې کیسه
- د پیرودونکو پوښتنو حل کول
- په مکرر ډول پوښتل شوي پوښتنو ته ځواب ورکول
- د ملاتړ ټیم ته د پیرودونکو ګمارل
- د پیرودونکو نظرونو راټولول
- د نوي وړاندیزونو وړاندیز کول
- د خبرو اترو سوداګرۍ سره پیرود وکړئ
- د معلوماتي ټکنالوجۍ مرستې ډیسک
- د استوګنې ځایونه بک کول
- د پیسو لیږد
پایله
Chatbots، لکه د نورو AI ټیکنالوژیو په څیر، د انساني مهارتونو د لوړولو او د انسان د آزادولو لپاره به ډیر تخلیقي او تصوراتي وي چې دوی ته اجازه ورکوي چې د تاکتیکي کارونو پرځای په ستراتیژیکو کارونو کې ډیر وخت تیر کړي.
سوداګرۍ، کارمندان، او مصرف کونکي احتمال لري چې د چټبوټ پرمختللي ب featuresو څخه ګټه پورته کړي لکه ګړندي وړاندیزونه او وړاندوینې ، په بیله بیا د خبرو اترو دننه د لوړ تعریف ویډیو کنفرانس ته اسانه لاسرسی ، په نږدې راتلونکي کې ، کله چې د AI پراختیا سره یوځای شي. 5G ټیکنالوژي.
دا او نور امکانات لاهم څیړل کیږي، مګر لکه څنګه چې د انټرنیټ اتصال، AI، NLP، او ماشین زده کړې پرمختګ کوي، دوی به نور هم پراخ شي.
چاوو
سلام،
د دې پروګرام لپاره مننه.
زه یوه پوښتنه لرم.
"bag_of_words" تعریف شوی نه دی. زه په دې تېروتنه نه پوهېږم.
ایا تاسو کولی شئ ما ته ووایاست چې زه څنګه دا تېروتنه حل کولی شم؟
له دې پروګرام څخه مننه!! ښه ورځ ولرئ
جې
مهرباني وکړئ د چیټ بوټ برخې کارولو دمخه یو فنکشن اضافه کړئ:
///////////////////////////////////////// ////////////////////////
def bag_of_words(s, words):
کڅوړه = [0 لپاره _ په حد کې (لین (کلمې))]
s_words = nltk.word_tokenize(s)
s_words = [stemmer.stem(word.lower()) په s_words کې د کلمې لپاره]
په لفظونو کې د لیدلو لپاره:
د i، w په شمیره (کلمو):
که w == se:
کڅوړه [i] = 1
بیرته ستنیدنه numpy.array(بګ)
// دا به یقینا ستاسو مسله حل کړي. //
///////////////////////////////////////// ///////////////////////
زه تاسو سره بشپړ کوډ شریکوم، نو تاسو به د هغې روښانه انځور ترلاسه کړئ.
///////////////////////////////////////// ////////
واردول nltk
له nltk.stem.lancaster وارداتو LancasterStemmer څخه
سټیمر = لنکاسټر سټیمر()
numpy وارد کړئ
tflearn وارد کړئ
د tensorflow واردول
تصادفي واردول
جیسن وارد کړئ
اچار وارد کړئ
د خلاص ("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 لپاره په کلمو کې که w != “؟”]
کلمې = ترتیب شوي (لست (سیټ (کلمې)))
لیبل = ترتیب شوی (لیبلونه)
روزنه = []
محصول = []
بهر_خالي = [0 لپاره _ په حد کې (لین(لیبل))]
د x لپاره، په شمیره کې doc(docs_x):
کڅوړه = []
wrds = [stemmer.stem(w.lower()) for w in doc]
د w لپاره په کلمو کې:
که w په لغتونو کې:
کڅوړه. ضمیمه(1)
بل:
کڅوړه. ضمیمه(0)
output_row = بهر_خالي[:]
output_row[labels.index(docs_y[x])] = 1
روزنه. ضمیمه
output.append(output_row)
روزنه = numpy.array(روزنه)
output = numpy.array(آؤټ پوټ)
د خلاص ("data.pickle"، "wb") سره د f په توګه:
pickle.dump(( کلمې، لیبلونه، روزنه، محصول)، f)
tensorflow.reset_default_graph()
net = tflearn.input_data(شکل=[هیڅ نه، len(روزنه[0])])
net = tflearn.fully_connected(نیٹ، 8)
net = tflearn.fully_connected(نیٹ، 8)
net = tflearn.fully_connected(net, len(output[0]), فعالول="softmax")
net = tflearn.regression(نیټ)
ماډل = tflearn.DNN (نیټ)
هڅه وکړئ:
model.load("model.tflearn")
پرته:
model.fit(روزنه، محصول، n_epoch=1500, batch_size=8, show_metric = ریښتیا)
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 کې د کلمې لپاره]
په لفظونو کې د لیدلو لپاره:
د i، w په شمیره (کلمو):
که w == se:
کڅوړه [i] = 1
بیرته ستنیدنه numpy.array(بګ)
def chat():
چاپ ("د بوټ سره خبرې پیل کړئ (د ودریدو لپاره پریږدئ)!")
پداسې حال کې چې ریښتیني:
inp = داخل ("تاسو:")
که inp.lower() == "پرېږده":
د وقفې
پایلې = ماډل. وړاندوینه([bag_of_words(inp, words)])
پایلې_انډیکس = numpy.argmax(پایلې)
ټاګ = لیبلونه[نتیجې_انډیکس]
په ډیټا کې د tg لپاره ["ارادې"]:
که tg['tag'] == ټاګ:
ځوابونه = tg['ځوابونه']
چاپ(random.choice(ځوابونه))
خبرې کول()
////////////////////////////////////////////////////// // /////////////////
له تاسو مننه،
خوشحاله کوډینګ!
Lu
سلام،
ایا تاسو کولی شئ ما ته د پروسې په اړه نظر راکړئ چې په python کې د چیټ بوټ رامینځته کولو په صورت کې ترسره کیږي ، مګر معلومات په ایکسل کې د سروې څخه ترلاسه شوي. له تاسو مننه!